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 org.moddingx.libx.base.BlockBase

    mod

    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

    Constructors
    Constructor
    Description
    BlockBE(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 Type
    Method
    Description
    getBlockEntity(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.GameEventListener
    getListener(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
    Adds fields with additional registry values to the RegistryTracker.
    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
    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

      public BlockBE(ModX mod, Class<T> beClass, net.minecraft.world.level.block.state.BlockBehaviour.Properties properties)
    • BlockBE

      public BlockBE(ModX mod, Class<T> beClass, net.minecraft.world.level.block.state.BlockBehaviour.Properties properties, @Nullable net.minecraft.world.item.Item.Properties itemProperties)
  • Method Details

    • registerAdditional

      Description copied from interface: Registerable
      Registers additional objects. Those may be Registerable as well. These objects will be registered with the id of this object and optionally a name suffix.
      Specified by:
      registerAdditional in interface Registerable
      Overrides:
      registerAdditional in class BlockBase
    • initTracking

      Description copied from interface: Registerable
      Adds fields with additional registry values to the RegistryTracker. This called, unless RegistrationBuilder.disableRegistryTracking() ()} is set.
      Specified by:
      initTracking in interface Registerable
      Overrides:
      initTracking in class BlockBase
      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 interface net.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 interface net.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 interface net.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 class net.minecraft.world.level.block.state.BlockBehaviour
    • getBlockEntity

      public T getBlockEntity(net.minecraft.world.level.Level level, net.minecraft.core.BlockPos pos)
    • getBlockEntityType

      public net.minecraft.world.level.block.entity.BlockEntityType<T> 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 of IItemHandlerModifiable