diff --git a/src/main/java/com/cricketcraft/chisel/Features.java b/src/main/java/com/cricketcraft/chisel/Features.java index 701ad430..a4cebccd 100644 --- a/src/main/java/com/cricketcraft/chisel/Features.java +++ b/src/main/java/com/cricketcraft/chisel/Features.java @@ -2689,28 +2689,28 @@ public enum Features { void addBlocks() { BlockCarvable voidstone = (BlockCarvable) new BlockCarvable().setCreativeTab(ChiselTabs.tabStoneChiselBlocks).setStepSound(Block.soundTypeStone) .setCreativeTab(ChiselTabs.tabStoneChiselBlocks).setHardness(5.0F).setResistance(10.0F); - voidstone.carverHelper.addVariation("tile.voidstone.0.desc", 0, new SubmapManagerVoidstone("voidstone/raw")); - voidstone.carverHelper.addVariation("tile.voidstone.1.desc", 1, new SubmapManagerVoidstone("voidstone/quarters")); - voidstone.carverHelper.addVariation("tile.voidstone.2.desc", 2, new SubmapManagerVoidstone("voidstone/smooth")); - voidstone.carverHelper.addVariation("tile.voidstone.3.desc", 3, new SubmapManagerVoidstone("voidstone/skulls")); - voidstone.carverHelper.addVariation("tile.voidstone.4.desc", 4, new SubmapManagerVoidstone("voidstone/rune")); - voidstone.carverHelper.addVariation("tile.voidstone.5.desc", 5, new SubmapManagerVoidstone("voidstone/metalborder")); - voidstone.carverHelper.addVariation("tile.voidstone.6.desc", 6, new SubmapManagerVoidstone("voidstone/eye")); - voidstone.carverHelper.addVariation("tile.voidstone.7.desc", 7, new SubmapManagerVoidstone("voidstone/bevel")); + voidstone.carverHelper.addVariation("tile.voidstone.0.desc", 0, new SubmapManagerVoidstone("voidstone/raw", 0)); + voidstone.carverHelper.addVariation("tile.voidstone.1.desc", 1, new SubmapManagerVoidstone("voidstone/quarters", 1)); + voidstone.carverHelper.addVariation("tile.voidstone.2.desc", 2, new SubmapManagerVoidstone("voidstone/smooth", 2)); + voidstone.carverHelper.addVariation("tile.voidstone.3.desc", 3, new SubmapManagerVoidstone("voidstone/skulls", 3)); + voidstone.carverHelper.addVariation("tile.voidstone.4.desc", 4, new SubmapManagerVoidstone("voidstone/rune", 4)); + voidstone.carverHelper.addVariation("tile.voidstone.5.desc", 5, new SubmapManagerVoidstone("voidstone/metalborder", 5)); + voidstone.carverHelper.addVariation("tile.voidstone.6.desc", 6, new SubmapManagerVoidstone("voidstone/eye", 6)); + voidstone.carverHelper.addVariation("tile.voidstone.7.desc", 7, new SubmapManagerVoidstone("voidstone/bevel", 7)); voidstone.carverHelper.registerAll(voidstone, "voidstone"); Carving.chisel.registerOre("voidstone", "voidstone"); BlockCarvable voidstone2 = (BlockCarvable) new BlockCarvable().setStepSound(Block.soundTypeStone) .setCreativeTab(ChiselTabs.tabStoneChiselBlocks).setHardness(5.0F).setResistance(10.0F); - voidstone2.carverHelper.addVariation("tile.voidstone.0.desc", 0, new SubmapManagerVoidstone("voidstone/animated/raw")); - voidstone2.carverHelper.addVariation("tile.voidstone.1.desc", 1, new SubmapManagerVoidstone("voidstone/animated/quarters")); - voidstone2.carverHelper.addVariation("tile.voidstone.2.desc", 2, new SubmapManagerVoidstone("voidstone/animated/smooth")); - voidstone2.carverHelper.addVariation("tile.voidstone.3.desc", 3, new SubmapManagerVoidstone("voidstone/animated/skulls")); - voidstone2.carverHelper.addVariation("tile.voidstone.4.desc", 4, new SubmapManagerVoidstone("voidstone/animated/rune")); - voidstone2.carverHelper.addVariation("tile.voidstone.5.desc", 5, new SubmapManagerVoidstone("voidstone/animated/metalborder")); - voidstone2.carverHelper.addVariation("tile.voidstone.6.desc", 6, new SubmapManagerVoidstone("voidstone/animated/eye")); - voidstone2.carverHelper.addVariation("tile.voidstone.7.desc", 7, new SubmapManagerVoidstone("voidstone/animated/bevel")); + voidstone2.carverHelper.addVariation("tile.voidstone.0.desc", 0, new SubmapManagerVoidstone("voidstone/animated/raw", 0)); + voidstone2.carverHelper.addVariation("tile.voidstone.1.desc", 1, new SubmapManagerVoidstone("voidstone/animated/quarters", 1)); + voidstone2.carverHelper.addVariation("tile.voidstone.2.desc", 2, new SubmapManagerVoidstone("voidstone/animated/smooth", 2)); + voidstone2.carverHelper.addVariation("tile.voidstone.3.desc", 3, new SubmapManagerVoidstone("voidstone/animated/skulls", 3)); + voidstone2.carverHelper.addVariation("tile.voidstone.4.desc", 4, new SubmapManagerVoidstone("voidstone/animated/rune", 4)); + voidstone2.carverHelper.addVariation("tile.voidstone.5.desc", 5, new SubmapManagerVoidstone("voidstone/animated/metalborder", 5)); + voidstone2.carverHelper.addVariation("tile.voidstone.6.desc", 6, new SubmapManagerVoidstone("voidstone/animated/eye", 6)); + voidstone2.carverHelper.addVariation("tile.voidstone.7.desc", 7, new SubmapManagerVoidstone("voidstone/animated/bevel", 7)); voidstone2.carverHelper.registerAll(voidstone2, "voidstone2"); Carving.chisel.registerOre("voidstone2", "voidstone2"); diff --git a/src/main/java/com/cricketcraft/chisel/block/BlockCarvable.java b/src/main/java/com/cricketcraft/chisel/block/BlockCarvable.java index b8478b3e..eb892c6e 100644 --- a/src/main/java/com/cricketcraft/chisel/block/BlockCarvable.java +++ b/src/main/java/com/cricketcraft/chisel/block/BlockCarvable.java @@ -12,6 +12,7 @@ import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import com.cricketcraft.chisel.Chisel; +import com.cricketcraft.chisel.api.ChiselAPIProps; import com.cricketcraft.chisel.api.ICarvable; import com.cricketcraft.chisel.api.carving.CarvableHelper; import com.cricketcraft.chisel.api.carving.IVariationInfo; @@ -69,7 +70,7 @@ public class BlockCarvable extends Block implements ICarvable { @Override public void registerBlockIcons(IIconRegister register) { - carverHelper.registerBlockIcons("Chisel", this, register); + carverHelper.registerBlockIcons(Chisel.MOD_ID, this, register); } @Override diff --git a/src/main/java/com/cricketcraft/chisel/client/render/SubmapManagerVoidstone.java b/src/main/java/com/cricketcraft/chisel/client/render/SubmapManagerVoidstone.java index ad741607..df7945b9 100644 --- a/src/main/java/com/cricketcraft/chisel/client/render/SubmapManagerVoidstone.java +++ b/src/main/java/com/cricketcraft/chisel/client/render/SubmapManagerVoidstone.java @@ -8,8 +8,11 @@ import net.minecraft.util.MathHelper; import net.minecraft.world.IBlockAccess; import net.minecraftforge.common.util.ForgeDirection; +import com.cricketcraft.chisel.api.carving.CarvingUtils; import com.cricketcraft.chisel.api.rendering.TextureType; +import com.cricketcraft.ctmlib.ISubmapManager; import com.cricketcraft.ctmlib.TextureSubmap; +import com.cricketcraft.ctmlib.RenderBlocksCTM; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -18,49 +21,49 @@ public class SubmapManagerVoidstone extends SubmapManagerBase { // TODO there must be a better more generic way to do this... @SideOnly(Side.CLIENT) - private class RenderBlocksVoidstone extends RenderBlocks { + private class RenderBlocksVoidstone extends RenderBlocksCTM { @Override public void renderFaceXNeg(Block block, double x, double y, double z, IIcon p_147798_8_) { super.renderFaceXNeg(block, x, y, z, getBase(x, y, z, ForgeDirection.WEST.ordinal())); - super.renderFaceXNeg(block, x, y, z, icon); + super.renderFaceXNeg(block, x, y, z, p_147798_8_); } @Override public void renderFaceXPos(Block block, double x, double y, double z, IIcon p_147764_8_) { super.renderFaceXPos(block, x, y, z, getBase(x, y, z, ForgeDirection.EAST.ordinal())); - super.renderFaceXPos(block, x, y, z, icon); + super.renderFaceXPos(block, x, y, z, p_147764_8_); } @Override public void renderFaceYNeg(Block block, double x, double y, double z, IIcon p_147768_8_) { super.renderFaceYNeg(block, x, y, z, getBase(x, y, z, ForgeDirection.DOWN.ordinal())); - super.renderFaceYNeg(block, x, y, z, icon); + super.renderFaceYNeg(block, x, y, z, p_147768_8_); } @Override public void renderFaceYPos(Block block, double x, double y, double z, IIcon p_147806_8_) { super.renderFaceYPos(block, x, y, z, getBase(x, y, z, ForgeDirection.UP.ordinal())); - super.renderFaceYPos(block, x, y, z, icon); + super.renderFaceYPos(block, x, y, z, p_147806_8_); } @Override public void renderFaceZNeg(Block block, double x, double y, double z, IIcon p_147761_8_) { super.renderFaceZNeg(block, x, y, z, getBase(x, y, z, ForgeDirection.NORTH.ordinal())); - super.renderFaceZNeg(block, x, y, z, icon); + super.renderFaceZNeg(block, x, y, z, p_147761_8_); } @Override public void renderFaceZPos(Block block, double x, double y, double z, IIcon p_147734_8_) { super.renderFaceZPos(block, x, y, z, getBase(x, y, z, ForgeDirection.SOUTH.ordinal())); - super.renderFaceZPos(block, x, y, z, icon); + super.renderFaceZPos(block, x, y, z, p_147734_8_); } } @SideOnly(Side.CLIENT) - private RenderBlocks rb; + private RenderBlocksCTM rb; - private IIcon icon; + private ISubmapManager overlay; private TextureSubmap base; private IIcon getBase(double x, double y, double z, int side) { @@ -68,19 +71,27 @@ public class SubmapManagerVoidstone extends SubmapManagerBase { } private String texture; + private int meta; - public SubmapManagerVoidstone(String texture) { + public SubmapManagerVoidstone(String texture, int meta) { this.texture = texture; + this.meta = meta; } @Override public IIcon getIcon(int side, int meta) { - return icon; + return overlay.getIcon(side, meta); + } + + @Override + public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { + return overlay.getIcon(world, x, y, z, side); } @Override public void registerIcons(String modName, Block block, IIconRegister register) { - icon = register.registerIcon(modName + ":" + texture); + overlay = TextureType.getTypeFor(null, modName, texture).createManagerFor(CarvingUtils.getDefaultVariationFor(block, meta, 0), texture); + overlay.registerIcons(modName, block, register); base = new TextureSubmap(register.registerIcon(modName + ":" + "animations/hadesX32"), 2, 2); } @@ -90,7 +101,12 @@ public class SubmapManagerVoidstone extends SubmapManagerBase { if (rb == null) { rb = new RenderBlocksVoidstone(); } + RenderBlocks ctx = overlay.createRenderContext(rendererOld, block, world); rb.setRenderBoundsFromBlock(block); + if (ctx instanceof RenderBlocksCTM) { + rb.submap = ((RenderBlocksCTM) ctx).submap; + rb.submapSmall = ((RenderBlocksCTM) ctx).submapSmall; + } return rb; } }