From 09f12d519450597e8fa3e1dda587f3a7712a13de Mon Sep 17 00:00:00 2001 From: Cricket Date: Sun, 21 Jun 2015 22:28:46 -0400 Subject: [PATCH] Controllers are done --- .../com/cricketcraft/chisel/Features.java | 8 ++--- .../chisel/block/BlockCarvableGlow.java | 16 ++++++++++ .../client/render/RendererLayeredGlow.java | 28 ++++++++++++++++-- .../render/SubmapManagerFakeController.java | 12 ++++++-- .../inventory/InventoryChiselSelection.java | 2 +- .../resources/assets/chisel/lang/en_US.lang | 1 + .../textures/blocks/futura/WIP/controller.png | Bin 594 -> 5303 bytes ...rAnim.png.mcmeta => controller.png.mcmeta} | 0 .../blocks/futura/WIP/controllerAnim.png | Bin 3397 -> 0 bytes .../blocks/futura/WIP/controllerPurple.png | Bin 0 -> 7459 bytes .../futura/WIP/controllerPurple.png.mcmeta | 19 ++++++++++++ 11 files changed, 75 insertions(+), 11 deletions(-) rename src/main/resources/assets/chisel/textures/blocks/futura/WIP/{controllerAnim.png.mcmeta => controller.png.mcmeta} (100%) delete mode 100644 src/main/resources/assets/chisel/textures/blocks/futura/WIP/controllerAnim.png create mode 100644 src/main/resources/assets/chisel/textures/blocks/futura/WIP/controllerPurple.png create mode 100644 src/main/resources/assets/chisel/textures/blocks/futura/WIP/controllerPurple.png.mcmeta diff --git a/src/main/java/com/cricketcraft/chisel/Features.java b/src/main/java/com/cricketcraft/chisel/Features.java index 1ad42e13..0d8c0c61 100644 --- a/src/main/java/com/cricketcraft/chisel/Features.java +++ b/src/main/java/com/cricketcraft/chisel/Features.java @@ -786,16 +786,14 @@ public enum Features { FUTURA { - // TODO Overlay is WIP @Override void addBlocks() { - BlockCarvable futura = (BlockCarvable) new BlockCarvable(Material.rock/* - * , "futura/screenOverlay-ctm" - */).setCreativeTab(ChiselTabs.tabMetalChiselBlocks).setHardness(2.0F).setResistance(10F); + BlockCarvable futura = (BlockCarvable) new BlockCarvable(Material.rock).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", new SubmapManagerFakeController()); + futura.carverHelper.addVariation("tile.futura.2.desc", 2, "futura/WIP/controllerWIP-Overlay", new SubmapManagerFakeController(2)); futura.carverHelper.addVariation("tile.futura.3.desc", 3, "futura/WIP/wavyWIP"); + futura.carverHelper.addVariation("tile.futura.4.desc", 4, "futura/WIP/controllerWIP-Overlay", new SubmapManagerFakeController(4)); futura.carverHelper.registerAll(futura, "futura"); BlockCarvable circuits = (BlockCarvable) new BlockCarvableGlow("animations/strobe").setCreativeTab(ChiselTabs.tabMetalChiselBlocks).setHardness(2.0F).setResistance(10.0F); diff --git a/src/main/java/com/cricketcraft/chisel/block/BlockCarvableGlow.java b/src/main/java/com/cricketcraft/chisel/block/BlockCarvableGlow.java index ebc7c772..af963c6c 100644 --- a/src/main/java/com/cricketcraft/chisel/block/BlockCarvableGlow.java +++ b/src/main/java/com/cricketcraft/chisel/block/BlockCarvableGlow.java @@ -1,5 +1,6 @@ package com.cricketcraft.chisel.block; +import com.cricketcraft.chisel.client.render.SubmapManagerBase; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.util.IIcon; @@ -14,6 +15,7 @@ public class BlockCarvableGlow extends BlockCarvableColor { @SideOnly(Side.CLIENT) private IIcon glowTexture; + private SubmapManagerBase submapManagerBase; private String glowTexturePath; public BlockCarvableGlow(String glowTexture) { @@ -27,12 +29,26 @@ public class BlockCarvableGlow extends BlockCarvableColor { this.glowTexturePath = glowTexture; } + public BlockCarvableGlow(Material material, String glowTexture, SubmapManagerBase submapManagerBase){ + super(material); + this.glowTexturePath = glowTexture; + this.submapManagerBase = submapManagerBase; + } + @Override public void registerBlockIcons(IIconRegister register) { super.registerBlockIcons(register); glowTexture = register.registerIcon(Chisel.MOD_ID + ":" + glowTexturePath); } + public boolean hasSubmapManager(){ + return submapManagerBase == null; + } + + public SubmapManagerBase getSubmapManager(){ + return hasSubmapManager() ? submapManagerBase : null; + } + public IIcon getGlowTexture() { return glowTexture; } diff --git a/src/main/java/com/cricketcraft/chisel/client/render/RendererLayeredGlow.java b/src/main/java/com/cricketcraft/chisel/client/render/RendererLayeredGlow.java index fa24b0ec..0025b551 100644 --- a/src/main/java/com/cricketcraft/chisel/client/render/RendererLayeredGlow.java +++ b/src/main/java/com/cricketcraft/chisel/client/render/RendererLayeredGlow.java @@ -1,5 +1,7 @@ package com.cricketcraft.chisel.client.render; +import com.cricketcraft.chisel.api.carving.IVariationInfo; +import com.cricketcraft.chisel.api.rendering.RenderBlocksCTM; import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.Tessellator; @@ -37,11 +39,33 @@ public class RendererLayeredGlow implements ISimpleBlockRenderingHandler { @Override public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { Tessellator.instance.setColorOpaque_I(Configurations.configColors[world.getBlockMetadata(x, y, z)]); - Tessellator.instance.setBrightness(0xF000F0); - Drawing.renderAllFaces(renderer, block, x, y, z, ((BlockCarvableGlow) block).getGlowTexture()); + Tessellator.instance.setBrightness(0xF000F0); + BlockCarvableGlow glow = (BlockCarvableGlow) block; + if(glow.hasSubmapManager()){ + renderer.overrideBlockTexture = glow.getGlowTexture(); + getContext(renderer, glow, world).renderBlockAllFaces(glow, x, y, z); + } else { + Drawing.renderAllFaces(renderer, block, x, y, z, ((BlockCarvableGlow) block).getGlowTexture()); + } renderer.renderStandardBlock(block, x, y, z); return true; } + + private RenderBlocks getContext(RenderBlocks rendererOld, BlockCarvableGlow block, IBlockAccess world) { + if (!rendererOld.hasOverrideBlockTexture() && block != null) { + RenderBlocks rb = block.getSubmapManager().createRenderContext(rendererOld, block, world); + if (rb != null && rb != rendererOld) { + rb.blockAccess = world; + if (rb instanceof RenderBlocksCTM) { + RenderBlocksCTM rbctm = (RenderBlocksCTM) rb; + rbctm.manager = rbctm.manager == null ? block.getSubmapManager() : rbctm.manager; + rbctm.rendererOld = rbctm.rendererOld == null ? rendererOld : rbctm.rendererOld; + } + return rb; + } + } + return rendererOld; + } @Override public boolean shouldRender3DInInventory(int modelId) { diff --git a/src/main/java/com/cricketcraft/chisel/client/render/SubmapManagerFakeController.java b/src/main/java/com/cricketcraft/chisel/client/render/SubmapManagerFakeController.java index 26a6223c..f7aed032 100644 --- a/src/main/java/com/cricketcraft/chisel/client/render/SubmapManagerFakeController.java +++ b/src/main/java/com/cricketcraft/chisel/client/render/SubmapManagerFakeController.java @@ -18,9 +18,11 @@ public class SubmapManagerFakeController extends SubmapManagerBase { private TextureSubmap map; private CTM ctm = CTM.getInstance(); + private int meta; - public SubmapManagerFakeController() { + public SubmapManagerFakeController(int meta) { ctm.disableObscuredFaceCheck = true; + this.meta = meta; } @Override @@ -30,7 +32,7 @@ public class SubmapManagerFakeController extends SubmapManagerBase { @Override public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { - ctm.buildConnectionMap(world, x, y, z, side, ChiselBlocks.futura, 2); + ctm.buildConnectionMap(world, x, y, z, side, ChiselBlocks.futura, meta); if (ctm.connectedAnd(TOP, BOTTOM, LEFT, RIGHT)) { return map.getSubIcon(1, 1); } else if (ctm.connectedAnd(TOP, BOTTOM)) { @@ -45,6 +47,10 @@ public class SubmapManagerFakeController extends SubmapManagerBase { @Override @SideOnly(Side.CLIENT) public void registerIcons(String modName, Block block, IIconRegister register) { - map = new TextureSubmap(register.registerIcon(modName + ":futura/WIP/controllerWIP-ctm"), 2, 2); + if(meta == 2){ + map = new TextureSubmap(register.registerIcon(modName + ":futura/WIP/controller"), 2, 2); + } else { + map = new TextureSubmap(register.registerIcon(modName + ":futura/WIP/controllerPurple"), 2, 2); + } } } diff --git a/src/main/java/com/cricketcraft/chisel/inventory/InventoryChiselSelection.java b/src/main/java/com/cricketcraft/chisel/inventory/InventoryChiselSelection.java index 688ced75..bb42c15f 100644 --- a/src/main/java/com/cricketcraft/chisel/inventory/InventoryChiselSelection.java +++ b/src/main/java/com/cricketcraft/chisel/inventory/InventoryChiselSelection.java @@ -128,7 +128,7 @@ public class InventoryChiselSelection implements IInventory { activeVariations = 0; while (activeVariations < normalSlots && activeVariations < list.size()) { - if(Block.blockRegistry.getNameForObject(list.get(activeVariations)) != null) { + if(Block.blockRegistry.getNameForObject(Block.getBlockFromItem(list.get(activeVariations).getItem())) != null) { inventory[activeVariations] = list.get(activeVariations); activeVariations++; } diff --git a/src/main/resources/assets/chisel/lang/en_US.lang b/src/main/resources/assets/chisel/lang/en_US.lang index 9890a007..7da9b867 100644 --- a/src/main/resources/assets/chisel/lang/en_US.lang +++ b/src/main/resources/assets/chisel/lang/en_US.lang @@ -239,6 +239,7 @@ tile.futura.0.desc=Glowing Screen with Metallic Borders tile.futura.1.desc=Glowing Screen with Cyan Borders tile.futura.2.desc=Applied Labyrinthic Neon Lines tile.futura.3.desc=Poptart Rainbow +tile.futura.4.desc=Purple Applie Labyrinthic Neon Lines tile.futuraCircuit.black.desc=Black tile.futuraCircuit.blue.desc=Blue tile.futuraCircuit.brown.desc=Brown diff --git a/src/main/resources/assets/chisel/textures/blocks/futura/WIP/controller.png b/src/main/resources/assets/chisel/textures/blocks/futura/WIP/controller.png index d8eeda8851329f962d13f3a0fb0a7ab58787289f..5192e16c0fc323bfe6b8175dd951d6fcaa9d7a82 100644 GIT binary patch literal 5303 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 y*O)?0Y&Y(*OzLCIqf$qbNl{qy_|} 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 Xh3tXu#H-+;CFG*^C9PK)b`k#tdv{`* literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/chisel/textures/blocks/futura/WIP/controllerPurple.png.mcmeta b/src/main/resources/assets/chisel/textures/blocks/futura/WIP/controllerPurple.png.mcmeta new file mode 100644 index 00000000..fd1abe54 --- /dev/null +++ b/src/main/resources/assets/chisel/textures/blocks/futura/WIP/controllerPurple.png.mcmeta @@ -0,0 +1,19 @@ +{ + "animation": { + "frametime": 2, + "frames": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 0 + ] + } +}