Class StructureBlockEntity

All Implemented Interfaces:
IAttachmentHolder, IBlockEntityExtension

public class StructureBlockEntity extends BlockEntity
  • Field Details

    • SCAN_CORNER_BLOCKS_RANGE

      private static final int SCAN_CORNER_BLOCKS_RANGE
      See Also:
    • MAX_OFFSET_PER_AXIS

      public static final int MAX_OFFSET_PER_AXIS
      See Also:
    • MAX_SIZE_PER_AXIS

      public static final int MAX_SIZE_PER_AXIS
      See Also:
    • AUTHOR_TAG

      public static final String AUTHOR_TAG
      See Also:
    • structureName

      @Nullable private ResourceLocation structureName
    • author

      private String author
    • metaData

      private String metaData
    • structurePos

      private BlockPos structurePos
    • structureSize

      private Vec3i structureSize
    • mirror

      private Mirror mirror
    • rotation

      private Rotation rotation
    • mode

      private StructureMode mode
    • ignoreEntities

      private boolean ignoreEntities
    • powered

      private boolean powered
    • showAir

      private boolean showAir
    • showBoundingBox

      private boolean showBoundingBox
    • integrity

      private float integrity
    • seed

      private long seed
  • Constructor Details

    • StructureBlockEntity

      public StructureBlockEntity(BlockPos pos, BlockState blockState)
  • Method Details

    • saveAdditional

      protected void saveAdditional(CompoundTag tag, HolderLookup.Provider registries)
      Overrides:
      saveAdditional in class BlockEntity
    • loadAdditional

      protected void loadAdditional(CompoundTag tag, HolderLookup.Provider registries)
      Overrides:
      loadAdditional in class BlockEntity
    • updateBlockState

      private void updateBlockState()
    • getUpdatePacket

      public ClientboundBlockEntityDataPacket getUpdatePacket()
      Overrides:
      getUpdatePacket in class BlockEntity
    • getUpdateTag

      public CompoundTag getUpdateTag(HolderLookup.Provider registries)
      Overrides:
      getUpdateTag in class BlockEntity
    • usedBy

      public boolean usedBy(Player player)
    • getStructureName

      public String getStructureName()
    • hasStructureName

      public boolean hasStructureName()
    • setStructureName

      public void setStructureName(@Nullable String structureName)
    • setStructureName

      public void setStructureName(@Nullable ResourceLocation structureName)
    • createdBy

      public void createdBy(LivingEntity author)
    • getStructurePos

      public BlockPos getStructurePos()
    • setStructurePos

      public void setStructurePos(BlockPos structurePos)
    • getStructureSize

      public Vec3i getStructureSize()
    • setStructureSize

      public void setStructureSize(Vec3i structureSize)
    • getMirror

      public Mirror getMirror()
    • setMirror

      public void setMirror(Mirror mirror)
    • getRotation

      public Rotation getRotation()
    • setRotation

      public void setRotation(Rotation rotation)
    • getMetaData

      public String getMetaData()
    • setMetaData

      public void setMetaData(String metaData)
    • getMode

      public StructureMode getMode()
    • setMode

      public void setMode(StructureMode mode)
    • isIgnoreEntities

      public boolean isIgnoreEntities()
    • setIgnoreEntities

      public void setIgnoreEntities(boolean ignoreEntities)
    • getIntegrity

      public float getIntegrity()
    • setIntegrity

      public void setIntegrity(float integrity)
    • getSeed

      public long getSeed()
    • setSeed

      public void setSeed(long seed)
    • detectSize

      public boolean detectSize()
    • getRelatedCorners

      private Stream<BlockPos> getRelatedCorners(BlockPos minPos, BlockPos maxPos)
    • calculateEnclosingBoundingBox

      private static Optional<BoundingBox> calculateEnclosingBoundingBox(BlockPos pos, Stream<BlockPos> relatedCorners)
    • saveStructure

      public boolean saveStructure()
    • saveStructure

      public boolean saveStructure(boolean writeToDisk)
      Saves the template, either updating the local version or writing it to disk.
      Returns:
      true if the template was successfully saved.
    • createRandom

      public static RandomSource createRandom(long seed)
    • placeStructureIfSameSize

      public boolean placeStructureIfSameSize(ServerLevel level)
    • loadStructureInfo

      public boolean loadStructureInfo(ServerLevel level)
    • loadStructureInfo

      private void loadStructureInfo(StructureTemplate structureTemplate)
    • placeStructure

      public void placeStructure(ServerLevel level)
    • getStructureTemplate

      @Nullable private StructureTemplate getStructureTemplate(ServerLevel level)
    • placeStructure

      private void placeStructure(ServerLevel level, StructureTemplate structureTemplate)
    • unloadStructure

      public void unloadStructure()
    • isStructureLoadable

      public boolean isStructureLoadable()
    • isPowered

      public boolean isPowered()
    • setPowered

      public void setPowered(boolean powered)
    • getShowAir

      public boolean getShowAir()
    • setShowAir

      public void setShowAir(boolean showAir)
    • getShowBoundingBox

      public boolean getShowBoundingBox()
    • setShowBoundingBox

      public void setShowBoundingBox(boolean showBoundingBox)