Package org.moddingx.libx.base.tile
Class BlockBE<T extends net.minecraft.world.level.block.entity.BlockEntity>
java.lang.Object
net.minecraft.world.level.block.state.BlockBehaviour
net.minecraft.world.level.block.Block
org.moddingx.libx.base.BlockBase
org.moddingx.libx.base.tile.BlockBE<T>
- All Implemented Interfaces:
net.minecraft.world.flag.FeatureElement
,net.minecraft.world.level.block.EntityBlock
,net.minecraft.world.level.ItemLike
,net.minecraftforge.common.extensions.IForgeBlock
,CreativeTabItemProvider
,Registerable
- Direct Known Subclasses:
MenuBlockBE
public class BlockBE<T extends net.minecraft.world.level.block.entity.BlockEntity>
extends BlockBase
implements net.minecraft.world.level.block.EntityBlock
Base class for blocks with
block entities
for mods using ModXRegistration
.
This will automatically set the creative tab if it's defined in the mod and register a block item and
a block entity type.
The constructor requires a BlockEntity
class. The block entity class must define a public
constructor with three arguments of types BlockEntityType
, BlockPos
and BlockState
for this to create a block entity type. This class will do the magic to wire the block entity to the block
and invoke the constructor.
The block entity class can implement TickingBlock
and GameEventBlock
. This class will then
generate a matching BlockEntityTicker
and a GameEventListener
if required.-
Nested Class Summary
Nested classes/interfaces inherited from class net.minecraft.world.level.block.Block
net.minecraft.world.level.block.Block.BlockStatePairKey
Nested classes/interfaces inherited from class net.minecraft.world.level.block.state.BlockBehaviour
net.minecraft.world.level.block.state.BlockBehaviour.BlockStateBase, net.minecraft.world.level.block.state.BlockBehaviour.OffsetFunction, net.minecraft.world.level.block.state.BlockBehaviour.OffsetType, net.minecraft.world.level.block.state.BlockBehaviour.Properties, net.minecraft.world.level.block.state.BlockBehaviour.StateArgumentPredicate<A extends Object>, net.minecraft.world.level.block.state.BlockBehaviour.StatePredicate
Nested classes/interfaces inherited from interface org.moddingx.libx.registration.Registerable
Registerable.EntryCollector, Registerable.TrackingCollector
-
Field Summary
Fields inherited from class net.minecraft.world.level.block.Block
BLOCK_STATE_REGISTRY, INDESTRUCTIBLE, INSTANT, stateDefinition, UPDATE_ALL, UPDATE_ALL_IMMEDIATE, UPDATE_CLIENTS, UPDATE_IMMEDIATE, UPDATE_INVISIBLE, UPDATE_KNOWN_SHAPE, UPDATE_LIMIT, UPDATE_MOVE_BY_PISTON, UPDATE_NEIGHBORS, UPDATE_NONE, UPDATE_SUPPRESS_DROPS
Fields inherited from class net.minecraft.world.level.block.state.BlockBehaviour
drops, dynamicShape, explosionResistance, friction, hasCollision, isRandomlyTicking, jumpFactor, properties, requiredFeatures, soundType, speedFactor, UPDATE_SHAPE_ORDER
Fields inherited from interface net.minecraft.world.flag.FeatureElement
FILTERED_REGISTRIES
-
Constructor Summary
ConstructorDescriptionBlockBE
(ModX mod, Class<T> beClass, net.minecraft.world.level.block.state.BlockBehaviour.Properties properties) BlockBE
(ModX mod, Class<T> beClass, net.minecraft.world.level.block.state.BlockBehaviour.Properties properties, net.minecraft.world.item.Item.Properties itemProperties) -
Method Summary
Modifier and TypeMethodDescriptiongetBlockEntity
(net.minecraft.world.level.Level level, net.minecraft.core.BlockPos pos) net.minecraft.world.level.block.entity.BlockEntityType<T>
<X extends net.minecraft.world.level.block.entity.BlockEntity>
net.minecraft.world.level.gameevent.GameEventListenergetListener
(net.minecraft.server.level.ServerLevel level, X blockEntity) <X extends net.minecraft.world.level.block.entity.BlockEntity>
net.minecraft.world.level.block.entity.BlockEntityTicker<X>getTicker
(net.minecraft.world.level.Level level, net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.block.entity.BlockEntityType<X> beType) void
initTracking
(RegistrationContext ctx, Registerable.TrackingCollector builder) Adds fields with additional registry values to theRegistryTracker
.net.minecraft.world.level.block.entity.BlockEntity
newBlockEntity
(net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state) void
onRemove
(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.Level level, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState newState, boolean isMoving) void
registerAdditional
(RegistrationContext ctx, Registerable.EntryCollector builder) Registers additional objects.protected boolean
shouldDropInventory
(net.minecraft.world.level.Level level, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state) Override this to prevent the inventory of the block entity to be dropped when the block is broken.Methods inherited from class org.moddingx.libx.base.BlockBase
getBurnTime, initializeItemClient, makeCreativeTabStacks
Methods inherited from class net.minecraft.world.level.block.Block
animateTick, appendHoverText, asBlock, asItem, box, builtInRegistryHolder, byItem, canSupportCenter, canSupportRigidBlock, canSustainPlant, createBlockStateDefinition, defaultBlockState, destroy, dropFromExplosion, dropResources, dropResources, dropResources, dropResources, fallOn, getCloneItemStack, getDescriptionId, getDrops, getDrops, getExplosionResistance, getFriction, getId, getJumpFactor, getName, getRenderPropertiesInternal, getShapeForEachState, getSoundType, getSpeedFactor, getStateDefinition, getStateForPlacement, handlePrecipitation, hasDynamicShape, initializeClient, isExceptionForConnection, isFaceFull, isPossibleToRespawnInThis, isRandomlyTicking, isShapeFullBlock, playerDestroy, playerWillDestroy, popExperience, popResource, popResourceFromFace, propagatesSkylightDown, pushEntitiesUp, registerDefaultState, setPlacedBy, shouldRenderFace, spawnDestroyParticles, stateById, stepOn, toString, tryDropExperience, updateEntityAfterFallOn, updateFromNeighbourShapes, updateOrDestroy, updateOrDestroy, wasExploded, withPropertiesOf
Methods inherited from class net.minecraft.world.level.block.state.BlockBehaviour
attack, canBeReplaced, canBeReplaced, canSurvive, defaultDestroyTime, defaultMapColor, entityInside, getAnalogOutputSignal, getBlockSupportShape, getCollisionShape, getDestroyProgress, getDirectSignal, getDrops, getFluidState, getInteractionShape, getLightBlock, getLootTable, getMaxHorizontalOffset, getMaxVerticalOffset, getMenuProvider, getOcclusionShape, getRenderShape, getSeed, getShadeBrightness, getShape, getSignal, getVisualShape, hasAnalogOutputSignal, isAir, isCollisionShapeFullBlock, isOcclusionShapeFullBlock, isPathfindable, isSignalSource, mirror, neighborChanged, onPlace, onProjectileHit, randomTick, requiredFeatures, rotate, skipRendering, spawnAfterBreak, tick, triggerEvent, updateIndirectNeighbourShapes, updateShape, use, useShapeForLightOcclusion
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface net.minecraft.world.flag.FeatureElement
isEnabled
Methods inherited from interface net.minecraftforge.common.extensions.IForgeBlock
addLandingEffects, addRunningEffects, canBeHydrated, canConnectRedstone, canDropFromExplosion, canEntityDestroy, canHarvestBlock, canStickTo, collisionExtendsVertically, getAdjacentBlockPathType, getAppearance, getBeaconColorMultiplier, getBedDirection, getBlockPathType, getCloneItemStack, getEnchantPowerBonus, getExpDrop, getExplosionResistance, getFireSpreadSpeed, getFlammability, getFriction, getLightEmission, getMapColor, getPistonPushReaction, getRespawnPosition, getSoundType, getStateAtViewpoint, getToolModifiedState, getWeakChanges, hidesNeighborFace, isBed, isBurning, isConduitFrame, isFertile, isFireSource, isFlammable, isLadder, isPortalFrame, isScaffolding, isSlimeBlock, isStickyBlock, isValidSpawn, makesOpenTrapdoorAboveClimbable, onBlockExploded, onBlockStateChange, onCaughtFire, onDestroyedByPlayer, onNeighborChange, onTreeGrow, rotate, setBedOccupied, shouldCheckWeakPower, shouldDisplayFluidOverlay, supportsExternalFaceHiding
Methods inherited from interface org.moddingx.libx.registration.Registerable
registerClient, registerCommon
-
Constructor Details
-
BlockBE
-
BlockBE
-
-
Method Details
-
registerAdditional
@OverridingMethodsMustInvokeSuper public void registerAdditional(RegistrationContext ctx, Registerable.EntryCollector builder) Description copied from interface:Registerable
Registers additional objects. Those may beRegisterable
as well. These objects will be registered with the id of this object and optionally a name suffix.- Specified by:
registerAdditional
in interfaceRegisterable
- Overrides:
registerAdditional
in classBlockBase
-
initTracking
@OverridingMethodsMustInvokeSuper public void initTracking(RegistrationContext ctx, Registerable.TrackingCollector builder) throws ReflectiveOperationException Description copied from interface:Registerable
Adds fields with additional registry values to theRegistryTracker
. This called, unlessRegistrationBuilder.disableRegistryTracking()
()} is set.- Specified by:
initTracking
in interfaceRegisterable
- Overrides:
initTracking
in classBlockBase
- Throws:
ReflectiveOperationException
-
newBlockEntity
@Nullable public net.minecraft.world.level.block.entity.BlockEntity newBlockEntity(@Nonnull net.minecraft.core.BlockPos pos, @Nonnull net.minecraft.world.level.block.state.BlockState state) - Specified by:
newBlockEntity
in interfacenet.minecraft.world.level.block.EntityBlock
-
getTicker
@Nullable public <X extends net.minecraft.world.level.block.entity.BlockEntity> net.minecraft.world.level.block.entity.BlockEntityTicker<X> getTicker(@Nonnull net.minecraft.world.level.Level level, @Nonnull net.minecraft.world.level.block.state.BlockState state, @Nonnull net.minecraft.world.level.block.entity.BlockEntityType<X> beType) - Specified by:
getTicker
in interfacenet.minecraft.world.level.block.EntityBlock
-
getListener
@Nullable public <X extends net.minecraft.world.level.block.entity.BlockEntity> net.minecraft.world.level.gameevent.GameEventListener getListener(@Nonnull net.minecraft.server.level.ServerLevel level, @Nonnull X blockEntity) - Specified by:
getListener
in interfacenet.minecraft.world.level.block.EntityBlock
-
onRemove
public void onRemove(@Nonnull net.minecraft.world.level.block.state.BlockState state, @Nonnull net.minecraft.world.level.Level level, @Nonnull net.minecraft.core.BlockPos pos, @Nonnull net.minecraft.world.level.block.state.BlockState newState, boolean isMoving) - Overrides:
onRemove
in classnet.minecraft.world.level.block.state.BlockBehaviour
-
getBlockEntity
-
getBlockEntityType
-
shouldDropInventory
protected boolean shouldDropInventory(net.minecraft.world.level.Level level, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state) Override this to prevent the inventory of the block entity to be dropped when the block is broken. To automatically drop the inventory the block entity must provide an item handler capability that is an instance ofIItemHandlerModifiable
-