Package com.pixelmonmod.pixelmon.blocks
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.neoforged.neoforge.common.extensions.IBlockExtension
- 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.BlockStatePairKeyNested 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>, net.minecraft.world.level.block.state.BlockBehaviour.StatePredicate -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final net.minecraft.world.level.block.state.properties.DirectionPropertyprotected doubleprotected booleanMostly needed for large JSON models since they can't be shifted more than 1 block to the side.protected intstatic final net.minecraft.world.level.block.state.properties.EnumProperty<MultiBlockPosition> protected intFields inherited from class net.minecraft.world.level.block.Block
BLOCK_STATE_REGISTRY, CODEC, 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_DROPSFields inherited from class net.minecraft.world.level.block.state.BlockBehaviour
drops, dynamicShape, explosionResistance, friction, hasCollision, isRandomlyTicking, jumpFactor, properties, requiredFeatures, soundType, speedFactor, UPDATE_SHAPE_ORDERFields inherited from interface net.minecraft.world.flag.FeatureElement
FILTERED_REGISTRIES -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedMultiBlock(net.minecraft.world.level.block.state.BlockBehaviour.Properties builder, int width, double height, int length) Initializes a multi-block.protectedMultiBlock(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 TypeMethodDescriptionprotected voidcreateBlockStateDefinition(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.BlockPosfindBaseBlock(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) doublebooleanintintgetLightEmission(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos) protected net.minecraft.world.phys.AABBgetMultiBlockBoundingBox(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.VoxelShapegetShape(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) intgetWidth()net.minecraft.world.level.block.entity.BlockEntitynewBlockEntity(net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state) booleanonDestroyedByPlayer(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) voidonRemove(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.BlockStaterotate(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
codec, createTickerHelper, getMenuProvider, getRenderShape, triggerEventMethods inherited from class net.minecraft.world.level.block.Block
animateTick, appendHoverText, asBlock, asItem, box, builtInRegistryHolder, byItem, canSupportCenter, canSupportRigidBlock, defaultBlockState, destroy, dropFromExplosion, dropResources, dropResources, dropResources, fallOn, getCloneItemStack, getDescriptionId, getDrops, getDrops, getExplosionResistance, getFriction, getId, getJumpFactor, getName, getShapeForEachState, getSpeedFactor, getStateDefinition, getStateForPlacement, handlePrecipitation, hasDynamicShape, initializeClient, isExceptionForConnection, isFaceFull, isPossibleToRespawnInThis, isShapeFullBlock, playerDestroy, playerWillDestroy, popExperience, popResource, popResourceFromFace, pushEntitiesUp, registerDefaultState, setPlacedBy, shouldRenderFace, spawnDestroyParticles, stateById, stepOn, toString, tryDropExperience, updateEntityAfterFallOn, updateFromNeighbourShapes, updateOrDestroy, updateOrDestroy, wasExploded, withPropertiesOfMethods 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, getSoundType, getVisualShape, hasAnalogOutputSignal, isAir, isCollisionShapeFullBlock, isOcclusionShapeFullBlock, isPathfindable, isRandomlyTicking, isSignalSource, mirror, neighborChanged, onExplosionHit, onPlace, onProjectileHit, propagatesSkylightDown, properties, propertiesCodec, randomTick, requiredFeatures, simpleCodec, skipRendering, spawnAfterBreak, tick, updateIndirectNeighbourShapes, updateShape, useItemOn, useShapeForLightOcclusion, useWithoutItemMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface net.minecraft.world.level.block.EntityBlock
getListener, getTickerMethods inherited from interface net.minecraft.world.flag.FeatureElement
isEnabledMethods inherited from interface net.neoforged.neoforge.common.extensions.IBlockExtension
addLandingEffects, addRunningEffects, canBeHydrated, canConnectRedstone, canDropFromExplosion, canEntityDestroy, canHarvestBlock, canStickTo, canSustainPlant, collisionExtendsVertically, getAdjacentBlockPathType, getAppearance, getBeaconColorMultiplier, getBedDirection, getBlockPathType, getBubbleColumnDirection, getCloneItemStack, getEnchantPowerBonus, getExpDrop, getExplosionResistance, getFireSpreadSpeed, getFlammability, getFriction, getMapColor, getPistonPushReaction, getRespawnPosition, getSoundType, getStateAtViewpoint, getToolModifiedState, getWeakChanges, hasDynamicLightEmission, hidesNeighborFace, isBed, isBurning, isConduitFrame, isEmpty, isFertile, isFireSource, isFlammable, isLadder, isPortalFrame, isScaffolding, isSlimeBlock, isStickyBlock, makesOpenTrapdoorAboveClimbable, onBlockExploded, onBlockStateChange, onCaughtFire, onDestroyedByPushReaction, onNeighborChange, onTreeGrow, rotate, setBedOccupied, shouldCheckWeakPower, shouldDisplayFluidOverlay, shouldHideAdjacentFluidFace, 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 jsonOffsetMostly 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:
createBlockStateDefinitionin classnet.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:
getShapein classnet.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:
rotatein classnet.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-blockfacing- 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:
onRemovein classnet.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:
getDropsin classnet.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)
-