java.lang.Object
net.minecraft.world.level.block.state.BlockBehaviour
net.minecraft.world.level.block.Block
petrolpark.mc.library.core.world.block.multiPart.MultiPartBlock<AssemblagePart>
petrolpark.mc.library.compat.create.core.world.block.CreateMultiPartBlock<AssemblagePart>
petrolpark.mc.library.compat.create.core.world.block.composite.MultiPartCompositeKineticBlock<AssemblagePart>
petrolpark.mc.petrolsparts.content.kinetics.assemblage.AssemblageBlock
All Implemented Interfaces:
com.simibubi.create.api.contraption.transformable.TransformableBlock, com.simibubi.create.api.schematic.requirement.SpecialBlockItemRequirement, com.simibubi.create.content.decoration.encasing.EncasableBlock, com.simibubi.create.content.equipment.wrench.IWrenchable, com.simibubi.create.content.kinetics.base.IRotate, com.simibubi.create.foundation.block.IBE<AssemblageBlockEntity>, com.simibubi.create.foundation.block.ProperWaterloggedBlock, net.minecraft.world.flag.FeatureElement, net.minecraft.world.level.block.BucketPickup, net.minecraft.world.level.block.EntityBlock, net.minecraft.world.level.block.LiquidBlockContainer, net.minecraft.world.level.block.SimpleWaterloggedBlock, net.minecraft.world.level.ItemLike, net.neoforged.neoforge.common.extensions.IBlockExtension, net.neoforged.neoforge.common.extensions.IBucketPickupExtension, petrolpark.mc.library.compat.create.core.world.block.composite.ICompositeKineticBlock, petrolpark.mc.library.compat.create.core.world.block.IReplaceableBlock, IAssemblageBlock, IFaceAlignedCogWheelBlock, IStateDependentCogWheelBlock
Direct Known Subclasses:
SeparateShaftHalvesAssemblageBlock, SingleShaftAssemblageBlock

