minecraft-source/src/net/minecraft/world/level/block/RotatedPillarBlock.java

58 lines
2.3 KiB
Java

package net.minecraft.world.level.block;
import net.minecraft.world.level.block.state.AbstractStateHolder;
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
import net.minecraft.world.item.BlockPlaceContext;
import net.minecraft.world.level.block.state.StateDefinition;
import net.minecraft.world.level.block.state.properties.Property;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.core.Direction;
import net.minecraft.world.level.block.state.properties.EnumProperty;
public class RotatedPillarBlock extends Block {
public static final EnumProperty<Direction.Axis> AXIS;
public RotatedPillarBlock(final Properties c) {
super(c);
this.registerDefaultState(((AbstractStateHolder<O, BlockState>)this.defaultBlockState()).<Direction.Axis, Direction.Axis>setValue(RotatedPillarBlock.AXIS, Direction.Axis.Y));
}
@Override
public BlockState rotate(final BlockState byg, final Rotation btr) {
switch (btr) {
case COUNTERCLOCKWISE_90:
case CLOCKWISE_90: {
switch (byg.<Direction.Axis>getValue(RotatedPillarBlock.AXIS)) {
case X: {
return ((AbstractStateHolder<O, BlockState>)byg).<Direction.Axis, Direction.Axis>setValue(RotatedPillarBlock.AXIS, Direction.Axis.Z);
}
case Z: {
return ((AbstractStateHolder<O, BlockState>)byg).<Direction.Axis, Direction.Axis>setValue(RotatedPillarBlock.AXIS, Direction.Axis.X);
}
default: {
return byg;
}
}
break;
}
default: {
return byg;
}
}
}
@Override
protected void createBlockStateDefinition(final StateDefinition.Builder<Block, BlockState> a) {
a.add(RotatedPillarBlock.AXIS);
}
@Override
public BlockState getStateForPlacement(final BlockPlaceContext bcn) {
return ((AbstractStateHolder<O, BlockState>)this.defaultBlockState()).<Direction.Axis, Direction.Axis>setValue(RotatedPillarBlock.AXIS, bcn.getClickedFace().getAxis());
}
static {
AXIS = BlockStateProperties.AXIS;
}
}