diff --git a/src/main/java/ru/dbotthepony/mc/otm/block/BlockBatteryBank.java b/src/main/java/ru/dbotthepony/mc/otm/block/BlockBatteryBank.java index bb2a23cd9..d44ea14ae 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/block/BlockBatteryBank.java +++ b/src/main/java/ru/dbotthepony/mc/otm/block/BlockBatteryBank.java @@ -2,12 +2,17 @@ package ru.dbotthepony.mc.otm.block; import net.minecraft.core.BlockPos; import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.EntityBlock; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityTicker; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; +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; import ru.dbotthepony.mc.otm.Registry; import ru.dbotthepony.mc.otm.block.entity.BlockEntityBatteryBank; @@ -30,4 +35,78 @@ public class BlockBatteryBank extends BlockMatteryRotatable implements EntityBlo public boolean faceToPlayer(BlockPlaceContext context) { return false; } + + public static final VoxelShape SHAPE; + + @Override + public VoxelShape getShape(BlockState p_60555_, BlockGetter p_60556_, BlockPos p_60557_, CollisionContext p_60558_) { + return SHAPE; + } + + static { + VoxelShape final_shape = Shapes.box(0.125, 0.125, 0.125, 0.875, 0.875, 0.875); + + // вертикальные балки + final_shape = Shapes.joinUnoptimized(final_shape, Shapes.box( + 0, 0, 0, + 0.125, 1, 0.125 + ), BooleanOp.OR); + + final_shape = Shapes.joinUnoptimized(final_shape, Shapes.box( + 0, 0, 0.875, + 0.125, 1, 1 + ), BooleanOp.OR); + + final_shape = Shapes.joinUnoptimized(final_shape, Shapes.box( + 0.875, 0, 0, + 1, 1, 0.125 + ), BooleanOp.OR); + + final_shape = Shapes.joinUnoptimized(final_shape, Shapes.box( + 0.875, 0, 0.875, + 1, 1, 1 + ), BooleanOp.OR); + + // горизонтальные балки сверху + final_shape = Shapes.joinUnoptimized(final_shape, Shapes.box( + 0, 0.875, 0, + 0.125, 1, 1 + ), BooleanOp.OR); + + final_shape = Shapes.joinUnoptimized(final_shape, Shapes.box( + 0, 0.875, 0, + 1, 1, 0.125 + ), BooleanOp.OR); + + final_shape = Shapes.joinUnoptimized(final_shape, Shapes.box( + 0.875, 0.875, 0, + 1, 1, 1 + ), BooleanOp.OR); + + final_shape = Shapes.joinUnoptimized(final_shape, Shapes.box( + 0, 0.875, 0.875, + 1, 1, 1 + ), BooleanOp.OR); + + // горизонтальные балки снизу + final_shape = Shapes.joinUnoptimized(final_shape, Shapes.box( + 0, 0, 0, + 0.125, 0.125, 1 + ), BooleanOp.OR); + + final_shape = Shapes.joinUnoptimized(final_shape, Shapes.box( + 0, 0, 0, + 1, 0.125, 0.125 + ), BooleanOp.OR); + + final_shape = Shapes.joinUnoptimized(final_shape, Shapes.box( + 0.875, 0, 0, + 1, 0.125, 1 + ), BooleanOp.OR); + + SHAPE = Shapes.joinUnoptimized(final_shape, Shapes.box( + 0, 0, 0.875, + 1, 0.125, 1 + ), BooleanOp.OR); + } } diff --git a/src/main/java/ru/dbotthepony/mc/otm/block/BlockMatterCapacitorBank.java b/src/main/java/ru/dbotthepony/mc/otm/block/BlockMatterCapacitorBank.java index 97dffe3bb..ee3c52f14 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/block/BlockMatterCapacitorBank.java +++ b/src/main/java/ru/dbotthepony/mc/otm/block/BlockMatterCapacitorBank.java @@ -1,9 +1,13 @@ package ru.dbotthepony.mc.otm.block; import net.minecraft.core.BlockPos; +import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.block.EntityBlock; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.Shapes; +import net.minecraft.world.phys.shapes.VoxelShape; import ru.dbotthepony.mc.otm.block.entity.BlockEntityMatterCapacitorBank; import javax.annotation.Nullable; @@ -14,4 +18,9 @@ public class BlockMatterCapacitorBank extends BlockMatteryRotatable implements E public BlockEntity newBlockEntity(BlockPos blockPos, BlockState blockState) { return new BlockEntityMatterCapacitorBank(blockPos, blockState); } + + @Override + public VoxelShape getShape(BlockState p_60555_, BlockGetter p_60556_, BlockPos p_60557_, CollisionContext p_60558_) { + return BlockBatteryBank.SHAPE; + } } diff --git a/src/main/resources/assets/overdrive_that_matters/lang/en_us.json b/src/main/resources/assets/overdrive_that_matters/lang/en_us.json index 0bfbc7a43..b580561ea 100644 --- a/src/main/resources/assets/overdrive_that_matters/lang/en_us.json +++ b/src/main/resources/assets/overdrive_that_matters/lang/en_us.json @@ -47,6 +47,7 @@ "block.overdrive_that_matters.battery_bank": "Battery bank", "block.overdrive_that_matters.matter_decomposer": "Matter decomposer", "block.overdrive_that_matters.matter_capacitor_bank": "Matter capacitor bank", + "block.overdrive_that_matters.matter_cable": "Matter network cable", "item.overdrive_that_matters.pill_android": "Android pill", "item.overdrive_that_matters.pill_humane": "Humane pill",