From 4f70831d35c5e530ec6f05bdc0af689507bedd24 Mon Sep 17 00:00:00 2001 From: tterrag1098 Date: Wed, 22 Apr 2015 21:04:40 -0400 Subject: [PATCH] Implement Fake AE Controller with the new ISubmapManager system --- .../com/cricketcraft/chisel/Features.java | 4 +- .../chisel/carving/CarvableHelper.java | 18 +++-- .../chisel/client/render/CTM.java | 76 +++++++++++------- .../chisel/client/render/RenderBlocksCTM.java | 14 ++-- .../client/render/RenderBlocksCTMNoLight.java | 14 ++-- .../client/render/RenderBlocksColumn.java | 5 +- .../render/SubmapManagerFakeController.java | 45 +++++++++++ .../blocks/futura/WIP/controllerWIP-ctm.png | Bin 0 -> 7444 bytes .../blocks/futura/WIP/controllerWIP-ctm1.png | Bin 6824 -> 0 bytes .../futura/WIP/controllerWIP-ctm1.png.mcmeta | 5 -- .../blocks/futura/WIP/controllerWIP-ctm2.png | Bin 7106 -> 0 bytes .../futura/WIP/controllerWIP-ctm2.png.mcmeta | 5 -- .../blocks/futura/WIP/controllerWIP-ctm3.png | Bin 7354 -> 0 bytes .../futura/WIP/controllerWIP-ctm3.png.mcmeta | 5 -- .../blocks/futura/WIP/controllerWIP.png | Bin 6037 -> 0 bytes .../futura/WIP/controllerWIP.png.mcmeta | 18 ----- 16 files changed, 124 insertions(+), 85 deletions(-) create mode 100644 src/main/java/com/cricketcraft/chisel/client/render/SubmapManagerFakeController.java create mode 100644 src/main/resources/assets/chisel/textures/blocks/futura/WIP/controllerWIP-ctm.png delete mode 100644 src/main/resources/assets/chisel/textures/blocks/futura/WIP/controllerWIP-ctm1.png delete mode 100644 src/main/resources/assets/chisel/textures/blocks/futura/WIP/controllerWIP-ctm1.png.mcmeta delete mode 100644 src/main/resources/assets/chisel/textures/blocks/futura/WIP/controllerWIP-ctm2.png delete mode 100644 src/main/resources/assets/chisel/textures/blocks/futura/WIP/controllerWIP-ctm2.png.mcmeta delete mode 100644 src/main/resources/assets/chisel/textures/blocks/futura/WIP/controllerWIP-ctm3.png delete mode 100644 src/main/resources/assets/chisel/textures/blocks/futura/WIP/controllerWIP-ctm3.png.mcmeta delete mode 100644 src/main/resources/assets/chisel/textures/blocks/futura/WIP/controllerWIP.png delete mode 100644 src/main/resources/assets/chisel/textures/blocks/futura/WIP/controllerWIP.png.mcmeta diff --git a/src/main/java/com/cricketcraft/chisel/Features.java b/src/main/java/com/cricketcraft/chisel/Features.java index a0504edc..0eddf39b 100644 --- a/src/main/java/com/cricketcraft/chisel/Features.java +++ b/src/main/java/com/cricketcraft/chisel/Features.java @@ -6,6 +6,7 @@ import com.cricketcraft.chisel.carving.CarvableHelper; import com.cricketcraft.chisel.carving.CarvableVariation; import com.cricketcraft.chisel.carving.Carving; import com.cricketcraft.chisel.carving.CarvingGroup; +import com.cricketcraft.chisel.client.render.SubmapManagerFakeController; import com.cricketcraft.chisel.config.Configurations; import com.cricketcraft.chisel.entity.EntityBallOMoss; import com.cricketcraft.chisel.entity.EntityCloudInABottle; @@ -17,6 +18,7 @@ import com.cricketcraft.chisel.item.*; import com.cricketcraft.chisel.item.chisel.ItemChisel; import com.cricketcraft.chisel.item.chisel.ItemChisel.ChiselType; import com.google.common.collect.Lists; + import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.registry.EntityRegistry; import cpw.mods.fml.common.registry.GameRegistry; @@ -724,7 +726,7 @@ public enum Features { */).setCreativeTab(ChiselTabs.tabMetalChiselBlocks).setHardness(2.0F).setResistance(10F); futura.carverHelper.addVariation("tile.futura.0.desc", 0, "futura/WIP/screenMetallicWIP"); futura.carverHelper.addVariation("tile.futura.1.desc", 1, "futura/WIP/screenCyanWIP"); - futura.carverHelper.addVariation("tile.futura.2.desc", 2, "futura/WIP/controllerWIP"); + futura.carverHelper.addVariation("tile.futura.2.desc", 2, "futura/WIP/controllerWIP", futura, 2, new SubmapManagerFakeController()); futura.carverHelper.addVariation("tile.futura.3.desc", 3, "futura/WIP/wavyWIP"); futura.carverHelper.registerAll(futura, "futura"); Carving.chisel.registerOre("futura", "futura"); diff --git a/src/main/java/com/cricketcraft/chisel/carving/CarvableHelper.java b/src/main/java/com/cricketcraft/chisel/carving/CarvableHelper.java index 10f0143b..87419c0f 100644 --- a/src/main/java/com/cricketcraft/chisel/carving/CarvableHelper.java +++ b/src/main/java/com/cricketcraft/chisel/carving/CarvableHelper.java @@ -76,6 +76,8 @@ public class CarvableHelper { return CUSTOM; } } + + private static CTM ctm = CTM.getInstance(); public ArrayList variations = new ArrayList(); CarvableVariation[] map = new CarvableVariation[16]; @@ -99,7 +101,7 @@ public class CarvableHelper { } public void addVariation(String description, int metadata, String texture, Block block, int blockMeta) { - addVariation(description, metadata, texture, block, blockMeta); + addVariation(description, metadata, texture, block, blockMeta, null); } public void addVariation(String description, int metadata, String texture, Block block, int blockMeta, ISubmapManager customManager) { @@ -224,8 +226,8 @@ public class CarvableHelper { return variation.iconTop; Block block = world.getBlock(x, y, z); - boolean topConnected = CTM.isConnected(world, x, y + 1, z, side, block, metadata); - boolean botConnected = CTM.isConnected(world, x, y - 1, z, side, block, metadata); + boolean topConnected = ctm.isConnected(world, x, y + 1, z, side, block, metadata); + boolean botConnected = ctm.isConnected(world, x, y - 1, z, side, block, metadata); if (topConnected && botConnected) return variation.seamsCtmVert.icons[2]; @@ -239,18 +241,18 @@ public class CarvableHelper { if (side < 2) return variation.iconTop; - Block block = CTM.getBlockOrFacade(world, x, y, z, side); + Block block = ctm.getBlockOrFacade(world, x, y, z, side); boolean p; boolean n; boolean reverse = side == 2 || side == 4; if (side < 4) { - p = CTM.isConnected(world, x - 1, y, z, side, block, metadata); - n = CTM.isConnected(world, x + 1, y, z, side, block, metadata); + p = ctm.isConnected(world, x - 1, y, z, side, block, metadata); + n = ctm.isConnected(world, x + 1, y, z, side, block, metadata); } else { - p = CTM.isConnected(world, x, y, z - 1, side, block, metadata); - n = CTM.isConnected(world, x, y, z + 1, side, block, metadata); + p = ctm.isConnected(world, x, y, z - 1, side, block, metadata); + n = ctm.isConnected(world, x, y, z + 1, side, block, metadata); } if (p && n) diff --git a/src/main/java/com/cricketcraft/chisel/client/render/CTM.java b/src/main/java/com/cricketcraft/chisel/client/render/CTM.java index 3792811c..fba44f1b 100644 --- a/src/main/java/com/cricketcraft/chisel/client/render/CTM.java +++ b/src/main/java/com/cricketcraft/chisel/client/render/CTM.java @@ -68,7 +68,7 @@ import static net.minecraftforge.common.util.ForgeDirection.*; */ public class CTM { - enum Dir { + public enum Dir { TOP(UP), TOP_RIGHT(UP, EAST), @@ -89,7 +89,7 @@ public class CTM { this.dirs = dirs; } - private boolean isConnected(IBlockAccess world, int x, int y, int z, int sideIdx, Block block, int meta) { + private boolean isConnected(CTM inst, IBlockAccess world, int x, int y, int z, int sideIdx, Block block, int meta) { ForgeDirection side = getOrientation(sideIdx); ForgeDirection[] dirs = getNormalizedDirs(side); for (ForgeDirection dir : dirs) { @@ -97,14 +97,15 @@ public class CTM { y += dir.offsetY; z += dir.offsetZ; } - return CTM.isConnected(world, x, y, z, side, block, meta); + return inst.isConnected(world, x, y, z, side, block, meta); } private ForgeDirection[] getNormalizedDirs(ForgeDirection normal) { if (normal == NORMAL) { return dirs; } else if (normal == NORMAL.getOpposite()) { - // If this is the opposite direction of the default normal, we need to mirror the dirs + // If this is the opposite direction of the default normal, we + // need to mirror the dirs // A mirror version does not affect y+ and y- so we ignore those ForgeDirection[] ret = new ForgeDirection[dirs.length]; for (int i = 0; i < ret.length; i++) { @@ -113,11 +114,12 @@ public class CTM { return ret; } else { ForgeDirection axis = null; - // Next, we need different a different rotation axis depending + // Next, we need different a different rotation axis depending // on if this is up/down or not if (normal.offsetY == 0) { - // If it is not up/down, pick either the left or right-hand rotation - axis = normal == NORMAL.getRotation(UP) ? UP : DOWN; + // If it is not up/down, pick either the left or right-hand + // rotation + axis = normal == NORMAL.getRotation(UP) ? UP : DOWN; } else { // If it is up/down, pick either the up or down rotation. axis = normal == UP ? NORMAL.getRotation(DOWN) : NORMAL.getRotation(UP); @@ -133,10 +135,13 @@ public class CTM { } /** Some hardcoded offset values for the different corner indeces */ - private static int[] submapOffsets = { 4, 5, 1, 0 }; - private static TIntObjectMap submapMap = new TIntObjectHashMap(); + private int[] submapOffsets = { 4, 5, 1, 0 }; + private TIntObjectMap submapMap = new TIntObjectHashMap(); private static EnumMap connectionMap = Maps.newEnumMap(Dir.class); - static { + + public boolean disableObscuredFaceCheck = false; + + private CTM() { for (Dir dir : Dir.VALUES) { connectionMap.put(dir, false); } @@ -146,31 +151,43 @@ public class CTM { submapMap.put(2, new Dir[] { TOP, RIGHT, TOP_RIGHT }); submapMap.put(3, new Dir[] { TOP, LEFT, TOP_LEFT }); } + + public static CTM getInstance() { + return new CTM(); + } - public static int[] getSubmapIndices(IBlockAccess world, int x, int y, int z, int side) { + public int[] getSubmapIndices(IBlockAccess world, int x, int y, int z, int side) { int[] ret = new int[] { 18, 19, 17, 16 }; if (world == null) { return ret; } - + Block block = world.getBlock(x, y, z); int meta = world.getBlockMetadata(x, y, z); - // Build connections - for (Dir dir : Dir.VALUES) { - connectionMap.put(dir, dir.isConnected(world, x, y, z, side, block, meta)); - } - + buildConnectionMap(world, x, y, z, side, block, meta); + // Map connections to submap indeces for (int i = 0; i < 4; i++) { fillSubmaps(ret, i); } - + return ret; } - private static void fillSubmaps(int[] ret, int idx) { + /** + * Builds the connection map and stores it in this class. The + * {@link #connected(Dir)}, {@link #connectedAnd(Dir...)}, and + * {@link #connectedOr(Dir...)} methods can be used to access it. + */ + public void buildConnectionMap(IBlockAccess world, int x, int y, int z, int side, Block block, int meta) { + for (Dir dir : Dir.VALUES) { + connectionMap.put(dir, dir.isConnected(this, world, x, y, z, side, block, meta)); + } + } + + private void fillSubmaps(int[] ret, int idx) { Dir[] dirs = submapMap.get(idx); if (connectedOr(dirs[0], dirs[1])) { if (connectedAnd(dirs)) { @@ -187,10 +204,11 @@ public class CTM { } } - private static boolean connected(Dir dir) { + public boolean connected(Dir dir) { return connectionMap.get(dir); } - private static boolean connectedAnd(Dir... dirs) { + + public boolean connectedAnd(Dir... dirs) { for (Dir dir : dirs) { if (!connected(dir)) { return false; @@ -198,8 +216,8 @@ public class CTM { } return true; } - - private static boolean connectedOr(Dir... dirs) { + + private boolean connectedOr(Dir... dirs) { for (Dir dir : dirs) { if (connected(dir)) { return true; @@ -208,18 +226,18 @@ public class CTM { return false; } - public static boolean isConnected(IBlockAccess world, int x, int y, int z, int side, Block block, int meta) { + public boolean isConnected(IBlockAccess world, int x, int y, int z, int side, Block block, int meta) { ForgeDirection dir = ForgeDirection.VALID_DIRECTIONS[side]; return isConnected(world, x, y, z, dir, block, meta); } - public static boolean isConnected(IBlockAccess world, int x, int y, int z, ForgeDirection dir, Block block, int meta) { + public boolean isConnected(IBlockAccess world, int x, int y, int z, ForgeDirection dir, Block block, int meta) { int x2 = x + dir.offsetX; int y2 = y + dir.offsetY; int z2 = z + dir.offsetZ; Block con = getBlockOrFacade(world, x, y, z, dir.ordinal()); - Block obscuring = getBlockOrFacade(world, x2, y2, z2, dir.ordinal()); + Block obscuring = disableObscuredFaceCheck ? null : getBlockOrFacade(world, x2, y2, z2, dir.ordinal()); // no block or a bad API user if (con == null) { @@ -230,7 +248,7 @@ public class CTM { // no block obscuring this face if (obscuring == null) { - return true; + return ret; } // check that we aren't already connected outwards from this side @@ -239,7 +257,7 @@ public class CTM { return ret; } - public static int getBlockOrFacadeMetadata(IBlockAccess world, int x, int y, int z, int side) { + public int getBlockOrFacadeMetadata(IBlockAccess world, int x, int y, int z, int side) { Block blk = world.getBlock(x, y, z); if (blk instanceof IFacade) { return ((IFacade) blk).getFacadeMetadata(world, x, y, z, side); @@ -247,7 +265,7 @@ public class CTM { return world.getBlockMetadata(x, y, z); } - public static Block getBlockOrFacade(IBlockAccess world, int x, int y, int z, int side) { + public Block getBlockOrFacade(IBlockAccess world, int x, int y, int z, int side) { Block blk = world.getBlock(x, y, z); if (blk instanceof IFacade) { blk = ((IFacade) blk).getFacade(world, x, y, z, side); diff --git a/src/main/java/com/cricketcraft/chisel/client/render/RenderBlocksCTM.java b/src/main/java/com/cricketcraft/chisel/client/render/RenderBlocksCTM.java index bda78b55..cedab2c0 100644 --- a/src/main/java/com/cricketcraft/chisel/client/render/RenderBlocksCTM.java +++ b/src/main/java/com/cricketcraft/chisel/client/render/RenderBlocksCTM.java @@ -104,6 +104,8 @@ public class RenderBlocksCTM extends RenderBlocks { xmax.render(inst, 3); } } + + private static CTM ctm = CTM.getInstance(); // globals added to save the JVM some trouble. No need to constantly create // and destroy ints if we don't have to @@ -273,7 +275,7 @@ public class RenderBlocksCTM extends RenderBlocks { tessellator.addVertexWithUV(0.0, 0.0, 1.0, i.getMaxU(), i.getMaxV()); tessellator.addVertexWithUV(0.0, 1.0, 1.0, i.getMaxU(), i.getMinV()); } else { - int tex[] = CTM.getSubmapIndices(blockAccess, bx, by, bz, 4); + int tex[] = ctm.getSubmapIndices(blockAccess, bx, by, bz, 4); fillLightmap(brightnessBottomRight, brightnessTopRight, brightnessTopLeft, brightnessBottomLeft); fillColormap(colorRedBottomRight, colorRedTopRight, colorRedTopLeft, colorRedBottomLeft, redmap); @@ -301,7 +303,7 @@ public class RenderBlocksCTM extends RenderBlocks { tessellator.addVertexWithUV(1.0, 0.0, 0.0, i.getMinU(), i.getMaxV()); tessellator.addVertexWithUV(1.0, 1.0, 0.0, i.getMinU(), i.getMinV()); } else { - int tex[] = CTM.getSubmapIndices(blockAccess, bx, by, bz, 5); + int tex[] = ctm.getSubmapIndices(blockAccess, bx, by, bz, 5); fillLightmap(brightnessTopLeft, brightnessBottomLeft, brightnessBottomRight, brightnessTopRight); fillColormap(colorRedTopLeft, colorRedBottomLeft, colorRedBottomRight, colorRedTopRight, redmap); @@ -328,7 +330,7 @@ public class RenderBlocksCTM extends RenderBlocks { tessellator.addVertexWithUV(0.0, 0.0, 0.0, i.getMinU(), i.getMaxV()); tessellator.addVertexWithUV(0.0, 1.0, 0.0, i.getMinU(), i.getMinV()); } else { - int tex[] = CTM.getSubmapIndices(blockAccess, bx, by, bz, 2); + int tex[] = ctm.getSubmapIndices(blockAccess, bx, by, bz, 2); fillLightmap(brightnessBottomRight, brightnessTopRight, brightnessTopLeft, brightnessBottomLeft); fillColormap(colorRedBottomRight, colorRedTopRight, colorRedTopLeft, colorRedBottomLeft, redmap); @@ -355,7 +357,7 @@ public class RenderBlocksCTM extends RenderBlocks { tessellator.addVertexWithUV(1.0, 0.0, 1.0, i.getMaxU(), i.getMaxV()); tessellator.addVertexWithUV(1.0, 1.0, 1.0, i.getMaxU(), i.getMinV()); } else { - int tex[] = CTM.getSubmapIndices(blockAccess, bx, by, bz, 3); + int tex[] = ctm.getSubmapIndices(blockAccess, bx, by, bz, 3); fillLightmap(brightnessBottomLeft, brightnessBottomRight, brightnessTopRight, brightnessTopLeft); fillColormap(colorRedBottomLeft, colorRedBottomRight, colorRedTopRight, colorRedTopLeft, redmap); @@ -382,7 +384,7 @@ public class RenderBlocksCTM extends RenderBlocks { tessellator.addVertexWithUV(1.0, 0.0, 0.0, i.getMaxU(), i.getMinV()); tessellator.addVertexWithUV(1.0, 0.0, 1.0, i.getMaxU(), i.getMaxV()); } else { - int tex[] = CTM.getSubmapIndices(blockAccess, bx, by, bz, 0); + int tex[] = ctm.getSubmapIndices(blockAccess, bx, by, bz, 0); fillLightmap(brightnessBottomLeft, brightnessBottomRight, brightnessTopRight, brightnessTopLeft); fillColormap(colorRedBottomLeft, colorRedBottomRight, colorRedTopRight, colorRedTopLeft, redmap); @@ -409,7 +411,7 @@ public class RenderBlocksCTM extends RenderBlocks { tessellator.addVertexWithUV(1.0, 1.0, 1.0, i.getMaxU(), i.getMaxV()); tessellator.addVertexWithUV(1.0, 1.0, 0.0, i.getMaxU(), i.getMinV()); } else { - int tex[] = CTM.getSubmapIndices(blockAccess, bx, by, bz, 1); + int tex[] = ctm.getSubmapIndices(blockAccess, bx, by, bz, 1); fillLightmap(brightnessTopRight, brightnessTopLeft, brightnessBottomLeft, brightnessBottomRight); fillColormap(colorRedTopRight, colorRedTopLeft, colorRedBottomLeft, colorRedBottomRight, redmap); diff --git a/src/main/java/com/cricketcraft/chisel/client/render/RenderBlocksCTMNoLight.java b/src/main/java/com/cricketcraft/chisel/client/render/RenderBlocksCTMNoLight.java index 8f8a9040..541fe27c 100644 --- a/src/main/java/com/cricketcraft/chisel/client/render/RenderBlocksCTMNoLight.java +++ b/src/main/java/com/cricketcraft/chisel/client/render/RenderBlocksCTMNoLight.java @@ -7,6 +7,8 @@ import net.minecraft.util.IIcon; public class RenderBlocksCTMNoLight extends RenderBlocks { + private static CTM ctm = CTM.getInstance(); + RenderBlocksCTMNoLight() { super(); resetVertices(); @@ -82,7 +84,7 @@ public class RenderBlocksCTMNoLight extends RenderBlocks { tessellator.addVertexWithUV(0.0, 0.0, 1.0, i.getMaxU(), i.getMaxV()); tessellator.addVertexWithUV(0.0, 1.0, 1.0, i.getMaxU(), i.getMinV()); } else { - int tex[] = CTM.getSubmapIndices(blockAccess, bx, by, bz, 4); + int tex[] = ctm.getSubmapIndices(blockAccess, bx, by, bz, 4); side(1, 14, 9, 23, tex[0], false); side(23, 9, 17, 5, tex[1], false); @@ -101,7 +103,7 @@ public class RenderBlocksCTMNoLight extends RenderBlocks { tessellator.addVertexWithUV(1.0, 0.0, 0.0, i.getMinU(), i.getMaxV()); tessellator.addVertexWithUV(1.0, 1.0, 0.0, i.getMinU(), i.getMinV()); } else { - int tex[] = CTM.getSubmapIndices(blockAccess, bx, by, bz, 5); + int tex[] = ctm.getSubmapIndices(blockAccess, bx, by, bz, 5); side(11, 21, 3, 15, tex[3], false); side(16, 7, 21, 11, tex[2], false); @@ -120,7 +122,7 @@ public class RenderBlocksCTMNoLight extends RenderBlocks { tessellator.addVertexWithUV(0.0, 0.0, 0.0, i.getMinU(), i.getMaxV()); tessellator.addVertexWithUV(0.0, 1.0, 0.0, i.getMinU(), i.getMinV()); } else { - int tex[] = CTM.getSubmapIndices(blockAccess, bx, by, bz, 2); + int tex[] = ctm.getSubmapIndices(blockAccess, bx, by, bz, 2); side(2, 15, 8, 22, tex[0], false); side(15, 3, 18, 8, tex[2], false); @@ -139,7 +141,7 @@ public class RenderBlocksCTMNoLight extends RenderBlocks { tessellator.addVertexWithUV(1.0, 0.0, 1.0, i.getMaxU(), i.getMaxV()); tessellator.addVertexWithUV(1.0, 1.0, 1.0, i.getMaxU(), i.getMinV()); } else { - int tex[] = CTM.getSubmapIndices(blockAccess, bx, by, bz, 3); + int tex[] = ctm.getSubmapIndices(blockAccess, bx, by, bz, 3); side(17, 4, 20, 10, tex[2], false); side(5, 17, 10, 24, tex[0], false); @@ -158,7 +160,7 @@ public class RenderBlocksCTMNoLight extends RenderBlocks { tessellator.addVertexWithUV(1.0, 0.0, 0.0, i.getMaxU(), i.getMinV()); tessellator.addVertexWithUV(1.0, 0.0, 1.0, i.getMaxU(), i.getMaxV()); } else { - int tex[] = CTM.getSubmapIndices(blockAccess, bx, by, bz, 0); + int tex[] = ctm.getSubmapIndices(blockAccess, bx, by, bz, 0); side(13, 21, 7, 20, tex[3], true); side(19, 13, 20, 4, tex[2], true); @@ -177,7 +179,7 @@ public class RenderBlocksCTMNoLight extends RenderBlocks { tessellator.addVertexWithUV(1.0, 1.0, 1.0, i.getMaxU(), i.getMaxV()); tessellator.addVertexWithUV(1.0, 1.0, 0.0, i.getMaxU(), i.getMinV()); } else { - int tex[] = CTM.getSubmapIndices(blockAccess, bx, by, bz, 1); + int tex[] = ctm.getSubmapIndices(blockAccess, bx, by, bz, 1); side(12, 24, 6, 25, tex[3], false); side(22, 12, 25, 2, tex[1], false); diff --git a/src/main/java/com/cricketcraft/chisel/client/render/RenderBlocksColumn.java b/src/main/java/com/cricketcraft/chisel/client/render/RenderBlocksColumn.java index 629175cf..4e2874f8 100644 --- a/src/main/java/com/cricketcraft/chisel/client/render/RenderBlocksColumn.java +++ b/src/main/java/com/cricketcraft/chisel/client/render/RenderBlocksColumn.java @@ -10,14 +10,15 @@ public class RenderBlocksColumn extends RenderBlocks { TextureSubmap submap; IIcon iconTop; IIcon sides[] = new IIcon[6]; + CTM ctm = CTM.getInstance(); RenderBlocksColumn() { super(); } boolean connected(IBlockAccess world, int x, int y, int z, Block block, int meta) { - Block inWorld = CTM.getBlockOrFacade(world, x, y, z, -1); - return inWorld != null && inWorld.equals(block) && CTM.getBlockOrFacadeMetadata(world, x, y, z, -1) == meta; + Block inWorld = ctm.getBlockOrFacade(world, x, y, z, -1); + return inWorld != null && inWorld.equals(block) && ctm.getBlockOrFacadeMetadata(world, x, y, z, -1) == meta; } @Override diff --git a/src/main/java/com/cricketcraft/chisel/client/render/SubmapManagerFakeController.java b/src/main/java/com/cricketcraft/chisel/client/render/SubmapManagerFakeController.java new file mode 100644 index 00000000..8dbf9f7e --- /dev/null +++ b/src/main/java/com/cricketcraft/chisel/client/render/SubmapManagerFakeController.java @@ -0,0 +1,45 @@ +package com.cricketcraft.chisel.client.render; + +import net.minecraft.block.Block; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; + +import com.cricketcraft.chisel.carving.CarvableHelper.ISubmapManager; +import com.cricketcraft.chisel.init.ChiselBlocks; + +import static com.cricketcraft.chisel.client.render.CTM.Dir.*; + +public class SubmapManagerFakeController implements ISubmapManager { + + private TextureSubmap map; + private CTM ctm = CTM.getInstance(); + + public SubmapManagerFakeController() { + ctm.disableObscuredFaceCheck = true; + } + + @Override + public IIcon getIcon(int side, int meta) { + return map.icons[0]; + } + + @Override + public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { + ctm.buildConnectionMap(world, x, y, z, side, ChiselBlocks.futura, 2); + if (ctm.connectedAnd(TOP, BOTTOM, LEFT, RIGHT)) { + return map.icons[3]; + } else if (ctm.connectedAnd(TOP, BOTTOM)) { + return map.icons[2]; + } else if (ctm.connectedAnd(LEFT, RIGHT)) { + return map.icons[1]; + } else { + return map.icons[0]; + } + } + + @Override + public void registerIcons(String modName, Block block, IIconRegister register) { + map = new TextureSubmap(register.registerIcon(modName + ":futura/WIP/controllerWIP-ctm"), 2, 2); + } +} diff --git a/src/main/resources/assets/chisel/textures/blocks/futura/WIP/controllerWIP-ctm.png b/src/main/resources/assets/chisel/textures/blocks/futura/WIP/controllerWIP-ctm.png new file mode 100644 index 0000000000000000000000000000000000000000..82059bb8336e92d62767585fc7041fa675656b7e GIT binary patch literal 7444 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 VQ~BoMzKho&FAg3VR3Df$@4v^8n}q-X literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/chisel/textures/blocks/futura/WIP/controllerWIP-ctm1.png b/src/main/resources/assets/chisel/textures/blocks/futura/WIP/controllerWIP-ctm1.png deleted file mode 100644 index c7625808b0479fd948171effde59f61a92b9851d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6824 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 bjR_EO>Tq>E)3ZhYD*!l+F*B&tca8WTMWvJp diff --git a/src/main/resources/assets/chisel/textures/blocks/futura/WIP/controllerWIP-ctm1.png.mcmeta b/src/main/resources/assets/chisel/textures/blocks/futura/WIP/controllerWIP-ctm1.png.mcmeta deleted file mode 100644 index 68df5399..00000000 --- a/src/main/resources/assets/chisel/textures/blocks/futura/WIP/controllerWIP-ctm1.png.mcmeta +++ /dev/null @@ -1,5 +0,0 @@ -{ - "animation": { - "frametime": 5 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/chisel/textures/blocks/futura/WIP/controllerWIP-ctm2.png b/src/main/resources/assets/chisel/textures/blocks/futura/WIP/controllerWIP-ctm2.png deleted file mode 100644 index 5128d610bbb3e88bded587d73add8216b4f83e55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7106 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 diff --git a/src/main/resources/assets/chisel/textures/blocks/futura/WIP/controllerWIP-ctm2.png.mcmeta b/src/main/resources/assets/chisel/textures/blocks/futura/WIP/controllerWIP-ctm2.png.mcmeta deleted file mode 100644 index 68df5399..00000000 --- a/src/main/resources/assets/chisel/textures/blocks/futura/WIP/controllerWIP-ctm2.png.mcmeta +++ /dev/null @@ -1,5 +0,0 @@ -{ - "animation": { - "frametime": 5 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/chisel/textures/blocks/futura/WIP/controllerWIP-ctm3.png b/src/main/resources/assets/chisel/textures/blocks/futura/WIP/controllerWIP-ctm3.png deleted file mode 100644 index b9c0954d3a19c617a25279cf6b19e8148a129b30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7354 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 diff --git a/src/main/resources/assets/chisel/textures/blocks/futura/WIP/controllerWIP.png.mcmeta b/src/main/resources/assets/chisel/textures/blocks/futura/WIP/controllerWIP.png.mcmeta deleted file mode 100644 index b695b035..00000000 --- a/src/main/resources/assets/chisel/textures/blocks/futura/WIP/controllerWIP.png.mcmeta +++ /dev/null @@ -1,18 +0,0 @@ -{ - "animation": { - "width": 64, - "height": 48, - "frametime": 1, - "frames": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - ] - } -} \ No newline at end of file