public abstract sealed class AssemblageBlock extends petrolpark.mc.library.compat.create.core.world.block.composite.MultiPartCompositeKineticBlock<AssemblagePart> implements com.simibubi.create.foundation.block.IBE<AssemblageBlockEntity>, com.simibubi.create.foundation.block.ProperWaterloggedBlock, IAssemblageBlock, com.simibubi.create.content.decoration.encasing.EncasableBlock, petrolpark.mc.library.compat.create.core.world.block.IReplaceableBlock permits SeparateShaftHalvesAssemblageBlock, SingleShaftAssemblageBlock
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static interface 
     

    Nested classes/interfaces inherited from class petrolpark.mc.library.compat.create.core.world.block.CreateMultiPartBlock

    petrolpark.mc.library.compat.create.core.world.block.CreateMultiPartBlock.ICreatePart

    Nested classes/interfaces inherited from class petrolpark.mc.library.core.world.block.multiPart.MultiPartBlock

    petrolpark.mc.library.core.world.block.multiPart.MultiPartBlock.Clipper<PART extends petrolpark.mc.library.core.world.block.multiPart.MultiPartBlock.IPart>, petrolpark.mc.library.core.world.block.multiPart.MultiPartBlock.IPart

    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>, net.minecraft.world.level.block.state.BlockBehaviour.StatePredicate

    Nested classes/interfaces inherited from interface com.simibubi.create.content.kinetics.base.IRotate

    com.simibubi.create.content.kinetics.base.IRotate.SpeedLevel, com.simibubi.create.content.kinetics.base.IRotate.StressImpact
  • Field Summary

    Fields inherited from class petrolpark.mc.library.core.world.block.multiPart.MultiPartBlock

    clipperCache, shapeCache

    Fields 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_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

    Fields inherited from interface petrolpark.mc.petrolsparts.content.kinetics.assemblage.IAssemblageBlock

    AXIS, BOTTOM_COG, BOTTOM_SHAFT_HALF, COG_PROPERTIES, MIDDLE_COG, SHAFT_HALF_PROPERTIES, TOP_COG, TOP_SHAFT_HALF

    Fields inherited from interface com.simibubi.create.foundation.block.ProperWaterloggedBlock

    WATERLOGGED
  • Constructor Summary

    Constructors
    Constructor
    Description
    AssemblageBlock(Supplier<AssemblageSet> set, net.minecraft.world.level.block.state.BlockBehaviour.Properties properties)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected boolean
    canBeReplaced(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.item.context.BlockPlaceContext useContext)
     
    boolean
    canBeReplaced(net.minecraft.world.level.Level level, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState existingState, net.minecraft.world.level.block.state.BlockState newState, net.minecraft.world.entity.player.Player player)
     
    boolean
    canDiagonalBevelCogWheelSurvive(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.LevelReader level, net.minecraft.core.BlockPos pos)
     
    static final <B extends AssemblageBlock>
    com.tterrag.registrate.util.nullness.NonNullFunction<net.minecraft.world.level.block.state.BlockBehaviour.Properties,B>
     
    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.world.level.block.entity.BlockEntityType<? extends AssemblageBlockEntity>
     
     
    protected net.minecraft.world.level.material.FluidState
    getFluidState(net.minecraft.world.level.block.state.BlockState state)
     
    getParts(net.minecraft.world.level.block.state.BlockState state)
     
    net.minecraft.world.level.block.state.BlockState
    getReplacedState(net.minecraft.world.level.Level level, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState existingState, net.minecraft.world.level.block.state.BlockState newState, net.minecraft.world.entity.player.Player player)
     
    net.minecraft.core.Direction.Axis
    getRotationAxis(net.minecraft.world.level.block.state.BlockState state)
     
     
    net.minecraft.world.level.block.state.BlockState
    getStateForPlacement(net.minecraft.world.item.context.BlockPlaceContext context)
     
    getTargetedKineticPart(AssemblageBlockEntity be, net.minecraft.world.entity.player.Player player)
     
    boolean
    hasShaftTowards(net.minecraft.world.level.LevelReader world, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state, net.minecraft.core.Direction face)
     
    protected net.minecraft.world.level.block.state.BlockState
    mirror(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.block.Mirror mirror)
     
    void
    onPlace(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 oldState, boolean movedByPiston)
     
    protected net.minecraft.world.level.block.state.BlockState
    rotate(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.block.Rotation rotation)
     
    protected net.minecraft.world.level.block.state.BlockState
    updateShape(net.minecraft.world.level.block.state.BlockState state, net.minecraft.core.Direction direction, net.minecraft.world.level.block.state.BlockState neighborState, net.minecraft.world.level.LevelAccessor level, net.minecraft.core.BlockPos pos, net.minecraft.core.BlockPos neighborPos)
     
    protected net.minecraft.world.ItemInteractionResult
    useItemOn(net.minecraft.world.item.ItemStack stack, net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.Level level, net.minecraft.core.BlockPos pos, net.minecraft.world.entity.player.Player player, net.minecraft.world.InteractionHand hand, net.minecraft.world.phys.BlockHitResult hitResult)
     
    net.minecraft.world.level.block.state.BlockState
    withoutPart(net.minecraft.world.level.block.state.BlockState state, AssemblagePart part)
     

    Methods inherited from class petrolpark.mc.library.compat.create.core.world.block.composite.MultiPartCompositeKineticBlock

    onRemove, setPlacedBy, updateIndirectNeighbourShapes

    Methods inherited from class petrolpark.mc.library.compat.create.core.world.block.CreateMultiPartBlock

    getRequiredItems, onSneakWrenched

    Methods inherited from class petrolpark.mc.library.core.world.block.multiPart.MultiPartBlock

    canSurviveWithout, dropPartResources, getBlockSupportShape, getCloneItemStack, getCollisionShape, getDrops, getFullShape, getPartDrops, getPartDrops, getRenderShape, getShape, getTargetedPart, getVisualShape, onDestroyedByPlayer

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

    animateTick, appendHoverText, asBlock, asItem, box, builtInRegistryHolder, byItem, canSupportCenter, canSupportRigidBlock, codec, defaultBlockState, destroy, dropFromExplosion, dropResources, dropResources, dropResources, fallOn, getCloneItemStack, getDrops, getDrops, getExplosionResistance, getFriction, getId, getJumpFactor, getName, getShapeForEachState, getSpeedFactor, getStateDefinition, handlePrecipitation, hasDynamicShape, initializeClient, isExceptionForConnection, isFaceFull, isPossibleToRespawnInThis, isShapeFullBlock, playerDestroy, playerWillDestroy, popExperience, popResource, popResourceFromFace, pushEntitiesUp, registerDefaultState, 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, canSurvive, defaultDestroyTime, defaultMapColor, entityInside, getAnalogOutputSignal, getDestroyProgress, getDirectSignal, getInteractionShape, getLightBlock, getLootTable, getMaxHorizontalOffset, getMaxVerticalOffset, getMenuProvider, getOcclusionShape, getSeed, getShadeBrightness, getSignal, getSoundType, hasAnalogOutputSignal, isAir, isCollisionShapeFullBlock, isOcclusionShapeFullBlock, isPathfindable, isRandomlyTicking, isSignalSource, neighborChanged, onExplosionHit, onProjectileHit, propagatesSkylightDown, properties, propertiesCodec, randomTick, requiredFeatures, simpleCodec, skipRendering, spawnAfterBreak, tick, triggerEvent, useShapeForLightOcclusion, useWithoutItem

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    Methods inherited from interface com.simibubi.create.content.decoration.encasing.EncasableBlock

    playEncaseSound, tryEncase

    Methods inherited from interface net.minecraft.world.level.block.EntityBlock

    getListener

    Methods inherited from interface net.minecraft.world.flag.FeatureElement

    isEnabled

    Methods inherited from interface petrolpark.mc.petrolsparts.content.kinetics.assemblage.IAssemblageBlock

    getCogType, getRotatedBlockState, hasBottomShaft, hasTopShaft, transform

    Methods inherited from interface com.simibubi.create.foundation.block.IBE

    getBlockEntity, getBlockEntityOptional, getTicker, newBlockEntity, onBlockEntityUse, onBlockEntityUseItemOn, withBlockEntityDo

    Methods 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, getEnchantPowerBonus, getExpDrop, getExplosionResistance, getFireSpreadSpeed, getFlammability, getFriction, getLightEmission, getMapColor, getPistonPushReaction, getRespawnPosition, getSoundType, getStateAtViewpoint, getToolModifiedState, getWeakChanges, hasDynamicLightEmission, hidesNeighborFace, ignitedByLava, 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

    Methods inherited from interface net.neoforged.neoforge.common.extensions.IBucketPickupExtension

    getPickupSound

    Methods inherited from interface petrolpark.mc.library.compat.create.core.world.block.composite.ICompositeKineticBlock

    setPlacedBy, updateIndirectNeighbourShapes

    Methods inherited from interface com.simibubi.create.content.kinetics.base.IRotate

    getMinimumRequiredSpeedLevel, hideStressImpact, showCapacityWithAnnotation

    Methods inherited from interface com.simibubi.create.content.equipment.wrench.IWrenchable

    onSneakWrenched, onWrenched, updateAfterWrenched

    Methods inherited from interface com.simibubi.create.foundation.block.ProperWaterloggedBlock

    fluidState, updateWater, withWater

    Methods inherited from interface net.minecraft.world.level.block.SimpleWaterloggedBlock

    canPlaceLiquid, getPickupSound, pickupBlock, placeLiquid
  • Constructor Details

    • AssemblageBlock

      public AssemblageBlock(Supplier<AssemblageSet> set, net.minecraft.world.level.block.state.BlockBehaviour.Properties properties)
  • Method Details

    • create

      public static final <B extends AssemblageBlock> com.tterrag.registrate.util.nullness.NonNullFunction<net.minecraft.world.level.block.state.BlockBehaviour.Properties,B> create(Supplier<AssemblageSet> set, AssemblageBlock.Factory<B> factory)
    • 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
    • getSet

      public AssemblageSet getSet()
      Specified by:
      getSet in interface IAssemblageBlock
    • getFluidState

      protected net.minecraft.world.level.material.FluidState getFluidState(net.minecraft.world.level.block.state.BlockState state)
      Overrides:
      getFluidState in class net.minecraft.world.level.block.state.BlockBehaviour
    • getRotationAxis

      public net.minecraft.core.Direction.Axis getRotationAxis(net.minecraft.world.level.block.state.BlockState state)
      Specified by:
      getRotationAxis in interface com.simibubi.create.content.kinetics.base.IRotate
    • getParts

      public List<AssemblagePart> getParts(net.minecraft.world.level.block.state.BlockState state)
      Specified by:
      getParts in class petrolpark.mc.library.core.world.block.multiPart.MultiPartBlock<AssemblagePart>
    • withoutPart

      public net.minecraft.world.level.block.state.BlockState withoutPart(net.minecraft.world.level.block.state.BlockState state, AssemblagePart part)
      Specified by:
      withoutPart in class petrolpark.mc.library.core.world.block.multiPart.MultiPartBlock<AssemblagePart>
    • canBeReplaced

      protected boolean canBeReplaced(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.item.context.BlockPlaceContext useContext)
      Overrides:
      canBeReplaced in class net.minecraft.world.level.block.state.BlockBehaviour
    • getStateForPlacement

      public net.minecraft.world.level.block.state.BlockState getStateForPlacement(net.minecraft.world.item.context.BlockPlaceContext context)
      Overrides:
      getStateForPlacement in class net.minecraft.world.level.block.Block
    • getReplacedState

      public net.minecraft.world.level.block.state.BlockState getReplacedState(net.minecraft.world.level.Level level, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState existingState, net.minecraft.world.level.block.state.BlockState newState, net.minecraft.world.entity.player.Player player)
      Specified by:
      getReplacedState in interface petrolpark.mc.library.compat.create.core.world.block.IReplaceableBlock
    • canBeReplaced

      public boolean canBeReplaced(net.minecraft.world.level.Level level, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState existingState, net.minecraft.world.level.block.state.BlockState newState, net.minecraft.world.entity.player.Player player)
      Specified by:
      canBeReplaced in interface petrolpark.mc.library.compat.create.core.world.block.IReplaceableBlock
    • canDiagonalBevelCogWheelSurvive

      public boolean canDiagonalBevelCogWheelSurvive(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.LevelReader level, net.minecraft.core.BlockPos pos)
      Specified by:
      canDiagonalBevelCogWheelSurvive in interface IAssemblageBlock
    • onPlace

      public void onPlace(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 oldState, boolean movedByPiston)
      Specified by:
      onPlace in interface petrolpark.mc.library.compat.create.core.world.block.composite.ICompositeKineticBlock
      Overrides:
      onPlace in class petrolpark.mc.library.compat.create.core.world.block.composite.MultiPartCompositeKineticBlock<AssemblagePart>
    • useItemOn

      protected net.minecraft.world.ItemInteractionResult useItemOn(net.minecraft.world.item.ItemStack stack, net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.Level level, net.minecraft.core.BlockPos pos, net.minecraft.world.entity.player.Player player, net.minecraft.world.InteractionHand hand, net.minecraft.world.phys.BlockHitResult hitResult)
      Overrides:
      useItemOn in class net.minecraft.world.level.block.state.BlockBehaviour
    • updateShape

      protected net.minecraft.world.level.block.state.BlockState updateShape(net.minecraft.world.level.block.state.BlockState state, net.minecraft.core.Direction direction, net.minecraft.world.level.block.state.BlockState neighborState, net.minecraft.world.level.LevelAccessor level, net.minecraft.core.BlockPos pos, net.minecraft.core.BlockPos neighborPos)
      Overrides:
      updateShape in class net.minecraft.world.level.block.state.BlockBehaviour
    • getDescriptionId

      public String getDescriptionId()
      Overrides:
      getDescriptionId in class net.minecraft.world.level.block.Block
    • getTargetedKineticPart

      public AssemblageBlockEntity.AssemblageBlockEntityPart getTargetedKineticPart(AssemblageBlockEntity be, net.minecraft.world.entity.player.Player player)
      Specified by:
      getTargetedKineticPart in interface IAssemblageBlock
    • hasShaftTowards

      public boolean hasShaftTowards(net.minecraft.world.level.LevelReader world, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state, net.minecraft.core.Direction face)
      Specified by:
      hasShaftTowards in interface petrolpark.mc.library.compat.create.core.world.block.composite.ICompositeKineticBlock
      Specified by:
      hasShaftTowards in interface com.simibubi.create.content.kinetics.base.IRotate
    • rotate

      protected net.minecraft.world.level.block.state.BlockState rotate(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.block.Rotation rotation)
      Overrides:
      rotate in class net.minecraft.world.level.block.state.BlockBehaviour
    • mirror

      protected net.minecraft.world.level.block.state.BlockState mirror(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.block.Mirror mirror)
      Overrides:
      mirror in class net.minecraft.world.level.block.state.BlockBehaviour
    • getBlockEntityClass

      public Class<AssemblageBlockEntity> getBlockEntityClass()
      Specified by:
      getBlockEntityClass in interface com.simibubi.create.foundation.block.IBE<AssemblageBlockEntity>
    • getBlockEntityType

      public net.minecraft.world.level.block.entity.BlockEntityType<? extends AssemblageBlockEntity> getBlockEntityType()
      Specified by:
      getBlockEntityType in interface com.simibubi.create.foundation.block.IBE<AssemblageBlockEntity>