diff --git a/src/main/java/refinedstorage/block/BlockExporter.java b/src/main/java/refinedstorage/block/BlockExporter.java index acd749c57..9e7dd9bcc 100755 --- a/src/main/java/refinedstorage/block/BlockExporter.java +++ b/src/main/java/refinedstorage/block/BlockExporter.java @@ -6,17 +6,80 @@ import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; +import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageGui; import refinedstorage.tile.TileExporter; +import java.util.ArrayList; +import java.util.List; + public class BlockExporter extends BlockCable { + public static final AxisAlignedBB LINE_NORTH_1_AABB = createAABB(6, 6, 0, 10, 10, 2); + public static final AxisAlignedBB LINE_NORTH_2_AABB = createAABB(5, 5, 2, 11, 11, 4); + public static final AxisAlignedBB LINE_NORTH_3_AABB = createAABB(3, 3, 4, 13, 13, 6); + public static final AxisAlignedBB LINE_EAST_1_AABB = createAABB(14, 6, 6, 16, 10, 10); + public static final AxisAlignedBB LINE_EAST_2_AABB = createAABB(12, 5, 5, 14, 11, 11); + public static final AxisAlignedBB LINE_EAST_3_AABB = createAABB(10, 3, 3, 12, 13, 13); + public static final AxisAlignedBB LINE_SOUTH_1_AABB = createAABB(6, 6, 14, 10, 10, 16); + public static final AxisAlignedBB LINE_SOUTH_2_AABB = createAABB(5, 5, 12, 11, 11, 14); + public static final AxisAlignedBB LINE_SOUTH_3_AABB = createAABB(3, 3, 10, 13, 13, 12); + public static final AxisAlignedBB LINE_WEST_1_AABB = createAABB(0, 6, 6, 2, 10, 10); + public static final AxisAlignedBB LINE_WEST_2_AABB = createAABB(2, 5, 5, 4, 11, 11); + public static final AxisAlignedBB LINE_WEST_3_AABB = createAABB(4, 3, 3, 6, 13, 13); + public static final AxisAlignedBB LINE_UP_1_AABB = createAABB(6, 14, 6, 10, 16, 10); + public static final AxisAlignedBB LINE_UP_2_AABB = createAABB(5, 12, 5, 11, 14, 11); + public static final AxisAlignedBB LINE_UP_3_AABB = createAABB(3, 10, 3, 13, 12, 13); + public static final AxisAlignedBB LINE_DOWN_1_AABB = createAABB(6, 0, 6, 10, 2, 10); + public static final AxisAlignedBB LINE_DOWN_2_AABB = createAABB(5, 2, 5, 11, 4, 11); + public static final AxisAlignedBB LINE_DOWN_3_AABB = createAABB(3, 4, 3, 13, 6, 13); + public BlockExporter() { super("exporter"); } + @Override + public List getNonUnionizedCollisionBoxes(IBlockState state) { + List boxes = new ArrayList<>(); + + switch (state.getValue(DIRECTION)) { + case NORTH: + boxes.add(LINE_NORTH_1_AABB); + boxes.add(LINE_NORTH_2_AABB); + boxes.add(LINE_NORTH_3_AABB); + break; + case EAST: + boxes.add(LINE_EAST_1_AABB); + boxes.add(LINE_EAST_2_AABB); + boxes.add(LINE_EAST_3_AABB); + break; + case SOUTH: + boxes.add(LINE_SOUTH_1_AABB); + boxes.add(LINE_SOUTH_2_AABB); + boxes.add(LINE_SOUTH_3_AABB); + break; + case WEST: + boxes.add(LINE_WEST_1_AABB); + boxes.add(LINE_WEST_2_AABB); + boxes.add(LINE_WEST_3_AABB); + break; + case UP: + boxes.add(LINE_UP_1_AABB); + boxes.add(LINE_UP_2_AABB); + boxes.add(LINE_UP_3_AABB); + break; + case DOWN: + boxes.add(LINE_DOWN_1_AABB); + boxes.add(LINE_DOWN_2_AABB); + boxes.add(LINE_DOWN_3_AABB); + break; + } + + return boxes; + } + @Override public TileEntity createTileEntity(World world, IBlockState state) { return new TileExporter(); diff --git a/src/main/java/refinedstorage/block/BlockImporter.java b/src/main/java/refinedstorage/block/BlockImporter.java index bcb082e9f..d39e74d01 100755 --- a/src/main/java/refinedstorage/block/BlockImporter.java +++ b/src/main/java/refinedstorage/block/BlockImporter.java @@ -6,17 +6,80 @@ import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; +import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageGui; import refinedstorage.tile.TileImporter; +import java.util.ArrayList; +import java.util.List; + public class BlockImporter extends BlockCable { + public static final AxisAlignedBB LINE_NORTH_1_AABB = createAABB(6, 6, 4, 10, 10, 6); + public static final AxisAlignedBB LINE_NORTH_2_AABB = createAABB(5, 5, 2, 11, 11, 4); + public static final AxisAlignedBB LINE_NORTH_3_AABB = createAABB(3, 3, 0, 13, 13, 2); + public static final AxisAlignedBB LINE_EAST_1_AABB = createAABB(10, 6, 6, 12, 10, 10); + public static final AxisAlignedBB LINE_EAST_2_AABB = createAABB(12, 5, 5, 14, 11, 11); + public static final AxisAlignedBB LINE_EAST_3_AABB = createAABB(14, 3, 3, 16, 13, 13); + public static final AxisAlignedBB LINE_SOUTH_1_AABB = createAABB(6, 6, 10, 10, 10, 12); + public static final AxisAlignedBB LINE_SOUTH_2_AABB = createAABB(5, 5, 12, 11, 11, 14); + public static final AxisAlignedBB LINE_SOUTH_3_AABB = createAABB(3, 3, 14, 13, 13, 16); + public static final AxisAlignedBB LINE_WEST_1_AABB = createAABB(4, 6, 6, 6, 10, 10); + public static final AxisAlignedBB LINE_WEST_2_AABB = createAABB(2, 5, 5, 4, 11, 11); + public static final AxisAlignedBB LINE_WEST_3_AABB = createAABB(0, 3, 3, 2, 13, 13); + public static final AxisAlignedBB LINE_UP_1_AABB = createAABB(6, 10, 6, 10, 12, 10); + public static final AxisAlignedBB LINE_UP_2_AABB = createAABB(5, 12, 5, 11, 14, 11); + public static final AxisAlignedBB LINE_UP_3_AABB = createAABB(3, 14, 3, 13, 16, 13); + public static final AxisAlignedBB LINE_DOWN_1_AABB = createAABB(6, 4, 6, 10, 6, 10); + public static final AxisAlignedBB LINE_DOWN_2_AABB = createAABB(5, 2, 5, 11, 4, 11); + public static final AxisAlignedBB LINE_DOWN_3_AABB = createAABB(3, 0, 3, 13, 2, 13); + public BlockImporter() { super("importer"); } + @Override + public List getNonUnionizedCollisionBoxes(IBlockState state) { + List boxes = new ArrayList<>(); + + switch (state.getValue(DIRECTION)) { + case NORTH: + boxes.add(LINE_NORTH_1_AABB); + boxes.add(LINE_NORTH_2_AABB); + boxes.add(LINE_NORTH_3_AABB); + break; + case EAST: + boxes.add(LINE_EAST_1_AABB); + boxes.add(LINE_EAST_2_AABB); + boxes.add(LINE_EAST_3_AABB); + break; + case SOUTH: + boxes.add(LINE_SOUTH_1_AABB); + boxes.add(LINE_SOUTH_2_AABB); + boxes.add(LINE_SOUTH_3_AABB); + break; + case WEST: + boxes.add(LINE_WEST_1_AABB); + boxes.add(LINE_WEST_2_AABB); + boxes.add(LINE_WEST_3_AABB); + break; + case UP: + boxes.add(LINE_UP_1_AABB); + boxes.add(LINE_UP_2_AABB); + boxes.add(LINE_UP_3_AABB); + break; + case DOWN: + boxes.add(LINE_DOWN_1_AABB); + boxes.add(LINE_DOWN_2_AABB); + boxes.add(LINE_DOWN_3_AABB); + break; + } + + return boxes; + } + @Override public TileEntity createTileEntity(World world, IBlockState state) { return new TileImporter();