Class MultiBlock

java.lang.Object
net.minecraft.world.level.block.state.BlockBehaviour
net.minecraft.world.level.block.Block
net.minecraft.world.level.block.BaseEntityBlock
com.pixelmonmod.pixelmon.blocks.MultiBlock
All Implemented Interfaces:
net.minecraft.world.flag.FeatureElement, net.minecraft.world.level.block.EntityBlock, net.minecraft.world.level.ItemLike, net.minecraftforge.common.extensions.IForgeBlock
Direct Known Subclasses:
BattleSpectatorBlock, BlockGenericModelMultiblock, CloningMachineBlock, CookingPotBlock, FossilCleanerBlock, FossilMachineBlock, GlassTableBlock, InfuserBlock, PCBlock, TradeMachineBlock, VendingMachineBlock

public abstract class MultiBlock extends net.minecraft.world.level.block.BaseEntityBlock
A block that occupies multiple blocks.
  • 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
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final net.minecraft.world.level.block.state.properties.DirectionProperty
     
    protected double
     
    protected boolean
    Mostly needed for large JSON models since they can't be shifted more than 1 block to the side.
    protected int
     
    static final net.minecraft.world.level.block.state.properties.EnumProperty<MultiBlockPosition>
     
    protected int
     

    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
    Modifier
    Constructor
    Description
    protected
    MultiBlock(net.minecraft.world.level.block.state.BlockBehaviour.Properties builder, int width, double height, int length)
    Initializes a multi-block.
    protected
    MultiBlock(net.minecraft.world.level.block.state.BlockBehaviour.Properties builder, int width, double height, int length, boolean jsonOffset)
    Initializes a multi-block.
  • Method Summary

    Modifier and Type
    Method
    Description
    protected void
    createBlockStateDefinition(net.minecraft.world.level.block.state.StateDefinition.Builder<net.minecraft.world.level.block.Block,net.minecraft.world.level.block.state.BlockState> builder)
     
    net.minecraft.core.BlockPos
    findBaseBlock(net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos.MutableBlockPos pos, net.minecraft.world.level.block.state.BlockState state)
    Finds the base of the multi-block.
    List<net.minecraft.world.item.ItemStack>
    getDrops(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.storage.loot.LootParams.Builder context)
     
    double
     
    boolean
     
    int
     
    int
    getLightEmission(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos)
     
    protected net.minecraft.world.phys.AABB
    getMultiBlockBoundingBox(net.minecraft.world.level.BlockGetter worldIn, net.minecraft.core.BlockPos pos, MultiBlockPosition multiPos, net.minecraft.core.Direction facing)
    Gets the bounding box for the multi-block.
    net.minecraft.world.phys.shapes.VoxelShape
    getShape(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.BlockGetter worldIn, net.minecraft.core.BlockPos pos, net.minecraft.world.phys.shapes.CollisionContext context)
     
    protected abstract Optional<net.minecraft.world.level.block.entity.BlockEntity>
    getTileEntity(net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state)
     
    int
     
    net.minecraft.world.level.block.entity.BlockEntity
    newBlockEntity(net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state)
     
    boolean
    onDestroyedByPlayer(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos, net.minecraft.world.entity.player.Player player, boolean willHarvest, net.minecraft.world.level.material.FluidState fluid)
     
    void
    onRemove(net.minecraft.world.level.block.state.BlockState p_196243_1_, net.minecraft.world.level.Level p_196243_2_, net.minecraft.core.BlockPos p_196243_3_, net.minecraft.world.level.block.state.BlockState p_196243_4_, boolean p_196243_5_)
     
    net.minecraft.world.level.block.state.BlockState
    rotate(net.minecraft.world.level.block.state.BlockState p_185499_1_, net.minecraft.world.level.block.Rotation p_185499_2_)
     

    Methods inherited from class net.minecraft.world.level.block.BaseEntityBlock

    createTickerHelper, getMenuProvider, getRenderShape, triggerEvent

    Methods inherited from class net.minecraft.world.level.block.Block

    animateTick, appendHoverText, asBlock, asItem, box, builtInRegistryHolder, byItem, canSupportCenter, canSupportRigidBlock, canSustainPlant, 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, getFluidState, getInteractionShape, getLightBlock, getLootTable, getMaxHorizontalOffset, getMaxVerticalOffset, getOcclusionShape, getSeed, getShadeBrightness, getSignal, getVisualShape, hasAnalogOutputSignal, isAir, isCollisionShapeFullBlock, isOcclusionShapeFullBlock, isPathfindable, isSignalSource, mirror, neighborChanged, onPlace, onProjectileHit, randomTick, requiredFeatures, skipRendering, spawnAfterBreak, tick, 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.level.block.EntityBlock

    getListener, getTicker

    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, getMapColor, getPistonPushReaction, getRespawnPosition, getSoundType, getStateAtViewpoint, getToolModifiedState, getWeakChanges, hidesNeighborFace, isBed, isBurning, isConduitFrame, isFertile, isFireSource, isFlammable, isLadder, isPortalFrame, isScaffolding, isSlimeBlock, isStickyBlock, isValidSpawn, makesOpenTrapdoorAboveClimbable, onBlockExploded, onBlockStateChange, onCaughtFire, onNeighborChange, onTreeGrow, rotate, setBedOccupied, shouldCheckWeakPower, shouldDisplayFluidOverlay, supportsExternalFaceHiding
  • Field Details

    • FACING

      public static final net.minecraft.world.level.block.state.properties.DirectionProperty FACING
    • MULTIPOS

      public static final net.minecraft.world.level.block.state.properties.EnumProperty<MultiBlockPosition> MULTIPOS
    • width

      protected int width
    • length

      protected int length
    • height

      protected double height
    • jsonOffset

      protected boolean jsonOffset
      Mostly needed for large JSON models since they can't be shifted more than 1 block to the side. Effects assignment of blockstates
  • Constructor Details

    • MultiBlock

      protected MultiBlock(net.minecraft.world.level.block.state.BlockBehaviour.Properties builder, int width, double height, int length)
      Initializes a multi-block.
      Parameters:
      builder - The material that the multi-block is made of.
      width - The width of the multi-block.
      height - The height of the multi-block.
      length - The length of the multi-block.
    • MultiBlock

      protected MultiBlock(net.minecraft.world.level.block.state.BlockBehaviour.Properties builder, int width, double height, int length, boolean jsonOffset)
      Initializes a multi-block.
      Parameters:
      builder - The material that the multi-block is made of.
      width - The width of the multi-block.
      height - The height of the multi-block.
      length - The length of the multi-block.
      jsonOffset - Whether this block needs to be offset for a JSON model to render properly
  • Method Details

    • createBlockStateDefinition

      protected void createBlockStateDefinition(net.minecraft.world.level.block.state.StateDefinition.Builder<net.minecraft.world.level.block.Block,net.minecraft.world.level.block.state.BlockState> builder)
      Overrides:
      createBlockStateDefinition in class net.minecraft.world.level.block.Block
    • getShape

      public net.minecraft.world.phys.shapes.VoxelShape getShape(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.BlockGetter worldIn, net.minecraft.core.BlockPos pos, net.minecraft.world.phys.shapes.CollisionContext context)
      Overrides:
      getShape in class net.minecraft.world.level.block.state.BlockBehaviour
    • rotate

      public net.minecraft.world.level.block.state.BlockState rotate(net.minecraft.world.level.block.state.BlockState p_185499_1_, net.minecraft.world.level.block.Rotation p_185499_2_)
      Overrides:
      rotate in class net.minecraft.world.level.block.state.BlockBehaviour
    • getMultiBlockBoundingBox

      protected net.minecraft.world.phys.AABB getMultiBlockBoundingBox(net.minecraft.world.level.BlockGetter worldIn, net.minecraft.core.BlockPos pos, MultiBlockPosition multiPos, net.minecraft.core.Direction facing)
      Gets the bounding box for the multi-block.
      Parameters:
      worldIn - The world that the multi-block is in.
      pos - The position of the block to get a bounding box for.
      multiPos - The position of the block relative to the base of the multi-block
      facing - The direction that the multi-block is facing.
      Returns:
      The bounding box for the multi-block.
    • newBlockEntity

      public net.minecraft.world.level.block.entity.BlockEntity newBlockEntity(net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state)
    • onRemove

      public void onRemove(net.minecraft.world.level.block.state.BlockState p_196243_1_, net.minecraft.world.level.Level p_196243_2_, net.minecraft.core.BlockPos p_196243_3_, net.minecraft.world.level.block.state.BlockState p_196243_4_, boolean p_196243_5_)
      Overrides:
      onRemove in class net.minecraft.world.level.block.state.BlockBehaviour
    • getTileEntity

      protected abstract Optional<net.minecraft.world.level.block.entity.BlockEntity> getTileEntity(net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state)
    • onDestroyedByPlayer

      public boolean onDestroyedByPlayer(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos, net.minecraft.world.entity.player.Player player, boolean willHarvest, net.minecraft.world.level.material.FluidState fluid)
    • getDrops

      public List<net.minecraft.world.item.ItemStack> getDrops(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.storage.loot.LootParams.Builder context)
      Overrides:
      getDrops in class net.minecraft.world.level.block.state.BlockBehaviour
    • findBaseBlock

      public net.minecraft.core.BlockPos findBaseBlock(net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos.MutableBlockPos pos, net.minecraft.world.level.block.state.BlockState state)
      Finds the base of the multi-block.
      Parameters:
      world - The world the multi-block is in.
      pos - The position of the block to get a base from.
      state - The block to get a base from.
      Returns:
      The position of the base of the multi-block.
    • getWidth

      public int getWidth()
    • getLength

      public int getLength()
    • getHeight

      public double getHeight()
    • getJsonOffset

      public boolean getJsonOffset()
    • getLightEmission

      public int getLightEmission(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos)