diff --git a/src/main/java/com/cricketcraft/chisel/Features.java b/src/main/java/com/cricketcraft/chisel/Features.java index 08391f23..4858904c 100644 --- a/src/main/java/com/cricketcraft/chisel/Features.java +++ b/src/main/java/com/cricketcraft/chisel/Features.java @@ -1,6 +1,21 @@ package com.cricketcraft.chisel; +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemDye; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.FurnaceRecipes; +import net.minecraftforge.oredict.OreDictionary; +import net.minecraftforge.oredict.ShapedOreRecipe; +import net.minecraftforge.oredict.ShapelessOreRecipe; + import com.cricketcraft.chisel.api.carving.ICarvingVariation; +import com.cricketcraft.chisel.api.carving.IVariationInfo; import com.cricketcraft.chisel.block.*; import com.cricketcraft.chisel.carving.CarvableHelper; import com.cricketcraft.chisel.carving.CarvableVariation; @@ -15,7 +30,14 @@ import com.cricketcraft.chisel.entity.EntitySmashingRock; import com.cricketcraft.chisel.init.ChiselBlocks; import com.cricketcraft.chisel.init.ChiselItems; import com.cricketcraft.chisel.init.ChiselTabs; -import com.cricketcraft.chisel.item.*; +import com.cricketcraft.chisel.item.ItemBallOMoss; +import com.cricketcraft.chisel.item.ItemBlockPresent; +import com.cricketcraft.chisel.item.ItemCarvable; +import com.cricketcraft.chisel.item.ItemCarvablePumpkin; +import com.cricketcraft.chisel.item.ItemCarvableSlab; +import com.cricketcraft.chisel.item.ItemCloudInABottle; +import com.cricketcraft.chisel.item.ItemSmashingRock; +import com.cricketcraft.chisel.item.ItemUpgrade; import com.cricketcraft.chisel.item.chisel.ItemChisel; import com.cricketcraft.chisel.item.chisel.ItemChisel.ChiselType; import com.google.common.collect.Lists; @@ -23,20 +45,6 @@ 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; -import cpw.mods.fml.common.registry.LanguageRegistry; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemDye; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.FurnaceRecipes; -import net.minecraftforge.oredict.OreDictionary; -import net.minecraftforge.oredict.ShapedOreRecipe; -import net.minecraftforge.oredict.ShapelessOreRecipe; - -import java.util.List; import static com.cricketcraft.chisel.init.ChiselBlocks.*; import static com.cricketcraft.chisel.utils.General.sGNames; @@ -872,10 +880,10 @@ public enum Features { stainedGlass[glassId].carverHelper.addVariation(sGNames[i] + " borderless glass", glassPrefix + 3, texName + "transparent"); OreDictionary.registerOre(oreName, new ItemStack(Blocks.stained_glass, 1, i)); Carving.chisel.registerOre(blockName, oreName); - for (CarvableVariation cv : stainedGlass[glassId].carverHelper.variations) { - if (cv.metadata < glassPrefix || cv.metadata >= glassPrefix + 4) + for (IVariationInfo info : stainedGlass[glassId].carverHelper.infoList) { + if (info.getVariation().getBlockMeta() < glassPrefix || info.getVariation().getBlockMeta() >= glassPrefix + 4) continue; - stainedGlass[glassId].carverHelper.registerVariation(blockName, cv, stainedGlass[glassId], cv.metadata); + stainedGlass[glassId].carverHelper.registerVariation(blockName, info); } } } @@ -906,10 +914,10 @@ public enum Features { stainedGlassPane[glassId].carverHelper.addVariation(sGNames[i] + " fancy quadrant glass", glassPrefix + 5, texName + "quad-fancy"); OreDictionary.registerOre(oreName, new ItemStack(Blocks.stained_glass_pane, 1, i)); Carving.chisel.registerOre(blockName, oreName); - for (CarvableVariation cv : stainedGlassPane[glassId].carverHelper.variations) { - if (cv.metadata < glassPrefix || cv.metadata >= glassPrefix + 8) + for (IVariationInfo info : stainedGlassPane[glassId].carverHelper.infoList) { + if (info.getVariation().getBlockMeta() < glassPrefix || info.getVariation().getBlockMeta() >= glassPrefix + 8) continue; - stainedGlassPane[glassId].carverHelper.registerVariation(blockName, cv, stainedGlassPane[glassId], cv.metadata); + stainedGlassPane[glassId].carverHelper.registerVariation(blockName, info); } } } diff --git a/src/main/java/com/cricketcraft/chisel/api/ICarvable.java b/src/main/java/com/cricketcraft/chisel/api/ICarvable.java index 7b7c7ec1..e9dc7a92 100644 --- a/src/main/java/com/cricketcraft/chisel/api/ICarvable.java +++ b/src/main/java/com/cricketcraft/chisel/api/ICarvable.java @@ -1,18 +1,19 @@ package com.cricketcraft.chisel.api; -import com.cricketcraft.chisel.carving.CarvableHelper; -import com.cricketcraft.chisel.carving.CarvableVariation; - import net.minecraft.item.ItemStack; import net.minecraft.world.IBlockAccess; +import com.cricketcraft.chisel.api.carving.IVariationInfo; +import com.cricketcraft.chisel.api.client.ISubmapManager; +import com.cricketcraft.chisel.carving.CarvableHelper; + /** * To be implemented on blocks that can be chiseled and need advanced metadata to variation mapping. Currently not very usable without internal classes. */ public interface ICarvable { /** - * Gets a {@link CarvableVariation} from this block, based on metadata. + * Gets a {@link ISubmapManager} from this block, based on metadata. *

* Typically you can refer this method to {@link CarvableHelper#getVariation(int)} but this method is provided for more complex metadata handling. * @@ -28,16 +29,17 @@ public interface ICarvable { * Z coord of the block * @param metadata * The metadata of the block - * @return The {@link CarvableVariation} that represents this block in the world. + * @return The {@link ISubmapManager} that represents this block in the world. */ - public CarvableVariation getVariation(IBlockAccess world, int x, int y, int z, int metadata); + public IVariationInfo getVariation(IBlockAccess world, int x, int y, int z, int metadata); /** - * Gets the {@link CarvableVariation} for this block when it is in item form. + * Gets the {@link ISubmapManager} for this block when it is in item form. * * @param stack * The {@link ItemStack} representing this block; - * @return A {@link CarvableVariation} + * @return A {@link ISubmapManager} */ - public CarvableVariation getVariation(ItemStack stack); + public IVariationInfo getVariation(ItemStack stack); } + \ No newline at end of file diff --git a/src/main/java/com/cricketcraft/chisel/api/carving/IVariationInfo.java b/src/main/java/com/cricketcraft/chisel/api/carving/IVariationInfo.java new file mode 100644 index 00000000..44f5e45d --- /dev/null +++ b/src/main/java/com/cricketcraft/chisel/api/carving/IVariationInfo.java @@ -0,0 +1,12 @@ +package com.cricketcraft.chisel.api.carving; + +import com.cricketcraft.chisel.api.client.ISubmapManager; + +public interface IVariationInfo { + + ISubmapManager getSubmapManager(); + + ICarvingVariation getVariation(); + + String getDescription(); +} diff --git a/src/main/java/com/cricketcraft/chisel/api/carving/VariationInfoBase.java b/src/main/java/com/cricketcraft/chisel/api/carving/VariationInfoBase.java new file mode 100644 index 00000000..001d409a --- /dev/null +++ b/src/main/java/com/cricketcraft/chisel/api/carving/VariationInfoBase.java @@ -0,0 +1,33 @@ +package com.cricketcraft.chisel.api.carving; + +import com.cricketcraft.chisel.api.client.ISubmapManager; + +import net.minecraft.util.StatCollector; + +public class VariationInfoBase implements IVariationInfo { + + private ICarvingVariation variation; + private String unlocDesc; + private ISubmapManager manager; + + public VariationInfoBase(ICarvingVariation variation, String unlocDesc, ISubmapManager manager) { + this.variation = variation; + this.unlocDesc = unlocDesc; + this.manager = manager; + } + + @Override + public ICarvingVariation getVariation() { + return variation; + } + + @Override + public String getDescription() { + return StatCollector.translateToLocal(unlocDesc); + } + + @Override + public ISubmapManager getSubmapManager() { + return manager; + } +} diff --git a/src/main/java/com/cricketcraft/chisel/block/BlockCarvable.java b/src/main/java/com/cricketcraft/chisel/block/BlockCarvable.java index 4b0f7282..b46dadc0 100644 --- a/src/main/java/com/cricketcraft/chisel/block/BlockCarvable.java +++ b/src/main/java/com/cricketcraft/chisel/block/BlockCarvable.java @@ -1,12 +1,7 @@ package com.cricketcraft.chisel.block; -import com.cricketcraft.chisel.Chisel; -import com.cricketcraft.chisel.api.ICarvable; -import com.cricketcraft.chisel.carving.CarvableHelper; -import com.cricketcraft.chisel.carving.CarvableVariation; -import com.cricketcraft.chisel.init.ChiselTabs; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; +import java.util.List; + import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; @@ -16,7 +11,14 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; -import java.util.List; +import com.cricketcraft.chisel.Chisel; +import com.cricketcraft.chisel.api.ICarvable; +import com.cricketcraft.chisel.api.carving.IVariationInfo; +import com.cricketcraft.chisel.carving.CarvableHelper; +import com.cricketcraft.chisel.init.ChiselTabs; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; public class BlockCarvable extends Block implements ICarvable { @@ -32,7 +34,7 @@ public class BlockCarvable extends Block implements ICarvable { if (m == Material.rock || m == Material.iron) { setHarvestLevel("pickaxe", 0); } - carverHelper = new CarvableHelper(); + carverHelper = new CarvableHelper(this); setResistance(10.0F); setHardness(2.0F); setCreativeTab(ChiselTabs.tabOtherChiselBlocks); @@ -80,12 +82,12 @@ public class BlockCarvable extends Block implements ICarvable { } @Override - public CarvableVariation getVariation(IBlockAccess world, int x, int y, int z, int metadata) { + public IVariationInfo getVariation(IBlockAccess world, int x, int y, int z, int metadata) { return carverHelper.getVariation(metadata); } @Override - public CarvableVariation getVariation(ItemStack stack) { + public IVariationInfo getVariation(ItemStack stack) { return carverHelper.getVariation(stack.getItemDamage()); } diff --git a/src/main/java/com/cricketcraft/chisel/block/BlockCarvableAntiBlock.java b/src/main/java/com/cricketcraft/chisel/block/BlockCarvableAntiBlock.java index 25ff99e9..e4f1eb45 100644 --- a/src/main/java/com/cricketcraft/chisel/block/BlockCarvableAntiBlock.java +++ b/src/main/java/com/cricketcraft/chisel/block/BlockCarvableAntiBlock.java @@ -14,7 +14,7 @@ public class BlockCarvableAntiBlock extends BlockCarvableColor implements ICarva public BlockCarvableAntiBlock() { super(Material.rock); - carverHelper = new CarvableHelper(); + carverHelper = new CarvableHelper(this); } @Override diff --git a/src/main/java/com/cricketcraft/chisel/block/BlockCarvableGlass.java b/src/main/java/com/cricketcraft/chisel/block/BlockCarvableGlass.java index 45a7a16e..62fff018 100644 --- a/src/main/java/com/cricketcraft/chisel/block/BlockCarvableGlass.java +++ b/src/main/java/com/cricketcraft/chisel/block/BlockCarvableGlass.java @@ -13,8 +13,8 @@ import net.minecraft.world.IBlockAccess; import com.cricketcraft.chisel.Chisel; import com.cricketcraft.chisel.api.ICarvable; +import com.cricketcraft.chisel.api.carving.IVariationInfo; import com.cricketcraft.chisel.carving.CarvableHelper; -import com.cricketcraft.chisel.carving.CarvableVariation; import com.cricketcraft.chisel.init.ChiselTabs; import cpw.mods.fml.relauncher.Side; @@ -28,7 +28,7 @@ public class BlockCarvableGlass extends BlockGlass implements ICarvable { public BlockCarvableGlass() { super(Material.glass, false); - carverHelper = new CarvableHelper(); + carverHelper = new CarvableHelper(this); setCreativeTab(ChiselTabs.tabOtherChiselBlocks); } @@ -73,12 +73,12 @@ public class BlockCarvableGlass extends BlockGlass implements ICarvable { } @Override - public CarvableVariation getVariation(IBlockAccess world, int x, int y, int z, int metadata) { + public IVariationInfo getVariation(IBlockAccess world, int x, int y, int z, int metadata) { return carverHelper.getVariation(metadata); } @Override - public CarvableVariation getVariation(ItemStack stack) { + public IVariationInfo getVariation(ItemStack stack) { return carverHelper.getVariation(stack.getItemDamage()); } diff --git a/src/main/java/com/cricketcraft/chisel/block/BlockCarvableIce.java b/src/main/java/com/cricketcraft/chisel/block/BlockCarvableIce.java index 1a45be8b..b47bdc35 100644 --- a/src/main/java/com/cricketcraft/chisel/block/BlockCarvableIce.java +++ b/src/main/java/com/cricketcraft/chisel/block/BlockCarvableIce.java @@ -15,8 +15,8 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import com.cricketcraft.chisel.api.ICarvable; +import com.cricketcraft.chisel.api.carving.IVariationInfo; import com.cricketcraft.chisel.carving.CarvableHelper; -import com.cricketcraft.chisel.carving.CarvableVariation; public class BlockCarvableIce extends BlockIce implements ICarvable { @@ -24,7 +24,7 @@ public class BlockCarvableIce extends BlockIce implements ICarvable { public BlockCarvableIce() { super(); - carverHelper = new CarvableHelper(); + carverHelper = new CarvableHelper(this); } @Override @@ -58,12 +58,12 @@ public class BlockCarvableIce extends BlockIce implements ICarvable { } @Override - public CarvableVariation getVariation(IBlockAccess world, int x, int y, int z, int metadata) { + public IVariationInfo getVariation(IBlockAccess world, int x, int y, int z, int metadata) { return carverHelper.getVariation(metadata); } @Override - public CarvableVariation getVariation(ItemStack stack) { + public IVariationInfo getVariation(ItemStack stack) { return carverHelper.getVariation(stack.getItemDamage()); } } diff --git a/src/main/java/com/cricketcraft/chisel/block/BlockCarvableIcePillar.java b/src/main/java/com/cricketcraft/chisel/block/BlockCarvableIcePillar.java index ed3c1753..65ac1340 100644 --- a/src/main/java/com/cricketcraft/chisel/block/BlockCarvableIcePillar.java +++ b/src/main/java/com/cricketcraft/chisel/block/BlockCarvableIcePillar.java @@ -10,7 +10,6 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.stats.StatList; -import net.minecraft.util.Facing; import net.minecraft.world.EnumSkyBlock; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; diff --git a/src/main/java/com/cricketcraft/chisel/block/BlockCarvablePackedIce.java b/src/main/java/com/cricketcraft/chisel/block/BlockCarvablePackedIce.java index 224871af..9d86454d 100644 --- a/src/main/java/com/cricketcraft/chisel/block/BlockCarvablePackedIce.java +++ b/src/main/java/com/cricketcraft/chisel/block/BlockCarvablePackedIce.java @@ -16,8 +16,8 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import com.cricketcraft.chisel.api.ICarvable; +import com.cricketcraft.chisel.api.carving.IVariationInfo; import com.cricketcraft.chisel.carving.CarvableHelper; -import com.cricketcraft.chisel.carving.CarvableVariation; public class BlockCarvablePackedIce extends Block implements ICarvable { @@ -25,7 +25,7 @@ public class BlockCarvablePackedIce extends Block implements ICarvable { public BlockCarvablePackedIce() { super(Material.ice); - carverHelper = new CarvableHelper(); + carverHelper = new CarvableHelper(this); } @Override @@ -64,12 +64,12 @@ public class BlockCarvablePackedIce extends Block implements ICarvable { } @Override - public CarvableVariation getVariation(IBlockAccess world, int x, int y, int z, int metadata) { + public IVariationInfo getVariation(IBlockAccess world, int x, int y, int z, int metadata) { return carverHelper.getVariation(metadata); } @Override - public CarvableVariation getVariation(ItemStack stack) { + public IVariationInfo getVariation(ItemStack stack) { return carverHelper.getVariation(stack.getItemDamage()); } } diff --git a/src/main/java/com/cricketcraft/chisel/block/BlockCarvablePane.java b/src/main/java/com/cricketcraft/chisel/block/BlockCarvablePane.java index 6660d5e8..44b8fe6f 100644 --- a/src/main/java/com/cricketcraft/chisel/block/BlockCarvablePane.java +++ b/src/main/java/com/cricketcraft/chisel/block/BlockCarvablePane.java @@ -12,8 +12,8 @@ import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import com.cricketcraft.chisel.api.ICarvable; +import com.cricketcraft.chisel.api.carving.IVariationInfo; import com.cricketcraft.chisel.carving.CarvableHelper; -import com.cricketcraft.chisel.carving.CarvableVariation; import com.cricketcraft.chisel.client.render.RendererCTMPane; import com.cricketcraft.chisel.init.ChiselTabs; @@ -28,7 +28,7 @@ public class BlockCarvablePane extends BlockPane implements ICarvable { public BlockCarvablePane(Material material, boolean drops) { super("", "", material, drops); - carverHelper = new CarvableHelper(); + carverHelper = new CarvableHelper(this); setCreativeTab(ChiselTabs.tabOtherChiselBlocks); } @@ -70,12 +70,12 @@ public class BlockCarvablePane extends BlockPane implements ICarvable { } @Override - public CarvableVariation getVariation(IBlockAccess world, int x, int y, int z, int metadata) { + public IVariationInfo getVariation(IBlockAccess world, int x, int y, int z, int metadata) { return carverHelper.getVariation(metadata); } @Override - public CarvableVariation getVariation(ItemStack stack) { + public IVariationInfo getVariation(ItemStack stack) { return carverHelper.getVariation(stack.getItemDamage()); } } diff --git a/src/main/java/com/cricketcraft/chisel/block/BlockCarvablePillar.java b/src/main/java/com/cricketcraft/chisel/block/BlockCarvablePillar.java index ec02a54b..1f7af17b 100644 --- a/src/main/java/com/cricketcraft/chisel/block/BlockCarvablePillar.java +++ b/src/main/java/com/cricketcraft/chisel/block/BlockCarvablePillar.java @@ -4,7 +4,7 @@ import net.minecraft.block.material.Material; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; -import com.cricketcraft.chisel.carving.CarvableVariation; +import com.cricketcraft.chisel.api.carving.IVariationInfo; import com.cricketcraft.chisel.client.render.RendererPillar; public class BlockCarvablePillar extends BlockCarvable { @@ -32,12 +32,13 @@ public class BlockCarvablePillar extends BlockCarvable { public IIcon getCtmIcon(int index, int metadata) { // Workaround to prevent crash with invalid meta - CarvableVariation var = null; - if (metadata <= carverHelper.variations.size()) - var = carverHelper.variations.get(metadata); + IVariationInfo var = null; + if (metadata <= carverHelper.infoList.size()) + var = carverHelper.infoList.get(metadata); else - var = carverHelper.variations.get(0); + var = carverHelper.infoList.get(0); + // TODO this... if (index >= 4) return var.iconTop; if (var.seamsCtmVert == null) diff --git a/src/main/java/com/cricketcraft/chisel/block/BlockCarvablePumpkin.java b/src/main/java/com/cricketcraft/chisel/block/BlockCarvablePumpkin.java index 2099f89f..24b5641a 100644 --- a/src/main/java/com/cricketcraft/chisel/block/BlockCarvablePumpkin.java +++ b/src/main/java/com/cricketcraft/chisel/block/BlockCarvablePumpkin.java @@ -1,7 +1,5 @@ package com.cricketcraft.chisel.block; -import com.cricketcraft.chisel.entity.EntityChiselSnowman; -import com.cricketcraft.chisel.init.ChiselBlocks; import net.minecraft.block.Block; import net.minecraft.block.BlockPumpkin; import net.minecraft.client.renderer.texture.IIconRegister; @@ -10,15 +8,16 @@ import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; import com.cricketcraft.chisel.Chisel; import com.cricketcraft.chisel.api.ICarvable; +import com.cricketcraft.chisel.api.carving.IVariationInfo; import com.cricketcraft.chisel.carving.CarvableHelper; -import com.cricketcraft.chisel.carving.CarvableVariation; +import com.cricketcraft.chisel.entity.EntityChiselSnowman; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.world.World; public class BlockCarvablePumpkin extends BlockPumpkin implements ICarvable { @@ -34,7 +33,7 @@ public class BlockCarvablePumpkin extends BlockPumpkin implements ICarvable { this.setStepSound(Block.soundTypeWood); if (isOn) setLightLevel(10.0F); - carverHelper = new CarvableHelper(); + carverHelper = new CarvableHelper(this); } @Override @@ -112,12 +111,12 @@ public class BlockCarvablePumpkin extends BlockPumpkin implements ICarvable { } @Override - public CarvableVariation getVariation(IBlockAccess world, int x, int y, int z, int metadata) { + public IVariationInfo getVariation(IBlockAccess world, int x, int y, int z, int metadata) { return carverHelper.getVariation(metadata); } @Override - public CarvableVariation getVariation(ItemStack stack) { + public IVariationInfo getVariation(ItemStack stack) { return carverHelper.getVariation(stack.getItemDamage()); } diff --git a/src/main/java/com/cricketcraft/chisel/block/BlockCarvableSand.java b/src/main/java/com/cricketcraft/chisel/block/BlockCarvableSand.java index 17ea2d2b..839069de 100644 --- a/src/main/java/com/cricketcraft/chisel/block/BlockCarvableSand.java +++ b/src/main/java/com/cricketcraft/chisel/block/BlockCarvableSand.java @@ -13,8 +13,8 @@ import net.minecraft.world.IBlockAccess; import com.cricketcraft.chisel.Chisel; import com.cricketcraft.chisel.api.ICarvable; +import com.cricketcraft.chisel.api.carving.IVariationInfo; import com.cricketcraft.chisel.carving.CarvableHelper; -import com.cricketcraft.chisel.carving.CarvableVariation; import com.cricketcraft.chisel.init.ChiselTabs; import cpw.mods.fml.relauncher.Side; @@ -27,7 +27,7 @@ public class BlockCarvableSand extends BlockSand implements ICarvable { public BlockCarvableSand() { super(); - carverHelper = new CarvableHelper(); + carverHelper = new CarvableHelper(this); setCreativeTab(ChiselTabs.tabOtherChiselBlocks); } @@ -73,12 +73,12 @@ public class BlockCarvableSand extends BlockSand implements ICarvable { } @Override - public CarvableVariation getVariation(IBlockAccess world, int x, int y, int z, int metadata) { + public IVariationInfo getVariation(IBlockAccess world, int x, int y, int z, int metadata) { return carverHelper.getVariation(metadata); } @Override - public CarvableVariation getVariation(ItemStack stack) { + public IVariationInfo getVariation(ItemStack stack) { return carverHelper.getVariation(stack.getItemDamage()); } diff --git a/src/main/java/com/cricketcraft/chisel/block/BlockCarvableSlab.java b/src/main/java/com/cricketcraft/chisel/block/BlockCarvableSlab.java index a82cdc02..99f36912 100644 --- a/src/main/java/com/cricketcraft/chisel/block/BlockCarvableSlab.java +++ b/src/main/java/com/cricketcraft/chisel/block/BlockCarvableSlab.java @@ -1,18 +1,9 @@ package com.cricketcraft.chisel.block; -import static net.minecraftforge.common.util.ForgeDirection.DOWN; -import static net.minecraftforge.common.util.ForgeDirection.UP; - import java.util.List; import java.util.Random; import net.minecraft.block.Block; -import net.minecraft.block.BlockCompressedPowered; -import net.minecraft.block.BlockFarmland; -import net.minecraft.block.BlockHopper; -import net.minecraft.block.BlockSlab; -import net.minecraft.block.BlockSnow; -import net.minecraft.block.BlockStairs; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; import net.minecraft.item.Item; @@ -26,6 +17,8 @@ import net.minecraftforge.common.util.ForgeDirection; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import static net.minecraftforge.common.util.ForgeDirection.UP; + public class BlockCarvableSlab extends BlockCarvable { public Block master; diff --git a/src/main/java/com/cricketcraft/chisel/block/BlockCarvableStairs.java b/src/main/java/com/cricketcraft/chisel/block/BlockCarvableStairs.java index c23f44a6..5f02a7ba 100644 --- a/src/main/java/com/cricketcraft/chisel/block/BlockCarvableStairs.java +++ b/src/main/java/com/cricketcraft/chisel/block/BlockCarvableStairs.java @@ -15,8 +15,8 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import com.cricketcraft.chisel.api.ICarvable; +import com.cricketcraft.chisel.api.carving.IVariationInfo; import com.cricketcraft.chisel.carving.CarvableHelper; -import com.cricketcraft.chisel.carving.CarvableVariation; import com.cricketcraft.chisel.client.render.RendererStairs; public class BlockCarvableStairs extends BlockStairs implements ICarvable { @@ -82,12 +82,12 @@ public class BlockCarvableStairs extends BlockStairs implements ICarvable { } @Override - public CarvableVariation getVariation(IBlockAccess world, int x, int y, int z, int metadata) { + public IVariationInfo getVariation(IBlockAccess world, int x, int y, int z, int metadata) { return carverHelper.getVariation(blockMeta + (metadata / 8)); } @Override - public CarvableVariation getVariation(ItemStack stack) { + public IVariationInfo getVariation(ItemStack stack) { return carverHelper.getVariation(blockMeta + (stack.getItemDamage() / 8)); } } diff --git a/src/main/java/com/cricketcraft/chisel/block/BlockCarvableTorch.java b/src/main/java/com/cricketcraft/chisel/block/BlockCarvableTorch.java index 613bdb9f..f4e78143 100644 --- a/src/main/java/com/cricketcraft/chisel/block/BlockCarvableTorch.java +++ b/src/main/java/com/cricketcraft/chisel/block/BlockCarvableTorch.java @@ -10,8 +10,8 @@ import net.minecraft.world.World; import com.cricketcraft.chisel.Chisel; import com.cricketcraft.chisel.api.ICarvable; +import com.cricketcraft.chisel.api.carving.IVariationInfo; import com.cricketcraft.chisel.carving.CarvableHelper; -import com.cricketcraft.chisel.carving.CarvableVariation; import com.cricketcraft.chisel.init.ChiselTabs; import cpw.mods.fml.relauncher.Side; @@ -26,7 +26,7 @@ public class BlockCarvableTorch extends BlockTorch implements ICarvable { public BlockCarvableTorch(int idx, String tex) { super(); - carverHelper = new CarvableHelper(); + carverHelper = new CarvableHelper(this); setCreativeTab(ChiselTabs.tabOtherChiselBlocks); setLightLevel(0.9375F); setBlockName("torch"); @@ -35,12 +35,12 @@ public class BlockCarvableTorch extends BlockTorch implements ICarvable { } @Override - public CarvableVariation getVariation(IBlockAccess world, int x, int y, int z, int metadata) { + public IVariationInfo getVariation(IBlockAccess world, int x, int y, int z, int metadata) { return carverHelper.getVariation(metadata); } @Override - public CarvableVariation getVariation(ItemStack stack) { + public IVariationInfo getVariation(ItemStack stack) { return carverHelper.getVariation(stack.getItemDamage()); } diff --git a/src/main/java/com/cricketcraft/chisel/block/BlockMarbleCarpet.java b/src/main/java/com/cricketcraft/chisel/block/BlockMarbleCarpet.java index 46d6373d..4f1d127d 100644 --- a/src/main/java/com/cricketcraft/chisel/block/BlockMarbleCarpet.java +++ b/src/main/java/com/cricketcraft/chisel/block/BlockMarbleCarpet.java @@ -13,15 +13,15 @@ import net.minecraft.world.IBlockAccess; import com.cricketcraft.chisel.Chisel; import com.cricketcraft.chisel.api.ICarvable; +import com.cricketcraft.chisel.api.carving.IVariationInfo; import com.cricketcraft.chisel.carving.CarvableHelper; -import com.cricketcraft.chisel.carving.CarvableVariation; public class BlockMarbleCarpet extends BlockCarpet implements ICarvable { public CarvableHelper carverHelper; public BlockMarbleCarpet(Material m) { - carverHelper = new CarvableHelper(); + carverHelper = new CarvableHelper(this); } @Override @@ -55,12 +55,12 @@ public class BlockMarbleCarpet extends BlockCarpet implements ICarvable { } @Override - public CarvableVariation getVariation(IBlockAccess world, int x, int y, int z, int metadata) { + public IVariationInfo getVariation(IBlockAccess world, int x, int y, int z, int metadata) { return carverHelper.getVariation(metadata); } @Override - public CarvableVariation getVariation(ItemStack stack) { + public IVariationInfo getVariation(ItemStack stack) { return carverHelper.getVariation(stack.getItemDamage()); } } diff --git a/src/main/java/com/cricketcraft/chisel/block/BlockMarbleWall.java b/src/main/java/com/cricketcraft/chisel/block/BlockMarbleWall.java index 8e425045..c9d71dbc 100644 --- a/src/main/java/com/cricketcraft/chisel/block/BlockMarbleWall.java +++ b/src/main/java/com/cricketcraft/chisel/block/BlockMarbleWall.java @@ -18,7 +18,7 @@ public class BlockMarbleWall extends BlockWall { public BlockMarbleWall(Block block) { super(block); - carverHelper = new CarvableHelper(); + carverHelper = new CarvableHelper(this); } @Override diff --git a/src/main/java/com/cricketcraft/chisel/block/BlockMultiLayer.java b/src/main/java/com/cricketcraft/chisel/block/BlockMultiLayer.java index 1294a6a4..54a0248b 100644 --- a/src/main/java/com/cricketcraft/chisel/block/BlockMultiLayer.java +++ b/src/main/java/com/cricketcraft/chisel/block/BlockMultiLayer.java @@ -12,8 +12,8 @@ import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import com.cricketcraft.chisel.api.ICarvable; +import com.cricketcraft.chisel.api.carving.IVariationInfo; import com.cricketcraft.chisel.carving.CarvableHelper; -import com.cricketcraft.chisel.carving.CarvableVariation; public class BlockMultiLayer extends BlockMultiLayerBase implements ICarvable { @@ -22,13 +22,13 @@ public class BlockMultiLayer extends BlockMultiLayerBase implements ICarvable { public BlockMultiLayer(Material mat, String baseIcon) { super(mat, baseIcon); - carverHelper = new CarvableHelper(); + carverHelper = new CarvableHelper(this); } public BlockMultiLayer(Material mat, Block block) { super(mat, block); - carverHelper = new CarvableHelper(); + carverHelper = new CarvableHelper(this); } @Override @@ -54,12 +54,12 @@ public class BlockMultiLayer extends BlockMultiLayerBase implements ICarvable { } @Override - public CarvableVariation getVariation(IBlockAccess world, int x, int y, int z, int metadata) { + public IVariationInfo getVariation(IBlockAccess world, int x, int y, int z, int metadata) { return carverHelper.getVariation(metadata); } @Override - public CarvableVariation getVariation(ItemStack stack) { + public IVariationInfo getVariation(ItemStack stack) { return carverHelper.getVariation(stack.getItemDamage()); } } diff --git a/src/main/java/com/cricketcraft/chisel/block/BlockPresent.java b/src/main/java/com/cricketcraft/chisel/block/BlockPresent.java index b362f260..94439408 100644 --- a/src/main/java/com/cricketcraft/chisel/block/BlockPresent.java +++ b/src/main/java/com/cricketcraft/chisel/block/BlockPresent.java @@ -21,9 +21,9 @@ import net.minecraftforge.common.util.ForgeDirection; import com.cricketcraft.chisel.Chisel; import com.cricketcraft.chisel.api.ICarvable; +import com.cricketcraft.chisel.api.carving.IVariationInfo; import com.cricketcraft.chisel.block.tileentity.TileEntityPresent; import com.cricketcraft.chisel.carving.CarvableHelper; -import com.cricketcraft.chisel.carving.CarvableVariation; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -36,7 +36,7 @@ public class BlockPresent extends Block implements ICarvable { public BlockPresent() { super(Material.wood); - carverHelper = new CarvableHelper(); + carverHelper = new CarvableHelper(this); minX = 0.0625F; minZ = 0.0625F; maxX = 0.9375F; @@ -215,12 +215,12 @@ public class BlockPresent extends Block implements ICarvable { } @Override - public CarvableVariation getVariation(IBlockAccess world, int x, int y, int z, int metadata) { + public IVariationInfo getVariation(IBlockAccess world, int x, int y, int z, int metadata) { return carverHelper.getVariation(metadata); } @Override - public CarvableVariation getVariation(ItemStack stack) { + public IVariationInfo getVariation(ItemStack stack) { return carverHelper.getVariation(stack.getItemDamage()); } } \ No newline at end of file diff --git a/src/main/java/com/cricketcraft/chisel/block/BlockSnakestoneObsidian.java b/src/main/java/com/cricketcraft/chisel/block/BlockSnakestoneObsidian.java index 0ea09f4d..8983fed7 100644 --- a/src/main/java/com/cricketcraft/chisel/block/BlockSnakestoneObsidian.java +++ b/src/main/java/com/cricketcraft/chisel/block/BlockSnakestoneObsidian.java @@ -1,11 +1,12 @@ package com.cricketcraft.chisel.block; -import com.cricketcraft.chisel.client.GeneralChiselClient; +import java.util.Random; + import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.util.IIcon; import net.minecraft.world.World; -import java.util.Random; +import com.cricketcraft.chisel.client.GeneralChiselClient; public class BlockSnakestoneObsidian extends BlockSnakestone { diff --git a/src/main/java/com/cricketcraft/chisel/block/CarvableStairsMaker.java b/src/main/java/com/cricketcraft/chisel/block/CarvableStairsMaker.java index cf73c0d8..5b417d11 100644 --- a/src/main/java/com/cricketcraft/chisel/block/CarvableStairsMaker.java +++ b/src/main/java/com/cricketcraft/chisel/block/CarvableStairsMaker.java @@ -3,8 +3,8 @@ package com.cricketcraft.chisel.block; import net.minecraft.block.Block; import net.minecraft.item.ItemStack; +import com.cricketcraft.chisel.api.carving.IVariationInfo; import com.cricketcraft.chisel.carving.CarvableHelper; -import com.cricketcraft.chisel.carving.CarvableVariation; import com.cricketcraft.chisel.item.ItemCarvable; import cpw.mods.fml.common.registry.GameRegistry; @@ -17,7 +17,7 @@ public class CarvableStairsMaker { String blockName; public CarvableStairsMaker(Block base) { - carverHelper = new CarvableHelper(); + carverHelper = new CarvableHelper(base); blockBase = base; } @@ -33,10 +33,10 @@ public class CarvableStairsMaker { blocks[i].setBlockName("chisel." + n); GameRegistry.registerBlock(blocks[i], ItemCarvable.class, n); - for (int meta = 0; meta < 2 && i * 2 + meta < carverHelper.variations.size(); meta++) { - CarvableVariation variation = carverHelper.variations.get(i * 2 + meta); + for (int meta = 0; meta < 2 && i * 2 + meta < carverHelper.infoList.size(); meta++) { + IVariationInfo info = carverHelper.infoList.get(i * 2 + meta); - carverHelper.registerVariation(name, variation, blocks[i], meta * 8); + carverHelper.registerVariation(name, info); GameRegistry.addRecipe(new ItemStack(blocks[i], 4, meta * 8), "* ", "** ", "***", '*', new ItemStack(blockBase, 1, i * 2 + meta)); } diff --git a/src/main/java/com/cricketcraft/chisel/carving/CarvableHelper.java b/src/main/java/com/cricketcraft/chisel/carving/CarvableHelper.java index b3e62e5c..111b83e7 100644 --- a/src/main/java/com/cricketcraft/chisel/carving/CarvableHelper.java +++ b/src/main/java/com/cricketcraft/chisel/carving/CarvableHelper.java @@ -18,6 +18,9 @@ import net.minecraftforge.oredict.OreDictionary; import org.apache.commons.lang3.ArrayUtils; import com.cricketcraft.chisel.Chisel; +import com.cricketcraft.chisel.api.carving.ICarvingVariation; +import com.cricketcraft.chisel.api.carving.IVariationInfo; +import com.cricketcraft.chisel.api.carving.VariationInfoBase; import com.cricketcraft.chisel.api.client.CTM; import com.cricketcraft.chisel.api.client.ISubmapManager; import com.cricketcraft.chisel.api.client.TextureSubmap; @@ -32,6 +35,7 @@ public class CarvableHelper { public enum TextureType { + // TODO decide if this is the correct way to go about it...then implement the abstract method TOPSIDE("top", "side"), TOPBOTSIDE("top", "bottom", "side"), CTMV("ctmv", "top"), @@ -54,6 +58,8 @@ public class CarvableHelper { private TextureType(String... suffixes) { this.suffixes = suffixes.length == 0 ? new String[] { "" } : suffixes; } + + public abstract ISubmapManager createManagerFor(ICarvingVariation variation); public static TextureType getTypeFor(CarvableHelper inst, String modid, String path) { for (TextureType t : VALUES) { @@ -71,10 +77,16 @@ public class CarvableHelper { } } + private Block theBlock; + + public CarvableHelper(Block block) { + this.theBlock = block; + } + private static CTM ctm = CTM.getInstance(); - public ArrayList variations = new ArrayList(); - CarvableVariation[] map = new CarvableVariation[16]; + public ArrayList infoList = new ArrayList(); + IVariationInfo[] infoMap = new IVariationInfo[16]; public boolean forbidChiseling = false; public String blockName; @@ -120,7 +132,7 @@ public class CarvableHelper { public void addVariation(String description, int metadata, String texture, Block block, int blockMeta, String modid, ISubmapManager customManager) { - if (variations.size() >= 16) + if (infoList.size() >= 16) return; if (blockName == null && block != null) @@ -128,26 +140,23 @@ public class CarvableHelper { else if (blockName == null && description != null) blockName = description; - CarvableVariation variation = new CarvableVariation(); - variation.setDescriptionUnloc(description); - variation.metadata = metadata; - variation.blockName = blockName; - - if (texture != null && FMLCommonHandler.instance().getSide().isClient()) { - variation.texture = texture; - variation.type = (TextureType) TextureType.getTypeFor(this, modid, variation.texture); - if (variation.type == TextureType.CUSTOM && customManager == null) { - throw new IllegalArgumentException(String.format("Could not find texture %s, and no custom texture manager was provided.", texture)); - } - variation.manager = customManager; - } else { - variation.block = block; - variation.type = TextureType.TOPBOTSIDE; - variation.blockMeta = blockMeta; + CarvingVariation var = new CarvingVariation(theBlock, metadata, metadata); + TextureType type = TextureType.getTypeFor(this, modid, texture); + if (type == TextureType.CUSTOM && customManager == null) { + throw new IllegalArgumentException(String.format("Could not find texture %s, and no custom texture manager was provided.", texture)); } + + IVariationInfo info; + if (customManager != null) { + info = new VariationInfoBase(var, description, customManager); + } else { + info = new VariationInfoBase(var, description, type.createManagerFor(var)); + } + + // TODO handling for block texture override params - variations.add(variation); - map[metadata] = variation; + infoList.add(info); + infoMap[metadata] = info; } // This is ugly, but faster than class.getResource @@ -161,11 +170,11 @@ public class CarvableHelper { } } - public CarvableVariation getVariation(int metadata) { + public IVariationInfo getVariation(int metadata) { if (metadata < 0 || metadata > 15) metadata = 0; - CarvableVariation variation = map[metadata]; + IVariationInfo variation = infoMap[metadata]; if (variation == null) return null; @@ -176,10 +185,13 @@ public class CarvableHelper { if (metadata < 0 || metadata > 15) metadata = 0; - CarvableVariation variation = map[metadata]; + IVariationInfo variation = infoMap[metadata]; if (variation == null) return GeneralClient.getMissingIcon(); + + return variation.getSubmapManager().getIcon(side, metadata); + /* switch (variation.type) { case NORMAL: return variation.icon; @@ -222,6 +234,7 @@ public class CarvableHelper { } return GeneralClient.getMissingIcon(); + */ } public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { @@ -230,10 +243,13 @@ public class CarvableHelper { if (metadata < 0 || metadata > 15) metadata = 0; - CarvableVariation variation = map[metadata]; + IVariationInfo variation = infoMap[metadata]; if (variation == null) return GeneralClient.getMissingIcon(); + return variation.getSubmapManager().getIcon(world, x, y, z, side); + + /* switch (variation.type) { case NORMAL: case TOPSIDE: @@ -300,7 +316,7 @@ public class CarvableHelper { //For DOWN, reverse the indexes for only Z textureZ = (variationSize - textureZ - 1); }//*/ - +/* int index; if (side == 0 || side == 1) { // DOWN || UP @@ -337,6 +353,7 @@ public class CarvableHelper { } return GeneralClient.getMissingIcon(); + */ } public void registerAll(Block block, String name) { @@ -358,103 +375,109 @@ public class CarvableHelper { } public void registerVariations(String name, Block block) { - for (CarvableVariation variation : variations) { - registerVariation(name, variation, block, variation.metadata); + for (IVariationInfo info : infoList) { + registerVariation(name, info); } } - public void registerVariation(String name, CarvableVariation variation, Block block, int blockMeta) { + public void registerVariation(String name, IVariationInfo info) { + Block block = info.getVariation().getBlock(); + if (block.renderAsNormalBlock() || block.isOpaqueCube() || block.isNormalCube()) { - FMPIMC.registerFMP(block, blockMeta); + FMPIMC.registerFMP(block, info.getVariation().getBlockMeta()); } if (forbidChiseling) return; - Carving.chisel.addVariation(name, block, blockMeta, variation.metadata); + Carving.chisel.addVariation(name, info.getVariation()); } public void registerBlockIcons(String modName, Block block, IIconRegister register) { - for (CarvableVariation variation : variations) { - if (variation.block != null) { - variation.block.registerBlockIcons(register); + for (IVariationInfo info : infoList) { + info.getSubmapManager().registerIcons(modName, block, register); + } + /* + if (info.block != null) { + info.block.registerBlockIcons(register); - if (variation.block instanceof BlockPane) { - variation.icon = variation.block.getBlockTextureFromSide(2); - variation.iconTop = ((BlockPane) variation.block).getBlockTextureFromSide(0); - variation.iconBot = ((BlockPane) variation.block).getBlockTextureFromSide(0); + if (info.block instanceof BlockPane) { + info.icon = info.block.getBlockTextureFromSide(2); + info.iconTop = ((BlockPane) info.block).getBlockTextureFromSide(0); + info.iconBot = ((BlockPane) info.block).getBlockTextureFromSide(0); } else { - switch (variation.type) { + switch (info.type) { case NORMAL: - variation.icon = variation.block.getIcon(2, variation.blockMeta); + info.icon = info.block.getIcon(2, info.blockMeta); break; case TOPSIDE: - variation.icon = variation.block.getIcon(2, variation.blockMeta); - variation.iconTop = variation.block.getIcon(0, variation.blockMeta); + info.icon = info.block.getIcon(2, info.blockMeta); + info.iconTop = info.block.getIcon(0, info.blockMeta); break; case TOPBOTSIDE: - variation.icon = variation.block.getIcon(2, variation.blockMeta); - variation.iconTop = variation.block.getIcon(1, variation.blockMeta); - variation.iconBot = variation.block.getIcon(0, variation.blockMeta); + info.icon = info.block.getIcon(2, info.blockMeta); + info.iconTop = info.block.getIcon(1, info.blockMeta); + info.iconBot = info.block.getIcon(0, info.blockMeta); break; default: break; } } } else { - switch (variation.type) { + switch (info.type) { case NORMAL: - variation.icon = register.registerIcon(modName + ":" + variation.texture); + info.icon = register.registerIcon(modName + ":" + info.texture); break; case TOPSIDE: - variation.icon = register.registerIcon(modName + ":" + variation.texture + "-side"); - variation.iconTop = register.registerIcon(modName + ":" + variation.texture + "-top"); + info.icon = register.registerIcon(modName + ":" + info.texture + "-side"); + info.iconTop = register.registerIcon(modName + ":" + info.texture + "-top"); break; case TOPBOTSIDE: - variation.icon = register.registerIcon(modName + ":" + variation.texture + "-side"); - variation.iconTop = register.registerIcon(modName + ":" + variation.texture + "-top"); - variation.iconBot = register.registerIcon(modName + ":" + variation.texture + "-bottom"); + info.icon = register.registerIcon(modName + ":" + info.texture + "-side"); + info.iconTop = register.registerIcon(modName + ":" + info.texture + "-top"); + info.iconBot = register.registerIcon(modName + ":" + info.texture + "-bottom"); break; case CTMV: - variation.seamsCtmVert = new TextureSubmap(register.registerIcon(modName + ":" + variation.texture + "-ctmv"), 2, 2); - variation.iconTop = register.registerIcon(modName + ":" + variation.texture + "-top"); + info.seamsCtmVert = new TextureSubmap(register.registerIcon(modName + ":" + info.texture + "-ctmv"), 2, 2); + info.iconTop = register.registerIcon(modName + ":" + info.texture + "-top"); break; case CTMH: - variation.seamsCtmVert = new TextureSubmap(register.registerIcon(modName + ":" + variation.texture + "-ctmh"), 2, 2); - variation.iconTop = register.registerIcon(modName + ":" + variation.texture + "-top"); + info.seamsCtmVert = new TextureSubmap(register.registerIcon(modName + ":" + info.texture + "-ctmh"), 2, 2); + info.iconTop = register.registerIcon(modName + ":" + info.texture + "-top"); break; case V9: - variation.variations9 = new TextureSubmap(register.registerIcon(modName + ":" + variation.texture + "-v9"), 3, 3); + info.variations9 = new TextureSubmap(register.registerIcon(modName + ":" + info.texture + "-v9"), 3, 3); break; case V4: - variation.variations9 = new TextureSubmap(register.registerIcon(modName + ":" + variation.texture + "-v4"), 2, 2); + info.variations9 = new TextureSubmap(register.registerIcon(modName + ":" + info.texture + "-v4"), 2, 2); break; case CTMX: - variation.icon = register.registerIcon(modName + ":" + variation.texture); - variation.submap = new TextureSubmap(register.registerIcon(modName + ":" + variation.texture + "-ctm"), 4, 4); - variation.submapSmall = new TextureSubmap(variation.icon, 2, 2); + info.icon = register.registerIcon(modName + ":" + info.texture); + info.submap = new TextureSubmap(register.registerIcon(modName + ":" + info.texture + "-ctm"), 4, 4); + info.submapSmall = new TextureSubmap(info.icon, 2, 2); break; case R16: - variation.variations9 = new TextureSubmap(register.registerIcon(modName + ":" + variation.texture + "-r16"), 4, 4); + info.variations9 = new TextureSubmap(register.registerIcon(modName + ":" + info.texture + "-r16"), 4, 4); break; case R9: - variation.variations9 = new TextureSubmap(register.registerIcon(modName + ":" + variation.texture + "-r9"), 3, 3); + info.variations9 = new TextureSubmap(register.registerIcon(modName + ":" + info.texture + "-r9"), 3, 3); break; case R4: - variation.variations9 = new TextureSubmap(register.registerIcon(modName + ":" + variation.texture + "-r4"), 2, 2); + info.variations9 = new TextureSubmap(register.registerIcon(modName + ":" + info.texture + "-r4"), 2, 2); break; case CUSTOM: - variation.manager.registerIcons(modName, block, register); + info.manager.registerIcons(modName, block, register); } } } + */ } public void registerSubBlocks(Block block, CreativeTabs tabs, List list) { - for (CarvableVariation variation : variations) { - list.add(new ItemStack(block, 1, variation.metadata)); + for (IVariationInfo info : infoList) { + list.add(new ItemStack(block, 1, info.getVariation().getItemMeta())); } } @@ -463,6 +486,6 @@ public class CarvableHelper { } public void registerOre(String ore) { - OreDictionary.registerOre(ore, variations.get(0).block); + OreDictionary.registerOre(ore, infoList.get(0).getVariation().getBlock()); } } diff --git a/src/main/java/com/cricketcraft/chisel/carving/CarvableVariation.java b/src/main/java/com/cricketcraft/chisel/carving/CarvableVariation.java index 9a8b3598..99a0ef71 100644 --- a/src/main/java/com/cricketcraft/chisel/carving/CarvableVariation.java +++ b/src/main/java/com/cricketcraft/chisel/carving/CarvableVariation.java @@ -24,7 +24,6 @@ public class CarvableVariation { public IIcon iconBot; public IIcon iconTop; - public CarvableVariationCTM ctm; public TextureSubmap seamsCtmVert; public TextureSubmap variations9; @@ -40,9 +39,4 @@ public class CarvableVariation { public void setDescriptionUnloc(String desc) { this.descriptionUnloc = desc; } - - static class CarvableVariationCTM { - - TextureSubmap seams[] = new TextureSubmap[3]; - } } diff --git a/src/main/java/com/cricketcraft/chisel/client/render/RendererCTM.java b/src/main/java/com/cricketcraft/chisel/client/render/RendererCTM.java index 212e1dec..8f980c88 100644 --- a/src/main/java/com/cricketcraft/chisel/client/render/RendererCTM.java +++ b/src/main/java/com/cricketcraft/chisel/client/render/RendererCTM.java @@ -8,8 +8,8 @@ import org.lwjgl.opengl.GL11; import com.cricketcraft.chisel.Chisel; import com.cricketcraft.chisel.api.ICarvable; +import com.cricketcraft.chisel.api.carving.IVariationInfo; import com.cricketcraft.chisel.carving.CarvableHelper.TextureType; -import com.cricketcraft.chisel.carving.CarvableVariation; import com.cricketcraft.chisel.utils.Drawing; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; @@ -37,7 +37,7 @@ public class RendererCTM implements ISimpleBlockRenderingHandler { public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks rendererOld) { int meta = world.getBlockMetadata(x, y, z); - CarvableVariation var = ((ICarvable) block).getVariation(world, x, y, z, meta); + IVariationInfo var = ((ICarvable) block).getVariation(world, x, y, z, meta); if (rendererOld.hasOverrideBlockTexture()) { // breaking anim diff --git a/src/main/java/com/cricketcraft/chisel/client/render/RendererPillar.java b/src/main/java/com/cricketcraft/chisel/client/render/RendererPillar.java index 15a38594..cb5a30b8 100644 --- a/src/main/java/com/cricketcraft/chisel/client/render/RendererPillar.java +++ b/src/main/java/com/cricketcraft/chisel/client/render/RendererPillar.java @@ -49,10 +49,10 @@ public class RendererPillar implements ISimpleBlockRenderingHandler { int metadata = world.getBlockMetadata(x, y, z); // Probably not the best way to handle this... - if (metadata >= block.carverHelper.variations.size()) { + if (metadata >= block.carverHelper.infoList.size()) { metadata = 0; } else { - if (block.carverHelper.variations.get(metadata).type != TextureType.CTMV) { + if (block.carverHelper.infoList.get(metadata).type != TextureType.CTMV) { block.sides[0] = block.carverHelper.getIcon(0, metadata); block.sides[1] = block.carverHelper.getIcon(1, metadata); block.sides[2] = block.carverHelper.getIcon(2, metadata); diff --git a/src/main/java/com/cricketcraft/chisel/item/ItemCarvable.java b/src/main/java/com/cricketcraft/chisel/item/ItemCarvable.java index db680e03..e63d8a32 100644 --- a/src/main/java/com/cricketcraft/chisel/item/ItemCarvable.java +++ b/src/main/java/com/cricketcraft/chisel/item/ItemCarvable.java @@ -10,7 +10,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import com.cricketcraft.chisel.api.ICarvable; -import com.cricketcraft.chisel.carving.CarvableVariation; +import com.cricketcraft.chisel.api.carving.IVariationInfo; import com.cricketcraft.chisel.config.Configurations; import com.cricketcraft.chisel.utils.General; @@ -47,7 +47,7 @@ public class ItemCarvable extends ItemBlock { return; ICarvable carvable = (ICarvable) block; - CarvableVariation var = carvable.getVariation(stack); + IVariationInfo var = carvable.getVariation(stack); if (var == null) return; diff --git a/src/main/java/com/cricketcraft/chisel/item/ItemCarvablePumpkin.java b/src/main/java/com/cricketcraft/chisel/item/ItemCarvablePumpkin.java index 0727fcfa..753e2724 100644 --- a/src/main/java/com/cricketcraft/chisel/item/ItemCarvablePumpkin.java +++ b/src/main/java/com/cricketcraft/chisel/item/ItemCarvablePumpkin.java @@ -1,9 +1,7 @@ package com.cricketcraft.chisel.item; -import com.cricketcraft.chisel.api.ICarvable; -import com.cricketcraft.chisel.carving.CarvableVariation; -import com.cricketcraft.chisel.config.Configurations; -import com.cricketcraft.chisel.utils.General; +import java.util.List; + import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; @@ -12,7 +10,10 @@ import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; -import java.util.List; +import com.cricketcraft.chisel.api.ICarvable; +import com.cricketcraft.chisel.api.carving.IVariationInfo; +import com.cricketcraft.chisel.config.Configurations; +import com.cricketcraft.chisel.utils.General; public class ItemCarvablePumpkin extends ItemBlock { @@ -52,7 +53,7 @@ public class ItemCarvablePumpkin extends ItemBlock { return; ICarvable carvable = (ICarvable) block; - CarvableVariation var = carvable.getVariation(stack); + IVariationInfo var = carvable.getVariation(stack); if (var == null) return;