Do chores related to code quality
This commit is contained in:
parent
2a6898b664
commit
2a695c6029
25 changed files with 126 additions and 174 deletions
|
@ -1,18 +1,18 @@
|
||||||
aquamarine recipe
|
* aquamarine recipe
|
||||||
whitewash recipe
|
* whitewash recipe
|
||||||
concrete recipe
|
* concrete recipe
|
||||||
concrete with bars recipe
|
* concrete with bars recipe
|
||||||
parquet recipe
|
* parquet recipe
|
||||||
linoleum recipe
|
* linoleum recipe
|
||||||
metal plating recipe
|
* metal plating recipe
|
||||||
crate recipe
|
* crate recipe
|
||||||
po-2 recipe
|
* po-2 recipe
|
||||||
no wallpaper recipes (intended?)
|
* no wallpaper recipes (intended?)
|
||||||
no handrail recipe
|
* no handrail recipe
|
||||||
no nutrient block recipe (intended? compressed bread?)
|
* no nutrient block recipe (intended? compressed bread?)
|
||||||
light bulb recipe
|
* light bulb recipe
|
||||||
sigarette recipe
|
* cigarette recipe
|
||||||
siren recipe
|
* siren recipe
|
||||||
no landmine recipe - intended
|
* no landmine recipe - intended
|
||||||
switch recipe
|
* switch recipe
|
||||||
checkers and chess recipe
|
* checkers and chess recipe
|
||||||
|
|
|
@ -15,12 +15,12 @@ import su.a71.new_soviet.entities.TVBlockEntity;
|
||||||
|
|
||||||
@Environment(EnvType.CLIENT)
|
@Environment(EnvType.CLIENT)
|
||||||
public class TVBlockEntityRenderer implements BlockEntityRenderer<TVBlockEntity> {
|
public class TVBlockEntityRenderer implements BlockEntityRenderer<TVBlockEntity> {
|
||||||
private static TextRenderer textRenderer;
|
// private static TextRenderer textRenderer;
|
||||||
private static final Vec3d TEXT_OFFSET = new Vec3d(0.0, 0.3333333432674408, 0.046666666865348816);
|
private static final Vec3d TEXT_OFFSET = new Vec3d(0.0, 0.3333333432674408, 0.046666666865348816);
|
||||||
|
|
||||||
|
|
||||||
public TVBlockEntityRenderer(BlockEntityRendererFactory.Context ctx) {
|
public TVBlockEntityRenderer(BlockEntityRendererFactory.Context ctx) {
|
||||||
textRenderer = ctx.getTextRenderer();
|
// textRenderer = ctx.getTextRenderer();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -17,18 +17,21 @@ public class Config {
|
||||||
|
|
||||||
|
|
||||||
private static void generateDefault() {
|
private static void generateDefault() {
|
||||||
|
INSTANCE = new Config();
|
||||||
|
|
||||||
NewSoviet.LOG.info("Generated config file at config/new_soviet.json");
|
NewSoviet.LOG.info("Generated config file at config/new_soviet.json");
|
||||||
File file = new File("config/new_soviet.json");
|
File file = new File("config/new_soviet.json");
|
||||||
if(!file.getParentFile().exists()) {
|
if(!file.getParentFile().exists() && !file.getParentFile().mkdirs()) {
|
||||||
file.getParentFile().mkdirs();
|
NewSoviet.LOG.error("Error making dir for config, using default");
|
||||||
|
INSTANCE = new Config(); // Something went wrong with mkdir
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
INSTANCE = new Config();
|
|
||||||
try {
|
try {
|
||||||
FileWriter writer = new FileWriter(file);
|
FileWriter writer = new FileWriter(file);
|
||||||
writer.write(NewSoviet.GSON.toJson(INSTANCE));
|
writer.write(NewSoviet.GSON.toJson(INSTANCE));
|
||||||
writer.close();
|
writer.close();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
INSTANCE = new Config();
|
NewSoviet.LOG.error("Error creating config, using default", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,6 @@ import net.minecraft.server.world.ServerWorld;
|
||||||
import net.minecraft.state.StateManager;
|
import net.minecraft.state.StateManager;
|
||||||
import net.minecraft.state.property.BooleanProperty;
|
import net.minecraft.state.property.BooleanProperty;
|
||||||
import net.minecraft.state.property.Properties;
|
import net.minecraft.state.property.Properties;
|
||||||
import net.minecraft.state.property.Property;
|
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.util.math.Direction;
|
import net.minecraft.util.math.Direction;
|
||||||
import net.minecraft.util.math.random.Random;
|
import net.minecraft.util.math.random.Random;
|
||||||
|
@ -28,25 +27,25 @@ public class CeilingFanBlock extends Block implements Waterloggable {
|
||||||
|
|
||||||
public CeilingFanBlock(Block.Settings settings) {
|
public CeilingFanBlock(Block.Settings settings) {
|
||||||
super(settings);
|
super(settings);
|
||||||
this.setDefaultState((BlockState)this.getDefaultState().with(ON, false).with(WATERLOGGED, false));
|
this.setDefaultState(this.getDefaultState().with(ON, false).with(WATERLOGGED, false));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public BlockState getPlacementState(ItemPlacementContext ctx) {
|
public BlockState getPlacementState(ItemPlacementContext ctx) {
|
||||||
return (BlockState)this.getDefaultState()
|
return this.getDefaultState()
|
||||||
.with(ON, ctx.getWorld().isReceivingRedstonePower(ctx.getBlockPos()))
|
.with(ON, ctx.getWorld().isReceivingRedstonePower(ctx.getBlockPos()))
|
||||||
.with(WATERLOGGED, ctx.getWorld().getFluidState(ctx.getBlockPos()).getFluid() == Fluids.WATER);
|
.with(WATERLOGGED, ctx.getWorld().getFluidState(ctx.getBlockPos()).getFluid() == Fluids.WATER);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void neighborUpdate(BlockState state, World world, BlockPos pos, Block sourceBlock, BlockPos sourcePos, boolean notify) {
|
public void neighborUpdate(BlockState state, World world, BlockPos pos, Block sourceBlock, BlockPos sourcePos, boolean notify) {
|
||||||
if (!world.isClient) {
|
if (!world.isClient) {
|
||||||
boolean bl = (Boolean)state.get(ON);
|
boolean bl = state.get(ON);
|
||||||
if (bl != world.isReceivingRedstonePower(pos)) {
|
if (bl != world.isReceivingRedstonePower(pos)) {
|
||||||
if (bl) {
|
if (bl) {
|
||||||
world.scheduleBlockTick(pos, this, 4);
|
world.scheduleBlockTick(pos, this, 4);
|
||||||
} else {
|
} else {
|
||||||
world.setBlockState(pos, (BlockState)state.cycle(ON), 2);
|
world.setBlockState(pos, state.cycle(ON), 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -61,13 +60,13 @@ public class CeilingFanBlock extends Block implements Waterloggable {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void scheduledTick(BlockState state, ServerWorld world, BlockPos pos, Random random) {
|
public void scheduledTick(BlockState state, ServerWorld world, BlockPos pos, Random random) {
|
||||||
if ((Boolean)state.get(ON) && !world.isReceivingRedstonePower(pos)) {
|
if (state.get(ON) && !world.isReceivingRedstonePower(pos)) {
|
||||||
world.setBlockState(pos, (BlockState)state.cycle(ON), 2);
|
world.setBlockState(pos, state.cycle(ON), 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void appendProperties(StateManager.Builder<Block, BlockState> builder) {
|
protected void appendProperties(StateManager.Builder<Block, BlockState> builder) {
|
||||||
builder.add(new Property[]{ON, WATERLOGGED});
|
builder.add(ON, WATERLOGGED);
|
||||||
}
|
}
|
||||||
|
|
||||||
public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) {
|
public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) {
|
||||||
|
|
|
@ -2,7 +2,6 @@ package su.a71.new_soviet.blocks;
|
||||||
|
|
||||||
import net.minecraft.block.*;
|
import net.minecraft.block.*;
|
||||||
import net.minecraft.entity.ai.pathing.NavigationType;
|
import net.minecraft.entity.ai.pathing.NavigationType;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
|
||||||
import net.minecraft.fluid.FluidState;
|
import net.minecraft.fluid.FluidState;
|
||||||
import net.minecraft.fluid.Fluids;
|
import net.minecraft.fluid.Fluids;
|
||||||
import net.minecraft.item.ItemPlacementContext;
|
import net.minecraft.item.ItemPlacementContext;
|
||||||
|
@ -10,18 +9,15 @@ import net.minecraft.state.StateManager;
|
||||||
import net.minecraft.state.property.BooleanProperty;
|
import net.minecraft.state.property.BooleanProperty;
|
||||||
import net.minecraft.state.property.IntProperty;
|
import net.minecraft.state.property.IntProperty;
|
||||||
import net.minecraft.state.property.Properties;
|
import net.minecraft.state.property.Properties;
|
||||||
import net.minecraft.state.property.Property;
|
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.util.math.Direction;
|
import net.minecraft.util.math.Direction;
|
||||||
import net.minecraft.util.shape.VoxelShape;
|
import net.minecraft.util.shape.VoxelShape;
|
||||||
import net.minecraft.world.BlockView;
|
import net.minecraft.world.BlockView;
|
||||||
import net.minecraft.world.World;
|
|
||||||
import net.minecraft.world.WorldAccess;
|
import net.minecraft.world.WorldAccess;
|
||||||
import net.minecraft.world.WorldView;
|
import net.minecraft.world.WorldView;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
public class CheckerBlock extends Block implements Waterloggable {
|
public class CheckerBlock extends Block implements Waterloggable {
|
||||||
public static final int MAX_PICKLES = 4;
|
|
||||||
public static final IntProperty CHECKERS;
|
public static final IntProperty CHECKERS;
|
||||||
public static final BooleanProperty WATERLOGGED;
|
public static final BooleanProperty WATERLOGGED;
|
||||||
protected static final VoxelShape ONE_CHECKER;
|
protected static final VoxelShape ONE_CHECKER;
|
||||||
|
@ -31,18 +27,18 @@ public class CheckerBlock extends Block implements Waterloggable {
|
||||||
|
|
||||||
public CheckerBlock(AbstractBlock.Settings settings) {
|
public CheckerBlock(AbstractBlock.Settings settings) {
|
||||||
super(settings);
|
super(settings);
|
||||||
this.setDefaultState((BlockState)((BlockState)((BlockState)this.stateManager.getDefaultState()).with(CHECKERS, 1)).with(WATERLOGGED, true));
|
this.setDefaultState(this.stateManager.getDefaultState().with(CHECKERS, 1).with(WATERLOGGED, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public BlockState getPlacementState(ItemPlacementContext ctx) {
|
public BlockState getPlacementState(ItemPlacementContext ctx) {
|
||||||
BlockState blockState = ctx.getWorld().getBlockState(ctx.getBlockPos());
|
BlockState blockState = ctx.getWorld().getBlockState(ctx.getBlockPos());
|
||||||
if (blockState.isOf(this)) {
|
if (blockState.isOf(this)) {
|
||||||
return (BlockState)blockState.with(CHECKERS, Math.min(4, (Integer)blockState.get(CHECKERS) + 1));
|
return blockState.with(CHECKERS, Math.min(4, blockState.get(CHECKERS) + 1));
|
||||||
} else {
|
} else {
|
||||||
FluidState fluidState = ctx.getWorld().getFluidState(ctx.getBlockPos());
|
FluidState fluidState = ctx.getWorld().getFluidState(ctx.getBlockPos());
|
||||||
boolean bl = fluidState.getFluid() == Fluids.WATER;
|
boolean bl = fluidState.getFluid() == Fluids.WATER;
|
||||||
return (BlockState)super.getPlacementState(ctx).with(WATERLOGGED, bl);
|
return super.getPlacementState(ctx).with(WATERLOGGED, bl);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -59,7 +55,7 @@ public class CheckerBlock extends Block implements Waterloggable {
|
||||||
if (!state.canPlaceAt(world, pos)) {
|
if (!state.canPlaceAt(world, pos)) {
|
||||||
return Blocks.AIR.getDefaultState();
|
return Blocks.AIR.getDefaultState();
|
||||||
} else {
|
} else {
|
||||||
if ((Boolean)state.get(WATERLOGGED)) {
|
if (state.get(WATERLOGGED)) {
|
||||||
world.scheduleFluidTick(pos, Fluids.WATER, Fluids.WATER.getTickRate(world));
|
world.scheduleFluidTick(pos, Fluids.WATER, Fluids.WATER.getTickRate(world));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -68,29 +64,24 @@ public class CheckerBlock extends Block implements Waterloggable {
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean canReplace(BlockState state, ItemPlacementContext context) {
|
public boolean canReplace(BlockState state, ItemPlacementContext context) {
|
||||||
return !context.shouldCancelInteraction() && context.getStack().isOf(this.asItem()) && (Integer) state.get(CHECKERS) < 4 || super.canReplace(state, context);
|
return !context.shouldCancelInteraction() && context.getStack().isOf(this.asItem()) && state.get(CHECKERS) < 4 || super.canReplace(state, context);
|
||||||
}
|
}
|
||||||
|
|
||||||
public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) {
|
public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) {
|
||||||
switch ((Integer)state.get(CHECKERS)) {
|
return switch (state.get(CHECKERS)) {
|
||||||
case 1:
|
default -> ONE_CHECKER;
|
||||||
default:
|
case 2 -> TWO_CHECKER;
|
||||||
return ONE_CHECKER;
|
case 3 -> THREE_CHECKER;
|
||||||
case 2:
|
case 4 -> FOUR_CHECKER;
|
||||||
return TWO_CHECKER;
|
};
|
||||||
case 3:
|
|
||||||
return THREE_CHECKER;
|
|
||||||
case 4:
|
|
||||||
return FOUR_CHECKER;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public FluidState getFluidState(BlockState state) {
|
public FluidState getFluidState(BlockState state) {
|
||||||
return (Boolean)state.get(WATERLOGGED) ? Fluids.WATER.getStill(false) : super.getFluidState(state);
|
return state.get(WATERLOGGED) ? Fluids.WATER.getStill(false) : super.getFluidState(state);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void appendProperties(StateManager.Builder<Block, BlockState> builder) {
|
protected void appendProperties(StateManager.Builder<Block, BlockState> builder) {
|
||||||
builder.add(new Property[]{CHECKERS, WATERLOGGED});
|
builder.add(CHECKERS, WATERLOGGED);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean canPathfindThrough(BlockState state, BlockView world, BlockPos pos, NavigationType type) {
|
public boolean canPathfindThrough(BlockState state, BlockView world, BlockPos pos, NavigationType type) {
|
||||||
|
@ -98,7 +89,7 @@ public class CheckerBlock extends Block implements Waterloggable {
|
||||||
}
|
}
|
||||||
|
|
||||||
static {
|
static {
|
||||||
CHECKERS = IntProperty.of("checkers", 1, 4);;
|
CHECKERS = IntProperty.of("checkers", 1, 4);
|
||||||
WATERLOGGED = Properties.WATERLOGGED;
|
WATERLOGGED = Properties.WATERLOGGED;
|
||||||
ONE_CHECKER = Block.createCuboidShape(2.0, 0.0, 2.0, 14.0, 4.0, 14.0);
|
ONE_CHECKER = Block.createCuboidShape(2.0, 0.0, 2.0, 14.0, 4.0, 14.0);
|
||||||
TWO_CHECKER = Block.createCuboidShape(2.0, 0.0, 2.0, 14.0, 8.0, 14.0);
|
TWO_CHECKER = Block.createCuboidShape(2.0, 0.0, 2.0, 14.0, 8.0, 14.0);
|
||||||
|
|
|
@ -1,10 +1,8 @@
|
||||||
package su.a71.new_soviet.blocks;
|
package su.a71.new_soviet.blocks;
|
||||||
|
|
||||||
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
|
|
||||||
import net.minecraft.block.*;
|
import net.minecraft.block.*;
|
||||||
import net.minecraft.block.piston.PistonBehavior;
|
import net.minecraft.block.piston.PistonBehavior;
|
||||||
import net.minecraft.item.ItemPlacementContext;
|
import net.minecraft.item.ItemPlacementContext;
|
||||||
import net.minecraft.sound.BlockSoundGroup;
|
|
||||||
import net.minecraft.state.StateManager;
|
import net.minecraft.state.StateManager;
|
||||||
import net.minecraft.state.property.Properties;
|
import net.minecraft.state.property.Properties;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
@ -16,7 +14,7 @@ import net.minecraft.world.WorldView;
|
||||||
|
|
||||||
public class ChessBlock extends HorizontalFacingBlock {
|
public class ChessBlock extends HorizontalFacingBlock {
|
||||||
|
|
||||||
private VoxelShape blockShape;
|
private final VoxelShape blockShape;
|
||||||
|
|
||||||
public ChessBlock(AbstractBlock.Settings settings, VoxelShape blockShape) {
|
public ChessBlock(AbstractBlock.Settings settings, VoxelShape blockShape) {
|
||||||
super(settings.notSolid().nonOpaque().noBlockBreakParticles().pistonBehavior(PistonBehavior.DESTROY).strength(0.1f, 2f));
|
super(settings.notSolid().nonOpaque().noBlockBreakParticles().pistonBehavior(PistonBehavior.DESTROY).strength(0.1f, 2f));
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package su.a71.new_soviet.blocks;
|
package su.a71.new_soviet.blocks;
|
||||||
|
|
||||||
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
|
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.block.HorizontalFacingBlock;
|
import net.minecraft.block.HorizontalFacingBlock;
|
||||||
|
@ -15,7 +14,6 @@ import net.minecraft.util.shape.VoxelShape;
|
||||||
import net.minecraft.util.shape.VoxelShapes;
|
import net.minecraft.util.shape.VoxelShapes;
|
||||||
import net.minecraft.world.BlockView;
|
import net.minecraft.world.BlockView;
|
||||||
import net.minecraft.world.WorldView;
|
import net.minecraft.world.WorldView;
|
||||||
import su.a71.new_soviet.util.Shapes;
|
|
||||||
|
|
||||||
public class ChessBlockKnight extends HorizontalFacingBlock {
|
public class ChessBlockKnight extends HorizontalFacingBlock {
|
||||||
|
|
||||||
|
|
|
@ -131,7 +131,7 @@ public class HandrailBlock extends HorizontalFacingBlock implements BlockEntityP
|
||||||
SHAPE2 = new Shapes.HorizontalShape(List.of(List.of(0.0, 0.0, 15.0, 16.0, 17.0, 16.0), List.of(0.0, 17.0, 14.5, 16.0, 19.0, 16.5)));
|
SHAPE2 = new Shapes.HorizontalShape(List.of(List.of(0.0, 0.0, 15.0, 16.0, 17.0, 16.0), List.of(0.0, 17.0, 14.5, 16.0, 19.0, 16.5)));
|
||||||
SHAPE1 = new Shapes.HorizontalShape(List.of(List.of(0.0, 0.0, 15.0, 8.0, 18.0, 16.0), List.of(8.0, -8.0, 15.0, 16.0, 10.0, 16.0)));
|
SHAPE1 = new Shapes.HorizontalShape(List.of(List.of(0.0, 0.0, 15.0, 8.0, 18.0, 16.0), List.of(8.0, -8.0, 15.0, 16.0, 10.0, 16.0)));
|
||||||
SHAPE3 = new Shapes.HorizontalShape(List.of(List.of(0.0, -8.0, 15.0, 8.0, 10.0, 16.0), List.of(8.0, 0.0, 15.0, 16.0, 18.0, 16.0)));
|
SHAPE3 = new Shapes.HorizontalShape(List.of(List.of(0.0, -8.0, 15.0, 8.0, 10.0, 16.0), List.of(8.0, 0.0, 15.0, 16.0, 18.0, 16.0)));
|
||||||
ROTATION = IntProperty.of("rotate", 1, 3);;
|
ROTATION = IntProperty.of("rotate", 1, 3);
|
||||||
WATERLOGGED = Properties.WATERLOGGED;
|
WATERLOGGED = Properties.WATERLOGGED;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -121,7 +121,7 @@ public class LandMineBlock extends HorizontalFacingBlock implements Waterloggabl
|
||||||
@Nullable
|
@Nullable
|
||||||
public BlockState getPlacementState(ItemPlacementContext ctx) {
|
public BlockState getPlacementState(ItemPlacementContext ctx) {
|
||||||
FluidState fluidState = ctx.getWorld().getFluidState(ctx.getBlockPos());
|
FluidState fluidState = ctx.getWorld().getFluidState(ctx.getBlockPos());
|
||||||
return (BlockState)this.getDefaultState().with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER).with(Properties.HORIZONTAL_FACING, ctx.getHorizontalPlayerFacing().getOpposite());
|
return this.getDefaultState().with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER).with(Properties.HORIZONTAL_FACING, ctx.getHorizontalPlayerFacing().getOpposite());
|
||||||
}
|
}
|
||||||
|
|
||||||
public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) {
|
public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) {
|
||||||
|
|
|
@ -3,7 +3,6 @@ package su.a71.new_soviet.blocks;
|
||||||
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
|
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
|
||||||
import net.minecraft.block.*;
|
import net.minecraft.block.*;
|
||||||
import net.minecraft.block.piston.PistonBehavior;
|
import net.minecraft.block.piston.PistonBehavior;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
|
||||||
import net.minecraft.fluid.FluidState;
|
import net.minecraft.fluid.FluidState;
|
||||||
import net.minecraft.fluid.Fluids;
|
import net.minecraft.fluid.Fluids;
|
||||||
import net.minecraft.item.ItemPlacementContext;
|
import net.minecraft.item.ItemPlacementContext;
|
||||||
|
@ -41,13 +40,13 @@ public class SirenBlock extends HorizontalFacingBlock implements Waterloggable {
|
||||||
|
|
||||||
public void neighborUpdate(BlockState state, World world, BlockPos pos, Block sourceBlock, BlockPos sourcePos, boolean notify) {
|
public void neighborUpdate(BlockState state, World world, BlockPos pos, Block sourceBlock, BlockPos sourcePos, boolean notify) {
|
||||||
if (!world.isClient) {
|
if (!world.isClient) {
|
||||||
boolean bl = (Boolean)state.get(ON);
|
boolean bl = state.get(ON);
|
||||||
if (bl != world.isReceivingRedstonePower(pos)) {
|
if (bl != world.isReceivingRedstonePower(pos)) {
|
||||||
if (bl) {
|
if (bl) {
|
||||||
world.scheduleBlockTick(pos, this, 4);
|
world.scheduleBlockTick(pos, this, 4);
|
||||||
} else {
|
} else {
|
||||||
world.playSound((PlayerEntity)null, pos.getX(), pos.getY(), pos.getZ(), NSE_Sounds.SIREN_SOUND, SoundCategory.NEUTRAL, getSirenVolume(world, pos), 1f);
|
world.playSound(null, pos.getX(), pos.getY(), pos.getZ(), NSE_Sounds.SIREN_SOUND, SoundCategory.NEUTRAL, getSirenVolume(world, pos), 1f);
|
||||||
world.setBlockState(pos, (BlockState)state.cycle(ON), 2);
|
world.setBlockState(pos, state.cycle(ON), 2);
|
||||||
world.scheduleBlockTick(pos, this, 140);
|
world.scheduleBlockTick(pos, this, 140);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -57,18 +56,13 @@ public class SirenBlock extends HorizontalFacingBlock implements Waterloggable {
|
||||||
@Override
|
@Override
|
||||||
public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext ctx) {
|
public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext ctx) {
|
||||||
Direction dir = state.get(FACING);
|
Direction dir = state.get(FACING);
|
||||||
switch(dir) {
|
return switch (dir) {
|
||||||
case NORTH:
|
case NORTH -> Block.createCuboidShape(3.5, 2, 11, 12.5, 15, 16);
|
||||||
return Block.createCuboidShape(3.5, 2, 11, 12.5, 15, 16);
|
case SOUTH -> Block.createCuboidShape(3.5, 2, 0, 12.5, 15, 5);
|
||||||
case SOUTH:
|
case EAST -> Block.createCuboidShape(0, 2, 3.5, 5, 15, 12.5);
|
||||||
return Block.createCuboidShape(3.5, 2, 0, 12.5, 15, 5);
|
case WEST -> Block.createCuboidShape(11, 2, 3.5, 16, 15, 12.5);
|
||||||
case EAST:
|
default -> VoxelShapes.fullCube();
|
||||||
return Block.createCuboidShape(0, 2, 3.5, 5, 15, 12.5);
|
};
|
||||||
case WEST:
|
|
||||||
return Block.createCuboidShape(11, 2, 3.5, 16, 15, 12.5);
|
|
||||||
default:
|
|
||||||
return VoxelShapes.fullCube();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -80,17 +74,17 @@ public class SirenBlock extends HorizontalFacingBlock implements Waterloggable {
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean canPlaceAt(BlockState state, WorldView world, BlockPos pos) {
|
public boolean canPlaceAt(BlockState state, WorldView world, BlockPos pos) {
|
||||||
Direction direction = (Direction)state.get(FACING);
|
Direction direction = state.get(FACING);
|
||||||
BlockPos blockPos = pos.offset(direction.getOpposite());
|
BlockPos blockPos = pos.offset(direction.getOpposite());
|
||||||
BlockState blockState = world.getBlockState(blockPos);
|
BlockState blockState = world.getBlockState(blockPos);
|
||||||
return direction.getAxis().isHorizontal() && blockState.isSideSolidFullSquare(world, blockPos, direction);
|
return direction.getAxis().isHorizontal() && blockState.isSideSolidFullSquare(world, blockPos, direction);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void scheduledTick(BlockState state, ServerWorld world, BlockPos pos, Random random) {
|
public void scheduledTick(BlockState state, ServerWorld world, BlockPos pos, Random random) {
|
||||||
if ((Boolean)state.get(ON) && !world.isReceivingRedstonePower(pos)) {
|
if (state.get(ON) && !world.isReceivingRedstonePower(pos)) {
|
||||||
world.setBlockState(pos, (BlockState)state.cycle(ON), 2);
|
world.setBlockState(pos, state.cycle(ON), 2);
|
||||||
} else {
|
} else {
|
||||||
world.playSound((PlayerEntity)null, pos.getX(), pos.getY(), pos.getZ(), NSE_Sounds.SIREN_SOUND, SoundCategory.NEUTRAL, getSirenVolume(world, pos), 1f);
|
world.playSound(null, pos.getX(), pos.getY(), pos.getZ(), NSE_Sounds.SIREN_SOUND, SoundCategory.NEUTRAL, getSirenVolume(world, pos), 1f);
|
||||||
world.scheduleBlockTick(pos, this, 140);
|
world.scheduleBlockTick(pos, this, 140);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,15 +40,11 @@ public class StoveBlock extends BlockWithEntity {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext ctx) {
|
public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext ctx) {
|
||||||
Direction dir = state.get(FACING);
|
return switch (state.get(FACING)) {
|
||||||
switch(dir) {
|
case NORTH, SOUTH -> VoxelShapes.cuboid(0.0625f, 0.0f, 0.3125f, 0.9375f, 0.5625f, 0.6875f);
|
||||||
case NORTH, SOUTH:
|
case EAST, WEST -> VoxelShapes.cuboid(0.3125f, 0.0f, 0.0625f, 0.6875f, 0.5625f, 0.9375f);
|
||||||
return VoxelShapes.cuboid(0.0625f, 0.0f, 0.3125f, 0.9375f, 0.5625f, 0.6875f);
|
default -> VoxelShapes.fullCube();
|
||||||
case EAST, WEST:
|
};
|
||||||
return VoxelShapes.cuboid(0.3125f, 0.0f, 0.0625f, 0.6875f, 0.5625f, 0.9375f);
|
|
||||||
default:
|
|
||||||
return VoxelShapes.fullCube();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -57,11 +53,11 @@ public class StoveBlock extends BlockWithEntity {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BlockState rotate(BlockState state, BlockRotation rotation) {
|
public BlockState rotate(BlockState state, BlockRotation rotation) {
|
||||||
return (BlockState)state.with(FACING, rotation.rotate((Direction)state.get(FACING)));
|
return state.with(FACING, rotation.rotate(state.get(FACING)));
|
||||||
}
|
}
|
||||||
|
|
||||||
public BlockState mirror(BlockState state, BlockMirror mirror) {
|
public BlockState mirror(BlockState state, BlockMirror mirror) {
|
||||||
return state.rotate(mirror.getRotation((Direction)state.get(FACING)));
|
return state.rotate(mirror.getRotation(state.get(FACING)));
|
||||||
}
|
}
|
||||||
|
|
||||||
static {
|
static {
|
||||||
|
|
|
@ -4,7 +4,6 @@ import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
|
||||||
import net.minecraft.block.*;
|
import net.minecraft.block.*;
|
||||||
import net.minecraft.block.enums.WallMountLocation;
|
import net.minecraft.block.enums.WallMountLocation;
|
||||||
import net.minecraft.block.piston.PistonBehavior;
|
import net.minecraft.block.piston.PistonBehavior;
|
||||||
import net.minecraft.entity.Entity;
|
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.particle.DustParticleEffect;
|
import net.minecraft.particle.DustParticleEffect;
|
||||||
import net.minecraft.sound.BlockSoundGroup;
|
import net.minecraft.sound.BlockSoundGroup;
|
||||||
|
@ -17,7 +16,6 @@ import net.minecraft.util.Hand;
|
||||||
import net.minecraft.util.hit.BlockHitResult;
|
import net.minecraft.util.hit.BlockHitResult;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.util.math.Direction;
|
import net.minecraft.util.math.Direction;
|
||||||
import net.minecraft.util.math.random.Random;
|
|
||||||
import net.minecraft.util.shape.VoxelShape;
|
import net.minecraft.util.shape.VoxelShape;
|
||||||
import net.minecraft.world.BlockView;
|
import net.minecraft.world.BlockView;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
@ -26,6 +24,8 @@ import net.minecraft.world.event.GameEvent;
|
||||||
|
|
||||||
import su.a71.new_soviet.registration.NSE_Sounds;
|
import su.a71.new_soviet.registration.NSE_Sounds;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
public class SwitchBlock extends LeverBlock {
|
public class SwitchBlock extends LeverBlock {
|
||||||
public static final BooleanProperty POWERED = Properties.POWERED;
|
public static final BooleanProperty POWERED = Properties.POWERED;
|
||||||
protected static final VoxelShape NORTH_WALL_SHAPE = Block.createCuboidShape(5.5, 5.5, 15, 10.5, 10.5, 16);
|
protected static final VoxelShape NORTH_WALL_SHAPE = Block.createCuboidShape(5.5, 5.5, 15, 10.5, 10.5, 16);
|
||||||
|
@ -39,39 +39,29 @@ public class SwitchBlock extends LeverBlock {
|
||||||
|
|
||||||
public SwitchBlock(FabricBlockSettings fabricBlockSettings) {
|
public SwitchBlock(FabricBlockSettings fabricBlockSettings) {
|
||||||
super(FabricBlockSettings.create().sounds(BlockSoundGroup.METAL).notSolid().pistonBehavior(PistonBehavior.DESTROY).strength(1f, 2f).mapColor(MapColor.TERRACOTTA_WHITE).noCollision());
|
super(FabricBlockSettings.create().sounds(BlockSoundGroup.METAL).notSolid().pistonBehavior(PistonBehavior.DESTROY).strength(1f, 2f).mapColor(MapColor.TERRACOTTA_WHITE).noCollision());
|
||||||
this.setDefaultState((BlockState)((BlockState)((BlockState)((BlockState)this.stateManager.getDefaultState()).with(FACING, Direction.NORTH)).with(POWERED, false)).with(FACE, WallMountLocation.WALL));
|
this.setDefaultState(this.stateManager.getDefaultState().with(FACING, Direction.NORTH).with(POWERED, false).with(FACE, WallMountLocation.WALL));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) {
|
public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) {
|
||||||
switch ((WallMountLocation)state.get(FACE)) {
|
switch (state.get(FACE)) {
|
||||||
case FLOOR: {
|
case FLOOR: {
|
||||||
switch (state.get(FACING).getAxis()) {
|
if (Objects.requireNonNull(state.get(FACING).getAxis()) == Direction.Axis.X) {
|
||||||
case X: {
|
return FLOOR_X_AXIS_SHAPE;
|
||||||
return FLOOR_X_AXIS_SHAPE;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return FLOOR_Z_AXIS_SHAPE;
|
return FLOOR_Z_AXIS_SHAPE;
|
||||||
}
|
}
|
||||||
case WALL: {
|
case WALL: {
|
||||||
switch (state.get(FACING)) {
|
return switch (state.get(FACING)) {
|
||||||
case EAST: {
|
case EAST -> EAST_WALL_SHAPE;
|
||||||
return EAST_WALL_SHAPE;
|
case WEST -> WEST_WALL_SHAPE;
|
||||||
}
|
case SOUTH -> SOUTH_WALL_SHAPE;
|
||||||
case WEST: {
|
default -> NORTH_WALL_SHAPE;
|
||||||
return WEST_WALL_SHAPE;
|
};
|
||||||
}
|
|
||||||
case SOUTH: {
|
|
||||||
return SOUTH_WALL_SHAPE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return NORTH_WALL_SHAPE;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
switch (state.get(FACING).getAxis()) {
|
if (Objects.requireNonNull(state.get(FACING).getAxis()) == Direction.Axis.X) {
|
||||||
case X: {
|
return CEILING_X_AXIS_SHAPE;
|
||||||
return CEILING_X_AXIS_SHAPE;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return CEILING_Z_AXIS_SHAPE;
|
return CEILING_Z_AXIS_SHAPE;
|
||||||
}
|
}
|
||||||
|
@ -79,13 +69,13 @@ public class SwitchBlock extends LeverBlock {
|
||||||
@Override
|
@Override
|
||||||
public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) {
|
public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) {
|
||||||
if (world.isClient) {
|
if (world.isClient) {
|
||||||
BlockState blockState = (BlockState)state.cycle(POWERED);
|
state.cycle(POWERED);
|
||||||
return ActionResult.SUCCESS;
|
return ActionResult.SUCCESS;
|
||||||
}
|
}
|
||||||
BlockState blockState = this.togglePower(state, world, pos);
|
BlockState blockState = this.togglePower(state, world, pos);
|
||||||
float f = blockState.get(POWERED) ? 1f : 0.9f;
|
float f = blockState.get(POWERED) ? 1f : 0.9f;
|
||||||
world.playSound(null, pos, NSE_Sounds.SWITCH_PRESS, SoundCategory.BLOCKS, 0.6f, f);
|
world.playSound(null, pos, NSE_Sounds.SWITCH_PRESS, SoundCategory.BLOCKS, 0.6f, f);
|
||||||
world.emitGameEvent((Entity)player, blockState.get(POWERED) ? GameEvent.BLOCK_ACTIVATE : GameEvent.BLOCK_DEACTIVATE, pos);
|
world.emitGameEvent(player, blockState.get(POWERED) ? GameEvent.BLOCK_ACTIVATE : GameEvent.BLOCK_DEACTIVATE, pos);
|
||||||
return ActionResult.CONSUME;
|
return ActionResult.CONSUME;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -98,14 +88,6 @@ public class SwitchBlock extends LeverBlock {
|
||||||
world.addParticle(new DustParticleEffect(DustParticleEffect.RED, alpha), d, e, f, 0.0, 0.0, 0.0);
|
world.addParticle(new DustParticleEffect(DustParticleEffect.RED, alpha), d, e, f, 0.0, 0.0, 0.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void randomDisplayTick(BlockState state, World world, BlockPos pos, Random random) {
|
|
||||||
if (state.get(POWERED) && random.nextFloat() < 0.25f) {
|
|
||||||
//SwitchBlock.spawnParticles(state, world, pos, 0.5f);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void appendProperties(StateManager.Builder<Block, BlockState> builder) {
|
protected void appendProperties(StateManager.Builder<Block, BlockState> builder) {
|
||||||
builder.add(FACE, FACING, POWERED);
|
builder.add(FACE, FACING, POWERED);
|
||||||
|
|
|
@ -43,8 +43,7 @@ public class GoldenTableLampBlock extends LampBlock {
|
||||||
}
|
}
|
||||||
|
|
||||||
public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) {
|
public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) {
|
||||||
Direction dir = state.get(FACING);
|
return switch (state.get(FACING)) {
|
||||||
return switch (dir) {
|
|
||||||
case NORTH -> SHAPE.north();
|
case NORTH -> SHAPE.north();
|
||||||
case SOUTH -> SHAPE.south();
|
case SOUTH -> SHAPE.south();
|
||||||
case EAST -> SHAPE.east();
|
case EAST -> SHAPE.east();
|
||||||
|
@ -65,11 +64,11 @@ public class GoldenTableLampBlock extends LampBlock {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BlockState rotate(BlockState state, BlockRotation rotation) {
|
public BlockState rotate(BlockState state, BlockRotation rotation) {
|
||||||
return (BlockState)state.with(FACING, rotation.rotate((Direction)state.get(FACING)));
|
return state.with(FACING, rotation.rotate(state.get(FACING)));
|
||||||
}
|
}
|
||||||
|
|
||||||
public BlockState mirror(BlockState state, BlockMirror mirror) {
|
public BlockState mirror(BlockState state, BlockMirror mirror) {
|
||||||
return state.rotate(mirror.getRotation((Direction)state.get(FACING)));
|
return state.rotate(mirror.getRotation(state.get(FACING)));
|
||||||
}
|
}
|
||||||
|
|
||||||
static {
|
static {
|
||||||
|
|
|
@ -11,7 +11,6 @@ import net.minecraft.sound.SoundCategory;
|
||||||
import net.minecraft.state.StateManager;
|
import net.minecraft.state.StateManager;
|
||||||
import net.minecraft.state.property.BooleanProperty;
|
import net.minecraft.state.property.BooleanProperty;
|
||||||
import net.minecraft.state.property.Properties;
|
import net.minecraft.state.property.Properties;
|
||||||
import net.minecraft.state.property.Property;
|
|
||||||
import net.minecraft.util.ActionResult;
|
import net.minecraft.util.ActionResult;
|
||||||
import net.minecraft.util.Hand;
|
import net.minecraft.util.Hand;
|
||||||
import net.minecraft.util.hit.BlockHitResult;
|
import net.minecraft.util.hit.BlockHitResult;
|
||||||
|
@ -65,7 +64,7 @@ public abstract class LampBlock extends Block implements Waterloggable {
|
||||||
@Override
|
@Override
|
||||||
public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) {
|
public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) {
|
||||||
if (!world.isClient) {
|
if (!world.isClient) {
|
||||||
world.setBlockState(pos, (BlockState)state.cycle(INVERTED), 2);
|
world.setBlockState(pos, state.cycle(INVERTED), 2);
|
||||||
}
|
}
|
||||||
float f = state.get(ON) ? 1f : 0.9f;
|
float f = state.get(ON) ? 1f : 0.9f;
|
||||||
world.playSound(null, pos, NSE_Sounds.SWITCH_PRESS, SoundCategory.BLOCKS, 0.6f, f);
|
world.playSound(null, pos, NSE_Sounds.SWITCH_PRESS, SoundCategory.BLOCKS, 0.6f, f);
|
||||||
|
@ -73,7 +72,7 @@ public abstract class LampBlock extends Block implements Waterloggable {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void appendProperties(StateManager.Builder<Block, BlockState> builder) {
|
protected void appendProperties(StateManager.Builder<Block, BlockState> builder) {
|
||||||
builder.add(new Property[]{ON, WATERLOGGED, INVERTED});
|
builder.add(ON, WATERLOGGED, INVERTED);
|
||||||
}
|
}
|
||||||
|
|
||||||
public BlockState getStateForNeighborUpdate(BlockState state, Direction direction, BlockState neighborState, WorldAccess world, BlockPos pos, BlockPos neighborPos) {
|
public BlockState getStateForNeighborUpdate(BlockState state, Direction direction, BlockState neighborState, WorldAccess world, BlockPos pos, BlockPos neighborPos) {
|
||||||
|
@ -94,20 +93,20 @@ public abstract class LampBlock extends Block implements Waterloggable {
|
||||||
|
|
||||||
public void neighborUpdate(BlockState state, World world, BlockPos pos, Block sourceBlock, BlockPos sourcePos, boolean notify) {
|
public void neighborUpdate(BlockState state, World world, BlockPos pos, Block sourceBlock, BlockPos sourcePos, boolean notify) {
|
||||||
if (!world.isClient) {
|
if (!world.isClient) {
|
||||||
boolean bl = (Boolean)state.get(ON);
|
boolean bl = state.get(ON);
|
||||||
if (bl != world.isReceivingRedstonePower(pos)) {
|
if (bl != world.isReceivingRedstonePower(pos)) {
|
||||||
if (bl) {
|
if (bl) {
|
||||||
world.scheduleBlockTick(pos, this, 4);
|
world.scheduleBlockTick(pos, this, 4);
|
||||||
} else {
|
} else {
|
||||||
world.setBlockState(pos, (BlockState)state.cycle(ON), 2);
|
world.setBlockState(pos, state.cycle(ON), 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void scheduledTick(BlockState state, ServerWorld world, BlockPos pos, Random random) {
|
public void scheduledTick(BlockState state, ServerWorld world, BlockPos pos, Random random) {
|
||||||
if ((Boolean)state.get(ON) && !world.isReceivingRedstonePower(pos)) {
|
if (state.get(ON) && !world.isReceivingRedstonePower(pos)) {
|
||||||
world.setBlockState(pos, (BlockState)state.cycle(ON), 2);
|
world.setBlockState(pos, state.cycle(ON), 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,6 @@ import net.minecraft.sound.SoundCategory;
|
||||||
import net.minecraft.state.StateManager;
|
import net.minecraft.state.StateManager;
|
||||||
import net.minecraft.state.property.BooleanProperty;
|
import net.minecraft.state.property.BooleanProperty;
|
||||||
import net.minecraft.state.property.Properties;
|
import net.minecraft.state.property.Properties;
|
||||||
import net.minecraft.state.property.Property;
|
|
||||||
import net.minecraft.util.ActionResult;
|
import net.minecraft.util.ActionResult;
|
||||||
import net.minecraft.util.Formatting;
|
import net.minecraft.util.Formatting;
|
||||||
import net.minecraft.util.Hand;
|
import net.minecraft.util.Hand;
|
||||||
|
@ -24,7 +23,6 @@ import net.minecraft.world.WorldView;
|
||||||
|
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import su.a71.new_soviet.NewSoviet;
|
import su.a71.new_soviet.NewSoviet;
|
||||||
import su.a71.new_soviet.blocks.lamps.LampBlock;
|
|
||||||
import su.a71.new_soviet.registration.NSE_Items;
|
import su.a71.new_soviet.registration.NSE_Items;
|
||||||
import su.a71.new_soviet.registration.NSE_Sounds;
|
import su.a71.new_soviet.registration.NSE_Sounds;
|
||||||
|
|
||||||
|
@ -47,7 +45,7 @@ public class LightBulbLampBlock extends LampBlock {
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public BlockState getPlacementState(ItemPlacementContext ctx) {
|
public BlockState getPlacementState(ItemPlacementContext ctx) {
|
||||||
return (BlockState)this.getDefaultState()
|
return this.getDefaultState()
|
||||||
.with(BROKEN, false);
|
.with(BROKEN, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -57,12 +55,12 @@ public class LightBulbLampBlock extends LampBlock {
|
||||||
if (world.isReceivingRedstonePower(pos) == state.get(INVERTED) || (NewSoviet.RANDOM.nextBetween(1, 32) == 1)) {
|
if (world.isReceivingRedstonePower(pos) == state.get(INVERTED) || (NewSoviet.RANDOM.nextBetween(1, 32) == 1)) {
|
||||||
if (!player.isCreative())
|
if (!player.isCreative())
|
||||||
player.getInventory().getMainHandStack().decrement(1);
|
player.getInventory().getMainHandStack().decrement(1);
|
||||||
world.setBlockState(pos, (BlockState)state.with(BROKEN, false));
|
world.setBlockState(pos, state.with(BROKEN, false));
|
||||||
return ActionResult.SUCCESS;
|
return ActionResult.SUCCESS;
|
||||||
} else {
|
} else {
|
||||||
player.getItemCooldownManager().set(NSE_Items.LIGHT_BULB, 10);
|
player.getItemCooldownManager().set(NSE_Items.LIGHT_BULB, 10);
|
||||||
player.sendMessage(Text.translatable("block.new_soviet.light_bulb_block.energized").formatted(Formatting.YELLOW), true);
|
player.sendMessage(Text.translatable("block.new_soviet.light_bulb_block.energized").formatted(Formatting.YELLOW), true);
|
||||||
world.playSound((PlayerEntity)null, pos.getX(), pos.getY(), pos.getZ(), NSE_Sounds.ELECTRIC_HIT, SoundCategory.AMBIENT, 0.8f, 1f);
|
world.playSound(null, pos.getX(), pos.getY(), pos.getZ(), NSE_Sounds.ELECTRIC_HIT, SoundCategory.AMBIENT, 0.8f, 1f);
|
||||||
if (!player.isCreative()) {
|
if (!player.isCreative()) {
|
||||||
player.damage(world.getDamageSources().lightningBolt(), NewSoviet.RANDOM.nextBetween(1, 4));
|
player.damage(world.getDamageSources().lightningBolt(), NewSoviet.RANDOM.nextBetween(1, 4));
|
||||||
}
|
}
|
||||||
|
@ -79,14 +77,14 @@ public class LightBulbLampBlock extends LampBlock {
|
||||||
@Override
|
@Override
|
||||||
public void onProjectileHit(World world, BlockState state, BlockHitResult hit, ProjectileEntity projectile) {
|
public void onProjectileHit(World world, BlockState state, BlockHitResult hit, ProjectileEntity projectile) {
|
||||||
if (!state.get(BROKEN)) {
|
if (!state.get(BROKEN)) {
|
||||||
world.playSound((PlayerEntity)null, hit.getBlockPos().getX(), hit.getBlockPos().getY(), hit.getBlockPos().getZ(), NSE_Sounds.LIGHT_BULB_BROKEN_SOUND, SoundCategory.NEUTRAL, 0.8f, 1f);
|
world.playSound(null, hit.getBlockPos().getX(), hit.getBlockPos().getY(), hit.getBlockPos().getZ(), NSE_Sounds.LIGHT_BULB_BROKEN_SOUND, SoundCategory.NEUTRAL, 0.8f, 1f);
|
||||||
}
|
}
|
||||||
world.setBlockState(hit.getBlockPos(), (BlockState)state.with(BROKEN, true), 2);
|
world.setBlockState(hit.getBlockPos(), state.with(BROKEN, true), 2);
|
||||||
super.onProjectileHit(world, state, hit, projectile);
|
super.onProjectileHit(world, state, hit, projectile);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void appendProperties(StateManager.Builder<Block, BlockState> builder) {
|
protected void appendProperties(StateManager.Builder<Block, BlockState> builder) {
|
||||||
builder.add(new Property[]{ON, BROKEN, WATERLOGGED, INVERTED});
|
builder.add(ON, BROKEN, WATERLOGGED, INVERTED);
|
||||||
}
|
}
|
||||||
|
|
||||||
public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) {
|
public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) {
|
||||||
|
|
|
@ -10,7 +10,7 @@ import net.minecraft.world.WorldView;
|
||||||
import su.a71.new_soviet.blocks.lamps.LampBlock;
|
import su.a71.new_soviet.blocks.lamps.LampBlock;
|
||||||
|
|
||||||
public class TableLampBlock extends LampBlock {
|
public class TableLampBlock extends LampBlock {
|
||||||
protected final VoxelShape SHAPE = getStandingShape();;
|
protected final VoxelShape SHAPE = getStandingShape();
|
||||||
|
|
||||||
public TableLampBlock(AbstractBlock.Settings settings) {
|
public TableLampBlock(AbstractBlock.Settings settings) {
|
||||||
super(settings, true, null);
|
super(settings, true, null);
|
||||||
|
|
|
@ -36,7 +36,7 @@ public class LampPostBaseBlock extends Block implements Waterloggable {
|
||||||
public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext ctx) {
|
public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext ctx) {
|
||||||
if (state.get(Properties.ATTACHED)) {
|
if (state.get(Properties.ATTACHED)) {
|
||||||
return SHAPE_ATTACHED;
|
return SHAPE_ATTACHED;
|
||||||
};
|
}
|
||||||
return SHAPE_BASE;
|
return SHAPE_BASE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,6 @@ import net.minecraft.state.StateManager;
|
||||||
import net.minecraft.state.property.BooleanProperty;
|
import net.minecraft.state.property.BooleanProperty;
|
||||||
import net.minecraft.state.property.DirectionProperty;
|
import net.minecraft.state.property.DirectionProperty;
|
||||||
import net.minecraft.state.property.Properties;
|
import net.minecraft.state.property.Properties;
|
||||||
import net.minecraft.state.property.Property;
|
|
||||||
import net.minecraft.util.BlockMirror;
|
import net.minecraft.util.BlockMirror;
|
||||||
import net.minecraft.util.BlockRotation;
|
import net.minecraft.util.BlockRotation;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
@ -37,8 +36,7 @@ public class LampPostLampBlock extends Block implements Waterloggable {
|
||||||
}
|
}
|
||||||
|
|
||||||
public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) {
|
public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) {
|
||||||
Direction dir = state.get(FACING);
|
return switch (state.get(FACING)) {
|
||||||
return switch (dir) {
|
|
||||||
case NORTH -> SHAPE.north();
|
case NORTH -> SHAPE.north();
|
||||||
case SOUTH -> SHAPE.south();
|
case SOUTH -> SHAPE.south();
|
||||||
case EAST -> SHAPE.east();
|
case EAST -> SHAPE.east();
|
||||||
|
@ -70,7 +68,7 @@ public class LampPostLampBlock extends Block implements Waterloggable {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void appendProperties(StateManager.Builder<Block, BlockState> builder) {
|
protected void appendProperties(StateManager.Builder<Block, BlockState> builder) {
|
||||||
builder.add(new Property[]{WATERLOGGED, Properties.HORIZONTAL_FACING});
|
builder.add(WATERLOGGED, Properties.HORIZONTAL_FACING);
|
||||||
}
|
}
|
||||||
|
|
||||||
public BlockState getStateForNeighborUpdate(BlockState state, Direction direction, BlockState neighborState, WorldAccess world, BlockPos pos, BlockPos neighborPos) {
|
public BlockState getStateForNeighborUpdate(BlockState state, Direction direction, BlockState neighborState, WorldAccess world, BlockPos pos, BlockPos neighborPos) {
|
||||||
|
@ -90,11 +88,11 @@ public class LampPostLampBlock extends Block implements Waterloggable {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BlockState rotate(BlockState state, BlockRotation rotation) {
|
public BlockState rotate(BlockState state, BlockRotation rotation) {
|
||||||
return (BlockState)state.with(FACING, rotation.rotate((Direction)state.get(FACING)));
|
return state.with(FACING, rotation.rotate(state.get(FACING)));
|
||||||
}
|
}
|
||||||
|
|
||||||
public BlockState mirror(BlockState state, BlockMirror mirror) {
|
public BlockState mirror(BlockState state, BlockMirror mirror) {
|
||||||
return state.rotate(mirror.getRotation((Direction)state.get(FACING)));
|
return state.rotate(mirror.getRotation(state.get(FACING)));
|
||||||
}
|
}
|
||||||
|
|
||||||
static {
|
static {
|
||||||
|
|
|
@ -171,9 +171,9 @@ public class BlockLootTables extends FabricBlockLootTableProvider {
|
||||||
addDrop(NSE_Blocks.MEAT_EYE);
|
addDrop(NSE_Blocks.MEAT_EYE);
|
||||||
addDrop(NSE_Blocks.MEAT_TEETH);
|
addDrop(NSE_Blocks.MEAT_TEETH);
|
||||||
addDrop(NSE_Blocks.CHISELED_BIRCH_DOOR, doorDrops(NSE_Blocks.CHISELED_BIRCH_DOOR));
|
addDrop(NSE_Blocks.CHISELED_BIRCH_DOOR, doorDrops(NSE_Blocks.CHISELED_BIRCH_DOOR));
|
||||||
addDrop(NSE_Blocks.CHISELED_MANGROVE_DOOR, doorDrops(NSE_Blocks.CHISELED_MANGROVE_DOOR));;
|
addDrop(NSE_Blocks.CHISELED_MANGROVE_DOOR, doorDrops(NSE_Blocks.CHISELED_MANGROVE_DOOR));
|
||||||
addDrop(NSE_Blocks.CHISELED_OAK_DOOR, doorDrops(NSE_Blocks.CHISELED_OAK_DOOR));
|
addDrop(NSE_Blocks.CHISELED_OAK_DOOR, doorDrops(NSE_Blocks.CHISELED_OAK_DOOR));
|
||||||
addDrop(NSE_Blocks.CHISELED_SPRUCE_DOOR, doorDrops(NSE_Blocks.CHISELED_SPRUCE_DOOR));;
|
addDrop(NSE_Blocks.CHISELED_SPRUCE_DOOR, doorDrops(NSE_Blocks.CHISELED_SPRUCE_DOOR));
|
||||||
addDrop(NSE_Blocks.BEIGE_WALLPAPER);
|
addDrop(NSE_Blocks.BEIGE_WALLPAPER);
|
||||||
addDrop(NSE_Blocks.BROWN_WALLPAPER);
|
addDrop(NSE_Blocks.BROWN_WALLPAPER);
|
||||||
addDrop(NSE_Blocks.GREEN_WALLPAPER);
|
addDrop(NSE_Blocks.GREEN_WALLPAPER);
|
||||||
|
|
|
@ -39,7 +39,7 @@ public class ModelGenerator extends FabricModelProvider {
|
||||||
public void registerCube(BlockStateModelGenerator blockStateModelGenerator, Block block, String texturePath) {
|
public void registerCube(BlockStateModelGenerator blockStateModelGenerator, Block block, String texturePath) {
|
||||||
TextureMap textureMap = TextureMap.all(Registries.BLOCK.getId(block).withPath((path) -> "block/" + texturePath + "/" + path));
|
TextureMap textureMap = TextureMap.all(Registries.BLOCK.getId(block).withPath((path) -> "block/" + texturePath + "/" + path));
|
||||||
Identifier model_id = Models.CUBE_ALL.upload(block, textureMap, blockStateModelGenerator.modelCollector);
|
Identifier model_id = Models.CUBE_ALL.upload(block, textureMap, blockStateModelGenerator.modelCollector);
|
||||||
blockStateModelGenerator.blockStateCollector.accept(blockStateModelGenerator.createSingletonBlockState(block, model_id));
|
blockStateModelGenerator.blockStateCollector.accept(BlockStateModelGenerator.createSingletonBlockState(block, model_id));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void registerSlabStairs(BlockStateModelGenerator blockStateModelGenerator, Block parent, StairsBlock stairs, SlabBlock slab, String texturePath) {
|
public void registerSlabStairs(BlockStateModelGenerator blockStateModelGenerator, Block parent, StairsBlock stairs, SlabBlock slab, String texturePath) {
|
||||||
|
|
|
@ -19,11 +19,9 @@ import net.minecraft.util.Hand;
|
||||||
import net.minecraft.util.TypedActionResult;
|
import net.minecraft.util.TypedActionResult;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import su.a71.new_soviet.NewSoviet;
|
import su.a71.new_soviet.NewSoviet;
|
||||||
import su.a71.new_soviet.registration.NSE_Items;
|
|
||||||
import su.a71.new_soviet.registration.NSE_Sounds;
|
import su.a71.new_soviet.registration.NSE_Sounds;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
// FIXME: 26.08.2023 This whole class is making my head hurt, fix!!!
|
// FIXME: 26.08.2023 This whole class is making my head hurt, fix!!!
|
||||||
public class CigaretteItem extends Item {
|
public class CigaretteItem extends Item {
|
||||||
|
|
|
@ -34,13 +34,11 @@ public class DiceItem extends Item {
|
||||||
if (!world.isClient) {
|
if (!world.isClient) {
|
||||||
StringBuilder output = new StringBuilder();
|
StringBuilder output = new StringBuilder();
|
||||||
for (var i = 0; i < itemStack.getCount(); i++) {
|
for (var i = 0; i < itemStack.getCount(); i++) {
|
||||||
world.playSound((PlayerEntity)null, user.getX(), user.getY(), user.getZ(), NSE_Sounds.DICE_SOUND, SoundCategory.NEUTRAL, 0.5F, 0.4F / (world.getRandom().nextFloat() * 0.4F + 0.8F));
|
world.playSound(null, user.getX(), user.getY(), user.getZ(), NSE_Sounds.DICE_SOUND, SoundCategory.NEUTRAL, 0.5F, 0.4F / (world.getRandom().nextFloat() * 0.4F + 0.8F));
|
||||||
output.append(NewSoviet.RANDOM.nextBetween(1, this.getSides())).append(", ");
|
output.append(NewSoviet.RANDOM.nextBetween(1, this.getSides())).append(", ");
|
||||||
}
|
}
|
||||||
if (Config.INSTANCE.shouldAnnounceDice()) {
|
if (Config.INSTANCE.shouldAnnounceDice()) {
|
||||||
world.getPlayers().forEach(player -> {
|
world.getPlayers().forEach(player -> player.sendMessage(Text.translatable(itemStack.getCount() == 1 ? "item.new_soviet.dice.thrown_announce" : "item.new_soviet.dice.thrown_multiple_announce", user.getDisplayName()).append(" " + output.subSequence(0, output.length() - 2)), false));
|
||||||
player.sendMessage(Text.translatable(itemStack.getCount() == 1 ? "item.new_soviet.dice.thrown_announce" : "item.new_soviet.dice.thrown_multiple_announce", user.getDisplayName()).append(" " + output.subSequence(0, output.length() - 2)), false);
|
|
||||||
});
|
|
||||||
} else {
|
} else {
|
||||||
user.sendMessage(Text.translatable(itemStack.getCount() == 1 ? "item.new_soviet.dice.thrown" : "item.new_soviet.dice.thrown_multiple").append(" " + output.subSequence(0, output.length() - 2)), true);
|
user.sendMessage(Text.translatable(itemStack.getCount() == 1 ? "item.new_soviet.dice.thrown" : "item.new_soviet.dice.thrown_multiple").append(" " + output.subSequence(0, output.length() - 2)), true);
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,7 @@ import net.minecraft.util.Identifier;
|
||||||
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
import su.a71.new_soviet.NewSoviet;
|
import su.a71.new_soviet.NewSoviet;
|
||||||
|
|
||||||
public class NSE_BaseRegistration {
|
public class NSE_BaseRegistration {
|
||||||
|
@ -28,9 +29,7 @@ public class NSE_BaseRegistration {
|
||||||
|
|
||||||
if (tab == null) return; // Sanity check for hidden items
|
if (tab == null) return; // Sanity check for hidden items
|
||||||
Optional<RegistryKey<ItemGroup>> key = Registries.ITEM_GROUP.getKey(tab);
|
Optional<RegistryKey<ItemGroup>> key = Registries.ITEM_GROUP.getKey(tab);
|
||||||
key.ifPresent(itemGroupRegistryKey -> ItemGroupEvents.modifyEntriesEvent(itemGroupRegistryKey).register(content -> {
|
key.ifPresent(itemGroupRegistryKey -> ItemGroupEvents.modifyEntriesEvent(itemGroupRegistryKey).register(content -> content.add(supplier.get())));
|
||||||
content.add(supplier.get());
|
|
||||||
}));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void registerBlock(String name, Supplier<? extends Block> supplier, ItemGroup tab) {
|
public static void registerBlock(String name, Supplier<? extends Block> supplier, ItemGroup tab) {
|
||||||
|
@ -44,6 +43,8 @@ public class NSE_BaseRegistration {
|
||||||
return Registry.register(Registries.SOUND_EVENT, id, SoundEvent.of(id));
|
return Registry.register(Registries.SOUND_EVENT, id, SoundEvent.of(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@SuppressWarnings({"unchecked", "rawtypes"})
|
||||||
public static <T extends BlockEntityType> T registerBlockEntity(String name, FabricBlockEntityTypeBuilder.Factory<? extends BlockEntity> factory, net.minecraft.block.Block... blocks) {
|
public static <T extends BlockEntityType> T registerBlockEntity(String name, FabricBlockEntityTypeBuilder.Factory<? extends BlockEntity> factory, net.minecraft.block.Block... blocks) {
|
||||||
return (T) Registry.register(
|
return (T) Registry.register(
|
||||||
Registries.BLOCK_ENTITY_TYPE,
|
Registries.BLOCK_ENTITY_TYPE,
|
||||||
|
|
|
@ -19,13 +19,13 @@ public enum NSE_ToolMaterials implements ToolMaterial
|
||||||
private final int enchantability;
|
private final int enchantability;
|
||||||
private final Lazy<Ingredient> repairIngredient;
|
private final Lazy<Ingredient> repairIngredient;
|
||||||
|
|
||||||
private NSE_ToolMaterials(int miningLevel, int itemDurability, float miningSpeed, float attackDamage, int enchantability, Supplier<Ingredient> repairIngredient) {
|
NSE_ToolMaterials(int miningLevel, int itemDurability, float miningSpeed, float attackDamage, int enchantability, Supplier<Ingredient> repairIngredient) {
|
||||||
this.miningLevel = miningLevel;
|
this.miningLevel = miningLevel;
|
||||||
this.itemDurability = itemDurability;
|
this.itemDurability = itemDurability;
|
||||||
this.miningSpeed = miningSpeed;
|
this.miningSpeed = miningSpeed;
|
||||||
this.attackDamage = attackDamage;
|
this.attackDamage = attackDamage;
|
||||||
this.enchantability = enchantability;
|
this.enchantability = enchantability;
|
||||||
this.repairIngredient = new Lazy<Ingredient>(repairIngredient);
|
this.repairIngredient = new Lazy<>(repairIngredient);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -96,7 +96,7 @@ public class Shapes {
|
||||||
}
|
}
|
||||||
|
|
||||||
public VoxelShape west() {
|
public VoxelShape west() {
|
||||||
VoxelShape shape = Block.createCuboidShape(0, 0,0,0,0,0);;
|
VoxelShape shape = Block.createCuboidShape(0, 0,0,0,0,0);
|
||||||
for (VoxelShape o : ShapesListW) {
|
for (VoxelShape o : ShapesListW) {
|
||||||
shape = VoxelShapes.union(shape, o);
|
shape = VoxelShapes.union(shape, o);
|
||||||
}
|
}
|
||||||
|
@ -104,7 +104,7 @@ public class Shapes {
|
||||||
}
|
}
|
||||||
|
|
||||||
public VoxelShape south() {
|
public VoxelShape south() {
|
||||||
VoxelShape shape = Block.createCuboidShape(0, 0,0,0,0,0);;
|
VoxelShape shape = Block.createCuboidShape(0, 0,0,0,0,0);
|
||||||
for (VoxelShape shapesList : ShapesListS) {
|
for (VoxelShape shapesList : ShapesListS) {
|
||||||
shape = VoxelShapes.union(shape, shapesList);
|
shape = VoxelShapes.union(shape, shapesList);
|
||||||
}
|
}
|
||||||
|
@ -112,7 +112,7 @@ public class Shapes {
|
||||||
}
|
}
|
||||||
|
|
||||||
public VoxelShape east() {
|
public VoxelShape east() {
|
||||||
VoxelShape shape = Block.createCuboidShape(0, 0,0,0,0,0);;
|
VoxelShape shape = Block.createCuboidShape(0, 0,0,0,0,0);
|
||||||
for (VoxelShape o : ShapesListE) {
|
for (VoxelShape o : ShapesListE) {
|
||||||
shape = VoxelShapes.union(shape, o);
|
shape = VoxelShapes.union(shape, o);
|
||||||
}
|
}
|
||||||
|
@ -148,7 +148,7 @@ public class Shapes {
|
||||||
}
|
}
|
||||||
|
|
||||||
public VoxelShape west() {
|
public VoxelShape west() {
|
||||||
VoxelShape shape = Block.createCuboidShape(0, 0,0,0,0,0);;
|
VoxelShape shape = Block.createCuboidShape(0, 0,0,0,0,0);
|
||||||
for (VoxelShape o : ShapesListW) {
|
for (VoxelShape o : ShapesListW) {
|
||||||
shape = VoxelShapes.union(shape, o);
|
shape = VoxelShapes.union(shape, o);
|
||||||
}
|
}
|
||||||
|
@ -156,7 +156,7 @@ public class Shapes {
|
||||||
}
|
}
|
||||||
|
|
||||||
public VoxelShape south() {
|
public VoxelShape south() {
|
||||||
VoxelShape shape = Block.createCuboidShape(0, 0,0,0,0,0);;
|
VoxelShape shape = Block.createCuboidShape(0, 0,0,0,0,0);
|
||||||
for (VoxelShape shapesList : ShapesListS) {
|
for (VoxelShape shapesList : ShapesListS) {
|
||||||
shape = VoxelShapes.union(shape, shapesList);
|
shape = VoxelShapes.union(shape, shapesList);
|
||||||
}
|
}
|
||||||
|
@ -164,7 +164,7 @@ public class Shapes {
|
||||||
}
|
}
|
||||||
|
|
||||||
public VoxelShape east() {
|
public VoxelShape east() {
|
||||||
VoxelShape shape = Block.createCuboidShape(0, 0,0,0,0,0);;
|
VoxelShape shape = Block.createCuboidShape(0, 0,0,0,0,0);
|
||||||
for (VoxelShape o : ShapesListE) {
|
for (VoxelShape o : ShapesListE) {
|
||||||
shape = VoxelShapes.union(shape, o);
|
shape = VoxelShapes.union(shape, o);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue