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