From ac3f2ba85c8300a1099072b1f57a2b535886bf4d Mon Sep 17 00:00:00 2001 From: zelophed Date: Tue, 10 Dec 2019 17:45:42 +0100 Subject: [PATCH] finishing touches to refactor new shapes for cannon and schematic table viewing shapes for mixer and press now differ from regular shape to allow for levers being placed on their side entirely removed economy package Signed-off-by: Zelophed --- .../create/foundation/utility/AllShapes.java | 31 ++++-- .../foundation/utility/VoxelShaper.java | 3 +- .../contraptions/receivers/DrillBlock.java | 2 +- .../receivers/MechanicalMixerBlock.java | 6 +- .../receivers/MechanicalPressBlock.java | 6 +- .../contraptions/receivers/SawBlock.java | 2 +- .../contraptions/relays/belt/BeltBlock.java | 4 +- .../contraptions/relays/belt/BeltShapes.java | 33 +++--- .../modules/economy/ShopShelfBlock.java | 101 ------------------ .../modules/economy/ShopShelfContainer.java | 25 ----- .../modules/economy/ShopShelfScreen.java | 19 ---- .../modules/economy/ShopShelfTileEntity.java | 62 ----------- .../schematics/block/SchematicTableBlock.java | 13 +++ .../schematics/block/SchematicannonBlock.java | 8 ++ 14 files changed, 74 insertions(+), 241 deletions(-) delete mode 100644 src/main/java/com/simibubi/create/modules/economy/ShopShelfBlock.java delete mode 100644 src/main/java/com/simibubi/create/modules/economy/ShopShelfContainer.java delete mode 100644 src/main/java/com/simibubi/create/modules/economy/ShopShelfScreen.java delete mode 100644 src/main/java/com/simibubi/create/modules/economy/ShopShelfTileEntity.java diff --git a/src/main/java/com/simibubi/create/foundation/utility/AllShapes.java b/src/main/java/com/simibubi/create/foundation/utility/AllShapes.java index b9f1cfa32..6a7c0663a 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/AllShapes.java +++ b/src/main/java/com/simibubi/create/foundation/utility/AllShapes.java @@ -4,6 +4,7 @@ import net.minecraft.block.Blocks; import net.minecraft.block.DirectionalBlock; import net.minecraft.block.PistonHeadBlock; import net.minecraft.util.Direction; +import net.minecraft.util.math.shapes.IBooleanFunction; import net.minecraft.util.math.shapes.VoxelShape; import net.minecraft.util.math.shapes.VoxelShapes; @@ -12,7 +13,9 @@ import static net.minecraft.block.Block.makeCuboidShape; public class AllShapes { public static final VoxelShaper - SHORT_CASING = VoxelShaper.forDirectional(makeCuboidShape(0, 0, 0, 16, 12, 16), Direction.UP), + SHORT_CASING_14_VOXEL = VoxelShaper.forDirectional(makeCuboidShape(0, 0, 0, 16, 14, 16), Direction.UP), + SHORT_CASING_12_VOXEL = VoxelShaper.forDirectional(makeCuboidShape(0, 0, 0, 16, 12, 16), Direction.UP), + SHORT_CASING_11_VOXEL = VoxelShaper.forDirectional(makeCuboidShape(0, 0, 0, 16, 11, 16), Direction.UP), HARVESTER_BASE = VoxelShaper.forHorizontal(makeCuboidShape(0, 2, 0, 16, 14, 3), Direction.SOUTH), MOTOR_BLOCK = VoxelShaper.forHorizontal(makeCuboidShape(0, 3, 3, 16, 13, 13), Direction.EAST), FOUR_VOXEL_POLE = VoxelShaper.forDirectionalAxis(makeCuboidShape(6, 0, 6, 10, 16, 10), Direction.Axis.Y), @@ -37,7 +40,7 @@ public class AllShapes { makeCuboidShape(-2, 0, 1, 18, 13, 15)), MECHANICAL_PISTON_HEAD_SHAPE_UP = Blocks.PISTON_HEAD.getShape(Blocks.PISTON_HEAD.getStateContainer().getBaseState().with(DirectionalBlock.FACING, Direction.UP).with(PistonHeadBlock.SHORT, true), null, null, null), MECHANICAL_PISTON_EXTENDED_SHAPE_UP = VoxelShapes.or( - SHORT_CASING.get(Direction.UP), + SHORT_CASING_12_VOXEL.get(Direction.UP), FOUR_VOXEL_POLE.get(Direction.Axis.Y)), SMALL_GEAR_SHAPE = makeCuboidShape(2, 6, 2, 14, 10, 14), LARGE_GEAR_SHAPE = makeCuboidShape(0, 6, 0, 16, 10, 16), @@ -50,7 +53,11 @@ public class AllShapes { LOGISTICS_TABLE_SLOPE_SOUTH = VoxelShapes.or( makeCuboidShape(0, 10D, 15, 16, 14, 10.667), makeCuboidShape(0, 12, 10.667, 16, 16, 6.333), - makeCuboidShape(0, 14, 6.333, 16, 18, 2)) + makeCuboidShape(0, 14, 6.333, 16, 18, 2)), + SCHEMATICS_TABLE_SLOPE_SOUTH = VoxelShapes.or( + makeCuboidShape(0, 10, 16, 16, 14, 11), + makeCuboidShape(0, 12, 11, 16, 16, 6), + makeCuboidShape(0, 14, 6, 16, 18, 1)) ; @@ -59,14 +66,21 @@ public class AllShapes { makeCuboidShape(0, 0, 0, 16, 2, 16), makeCuboidShape(1, 1, 1, 15, 15, 15), makeCuboidShape(0, 14, 0, 16, 16, 16)), - BASIN_BLOCK_SHAPE = makeCuboidShape(0, 0, 0, 16, 13, 16),//todo maybe + BASIN_BLOCK_SHAPE = makeCuboidShape(0, 0, 0, 16, 13, 16),//todo can be improved when someone finds the time :D CRUSHING_WHEEL_COLLISION_SHAPE = makeCuboidShape(0, 0, 0, 16, 22, 16), - MECHANICAL_PRESS_SHAPE = VoxelShapes.fullCube(),//todo maybe + MECHANICAL_PROCESSOR_SHAPE = VoxelShapes.combineAndSimplify( + VoxelShapes.fullCube(), + makeCuboidShape(4, 0, 4, 12, 16, 12), + IBooleanFunction.ONLY_FIRST), TURNTABLE_SHAPE = VoxelShapes.or( makeCuboidShape(1, 6, 1, 15, 8, 15), makeCuboidShape(5, 0, 5, 11, 6, 11)), CRATE_BLOCK_SHAPE = makeCuboidShape(1, 0, 1, 15, 14, 15), - LOGISTICS_TABLE_BASE = TABLE_POLE_SHAPE + LOGISTICS_TABLE_BASE = TABLE_POLE_SHAPE, + BELT_COLLISION_MASK = makeCuboidShape(0, 0, 0, 16, 19, 16), + SCHEMATICANNON_SHAPE = VoxelShapes.or( + makeCuboidShape(1, 0, 1, 15, 8, 15), + makeCuboidShape(0.5, 8, 0.5, 15.5, 11, 15.5)) ; @@ -78,7 +92,7 @@ public class AllShapes { LOGISTICAL_CASING_CAP = VoxelShaper.forDirectional(LOGISTICAL_CASING_CAP_SHAPE, Direction.UP), CART_ASSEMBLER = VoxelShaper.forHorizontalAxis(CART_ASSEMBLER_SHAPE, Direction.SOUTH), MECHANICAL_PISTON_HEAD = VoxelShaper.forDirectional(MECHANICAL_PISTON_HEAD_SHAPE_UP, Direction.UP), - MECHANICAL_PISTON = SHORT_CASING, + MECHANICAL_PISTON = SHORT_CASING_12_VOXEL, MECHANICAL_PISTON_EXTENDED = VoxelShaper.forDirectional(MECHANICAL_PISTON_EXTENDED_SHAPE_UP, Direction.UP), SMALL_GEAR = VoxelShaper.forDirectionalAxis(VoxelShapes.or(SMALL_GEAR_SHAPE, SIX_VOXEL_POLE.get(Direction.Axis.Y)), Direction.Axis.Y), LARGE_GEAR = VoxelShaper.forDirectionalAxis(VoxelShapes.or(LARGE_GEAR_SHAPE, SIX_VOXEL_POLE.get(Direction.Axis.Y)), Direction.Axis.Y), @@ -86,7 +100,8 @@ public class AllShapes { REDSTONE_BRIDGE = VoxelShaper.forHorizontal(VERTICAL_TABLET_SHAPE_SOUTH, Direction.SOUTH).withVerticalShapes(LOGISTICAL_CONTROLLER.get(Direction.UP)), LOGISTICAL_INDEX = REDSTONE_BRIDGE, PACKAGE_FUNNEL = VoxelShaper.forDirectional(PACKAGE_FUNNEL_SHAPE_UP, Direction.UP), - LOGISTICS_TABLE = VoxelShaper.forHorizontal(VoxelShapes.or(TABLE_POLE_SHAPE, LOGISTICS_TABLE_SLOPE_SOUTH), Direction.SOUTH) + LOGISTICS_TABLE = VoxelShaper.forHorizontal(VoxelShapes.or(TABLE_POLE_SHAPE, LOGISTICS_TABLE_SLOPE_SOUTH), Direction.SOUTH), + SCHEMATICS_TABLE = VoxelShaper.forDirectional(VoxelShapes.or(TABLE_POLE_SHAPE, SCHEMATICS_TABLE_SLOPE_SOUTH), Direction.SOUTH) ; diff --git a/src/main/java/com/simibubi/create/foundation/utility/VoxelShaper.java b/src/main/java/com/simibubi/create/foundation/utility/VoxelShaper.java index 73ad591af..b043a6059 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/VoxelShaper.java +++ b/src/main/java/com/simibubi/create/foundation/utility/VoxelShaper.java @@ -35,7 +35,7 @@ public class VoxelShaper { return forDirectionsWithRotation(shape, facing, Arrays.asList(Direction.SOUTH, Direction.EAST), new HorizontalRotationValues()); } - public static VoxelShaper forRotatedPillar(VoxelShape zShape) {//dunno what this was intended for + public static VoxelShaper forRotatedPillar(VoxelShape zShape) {//todo dunno what this was intended for VoxelShaper voxelShaper = new VoxelShaper(); for (Axis axis : Axis.values()) { Direction facing = axisAsFace(axis); @@ -71,7 +71,6 @@ public class VoxelShaper { VoxelShaper voxelShaper = new VoxelShaper(); for (Direction dir : directions) { voxelShaper.shapes.put(dir, rotate(shape, facing, dir, rotationValues)); - //voxelShaper.shapes.put(dir, rotatedCopy(shape, rotationValues.apply(dir))); } return voxelShaper; } diff --git a/src/main/java/com/simibubi/create/modules/contraptions/receivers/DrillBlock.java b/src/main/java/com/simibubi/create/modules/contraptions/receivers/DrillBlock.java index d446f0d73..ac837c481 100644 --- a/src/main/java/com/simibubi/create/modules/contraptions/receivers/DrillBlock.java +++ b/src/main/java/com/simibubi/create/modules/contraptions/receivers/DrillBlock.java @@ -49,7 +49,7 @@ public class DrillBlock extends DirectionalKineticBlock @Override public VoxelShape getShape(BlockState state, IBlockReader worldIn, BlockPos pos, ISelectionContext context) { - return AllShapes.SHORT_CASING.get(state.get(FACING)); + return AllShapes.SHORT_CASING_12_VOXEL.get(state.get(FACING)); } @Override diff --git a/src/main/java/com/simibubi/create/modules/contraptions/receivers/MechanicalMixerBlock.java b/src/main/java/com/simibubi/create/modules/contraptions/receivers/MechanicalMixerBlock.java index 89c729d0c..e8ccfde1a 100644 --- a/src/main/java/com/simibubi/create/modules/contraptions/receivers/MechanicalMixerBlock.java +++ b/src/main/java/com/simibubi/create/modules/contraptions/receivers/MechanicalMixerBlock.java @@ -9,6 +9,7 @@ import com.simibubi.create.modules.contraptions.base.KineticBlock; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; +import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.BlockItem; import net.minecraft.item.BlockItemUseContext; import net.minecraft.tileentity.TileEntity; @@ -45,7 +46,10 @@ public class MechanicalMixerBlock extends KineticBlock @Override public VoxelShape getShape(BlockState state, IBlockReader worldIn, BlockPos pos, ISelectionContext context) { - return AllShapes.MECHANICAL_PRESS_SHAPE; + if (context.getEntity() instanceof PlayerEntity) + return AllShapes.SHORT_CASING_14_VOXEL.get(Direction.DOWN); + + return AllShapes.MECHANICAL_PROCESSOR_SHAPE; } @Override diff --git a/src/main/java/com/simibubi/create/modules/contraptions/receivers/MechanicalPressBlock.java b/src/main/java/com/simibubi/create/modules/contraptions/receivers/MechanicalPressBlock.java index b165983cd..59a100cd2 100644 --- a/src/main/java/com/simibubi/create/modules/contraptions/receivers/MechanicalPressBlock.java +++ b/src/main/java/com/simibubi/create/modules/contraptions/receivers/MechanicalPressBlock.java @@ -22,6 +22,7 @@ import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; import net.minecraft.block.HorizontalBlock; +import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.BlockItemUseContext; import net.minecraft.item.ItemStack; import net.minecraft.state.StateContainer.Builder; @@ -44,7 +45,10 @@ public class MechanicalPressBlock extends HorizontalKineticBlock @Override public VoxelShape getShape(BlockState state, IBlockReader worldIn, BlockPos pos, ISelectionContext context) { - return AllShapes.MECHANICAL_PRESS_SHAPE; + if (context.getEntity() instanceof PlayerEntity) + return AllShapes.SHORT_CASING_14_VOXEL.get(Direction.DOWN); + + return AllShapes.MECHANICAL_PROCESSOR_SHAPE; } @Override diff --git a/src/main/java/com/simibubi/create/modules/contraptions/receivers/SawBlock.java b/src/main/java/com/simibubi/create/modules/contraptions/receivers/SawBlock.java index 623f9a614..a7534c611 100644 --- a/src/main/java/com/simibubi/create/modules/contraptions/receivers/SawBlock.java +++ b/src/main/java/com/simibubi/create/modules/contraptions/receivers/SawBlock.java @@ -82,7 +82,7 @@ public class SawBlock extends DirectionalAxisKineticBlock @Override public VoxelShape getShape(BlockState state, IBlockReader worldIn, BlockPos pos, ISelectionContext context) { - return AllShapes.SHORT_CASING.get(state.get(FACING)); + return AllShapes.SHORT_CASING_12_VOXEL.get(state.get(FACING)); } @Override diff --git a/src/main/java/com/simibubi/create/modules/contraptions/relays/belt/BeltBlock.java b/src/main/java/com/simibubi/create/modules/contraptions/relays/belt/BeltBlock.java index 330d3e976..50af383cf 100644 --- a/src/main/java/com/simibubi/create/modules/contraptions/relays/belt/BeltBlock.java +++ b/src/main/java/com/simibubi/create/modules/contraptions/relays/belt/BeltBlock.java @@ -8,6 +8,7 @@ import com.simibubi.create.AllBlocks; import com.simibubi.create.AllItems; import com.simibubi.create.foundation.block.IWithTileEntity; import com.simibubi.create.foundation.block.IWithoutBlockItem; +import com.simibubi.create.foundation.utility.AllShapes; import com.simibubi.create.foundation.utility.Lang; import com.simibubi.create.modules.contraptions.base.HorizontalKineticBlock; import com.simibubi.create.modules.contraptions.relays.belt.BeltMovementHandler.TransportedEntityInfo; @@ -55,7 +56,6 @@ public class BeltBlock extends HorizontalKineticBlock implements IWithoutBlockIt public static final IProperty SLOPE = EnumProperty.create("slope", Slope.class); public static final IProperty PART = EnumProperty.create("part", Part.class); public static final BooleanProperty CASING = BooleanProperty.create("casing"); - private final VoxelShape collisionMask = makeCuboidShape(0, 0, 0, 16, 19, 16);//todo review public BeltBlock() { super(Properties.from(Blocks.BROWN_WOOL)); @@ -288,7 +288,7 @@ public class BeltBlock extends HorizontalKineticBlock implements IWithoutBlockIt if (controller == null) return shape; if (controller.passengers == null || !controller.passengers.containsKey(context.getEntity())) { - return VoxelShapes.combine(collisionMask, shape, IBooleanFunction.AND); + return VoxelShapes.combine(AllShapes.BELT_COLLISION_MASK, shape, IBooleanFunction.AND); } return shape; diff --git a/src/main/java/com/simibubi/create/modules/contraptions/relays/belt/BeltShapes.java b/src/main/java/com/simibubi/create/modules/contraptions/relays/belt/BeltShapes.java index 8949f892d..86236a09d 100644 --- a/src/main/java/com/simibubi/create/modules/contraptions/relays/belt/BeltShapes.java +++ b/src/main/java/com/simibubi/create/modules/contraptions/relays/belt/BeltShapes.java @@ -2,6 +2,7 @@ package com.simibubi.create.modules.contraptions.relays.belt; import static net.minecraft.block.Block.makeCuboidShape; +import com.simibubi.create.foundation.utility.AllShapes; import com.simibubi.create.foundation.utility.VoxelShaper; import com.simibubi.create.modules.contraptions.relays.belt.BeltBlock.Part; import com.simibubi.create.modules.contraptions.relays.belt.BeltBlock.Slope; @@ -94,6 +95,8 @@ public class BeltShapes { SLOPE_ASC_END = VoxelShaper.forHorizontal(compose(FLAT_END_PART, SLOPE_ASC_PART), Direction.SOUTH), SLOPE_ASC_START = VoxelShaper.forHorizontal(compose(SLOPE_ASC_PART, FLAT_END_PART), Direction.SOUTH); + private static final VoxelShaper + PARTIAL_CASING = VoxelShaper.forHorizontal(makeCuboidShape(0, 0, 5, 16, 11, 16), Direction.SOUTH); private static VoxelShape compose(VoxelShape southPart, VoxelShape northPart){ @@ -130,10 +133,6 @@ public class BeltShapes { return makeCuboidShape(1,3,0,15,13,16); } - private static final VoxelShape CASING_HORIZONTAL = makeCuboidShape(0, 0, 0, 16, 11, 16); - //todo still need to remove these two - private static final VoxelShaper CASING_TOP_END = VoxelShaper.forHorizontal(makeCuboidShape(0, 0, 0, 16, 11, 11), Direction.SOUTH); - public static VoxelShape getShape(BlockState state) { Direction facing = state.get(BeltBlock.HORIZONTAL_FACING); Axis axis = facing.getAxis(); @@ -170,7 +169,7 @@ public class BeltShapes { } - public static VoxelShape getCasingShape(BlockState state) {//todo + public static VoxelShape getCasingShape(BlockState state) { if (!state.get(BeltBlock.CASING)) return VoxelShapes.empty(); @@ -178,25 +177,23 @@ public class BeltShapes { Part part = state.get(BeltBlock.PART); Slope slope = state.get(BeltBlock.SLOPE); - if (slope == Slope.HORIZONTAL) - return CASING_HORIZONTAL; if (slope == Slope.VERTICAL) return VoxelShapes.empty(); - if (part != Part.MIDDLE) { - boolean upward = slope == Slope.UPWARD; - if (part == Part.START) - upward = !upward; - else - facing = facing.getOpposite(); - - return upward ? CASING_TOP_END.get(facing) : CASING_HORIZONTAL; + if (slope == Slope.HORIZONTAL) { + return AllShapes.SHORT_CASING_11_VOXEL.get(Direction.UP); } - if (slope == Slope.DOWNWARD) - facing = facing.getOpposite(); + if (part == Part.MIDDLE || part == Part.PULLEY) + return PARTIAL_CASING.get(slope == Slope.UPWARD ? facing : facing.getOpposite()); - return CASING_TOP_END.get(facing.getOpposite()); + if (part == Part.START) + return slope == Slope.UPWARD ? AllShapes.SHORT_CASING_11_VOXEL.get(Direction.UP) : PARTIAL_CASING.get(facing.getOpposite()); + if (part == Part.END) + return slope == Slope.DOWNWARD ? AllShapes.SHORT_CASING_11_VOXEL.get(Direction.UP) : PARTIAL_CASING.get(facing); + + //something went wrong + return VoxelShapes.fullCube(); } private static class VerticalBeltShaper extends VoxelShaper { diff --git a/src/main/java/com/simibubi/create/modules/economy/ShopShelfBlock.java b/src/main/java/com/simibubi/create/modules/economy/ShopShelfBlock.java deleted file mode 100644 index 14bc2c021..000000000 --- a/src/main/java/com/simibubi/create/modules/economy/ShopShelfBlock.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.simibubi.create.modules.economy; - -import com.simibubi.create.foundation.block.IWithoutBlockItem; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; -import net.minecraft.block.HorizontalBlock; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.item.BlockItemUseContext; -import net.minecraft.item.ItemStack; -import net.minecraft.state.StateContainer.Builder; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Hand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.util.math.shapes.ISelectionContext; -import net.minecraft.util.math.shapes.VoxelShape; -import net.minecraft.util.math.shapes.VoxelShapes; -import net.minecraft.world.IBlockReader; -import net.minecraft.world.World; -import net.minecraftforge.fml.network.NetworkHooks; - -public class ShopShelfBlock extends HorizontalBlock implements IWithoutBlockItem { - - public static final VoxelShape TOP_SHAPE = makeCuboidShape(0, 14, 0, 16, 16, 16);//todo review - - public static final VoxelShape BODY_SOUTH_SHAPE = makeCuboidShape(0, 0, 0, 16, 14, 14); - public static final VoxelShape BODY_NORTH_SHAPE = makeCuboidShape(0, 0, 2, 16, 14, 16); - public static final VoxelShape BODY_EAST_SHAPE = makeCuboidShape(0, 0, 0, 14, 14, 16); - public static final VoxelShape BODY_WEST_SHAPE = makeCuboidShape(2, 0, 0, 16, 14, 16); - - public ShopShelfBlock() { - super(Properties.from(Blocks.SPRUCE_PLANKS)); - } - - @Override - public boolean hasTileEntity(BlockState state) { - return true; - } - - @Override - public TileEntity createTileEntity(BlockState state, IBlockReader world) { - return new ShopShelfTileEntity(); - } - - @Override - public void onBlockPlacedBy(World worldIn, BlockPos pos, BlockState state, LivingEntity placer, ItemStack stack) { - ShopShelfTileEntity te = (ShopShelfTileEntity) worldIn.getTileEntity(pos); - te.setOwner(placer.getUniqueID()); - worldIn.notifyBlockUpdate(pos, state, state, 2); - } - - @Override - public boolean onBlockActivated(BlockState state, World worldIn, BlockPos pos, PlayerEntity player, Hand handIn, - BlockRayTraceResult hit) { - ShopShelfTileEntity te = (ShopShelfTileEntity) worldIn.getTileEntity(pos); - if (te == null) - return false; - if (!worldIn.isRemote) - NetworkHooks.openGui((ServerPlayerEntity) player, te, te::sendToContainer); - return true; - } - - @Override - protected void fillStateContainer(Builder builder) { - builder.add(HORIZONTAL_FACING); - super.fillStateContainer(builder); - } - - @Override - public BlockState getStateForPlacement(BlockItemUseContext context) { - return getDefaultState().with(HORIZONTAL_FACING, context.getPlacementHorizontalFacing().getOpposite()); - } - - @Override - public VoxelShape getShape(BlockState state, IBlockReader worldIn, BlockPos pos, ISelectionContext context) { - VoxelShape body = VoxelShapes.empty(); - switch (state.get(HORIZONTAL_FACING)) { - case EAST: - body = BODY_EAST_SHAPE; - break; - case NORTH: - body = BODY_NORTH_SHAPE; - break; - case SOUTH: - body = BODY_SOUTH_SHAPE; - break; - case WEST: - body = BODY_WEST_SHAPE; - break; - default: - break; - } - - return VoxelShapes.or(TOP_SHAPE, body); - } - -} diff --git a/src/main/java/com/simibubi/create/modules/economy/ShopShelfContainer.java b/src/main/java/com/simibubi/create/modules/economy/ShopShelfContainer.java deleted file mode 100644 index e85d49bf6..000000000 --- a/src/main/java/com/simibubi/create/modules/economy/ShopShelfContainer.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.simibubi.create.modules.economy; - -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.inventory.container.Container; -import net.minecraft.network.PacketBuffer; - -public class ShopShelfContainer extends Container { - - public ShopShelfContainer(int id, PlayerInventory inv, ShopShelfTileEntity te) { -// super(AllContainers.SHOP_SHELF.type, id); - super(null, id); - } - - public ShopShelfContainer(int id, PlayerInventory inv, PacketBuffer extraData) { -// super(AllContainers.SHOP_SHELF.type, id); - super(null, id); - } - - @Override - public boolean canInteractWith(PlayerEntity playerIn) { - return true; - } - -} diff --git a/src/main/java/com/simibubi/create/modules/economy/ShopShelfScreen.java b/src/main/java/com/simibubi/create/modules/economy/ShopShelfScreen.java deleted file mode 100644 index 93bbe3188..000000000 --- a/src/main/java/com/simibubi/create/modules/economy/ShopShelfScreen.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.simibubi.create.modules.economy; - -import com.simibubi.create.foundation.gui.AbstractSimiContainerScreen; - -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.util.text.ITextComponent; - -public class ShopShelfScreen extends AbstractSimiContainerScreen { - - public ShopShelfScreen(ShopShelfContainer container, PlayerInventory inv, ITextComponent title) { - super(container, inv, title); - } - - @Override - protected void renderWindow(int mouseX, int mouseY, float partialTicks) { - renderTooltip("Hi", mouseX, mouseY); - } - -} diff --git a/src/main/java/com/simibubi/create/modules/economy/ShopShelfTileEntity.java b/src/main/java/com/simibubi/create/modules/economy/ShopShelfTileEntity.java deleted file mode 100644 index e93e94a33..000000000 --- a/src/main/java/com/simibubi/create/modules/economy/ShopShelfTileEntity.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.simibubi.create.modules.economy; - -import java.util.UUID; - -import com.simibubi.create.foundation.block.SyncedTileEntity; - -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.inventory.container.Container; -import net.minecraft.inventory.container.INamedContainerProvider; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.nbt.NBTUtil; -import net.minecraft.network.PacketBuffer; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.StringTextComponent; - -public class ShopShelfTileEntity extends SyncedTileEntity implements INamedContainerProvider { - - private UUID owner; - - public ShopShelfTileEntity() { - super(null); -// super(AllTileEntities.SHOP_SHELF.type); - } - - @Override - public void read(CompoundNBT compound) { - if (compound.contains("Owner")) - setOwner(NBTUtil.readUniqueId(compound.getCompound("Owner"))); - super.read(compound); - } - - @Override - public CompoundNBT write(CompoundNBT compound) { - if (getOwner() != null) - compound.put("Owner", NBTUtil.writeUniqueId(getOwner())); - return super.write(compound); - } - - public UUID getOwner() { - return owner; - } - - public void setOwner(UUID owner) { - this.owner = owner; - } - - public void sendToContainer(PacketBuffer buffer) { - buffer.writeUniqueId(getOwner()); - } - - @Override - public Container createMenu(int id, PlayerInventory inventory, PlayerEntity player) { - return new ShopShelfContainer(id, inventory, this); - } - - @Override - public ITextComponent getDisplayName() { - return new StringTextComponent(getType().getRegistryName().toString()); - } - -} diff --git a/src/main/java/com/simibubi/create/modules/schematics/block/SchematicTableBlock.java b/src/main/java/com/simibubi/create/modules/schematics/block/SchematicTableBlock.java index 777676558..cf00f3da4 100644 --- a/src/main/java/com/simibubi/create/modules/schematics/block/SchematicTableBlock.java +++ b/src/main/java/com/simibubi/create/modules/schematics/block/SchematicTableBlock.java @@ -1,5 +1,6 @@ package com.simibubi.create.modules.schematics.block; +import com.simibubi.create.foundation.utility.AllShapes; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; @@ -13,6 +14,8 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Hand; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockRayTraceResult; +import net.minecraft.util.math.shapes.ISelectionContext; +import net.minecraft.util.math.shapes.VoxelShape; import net.minecraft.world.IBlockReader; import net.minecraft.world.World; import net.minecraftforge.fml.network.NetworkHooks; @@ -39,6 +42,16 @@ public class SchematicTableBlock extends HorizontalBlock { return this.getDefaultState().with(HORIZONTAL_FACING, context.getPlacementHorizontalFacing().getOpposite()); } + @Override + public VoxelShape getCollisionShape(BlockState state, IBlockReader worldIn, BlockPos pos, ISelectionContext context) { + return AllShapes.LOGISTICS_TABLE_BASE; + } + + @Override + public VoxelShape getShape(BlockState state, IBlockReader worldIn, BlockPos pos, ISelectionContext context) { + return AllShapes.SCHEMATICS_TABLE.get(state.get(HORIZONTAL_FACING)); + } + @Override public boolean hasTileEntity(BlockState state) { return true; diff --git a/src/main/java/com/simibubi/create/modules/schematics/block/SchematicannonBlock.java b/src/main/java/com/simibubi/create/modules/schematics/block/SchematicannonBlock.java index 7ad4639e0..4eda575f7 100644 --- a/src/main/java/com/simibubi/create/modules/schematics/block/SchematicannonBlock.java +++ b/src/main/java/com/simibubi/create/modules/schematics/block/SchematicannonBlock.java @@ -2,6 +2,7 @@ package com.simibubi.create.modules.schematics.block; import com.simibubi.create.AllItems; +import com.simibubi.create.foundation.utility.AllShapes; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; @@ -14,6 +15,8 @@ import net.minecraft.util.Direction; import net.minecraft.util.Hand; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockRayTraceResult; +import net.minecraft.util.math.shapes.ISelectionContext; +import net.minecraft.util.math.shapes.VoxelShape; import net.minecraft.world.IBlockReader; import net.minecraft.world.IWorld; import net.minecraft.world.IWorldReader; @@ -48,6 +51,11 @@ public class SchematicannonBlock extends Block { return false; } + @Override + public VoxelShape getShape(BlockState state, IBlockReader worldIn, BlockPos pos, ISelectionContext context) { + return AllShapes.SCHEMATICANNON_SHAPE; + } + @Override public void onNeighborChange(BlockState state, IWorldReader world, BlockPos pos, BlockPos neighbor) { ((SchematicannonTileEntity) world.getTileEntity(pos)).findInventories();