Interface IBlockEntityExtension

All Known Implementing Classes:
AbstractFurnaceBlockEntity, BannerBlockEntity, BarrelBlockEntity, BaseContainerBlockEntity, BeaconBlockEntity, BedBlockEntity, BeehiveBlockEntity, BellBlockEntity, BlastFurnaceBlockEntity, BlockEntity, BlockPropertyTests.LightBlockEntity, BrewingStandBlockEntity, BrushableBlockEntity, CalibratedSculkSensorBlockEntity, CampfireBlockEntity, ChestBlockEntity, ChiseledBookShelfBlockEntity, CommandBlockEntity, ComparatorBlockEntity, ConduitBlockEntity, CrafterBlockEntity, CustomHeadTest.CustomSkullBlockEntity, CustomItemDisplayContextTest.ItemHangerBlockEntity, CustomSignsTest.CustomHangingSignBlockEntity, CustomSignsTest.CustomSignBlockEntity, DaylightDetectorBlockEntity, DecoratedPotBlockEntity, DispenserBlockEntity, DropperBlockEntity, EnchantingTableBlockEntity, EnderChestBlockEntity, FullPotsAccessorDemo.DioriteFlowerPotBlockEntity, FurnaceBlockEntity, GameTestTest.EnergyBlockEntity, HangingSignBlockEntity, HopperBlockEntity, JigsawBlockEntity, JukeboxBlockEntity, LecternBlockEntity, MegaModelTest.TestBlock.Entity, PistonMovingBlockEntity, RandomizableContainerBlockEntity, SculkCatalystBlockEntity, SculkSensorBlockEntity, SculkShriekerBlockEntity, ShulkerBoxBlockEntity, SignBlockEntity, SkullBlockEntity, SmokerBlockEntity, SpawnerBlockEntity, StructureBlockEntity, TheEndGatewayBlockEntity, TheEndPortalBlockEntity, TrappedChestBlockEntity, TrialSpawnerBlockEntity, VaultBlockEntity

public interface IBlockEntityExtension
  • Method Details

    • self

      private BlockEntity self()
    • onDataPacket

      default void onDataPacket(Connection net, ClientboundBlockEntityDataPacket pkt, HolderLookup.Provider lookupProvider)
      Called when you receive a TileEntityData packet for the location this TileEntity is currently in. On the client, the NetworkManager will always be the remote server. On the server, it will be whomever is responsible for sending the packet.
      Parameters:
      net - The NetworkManager the packet originated from
      pkt - The data packet
    • handleUpdateTag

      default void handleUpdateTag(CompoundTag tag, HolderLookup.Provider lookupProvider)
      Called when the chunk's TE update tag, gotten from BlockEntity.getUpdateTag(HolderLookup.Provider), is received on the client.

      Used to handle this tag in a special way. By default this simply calls BlockEntity.loadWithComponents(CompoundTag, HolderLookup.Provider).

      Parameters:
      tag - The CompoundTag sent from BlockEntity.getUpdateTag(HolderLookup.Provider)
    • getPersistentData

      CompoundTag getPersistentData()
      Gets a CompoundTag that can be used to store custom data for this block entity. It will be written, and read from disc, so it persists over world saves.
      Returns:
      A compound tag for custom persistent data
    • onChunkUnloaded

      default void onChunkUnloaded()
    • onLoad

      default void onLoad()
      Called when this is first added to the world (by LevelChunk.addAndRegisterBlockEntity(BlockEntity)) or right before the first tick when the chunk is generated or loaded from disk. Override instead of adding if (firstTick) stuff in update.
    • requestModelDataUpdate

      default void requestModelDataUpdate()
      Requests a refresh for the model data of your TE Call this every time your getModelData() changes
    • getModelData

      default ModelData getModelData()
      Allows you to return additional model data. This data can be used to provide additional functionality in your BakedModel You need to schedule a refresh of you model data via requestModelDataUpdate() if the result of this function changes. Note that this method may be called on a chunk render thread instead of the main client thread
      Returns:
      Your model data
    • hasCustomOutlineRendering

      default boolean hasCustomOutlineRendering(Player player)
      Returns whether this BlockEntity has custom outline rendering behavior.
      Parameters:
      player - the local player currently viewing this BlockEntity
      Returns:
      true to enable outline processing
    • invalidateCapabilities

      @NonExtendable default void invalidateCapabilities()
      Notify all listeners that the capabilities at the positions of this block entity might have changed. This includes new capabilities becoming available.

      This is just a convenience method for ILevelExtension.invalidateCapabilities(BlockPos).