Interface BlockEntity
-
- All Superinterfaces:
CopyableDataHolder
,DataHolder
,DataHolder.Mutable
,DataSerializable
,Locatable
,SerializableDataHolder
,SerializableDataHolder.Mutable
,ValueContainer
- All Known Subinterfaces:
Banner
,Barrel
,Beacon
,Bed
,Beehive
,Bell
,BlastFurnace
,BrewingStand
,Campfire
,CarrierBlockEntity
,Chest
,CommandBlock
,Comparator
,Conduit
,DaylightDetector
,Dispenser
,Dropper
,EnchantmentTable
,EnderChest
,EndGateway
,EndPortal
,Furnace
,FurnaceBlockEntity
,Hopper
,Jigsaw
,Jukebox
,Lectern
,MobSpawner
,NameableBlockEntity
,NameableCarrierBlockEntity
,Piston
,ShulkerBox
,Sign
,Skull
,Smoker
,StructureBlock
,TrappedChest
@DoNotStore public interface BlockEntity extends SerializableDataHolder.Mutable, Locatable
Represents a block entity. It is a functional block that is continuously updated while residing in a world. It can perform specific functions based on the data that it contains.A
BlockEntity
is contained within aServerLocation
and will continue to exists so long as theServerLocation
is of the correct block type.Since a
BlockEntity
is performing various actions, all methods that are purely functional methods reside in theBlockEntity
, whereas customizable data associated with aBlockEntity
is represented byValues
.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.spongepowered.api.data.DataHolder
DataHolder.Immutable<I extends DataHolder.Immutable<I>>, DataHolder.Mutable
-
Nested classes/interfaces inherited from interface org.spongepowered.api.data.SerializableDataHolder
SerializableDataHolder.Immutable<I extends SerializableDataHolder.Immutable<I>>, SerializableDataHolder.Mutable
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description BlockState
block()
Gets theBlockState
that thisBlockEntity
represents.BlockEntity
copy()
Creates a newBlockEntityArchetype
for use withSchematic
s and placing the archetype in multiple locations.BlockEntityArchetype
createArchetype()
Creates a newBlockEntityArchetype
for use withSchematic
s and placing the archetype in multiple locations.boolean
isValid()
Checks for whether the block entity is currently valid or not.LocatableBlock
locatableBlock()
Creates aLocatableBlock
for thisBlockEntity
.default BlockEntity
mirror(java.util.function.Supplier<? extends Mirror> mirror)
Gets the appropriateBlockEntity
for the desiredMirror
.BlockEntity
mirror(Mirror mirror)
Gets the appropriateBlockEntity
for the desiredMirror
.default BlockEntity
rotate(java.util.function.Supplier<? extends Rotation> rotation)
Rotates thisBlockEntity
for the desiredRotation
.BlockEntity
rotate(Rotation rotation)
Rotates thisBlockEntity
for the desiredRotation
.void
setValid(boolean valid)
Changes the validation of this block entity.BlockEntityType
type()
Gets the type ofBlockEntity
this is.-
Methods inherited from interface org.spongepowered.api.data.DataHolder.Mutable
copyFrom, copyFrom, offer, offer, offer, offer, offerAll, offerAll, offerAll, offerAll, offerAll, offerAll, offerSingle, offerSingle, offerSingle, offerSingle, remove, remove, remove, removeAll, removeAll, removeAll, removeAll, removeAll, removeAll, removeKey, removeKey, removeSingle, removeSingle, transform, transform, tryOffer, tryOffer, tryOffer, undo
-
Methods inherited from interface org.spongepowered.api.data.persistence.DataSerializable
contentVersion, toContainer
-
Methods inherited from interface org.spongepowered.api.world.Locatable
blockPosition, location, serverLocation, world
-
Methods inherited from interface org.spongepowered.api.data.SerializableDataHolder
validateRawData
-
Methods inherited from interface org.spongepowered.api.data.SerializableDataHolder.Mutable
setRawData
-
-
-
-
Method Detail
-
isValid
boolean isValid()
Checks for whether the block entity is currently valid or not.Use this method to check if processing should be run on this
BlockEntity
. If it is valid, then processing can be run on it. If not, then processing should wait until it becomes valid or is destroyed.- Returns:
- True if the block entity is valid, false if not
-
setValid
void setValid(boolean valid)
Changes the validation of this block entity.If the block entity is invalid, no processing will be done on this
BlockEntity
until it either becomes valid or is reset on the next tick.If the block entity is valid, then processing can continue and this
BlockEntity
will not be reset on the next tick.- Parameters:
valid
- True if the block entity should be validated, or false if it should be invalidated
-
type
BlockEntityType type()
Gets the type ofBlockEntity
this is.- Returns:
- The type of block entity
-
block
BlockState block()
Gets theBlockState
that thisBlockEntity
represents.- Returns:
- The blockstate
-
rotate
BlockEntity rotate(Rotation rotation)
Rotates thisBlockEntity
for the desiredRotation
.- Parameters:
rotation
- The rotation- Returns:
- The rotated state if not this state
-
rotate
default BlockEntity rotate(java.util.function.Supplier<? extends Rotation> rotation)
Rotates thisBlockEntity
for the desiredRotation
.- Parameters:
rotation
- The rotation- Returns:
- The rotated state if not this state
-
mirror
BlockEntity mirror(Mirror mirror)
Gets the appropriateBlockEntity
for the desiredMirror
.- Parameters:
mirror
- The mirror- Returns:
- The mirrored BlockEntity
-
mirror
default BlockEntity mirror(java.util.function.Supplier<? extends Mirror> mirror)
Gets the appropriateBlockEntity
for the desiredMirror
.- Parameters:
mirror
- The mirror- Returns:
- The mirrored BlockEntity
-
createArchetype
BlockEntityArchetype createArchetype()
Creates a newBlockEntityArchetype
for use withSchematic
s and placing the archetype in multiple locations.- Returns:
- The created archetype for re-creating this block entity
-
locatableBlock
LocatableBlock locatableBlock()
Creates aLocatableBlock
for thisBlockEntity
. Can be used as a simpler method of making them. Since this does not persist the data of thisBlockEntity
, it should not be used in place of aBlockSnapshot
where data is being safely cloned.- Returns:
- The created locatable block, not as a block snapshot
-
copy
BlockEntity copy()
Creates a newBlockEntityArchetype
for use withSchematic
s and placing the archetype in multiple locations.- Specified by:
copy
in interfaceCopyableDataHolder
- Specified by:
copy
in interfaceSerializableDataHolder
- Specified by:
copy
in interfaceSerializableDataHolder.Mutable
- Returns:
- The created archetype for re-creating this block entity
-
-