Class BlockSlate

java.lang.Object
net.minecraft.world.level.block.state.BlockBehaviour
net.minecraft.world.level.block.Block
at.petrak.hexcasting.api.block.circle.BlockCircleComponent
at.petrak.hexcasting.common.blocks.circles.BlockSlate
All Implemented Interfaces:
ICircleComponent, 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

public class BlockSlate extends BlockCircleComponent implements net.minecraft.world.level.block.EntityBlock, net.minecraft.world.level.block.SimpleWaterloggedBlock
  • 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 at.petrak.hexcasting.api.casting.circles.ICircleComponent

    ICircleComponent.ControlFlow
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final net.minecraft.world.phys.shapes.VoxelShape
     
    static final net.minecraft.world.phys.shapes.VoxelShape
     
    static final net.minecraft.world.phys.shapes.VoxelShape
     
    static final net.minecraft.world.phys.shapes.VoxelShape
     
    static final net.minecraft.world.phys.shapes.VoxelShape
     
    static final net.minecraft.world.phys.shapes.VoxelShape
     
    static final net.minecraft.world.level.block.state.properties.EnumProperty<net.minecraft.world.level.block.state.properties.AttachFace>
     
    static final net.minecraft.world.level.block.state.properties.DirectionProperty
     
    static final double
     
    static final net.minecraft.world.level.block.state.properties.BooleanProperty
     

    Fields inherited from class at.petrak.hexcasting.api.block.circle.BlockCircleComponent

    ENERGIZED

    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
    BlockSlate(net.minecraft.world.level.block.state.BlockBehaviour.Properties p_53182_)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    acceptControlFlow(at.petrak.hexcasting.api.casting.eval.vm.CastingImage imageIn, CircleCastEnv env, net.minecraft.core.Direction enterDir, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState bs, net.minecraft.server.level.ServerLevel world)
    The heart of the interface! Functionally modify the casting environment.
    static boolean
    canAttach(net.minecraft.world.level.LevelReader pReader, net.minecraft.core.BlockPos pPos, net.minecraft.core.Direction pDirection)
     
    boolean
    canEnterFromDirection(net.minecraft.core.Direction enterDir, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState bs, net.minecraft.server.level.ServerLevel world)
    Can this component get transferred to from a block coming in from that direction, with the given normal?
    boolean
    canSurvive(net.minecraft.world.level.block.state.BlockState pState, net.minecraft.world.level.LevelReader pLevel, net.minecraft.core.BlockPos pPos)
     
    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.item.ItemStack
    getCloneItemStack(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.phys.HitResult target, net.minecraft.world.level.BlockGetter level, net.minecraft.core.BlockPos pos, net.minecraft.world.entity.player.Player player)
     
    protected static net.minecraft.core.Direction
    getConnectedDirection(net.minecraft.world.level.block.state.BlockState pState)
     
    net.minecraft.world.level.material.FluidState
    getFluidState(net.minecraft.world.level.block.state.BlockState state)
     
    net.minecraft.world.phys.shapes.VoxelShape
    getShape(net.minecraft.world.level.block.state.BlockState pState, net.minecraft.world.level.BlockGetter pLevel, net.minecraft.core.BlockPos pPos, net.minecraft.world.phys.shapes.CollisionContext pContext)
     
    @Nullable net.minecraft.world.level.block.state.BlockState
    getStateForPlacement(net.minecraft.world.item.context.BlockPlaceContext pContext)
     
    net.minecraft.world.level.block.state.BlockState
    mirror(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.block.Mirror mirror)
     
    @Nullable net.minecraft.world.level.block.entity.BlockEntity
    newBlockEntity(net.minecraft.core.BlockPos pPos, net.minecraft.world.level.block.state.BlockState pState)
     
    net.minecraft.core.Direction
    normalDir(net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState bs, net.minecraft.world.level.Level world, int recursionLeft)
     
    float
    particleHeight(net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState bs, net.minecraft.world.level.Level world)
    How many blocks in the BlockCircleComponent.normalDir(BlockPos, BlockState, Level) from the center particles should be spawned in
    EnumSet<net.minecraft.core.Direction>
    possibleExitDirections(net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState bs, net.minecraft.world.level.Level world)
    This determines the directions the control flow can exit from.
    boolean
    propagatesSkylightDown(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.BlockGetter reader, net.minecraft.core.BlockPos pos)
     
    net.minecraft.world.level.block.state.BlockState
    rotate(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.block.Rotation rot)
     
    net.minecraft.world.level.block.state.BlockState
    updateShape(net.minecraft.world.level.block.state.BlockState pState, net.minecraft.core.Direction pFacing, net.minecraft.world.level.block.state.BlockState pFacingState, net.minecraft.world.level.LevelAccessor pLevel, net.minecraft.core.BlockPos pCurrentPos, net.minecraft.core.BlockPos pFacingPos)
     

    Methods 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, getSoundType, getSpeedFactor, getStateDefinition, handlePrecipitation, hasDynamicShape, isExceptionForConnection, isFaceFull, isPossibleToRespawnInThis, isRandomlyTicking, isShapeFullBlock, playerDestroy, playerWillDestroy, popExperience, popResource, popResourceFromFace, 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, defaultDestroyTime, defaultMapColor, entityInside, getBlockSupportShape, getCollisionShape, getDestroyProgress, getDirectSignal, getDrops, getInteractionShape, getLightBlock, getLootTable, getMaxHorizontalOffset, getMaxVerticalOffset, getMenuProvider, getOcclusionShape, getRenderShape, getSeed, getShadeBrightness, getSignal, getVisualShape, isCollisionShapeFullBlock, isOcclusionShapeFullBlock, isPathfindable, isSignalSource, neighborChanged, onPlace, onProjectileHit, onRemove, randomTick, requiredFeatures, skipRendering, spawnAfterBreak, tick, triggerEvent, updateIndirectNeighbourShapes, 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 at.petrak.hexcasting.api.casting.circles.ICircleComponent

    exitPositionFromDirection, fakeThrowMishap

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

    canPlaceLiquid, getPickupSound, pickupBlock, placeLiquid
  • Field Details

    • WATERLOGGED

      public static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED
    • FACING

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

      public static final net.minecraft.world.level.block.state.properties.EnumProperty<net.minecraft.world.level.block.state.properties.AttachFace> ATTACH_FACE
    • THICKNESS

      public static final double THICKNESS
      See Also:
    • AABB_FLOOR

      public static final net.minecraft.world.phys.shapes.VoxelShape AABB_FLOOR
    • AABB_CEILING

      public static final net.minecraft.world.phys.shapes.VoxelShape AABB_CEILING
    • AABB_EAST_WALL

      public static final net.minecraft.world.phys.shapes.VoxelShape AABB_EAST_WALL
    • AABB_WEST_WALL

      public static final net.minecraft.world.phys.shapes.VoxelShape AABB_WEST_WALL
    • AABB_SOUTH_WALL

      public static final net.minecraft.world.phys.shapes.VoxelShape AABB_SOUTH_WALL
    • AABB_NORTH_WALL

      public static final net.minecraft.world.phys.shapes.VoxelShape AABB_NORTH_WALL
  • Constructor Details

    • BlockSlate

      public BlockSlate(net.minecraft.world.level.block.state.BlockBehaviour.Properties p_53182_)
  • Method Details

    • propagatesSkylightDown

      public boolean propagatesSkylightDown(net.minecraft.world.level.block.state.BlockState state, @Nonnull net.minecraft.world.level.BlockGetter reader, @Nonnull net.minecraft.core.BlockPos pos)
      Overrides:
      propagatesSkylightDown in class net.minecraft.world.level.block.Block
    • getFluidState

      @Nonnull public 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
    • acceptControlFlow

      public ICircleComponent.ControlFlow acceptControlFlow(at.petrak.hexcasting.api.casting.eval.vm.CastingImage imageIn, CircleCastEnv env, net.minecraft.core.Direction enterDir, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState bs, net.minecraft.server.level.ServerLevel world)
      Description copied from interface: ICircleComponent
      The heart of the interface! Functionally modify the casting environment.

      With the new update you can have the side effects happen inline. In fact, you have to have the side effects happen inline.

      Also, return a list of directions that the control flow can exit this block in. The circle environment will mishap if not exactly 1 of the returned directions can be accepted from.

      Specified by:
      acceptControlFlow in interface ICircleComponent
    • canEnterFromDirection

      public boolean canEnterFromDirection(net.minecraft.core.Direction enterDir, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState bs, net.minecraft.server.level.ServerLevel world)
      Description copied from interface: ICircleComponent
      Can this component get transferred to from a block coming in from that direction, with the given normal?
      Specified by:
      canEnterFromDirection in interface ICircleComponent
    • possibleExitDirections

      public EnumSet<net.minecraft.core.Direction> possibleExitDirections(net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState bs, net.minecraft.world.level.Level world)
      Description copied from interface: ICircleComponent
      This determines the directions the control flow can exit from. It's called at the beginning of execution to see if the circle actually forms a loop.

      For most blocks, this should be the same as returned from ICircleComponent.acceptControlFlow(at.petrak.hexcasting.api.casting.eval.vm.CastingImage, at.petrak.hexcasting.api.casting.eval.env.CircleCastEnv, net.minecraft.core.Direction, net.minecraft.core.BlockPos, net.minecraft.world.level.block.state.BlockState, net.minecraft.server.level.ServerLevel) Things like directrices might return otherwise. Whatever is returned when controlling flow must be a subset of this set.

      Specified by:
      possibleExitDirections in interface ICircleComponent
    • getCloneItemStack

      public net.minecraft.world.item.ItemStack getCloneItemStack(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.phys.HitResult target, net.minecraft.world.level.BlockGetter level, net.minecraft.core.BlockPos pos, net.minecraft.world.entity.player.Player player)
    • normalDir

      public net.minecraft.core.Direction normalDir(net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState bs, net.minecraft.world.level.Level world, int recursionLeft)
      Specified by:
      normalDir in class BlockCircleComponent
    • particleHeight

      public float particleHeight(net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState bs, net.minecraft.world.level.Level world)
      Description copied from class: BlockCircleComponent
      How many blocks in the BlockCircleComponent.normalDir(BlockPos, BlockState, Level) from the center particles should be spawned in
      Specified by:
      particleHeight in class BlockCircleComponent
    • newBlockEntity

      @Nullable public @Nullable net.minecraft.world.level.block.entity.BlockEntity newBlockEntity(net.minecraft.core.BlockPos pPos, net.minecraft.world.level.block.state.BlockState pState)
      Specified by:
      newBlockEntity in interface net.minecraft.world.level.block.EntityBlock
    • getShape

      public net.minecraft.world.phys.shapes.VoxelShape getShape(net.minecraft.world.level.block.state.BlockState pState, net.minecraft.world.level.BlockGetter pLevel, net.minecraft.core.BlockPos pPos, net.minecraft.world.phys.shapes.CollisionContext pContext)
      Overrides:
      getShape in class net.minecraft.world.level.block.state.BlockBehaviour
    • 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 BlockCircleComponent
    • getStateForPlacement

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

      public boolean canSurvive(net.minecraft.world.level.block.state.BlockState pState, net.minecraft.world.level.LevelReader pLevel, net.minecraft.core.BlockPos pPos)
      Overrides:
      canSurvive in class net.minecraft.world.level.block.state.BlockBehaviour
    • updateShape

      public net.minecraft.world.level.block.state.BlockState updateShape(net.minecraft.world.level.block.state.BlockState pState, net.minecraft.core.Direction pFacing, net.minecraft.world.level.block.state.BlockState pFacingState, net.minecraft.world.level.LevelAccessor pLevel, net.minecraft.core.BlockPos pCurrentPos, net.minecraft.core.BlockPos pFacingPos)
      Overrides:
      updateShape in class net.minecraft.world.level.block.state.BlockBehaviour
    • canAttach

      public static boolean canAttach(net.minecraft.world.level.LevelReader pReader, net.minecraft.core.BlockPos pPos, net.minecraft.core.Direction pDirection)
    • getConnectedDirection

      protected static net.minecraft.core.Direction getConnectedDirection(net.minecraft.world.level.block.state.BlockState pState)
    • rotate

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

      public 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