Class AbstractDiskContainerBlockEntity<T extends com.refinedmods.refinedstorage.api.network.impl.node.AbstractStorageContainerNetworkNode>
java.lang.Object
net.minecraft.world.level.block.entity.BlockEntity
com.refinedmods.refinedstorage.common.api.support.network.AbstractNetworkNodeContainerBlockEntity<T>
com.refinedmods.refinedstorage.common.support.network.AbstractBaseNetworkNodeContainerBlockEntity<T>
com.refinedmods.refinedstorage.common.storage.AbstractDiskContainerBlockEntity<T>
- All Implemented Interfaces:
ConfigurationCardTarget,NetworkItemTargetBlockEntity,BlockEntityWithDrops,ExtendedMenuProvider<ResourceContainerData>,NetworkNodeExtendedMenuProvider<ResourceContainerData>,NetworkNodeMenuProvider,PlayerAwareBlockEntity,net.minecraft.world.inventory.MenuConstructor,net.minecraft.world.MenuProvider,net.minecraft.world.Nameable
- Direct Known Subclasses:
AbstractDiskDriveBlockEntity,AbstractDiskInterfaceBlockEntity
public abstract class AbstractDiskContainerBlockEntity<T extends com.refinedmods.refinedstorage.api.network.impl.node.AbstractStorageContainerNetworkNode>
extends AbstractBaseNetworkNodeContainerBlockEntity<T>
implements BlockEntityWithDrops, NetworkNodeExtendedMenuProvider<ResourceContainerData>
-
Nested Class Summary
Nested classes/interfaces inherited from class net.minecraft.world.level.block.entity.BlockEntity
net.minecraft.world.level.block.entity.BlockEntity.DataComponentInput -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final DiskInventoryprotected Disk[]protected final FilterWithFuzzyModeFields inherited from class com.refinedmods.refinedstorage.common.support.network.AbstractBaseNetworkNodeContainerBlockEntity
tickerFields inherited from class com.refinedmods.refinedstorage.common.api.support.network.AbstractNetworkNodeContainerBlockEntity
containers, mainNetworkNodeFields inherited from class net.minecraft.world.level.block.entity.BlockEntity
level, remove, worldPosition -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractDiskContainerBlockEntity(net.minecraft.world.level.block.entity.BlockEntityType<?> type, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state, T node) -
Method Summary
Modifier and TypeMethodDescriptionvoidactivenessChanged(boolean newActive) protected voidprotected booleandoesBlockStateChangeWarrantNetworkNodeUpdate(net.minecraft.world.level.block.state.BlockState oldBlockState, net.minecraft.world.level.block.state.BlockState newBlockState) static net.minecraft.world.item.ItemgetDisk(net.minecraft.nbt.CompoundTag tag, int slot, net.minecraft.core.HolderLookup.Provider provider) net.minecraft.core.NonNullList<net.minecraft.world.item.ItemStack> getDrops()net.minecraft.network.codec.StreamEncoder<net.minecraft.network.RegistryFriendlyByteBuf, ResourceContainerData> net.minecraft.network.protocol.Packet<net.minecraft.network.protocol.game.ClientGamePacketListener> net.minecraft.nbt.CompoundTaggetUpdateTag(net.minecraft.core.HolderLookup.Provider provider) voidloadAdditional(net.minecraft.nbt.CompoundTag tag, net.minecraft.core.HolderLookup.Provider provider) protected voidvoidreadConfiguration(net.minecraft.nbt.CompoundTag tag, net.minecraft.core.HolderLookup.Provider provider) voidsaveAdditional(net.minecraft.nbt.CompoundTag tag, net.minecraft.core.HolderLookup.Provider provider) voidWhen loading a disk drive in a normal flow it is: #load(CompoundTag) -> #setLevel(Level).protected abstract voidsetFilters(Set<ResourceKey> filters) voidsetLevel(net.minecraft.world.level.Level level) protected abstract voidsetNormalizer(UnaryOperator<ResourceKey> normalizer) voidwriteConfiguration(net.minecraft.nbt.CompoundTag tag, net.minecraft.core.HolderLookup.Provider provider) Methods inherited from class com.refinedmods.refinedstorage.common.support.network.AbstractBaseNetworkNodeContainerBlockEntity
applyImplicitComponents, calculateActive, collectImplicitComponents, createMainContainer, doWork, getCustomName, getDebugNetworkId, getDisplayName, getFakePlayer, getNetworkForItem, getRedstoneMode, hasRedstoneMode, initialize, initialize, isPlacedBy, overrideName, setBlockState, setCustomName, setPlacedBy, setRedstoneMode, updateActiveness, updateDebugNetworkIdMethods inherited from class com.refinedmods.refinedstorage.common.api.support.network.AbstractNetworkNodeContainerBlockEntity
clearRemoved, createContainerProvider, getContainerProvider, setRemovedMethods inherited from class net.minecraft.world.level.block.entity.BlockEntity
addEntityType, applyComponents, applyComponentsFromItemStack, collectComponents, components, fillCrashReportCategory, getBlockPos, getBlockState, getLevel, getPosFromTag, getType, hasLevel, isRemoved, isValidBlockState, loadCustomOnly, loadStatic, loadWithComponents, onlyOpCanSetNbt, parseCustomNameSafe, removeComponentsFromTag, saveCustomAndMetadata, saveCustomOnly, saveToItem, saveWithFullMetadata, saveWithId, saveWithoutMetadata, setChanged, setComponents, triggerEventMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.refinedmods.refinedstorage.common.api.configurationcard.ConfigurationCardTarget
addUpgrade, getUpgradesMethods inherited from interface net.minecraft.world.inventory.MenuConstructor
createMenuMethods inherited from interface net.minecraft.world.MenuProvider
getDisplayNameMethods inherited from interface net.minecraft.world.Nameable
getName, hasCustomNameMethods inherited from interface com.refinedmods.refinedstorage.common.support.containermenu.NetworkNodeMenuProvider
canOpen, getContainerProvider
-
Field Details
-
filter
-
diskInventory
-
disks
-
-
Constructor Details
-
AbstractDiskContainerBlockEntity
protected AbstractDiskContainerBlockEntity(net.minecraft.world.level.block.entity.BlockEntityType<?> type, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state, T node)
-
-
Method Details
-
containerInitialized
protected void containerInitialized()- Overrides:
containerInitializedin classAbstractNetworkNodeContainerBlockEntity<T extends com.refinedmods.refinedstorage.api.network.impl.node.AbstractStorageContainerNetworkNode>
-
setFilters
-
setNormalizer
-
getDisk
@Nullable public static net.minecraft.world.item.Item getDisk(net.minecraft.nbt.CompoundTag tag, int slot, net.minecraft.core.HolderLookup.Provider provider) -
setLevel
public void setLevel(net.minecraft.world.level.Level level) - Overrides:
setLevelin classAbstractBaseNetworkNodeContainerBlockEntity<T extends com.refinedmods.refinedstorage.api.network.impl.node.AbstractStorageContainerNetworkNode>
-
setChanged
public void setChanged()When loading a disk drive in a normal flow it is: #load(CompoundTag) -> #setLevel(Level). Network initialization happens in #setLevel(Level). Loading data before network initialization ensures that all nbt is present (and thus disks are available). However, when we place a block entity with nbt, the flow is different: #setLevel(Level) -> #load(CompoundTag) -> #setChanged(). #setLevel(Level) is called first (before #load(CompoundTag)) and initialization will happen BEFORE we load the components! That's why we need to override #setChanged() here, to ensure that the network and disks are still initialized correctly in that case.- Overrides:
setChangedin classnet.minecraft.world.level.block.entity.BlockEntity
-
activenessChanged
public void activenessChanged(boolean newActive) - Overrides:
activenessChangedin classAbstractBaseNetworkNodeContainerBlockEntity<T extends com.refinedmods.refinedstorage.api.network.impl.node.AbstractStorageContainerNetworkNode>
-
loadAdditional
public void loadAdditional(net.minecraft.nbt.CompoundTag tag, net.minecraft.core.HolderLookup.Provider provider) - Overrides:
loadAdditionalin classAbstractBaseNetworkNodeContainerBlockEntity<T extends com.refinedmods.refinedstorage.api.network.impl.node.AbstractStorageContainerNetworkNode>
-
readConfiguration
public void readConfiguration(net.minecraft.nbt.CompoundTag tag, net.minecraft.core.HolderLookup.Provider provider) - Specified by:
readConfigurationin interfaceConfigurationCardTarget- Overrides:
readConfigurationin classAbstractBaseNetworkNodeContainerBlockEntity<T extends com.refinedmods.refinedstorage.api.network.impl.node.AbstractStorageContainerNetworkNode>
-
saveAdditional
public void saveAdditional(net.minecraft.nbt.CompoundTag tag, net.minecraft.core.HolderLookup.Provider provider) - Overrides:
saveAdditionalin classAbstractBaseNetworkNodeContainerBlockEntity<T extends com.refinedmods.refinedstorage.api.network.impl.node.AbstractStorageContainerNetworkNode>
-
writeConfiguration
public void writeConfiguration(net.minecraft.nbt.CompoundTag tag, net.minecraft.core.HolderLookup.Provider provider) - Specified by:
writeConfigurationin interfaceConfigurationCardTarget- Overrides:
writeConfigurationin classAbstractBaseNetworkNodeContainerBlockEntity<T extends com.refinedmods.refinedstorage.api.network.impl.node.AbstractStorageContainerNetworkNode>
-
getDiskInventory
-
onClientDriveStateUpdated
protected void onClientDriveStateUpdated() -
getUpdatePacket
public net.minecraft.network.protocol.Packet<net.minecraft.network.protocol.game.ClientGamePacketListener> getUpdatePacket()- Overrides:
getUpdatePacketin classAbstractBaseNetworkNodeContainerBlockEntity<T extends com.refinedmods.refinedstorage.api.network.impl.node.AbstractStorageContainerNetworkNode>
-
getUpdateTag
public net.minecraft.nbt.CompoundTag getUpdateTag(net.minecraft.core.HolderLookup.Provider provider) - Overrides:
getUpdateTagin classAbstractBaseNetworkNodeContainerBlockEntity<T extends com.refinedmods.refinedstorage.api.network.impl.node.AbstractStorageContainerNetworkNode>
-
getDrops
public net.minecraft.core.NonNullList<net.minecraft.world.item.ItemStack> getDrops()- Specified by:
getDropsin interfaceBlockEntityWithDrops
-
getMenuData
- Specified by:
getMenuDatain interfaceExtendedMenuProvider<T extends com.refinedmods.refinedstorage.api.network.impl.node.AbstractStorageContainerNetworkNode>
-
getMenuCodec
public net.minecraft.network.codec.StreamEncoder<net.minecraft.network.RegistryFriendlyByteBuf,ResourceContainerData> getMenuCodec()- Specified by:
getMenuCodecin interfaceExtendedMenuProvider<T extends com.refinedmods.refinedstorage.api.network.impl.node.AbstractStorageContainerNetworkNode>
-
doesBlockStateChangeWarrantNetworkNodeUpdate
protected boolean doesBlockStateChangeWarrantNetworkNodeUpdate(net.minecraft.world.level.block.state.BlockState oldBlockState, net.minecraft.world.level.block.state.BlockState newBlockState) - Overrides:
doesBlockStateChangeWarrantNetworkNodeUpdatein classAbstractBaseNetworkNodeContainerBlockEntity<T extends com.refinedmods.refinedstorage.api.network.impl.node.AbstractStorageContainerNetworkNode>
-