379 lines
21 KiB
Java
379 lines
21 KiB
Java
package com.dairymoose.modernlife.blocks;
|
|
|
|
import java.util.stream.Stream;
|
|
import javax.annotation.Nullable;
|
|
import net.minecraft.core.BlockPos;
|
|
import net.minecraft.core.Direction;
|
|
import net.minecraft.util.StringRepresentable;
|
|
import net.minecraft.world.InteractionHand;
|
|
import net.minecraft.world.InteractionResult;
|
|
import net.minecraft.world.entity.player.Player;
|
|
import net.minecraft.world.item.context.BlockPlaceContext;
|
|
import net.minecraft.world.level.BlockGetter;
|
|
import net.minecraft.world.level.Level;
|
|
import net.minecraft.world.level.LevelAccessor;
|
|
import net.minecraft.world.level.block.Block;
|
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
|
import net.minecraft.world.level.block.state.BlockState;
|
|
import net.minecraft.world.level.block.state.StateDefinition;
|
|
import net.minecraft.world.level.block.state.properties.BooleanProperty;
|
|
import net.minecraft.world.level.block.state.properties.EnumProperty;
|
|
import net.minecraft.world.level.block.state.properties.Property;
|
|
import net.minecraft.world.phys.BlockHitResult;
|
|
import net.minecraft.world.phys.shapes.BooleanOp;
|
|
import net.minecraft.world.phys.shapes.CollisionContext;
|
|
import net.minecraft.world.phys.shapes.Shapes;
|
|
import net.minecraft.world.phys.shapes.VoxelShape;
|
|
|
|
/* loaded from: outputsrg.jar:com/dairymoose/modernlife/blocks/CatwalkBlock.class */
|
|
public class CatwalkBlock extends Block {
|
|
protected static final VoxelShape SHAPE_WEST_LONG_WALL = (VoxelShape) Stream.of(Block.box(0.8d, 1.0d, 0.0d, 2.4d, 16.0d, 16.0d)).reduce((v1, v2) -> {
|
|
return Shapes.join(v1, v2, BooleanOp.OR);
|
|
}).get();
|
|
protected static final VoxelShape SHAPE_EAST_LONG_WALL = (VoxelShape) Stream.of(Block.box(13.6d, 1.0d, 0.0d, 15.2d, 16.0d, 16.0d)).reduce((v1, v2) -> {
|
|
return Shapes.join(v1, v2, BooleanOp.OR);
|
|
}).get();
|
|
protected static final VoxelShape SHAPE_NORTH_LONG_WALL = (VoxelShape) Stream.of(Block.box(0.0d, 1.0d, 0.8d, 16.0d, 16.0d, 2.4d)).reduce((v1, v2) -> {
|
|
return Shapes.join(v1, v2, BooleanOp.OR);
|
|
}).get();
|
|
protected static final VoxelShape SHAPE_SOUTH_LONG_WALL = (VoxelShape) Stream.of(Block.box(0.0d, 1.0d, 13.6d, 16.0d, 16.0d, 15.2d)).reduce((v1, v2) -> {
|
|
return Shapes.join(v1, v2, BooleanOp.OR);
|
|
}).get();
|
|
protected static final VoxelShape SHAPE_WEST_WALL = (VoxelShape) Stream.of(Block.box(0.8d, 1.0d, 0.8d, 2.4d, 16.0d, 15.2d)).reduce((v1, v2) -> {
|
|
return Shapes.join(v1, v2, BooleanOp.OR);
|
|
}).get();
|
|
protected static final VoxelShape SHAPE_EAST_WALL = (VoxelShape) Stream.of(Block.box(13.6d, 1.0d, 0.8d, 15.2d, 16.0d, 13.6d)).reduce((v1, v2) -> {
|
|
return Shapes.join(v1, v2, BooleanOp.OR);
|
|
}).get();
|
|
protected static final VoxelShape SHAPE_NORTH_WALL = (VoxelShape) Stream.of(Block.box(2.4d, 1.0d, 0.8d, 13.6d, 16.0d, 2.4d)).reduce((v1, v2) -> {
|
|
return Shapes.join(v1, v2, BooleanOp.OR);
|
|
}).get();
|
|
protected static final VoxelShape SHAPE_SOUTH_WALL = (VoxelShape) Stream.of(Block.box(2.4d, 1.0d, 13.6d, 15.2d, 16.0d, 15.2d)).reduce((v1, v2) -> {
|
|
return Shapes.join(v1, v2, BooleanOp.OR);
|
|
}).get();
|
|
protected static final VoxelShape SHAPE_FLOOR_BIG = (VoxelShape) Stream.of(Block.box(0.0d, 0.0d, 0.0d, 16.0d, 1.0d, 16.0d)).reduce((v1, v2) -> {
|
|
return Shapes.join(v1, v2, BooleanOp.OR);
|
|
}).get();
|
|
protected static final VoxelShape SHAPE_FLOOR = (VoxelShape) Stream.of(Block.box(0.8d, 0.0d, 0.8d, 15.2d, 1.0d, 15.2d)).reduce((v1, v2) -> {
|
|
return Shapes.join(v1, v2, BooleanOp.OR);
|
|
}).get();
|
|
protected static final VoxelShape SHAPE_X_AXIS = (VoxelShape) Stream.of((Object[]) new VoxelShape[]{SHAPE_NORTH_WALL, SHAPE_SOUTH_WALL, SHAPE_FLOOR}).reduce((v1, v2) -> {
|
|
return Shapes.join((VoxelShape) v1, (VoxelShape) v2, BooleanOp.OR);
|
|
}).get();
|
|
protected static final VoxelShape SHAPE_Z_AXIS = (VoxelShape) Stream.of((Object[]) new VoxelShape[]{SHAPE_EAST_WALL, SHAPE_WEST_WALL, SHAPE_FLOOR}).reduce((v1, v2) -> {
|
|
return Shapes.join((VoxelShape) v1, (VoxelShape) v2, BooleanOp.OR);
|
|
}).get();
|
|
protected static final VoxelShape SHAPE_ONE_BORDER_N = (VoxelShape) Stream.of((Object[]) new VoxelShape[]{SHAPE_SOUTH_WALL, SHAPE_FLOOR}).reduce((v1, v2) -> {
|
|
return Shapes.join((VoxelShape) v1, (VoxelShape) v2, BooleanOp.OR);
|
|
}).get();
|
|
protected static final VoxelShape SHAPE_ONE_BORDER_E = (VoxelShape) Stream.of((Object[]) new VoxelShape[]{SHAPE_WEST_WALL, SHAPE_FLOOR}).reduce((v1, v2) -> {
|
|
return Shapes.join((VoxelShape) v1, (VoxelShape) v2, BooleanOp.OR);
|
|
}).get();
|
|
protected static final VoxelShape SHAPE_ONE_BORDER_W = (VoxelShape) Stream.of((Object[]) new VoxelShape[]{SHAPE_EAST_WALL, SHAPE_FLOOR}).reduce((v1, v2) -> {
|
|
return Shapes.join((VoxelShape) v1, (VoxelShape) v2, BooleanOp.OR);
|
|
}).get();
|
|
protected static final VoxelShape SHAPE_ONE_BORDER_S = (VoxelShape) Stream.of((Object[]) new VoxelShape[]{SHAPE_NORTH_WALL, SHAPE_FLOOR}).reduce((v1, v2) -> {
|
|
return Shapes.join((VoxelShape) v1, (VoxelShape) v2, BooleanOp.OR);
|
|
}).get();
|
|
protected static final VoxelShape SHAPE_NORTH_END = (VoxelShape) Stream.of((Object[]) new VoxelShape[]{SHAPE_NORTH_WALL, SHAPE_EAST_WALL, SHAPE_WEST_WALL, SHAPE_FLOOR}).reduce((v1, v2) -> {
|
|
return Shapes.join((VoxelShape) v1, (VoxelShape) v2, BooleanOp.OR);
|
|
}).get();
|
|
protected static final VoxelShape SHAPE_EAST_END = (VoxelShape) Stream.of((Object[]) new VoxelShape[]{SHAPE_EAST_WALL, SHAPE_NORTH_WALL, SHAPE_SOUTH_WALL, SHAPE_FLOOR}).reduce((v1, v2) -> {
|
|
return Shapes.join((VoxelShape) v1, (VoxelShape) v2, BooleanOp.OR);
|
|
}).get();
|
|
protected static final VoxelShape SHAPE_SOUTH_END = (VoxelShape) Stream.of((Object[]) new VoxelShape[]{SHAPE_SOUTH_WALL, SHAPE_EAST_WALL, SHAPE_WEST_WALL, SHAPE_FLOOR}).reduce((v1, v2) -> {
|
|
return Shapes.join((VoxelShape) v1, (VoxelShape) v2, BooleanOp.OR);
|
|
}).get();
|
|
protected static final VoxelShape SHAPE_WEST_END = (VoxelShape) Stream.of((Object[]) new VoxelShape[]{SHAPE_WEST_WALL, SHAPE_NORTH_WALL, SHAPE_SOUTH_WALL, SHAPE_FLOOR}).reduce((v1, v2) -> {
|
|
return Shapes.join((VoxelShape) v1, (VoxelShape) v2, BooleanOp.OR);
|
|
}).get();
|
|
protected static final VoxelShape SHAPE_NE_CORNER = (VoxelShape) Stream.of((Object[]) new VoxelShape[]{SHAPE_NORTH_WALL, SHAPE_EAST_WALL, SHAPE_FLOOR}).reduce((v1, v2) -> {
|
|
return Shapes.join((VoxelShape) v1, (VoxelShape) v2, BooleanOp.OR);
|
|
}).get();
|
|
protected static final VoxelShape SHAPE_NW_CORNER = (VoxelShape) Stream.of((Object[]) new VoxelShape[]{SHAPE_NORTH_WALL, SHAPE_WEST_WALL, SHAPE_FLOOR}).reduce((v1, v2) -> {
|
|
return Shapes.join((VoxelShape) v1, (VoxelShape) v2, BooleanOp.OR);
|
|
}).get();
|
|
protected static final VoxelShape SHAPE_SE_CORNER = (VoxelShape) Stream.of((Object[]) new VoxelShape[]{SHAPE_SOUTH_WALL, SHAPE_EAST_WALL, SHAPE_FLOOR}).reduce((v1, v2) -> {
|
|
return Shapes.join((VoxelShape) v1, (VoxelShape) v2, BooleanOp.OR);
|
|
}).get();
|
|
protected static final VoxelShape SHAPE_SW_CORNER = (VoxelShape) Stream.of((Object[]) new VoxelShape[]{SHAPE_SOUTH_WALL, SHAPE_WEST_WALL, SHAPE_FLOOR}).reduce((v1, v2) -> {
|
|
return Shapes.join((VoxelShape) v1, (VoxelShape) v2, BooleanOp.OR);
|
|
}).get();
|
|
protected static final VoxelShape SHAPE_BOX = (VoxelShape) Stream.of((Object[]) new VoxelShape[]{SHAPE_WEST_WALL, SHAPE_EAST_WALL, SHAPE_NORTH_WALL, SHAPE_SOUTH_WALL, SHAPE_FLOOR}).reduce((v1, v2) -> {
|
|
return Shapes.join((VoxelShape) v1, (VoxelShape) v2, BooleanOp.OR);
|
|
}).get();
|
|
public static final EnumProperty<CatwalkType> TYPE = EnumProperty.create("type", CatwalkType.class);
|
|
public static final BooleanProperty NE_POST = BooleanProperty.create("ne_post");
|
|
public static final BooleanProperty SE_POST = BooleanProperty.create("se_post");
|
|
public static final BooleanProperty SW_POST = BooleanProperty.create("sw_post");
|
|
public static final BooleanProperty NW_POST = BooleanProperty.create("nw_post");
|
|
public static final BooleanProperty ALTERED = BooleanProperty.create("altered");
|
|
|
|
/* loaded from: outputsrg.jar:com/dairymoose/modernlife/blocks/CatwalkBlock$CatwalkType.class */
|
|
public enum CatwalkType implements StringRepresentable {
|
|
single,
|
|
mid,
|
|
one_border_n,
|
|
one_border_e,
|
|
one_border_s,
|
|
one_border_w,
|
|
x_axis,
|
|
z_axis,
|
|
s_end,
|
|
w_end,
|
|
n_end,
|
|
e_end,
|
|
ne_corner,
|
|
se_corner,
|
|
nw_corner,
|
|
sw_corner;
|
|
|
|
public String getSerializedName() {
|
|
return name().toLowerCase();
|
|
}
|
|
}
|
|
|
|
public VoxelShape getShape(BlockState bs, BlockGetter reader, BlockPos pos, CollisionContext sel) {
|
|
switch ((CatwalkType) bs.getValue(TYPE)) {
|
|
case single:
|
|
return SHAPE_BOX;
|
|
case mid:
|
|
return SHAPE_FLOOR;
|
|
case one_border_n:
|
|
return SHAPE_ONE_BORDER_N;
|
|
case one_border_e:
|
|
return SHAPE_ONE_BORDER_E;
|
|
case one_border_s:
|
|
return SHAPE_ONE_BORDER_S;
|
|
case one_border_w:
|
|
return SHAPE_ONE_BORDER_W;
|
|
case x_axis:
|
|
return SHAPE_X_AXIS;
|
|
case z_axis:
|
|
return SHAPE_Z_AXIS;
|
|
case s_end:
|
|
return SHAPE_SOUTH_END;
|
|
case w_end:
|
|
return SHAPE_WEST_END;
|
|
case n_end:
|
|
return SHAPE_NORTH_END;
|
|
case e_end:
|
|
return SHAPE_EAST_END;
|
|
case ne_corner:
|
|
return SHAPE_NE_CORNER;
|
|
case nw_corner:
|
|
return SHAPE_NW_CORNER;
|
|
case se_corner:
|
|
return SHAPE_SE_CORNER;
|
|
case sw_corner:
|
|
return SHAPE_SW_CORNER;
|
|
default:
|
|
return SHAPE_BOX;
|
|
}
|
|
}
|
|
|
|
public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult p_225533_6_) {
|
|
if (player.isSteppingCarefully() && hand == InteractionHand.MAIN_HAND && player.getItemInHand(hand).isEmpty()) {
|
|
if (!level.isClientSide) {
|
|
CatwalkType initialType = (CatwalkType) state.getValue(TYPE);
|
|
Direction dir = player.getDirection();
|
|
CatwalkType newType = null;
|
|
if (initialType == CatwalkType.w_end && dir == Direction.NORTH) {
|
|
newType = CatwalkType.nw_corner;
|
|
} else if (initialType == CatwalkType.w_end && dir == Direction.SOUTH) {
|
|
newType = CatwalkType.sw_corner;
|
|
} else if (initialType == CatwalkType.w_end) {
|
|
newType = CatwalkType.x_axis;
|
|
} else if (initialType == CatwalkType.e_end && dir == Direction.NORTH) {
|
|
newType = CatwalkType.ne_corner;
|
|
} else if (initialType == CatwalkType.e_end && dir == Direction.SOUTH) {
|
|
newType = CatwalkType.se_corner;
|
|
} else if (initialType == CatwalkType.e_end) {
|
|
newType = CatwalkType.x_axis;
|
|
} else if (initialType == CatwalkType.s_end && dir == Direction.EAST) {
|
|
newType = CatwalkType.se_corner;
|
|
} else if (initialType == CatwalkType.s_end && dir == Direction.WEST) {
|
|
newType = CatwalkType.sw_corner;
|
|
} else if (initialType == CatwalkType.s_end) {
|
|
newType = CatwalkType.z_axis;
|
|
} else if (initialType == CatwalkType.n_end && dir == Direction.EAST) {
|
|
newType = CatwalkType.ne_corner;
|
|
} else if (initialType == CatwalkType.n_end && dir == Direction.WEST) {
|
|
newType = CatwalkType.nw_corner;
|
|
} else if (initialType == CatwalkType.n_end) {
|
|
newType = CatwalkType.z_axis;
|
|
} else if (initialType == CatwalkType.x_axis && dir == Direction.NORTH) {
|
|
newType = CatwalkType.one_border_s;
|
|
} else if (initialType == CatwalkType.x_axis && dir == Direction.SOUTH) {
|
|
newType = CatwalkType.one_border_n;
|
|
} else if (initialType == CatwalkType.z_axis && dir == Direction.WEST) {
|
|
newType = CatwalkType.one_border_e;
|
|
} else if (initialType == CatwalkType.z_axis && dir == Direction.EAST) {
|
|
newType = CatwalkType.one_border_w;
|
|
} else if (initialType == CatwalkType.one_border_e || initialType == CatwalkType.one_border_w || initialType == CatwalkType.one_border_n || initialType == CatwalkType.one_border_s) {
|
|
newType = CatwalkType.mid;
|
|
} else if (initialType == CatwalkType.ne_corner && dir == Direction.WEST) {
|
|
newType = CatwalkType.one_border_s;
|
|
} else if (initialType == CatwalkType.ne_corner && dir == Direction.SOUTH) {
|
|
newType = CatwalkType.one_border_w;
|
|
} else if (initialType == CatwalkType.nw_corner && dir == Direction.EAST) {
|
|
newType = CatwalkType.one_border_s;
|
|
} else if (initialType == CatwalkType.nw_corner && dir == Direction.SOUTH) {
|
|
newType = CatwalkType.one_border_e;
|
|
} else if (initialType == CatwalkType.se_corner && dir == Direction.WEST) {
|
|
newType = CatwalkType.one_border_n;
|
|
} else if (initialType == CatwalkType.se_corner && dir == Direction.NORTH) {
|
|
newType = CatwalkType.one_border_w;
|
|
} else if (initialType == CatwalkType.sw_corner && dir == Direction.EAST) {
|
|
newType = CatwalkType.one_border_n;
|
|
} else if (initialType == CatwalkType.sw_corner && dir == Direction.NORTH) {
|
|
newType = CatwalkType.one_border_e;
|
|
}
|
|
if (newType != initialType && newType != null) {
|
|
level.setBlock(pos, (BlockState) ((BlockState) state.setValue(ALTERED, true)).setValue(TYPE, newType), 2);
|
|
}
|
|
}
|
|
return InteractionResult.CONSUME;
|
|
}
|
|
return InteractionResult.PASS;
|
|
}
|
|
|
|
@Nullable
|
|
public BlockState getStateForPlacement(BlockPlaceContext context) {
|
|
return getNewState(context.getLevel(), context.getClickedPos());
|
|
}
|
|
|
|
public BlockState updateShape(BlockState state, Direction dir, BlockState updater, LevelAccessor world, BlockPos pos, BlockPos updaterPos) {
|
|
if (((Boolean) state.getValue(ALTERED)).booleanValue()) {
|
|
return state;
|
|
}
|
|
return getNewState(world, pos);
|
|
}
|
|
|
|
protected BlockState applyCatwalkPosts(BlockState state, boolean useNePost, boolean useNwPost, boolean useSePost, boolean useSwPost) {
|
|
return (BlockState) ((BlockState) ((BlockState) ((BlockState) state.setValue(NE_POST, Boolean.valueOf(useNePost))).setValue(NW_POST, Boolean.valueOf(useNwPost))).setValue(SE_POST, Boolean.valueOf(useSePost))).setValue(SW_POST, Boolean.valueOf(useSwPost));
|
|
}
|
|
|
|
protected BlockState getNewState(LevelAccessor world, BlockPos pos) {
|
|
BlockState nState = world.getBlockState(pos.north());
|
|
BlockState eState = world.getBlockState(pos.east());
|
|
BlockState sState = world.getBlockState(pos.south());
|
|
BlockState wState = world.getBlockState(pos.west());
|
|
int adjacentTableCount = 0;
|
|
boolean nTable = nState.is(this);
|
|
boolean eTable = eState.is(this);
|
|
boolean sTable = sState.is(this);
|
|
boolean wTable = wState.is(this);
|
|
BlockState neState = world.getBlockState(pos.north().east());
|
|
BlockState nwState = world.getBlockState(pos.north().west());
|
|
BlockState seState = world.getBlockState(pos.south().east());
|
|
BlockState swState = world.getBlockState(pos.south().west());
|
|
boolean neTable = neState.is(this);
|
|
boolean nwTable = nwState.is(this);
|
|
boolean seTable = seState.is(this);
|
|
boolean swTable = swState.is(this);
|
|
boolean useNePost = false;
|
|
boolean useNwPost = false;
|
|
boolean useSePost = false;
|
|
boolean useSwPost = false;
|
|
if (nTable && eTable && !neTable) {
|
|
useNePost = true;
|
|
}
|
|
if (nTable && wTable && !nwTable) {
|
|
useNwPost = true;
|
|
}
|
|
if (sTable && eTable && !seTable) {
|
|
useSePost = true;
|
|
}
|
|
if (sTable && wTable && !swTable) {
|
|
useSwPost = true;
|
|
}
|
|
if (nTable) {
|
|
adjacentTableCount = 0 + 1;
|
|
}
|
|
if (eTable) {
|
|
adjacentTableCount++;
|
|
}
|
|
if (sTable) {
|
|
adjacentTableCount++;
|
|
}
|
|
if (wTable) {
|
|
adjacentTableCount++;
|
|
}
|
|
if (adjacentTableCount >= 2) {
|
|
if (nTable && eTable && !sTable && !wTable) {
|
|
if (neTable) {
|
|
return (BlockState) defaultBlockState().setValue(TYPE, CatwalkType.sw_corner);
|
|
}
|
|
return (BlockState) ((BlockState) defaultBlockState().setValue(TYPE, CatwalkType.sw_corner)).setValue(NE_POST, true);
|
|
}
|
|
if (nTable && wTable && !sTable && !eTable) {
|
|
if (nwTable) {
|
|
return (BlockState) defaultBlockState().setValue(TYPE, CatwalkType.se_corner);
|
|
}
|
|
return (BlockState) ((BlockState) defaultBlockState().setValue(TYPE, CatwalkType.se_corner)).setValue(NW_POST, true);
|
|
}
|
|
if (sTable && eTable && !nTable && !wTable) {
|
|
if (seTable) {
|
|
return (BlockState) defaultBlockState().setValue(TYPE, CatwalkType.nw_corner);
|
|
}
|
|
return (BlockState) ((BlockState) defaultBlockState().setValue(TYPE, CatwalkType.nw_corner)).setValue(SE_POST, true);
|
|
}
|
|
if (sTable && wTable && !nTable && !eTable) {
|
|
if (swTable) {
|
|
return (BlockState) defaultBlockState().setValue(TYPE, CatwalkType.ne_corner);
|
|
}
|
|
return (BlockState) ((BlockState) defaultBlockState().setValue(TYPE, CatwalkType.ne_corner)).setValue(SW_POST, true);
|
|
}
|
|
if (adjacentTableCount == 2 && wTable && eTable) {
|
|
return (BlockState) defaultBlockState().setValue(TYPE, CatwalkType.x_axis);
|
|
}
|
|
if (adjacentTableCount == 2 && nTable && sTable) {
|
|
return (BlockState) defaultBlockState().setValue(TYPE, CatwalkType.z_axis);
|
|
}
|
|
if (adjacentTableCount == 3) {
|
|
if (wTable && nTable && eTable) {
|
|
return applyCatwalkPosts((BlockState) defaultBlockState().setValue(TYPE, CatwalkType.one_border_n), useNePost, useNwPost, useSePost, useSwPost);
|
|
}
|
|
if (nTable && eTable && sTable) {
|
|
return applyCatwalkPosts((BlockState) defaultBlockState().setValue(TYPE, CatwalkType.one_border_e), useNePost, useNwPost, useSePost, useSwPost);
|
|
}
|
|
if (eTable && sTable && wTable) {
|
|
return applyCatwalkPosts((BlockState) defaultBlockState().setValue(TYPE, CatwalkType.one_border_s), useNePost, useNwPost, useSePost, useSwPost);
|
|
}
|
|
if (sTable && wTable && nTable) {
|
|
return applyCatwalkPosts((BlockState) defaultBlockState().setValue(TYPE, CatwalkType.one_border_w), useNePost, useNwPost, useSePost, useSwPost);
|
|
}
|
|
}
|
|
if (adjacentTableCount == 4 && !seTable && !swTable && !neTable && !nwTable) {
|
|
return applyCatwalkPosts((BlockState) defaultBlockState().setValue(TYPE, CatwalkType.mid), useNePost, useNwPost, useSePost, useSwPost);
|
|
}
|
|
return applyCatwalkPosts((BlockState) defaultBlockState().setValue(TYPE, CatwalkType.mid), useNePost, useNwPost, useSePost, useSwPost);
|
|
}
|
|
if (adjacentTableCount == 1) {
|
|
if (nTable) {
|
|
return (BlockState) defaultBlockState().setValue(TYPE, CatwalkType.s_end);
|
|
}
|
|
if (eTable) {
|
|
return (BlockState) defaultBlockState().setValue(TYPE, CatwalkType.w_end);
|
|
}
|
|
if (sTable) {
|
|
return (BlockState) defaultBlockState().setValue(TYPE, CatwalkType.n_end);
|
|
}
|
|
if (wTable) {
|
|
return (BlockState) defaultBlockState().setValue(TYPE, CatwalkType.e_end);
|
|
}
|
|
}
|
|
return applyCatwalkPosts(defaultBlockState(), useNePost, useNwPost, useSePost, useSwPost);
|
|
}
|
|
|
|
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) {
|
|
builder.add(new Property[]{TYPE, NE_POST, NW_POST, SE_POST, SW_POST, ALTERED});
|
|
}
|
|
|
|
public CatwalkBlock(Properties p_i48377_1_) {
|
|
super(p_i48377_1_);
|
|
registerDefaultState((BlockState) ((BlockState) ((BlockState) ((BlockState) ((BlockState) ((BlockState) defaultBlockState().setValue(TYPE, CatwalkType.single)).setValue(NE_POST, false)).setValue(NW_POST, false)).setValue(SE_POST, false)).setValue(SW_POST, false)).setValue(ALTERED, false));
|
|
}
|
|
}
|