From 2f44669d520740423f4fe2effd509daeda2cd6f3 Mon Sep 17 00:00:00 2001 From: Arthur Uzulin Date: Tue, 9 Sep 2014 19:54:50 +1000 Subject: [PATCH] Colored frying pans - Added colored frying pans - Switched frying pans to using the itemstack sensitive container item since the non-sensitive version was deprecated. --- .../library/TConstructRegistry.java | 11 ++++- .../library/tools/ToolMaterial.java | 13 ++++-- .../java/tconstruct/tools/TinkerTools.java | 42 +++++++++---------- .../tconstruct/tools/blocks/EquipBlock.java | 30 +++++++++++++ .../tconstruct/tools/logic/FrypanLogic.java | 4 +- 5 files changed, 72 insertions(+), 28 deletions(-) diff --git a/src/main/java/tconstruct/library/TConstructRegistry.java b/src/main/java/tconstruct/library/TConstructRegistry.java index 1e14caca19d..30585516327 100644 --- a/src/main/java/tconstruct/library/TConstructRegistry.java +++ b/src/main/java/tconstruct/library/TConstructRegistry.java @@ -245,12 +245,12 @@ public static void addToolRecipe (ToolCore output, Item... parts) * Spiny. */ - public static void addToolMaterial (int materialID, String materialName, int harvestLevel, int durability, int miningspeed, int attack, float handleModifier, int reinforced, float stonebound, String style) + public static void addToolMaterial (int materialID, String materialName, int harvestLevel, int durability, int miningspeed, int attack, float handleModifier, int reinforced, float stonebound, String style, int primaryColor) { ToolMaterial mat = toolMaterials.get(materialID); if (mat == null) { - mat = new ToolMaterial(materialName, harvestLevel, durability, miningspeed, attack, handleModifier, reinforced, stonebound, style); + mat = new ToolMaterial(materialName, harvestLevel, durability, miningspeed, attack, handleModifier, reinforced, stonebound, style, primaryColor); toolMaterials.put(materialID, mat); toolMaterialStrings.put(materialName, mat); } @@ -258,6 +258,13 @@ public static void addToolMaterial (int materialID, String materialName, int har throw new IllegalArgumentException("[TCon API] Material ID " + materialID + " is already occupied by " + mat.materialName); } + @Deprecated + public static void addToolMaterial (int materialID, String materialName, int harvestLevel, int durability, int miningspeed, int attack, float handleModifier, int reinforced, float stonebound, String style) + { + logger.warn("[TCon API] Using deprecated addToolMaterial with no primary color. A fallback of white will be used."); + addToolMaterial(materialID, materialName, harvestLevel, durability, miningspeed, attack, handleModifier, reinforced, stonebound, style, 0xFFFFFF); + } + @Deprecated public static void addToolMaterial (int materialID, String materialName, int harvestLevel, int durability, int miningspeed, int attack, float handleModifier, int reinforced, float stonebound, String style, String ability) { diff --git a/src/main/java/tconstruct/library/tools/ToolMaterial.java b/src/main/java/tconstruct/library/tools/ToolMaterial.java index 0ba7e043a06..f59a1d6edbc 100644 --- a/src/main/java/tconstruct/library/tools/ToolMaterial.java +++ b/src/main/java/tconstruct/library/tools/ToolMaterial.java @@ -16,6 +16,7 @@ public class ToolMaterial public final int reinforced; public final float stonebound; public final String tipStyle; + public final int primaryColor; @Deprecated public String displayName; @@ -25,7 +26,7 @@ public class ToolMaterial @Deprecated public ToolMaterial(String name, String displayName, int level, int durability, int speed, int damage, float handle, int reinforced, float stonebound, String style, String ability) { - this(name, level, durability, speed, damage, handle, reinforced, stonebound, style); + this(name, level, durability, speed, damage, handle, reinforced, stonebound, style, 0xFFFFFF); this.displayName = prefixName(); this.ability = ability(); } @@ -33,12 +34,12 @@ public ToolMaterial(String name, String displayName, int level, int durability, @Deprecated public ToolMaterial(String name, int level, int durability, int speed, int damage, float handle, int reinforced, float stonebound, String style, String ability) { - this(name, level, durability, speed, damage, handle, reinforced, stonebound, style); + this(name, level, durability, speed, damage, handle, reinforced, stonebound, style, 0xFFFFFF); this.displayName = prefixName(); this.ability = ability(); } - public ToolMaterial(String name, int level, int durability, int speed, int damage, float handle, int reinforced, float stonebound, String style) + public ToolMaterial(String name, int level, int durability, int speed, int damage, float handle, int reinforced, float stonebound, String style, int primaryColor) { this.materialName = name; this.harvestLevel = level; @@ -49,6 +50,7 @@ public ToolMaterial(String name, int level, int durability, int speed, int damag this.reinforced = reinforced; this.stonebound = stonebound; this.tipStyle = style; + this.primaryColor = primaryColor; } public String name () @@ -109,6 +111,11 @@ public String style () return this.tipStyle; } + public int primaryColor () + { + return this.primaryColor; + } + /** * Returns the ability of the tool to display. * ONLY USE THIS FOR DISPLAY PURPOSES. It is not data you can rely on. Use the material-ids for that. diff --git a/src/main/java/tconstruct/tools/TinkerTools.java b/src/main/java/tconstruct/tools/TinkerTools.java index 961455bd8b1..a3683b62141 100644 --- a/src/main/java/tconstruct/tools/TinkerTools.java +++ b/src/main/java/tconstruct/tools/TinkerTools.java @@ -687,7 +687,7 @@ private void modIntegration () TConstruct.logger.info("Thaumcraft detected. Adding thaumium tools."); TinkerTools.thaumcraftAvailable = true; TConstructClientRegistry.addMaterialRenderMapping(MaterialID.Thaumium, "tinker", "thaumium", true); - TConstructRegistry.addToolMaterial(MaterialID.Thaumium, "Thaumium", 3, 400, 700, 2, 1.3F, 0, 0f, "\u00A75"); + TConstructRegistry.addToolMaterial(MaterialID.Thaumium, "Thaumium", 3, 400, 700, 2, 1.3F, 0, 0f, "\u00A75", 0x51437c); PatternBuilder.instance.registerFullMaterial(new ItemStack((Item) obj, 1, 2), 2, "Thaumium", new ItemStack(TinkerTools.toolShard, 1, 31), new ItemStack(TinkerTools.toolRod, 1, 31), 31); for (int meta = 0; meta < TinkerTools.patternOutputs.length; meta++) { @@ -719,26 +719,26 @@ private void modIntegration () void registerMaterials () { - // Tool Materials: id, name, harvestlevel, durability, speed, damage, handlemodifier, reinforced, shoddy, color - TConstructRegistry.addToolMaterial(MaterialID.Wood, "Wood", 1, 97, 350, 0, 1.0F, 0, 0f, YELLOW.toString()); - TConstructRegistry.addToolMaterial(MaterialID.Stone, "Stone", 1, 131, 400, 1, 0.5F, 0, 1f, GRAY.toString()); - TConstructRegistry.addToolMaterial(MaterialID.Iron, "Iron", 2, 250, 600, 2, 1.3F, 1, 0f, WHITE.toString()); - TConstructRegistry.addToolMaterial(MaterialID.Flint, "Flint", 1, 171, 525, 2, 0.7F, 0, 0f, DARK_GRAY.toString()); - TConstructRegistry.addToolMaterial(MaterialID.Cactus, "Cactus", 1, 150, 500, 2, 1.0F, 0, -1f, DARK_GREEN.toString()); - TConstructRegistry.addToolMaterial(MaterialID.Bone, "Bone", 1, 200, 400, 1, 1.0F, 0, 0f, YELLOW.toString()); - TConstructRegistry.addToolMaterial(MaterialID.Obsidian, "Obsidian", 3, 89, 700, 2, 0.8F, 3, 0f, LIGHT_PURPLE.toString()); - TConstructRegistry.addToolMaterial(MaterialID.Netherrack, "Netherrack", 2, 131, 400, 1, 1.2F, 0, 1f, DARK_RED.toString()); - TConstructRegistry.addToolMaterial(MaterialID.Slime, "Slime", 0, 500, 150, 0, 1.5F, 0, 0f, GREEN.toString()); - TConstructRegistry.addToolMaterial(MaterialID.Paper, "Paper", 0, 30, 200, 0, 0.3F, 0, 0f, WHITE.toString()); - TConstructRegistry.addToolMaterial(MaterialID.Cobalt, "Cobalt", 4, 800, 1400, 3, 1.75F, 2, 0f, DARK_AQUA.toString()); - TConstructRegistry.addToolMaterial(MaterialID.Ardite, "Ardite", 4, 500, 800, 3, 2.0F, 0, 2f, DARK_RED.toString()); - TConstructRegistry.addToolMaterial(MaterialID.Manyullyn, "Manyullyn", 5, 1200, 900, 4, 2.5F, 0, 0f, DARK_PURPLE.toString()); - TConstructRegistry.addToolMaterial(MaterialID.Copper, "Copper", 1, 180, 500, 2, 1.15F, 0, 0f, RED.toString()); - TConstructRegistry.addToolMaterial(MaterialID.Bronze, "Bronze", 2, 550, 800, 2, 1.3F, 1, 0f, GOLD.toString()); - TConstructRegistry.addToolMaterial(MaterialID.Alumite, "Alumite", 4, 700, 800, 3, 1.3F, 2, 0f, LIGHT_PURPLE.toString()); - TConstructRegistry.addToolMaterial(MaterialID.Steel, "Steel", 4, 750, 1000, 4, 1.3F, 2, 0f, GRAY.toString()); - TConstructRegistry.addToolMaterial(MaterialID.BlueSlime, "BlueSlime", 0, 1200, 150, 0, 2.0F, 0, 0f, AQUA.toString()); - TConstructRegistry.addToolMaterial(MaterialID.PigIron, "PigIron", 3, 250, 600, 2, 1.3F, 1, 0f, RED.toString()); + // Tool Materials: id, name, harvestlevel, durability, speed, damage, handlemodifier, reinforced, shoddy, style color, primary color for block use + TConstructRegistry.addToolMaterial(MaterialID.Wood, "Wood", 1, 97, 350, 0, 1.0F, 0, 0f, YELLOW.toString(), 0x755821); + TConstructRegistry.addToolMaterial(MaterialID.Stone, "Stone", 1, 131, 400, 1, 0.5F, 0, 1f, GRAY.toString(), 0x7F7F7F); + TConstructRegistry.addToolMaterial(MaterialID.Iron, "Iron", 2, 250, 600, 2, 1.3F, 1, 0f, WHITE.toString(), 0xFFFFFF); + TConstructRegistry.addToolMaterial(MaterialID.Flint, "Flint", 1, 171, 525, 2, 0.7F, 0, 0f, DARK_GRAY.toString(), 0xA7A7A7); + TConstructRegistry.addToolMaterial(MaterialID.Cactus, "Cactus", 1, 150, 500, 2, 1.0F, 0, -1f, DARK_GREEN.toString(), 0x10741D); + TConstructRegistry.addToolMaterial(MaterialID.Bone, "Bone", 1, 200, 400, 1, 1.0F, 0, 0f, YELLOW.toString(), 0xEDEBCA); + TConstructRegistry.addToolMaterial(MaterialID.Obsidian, "Obsidian", 3, 89, 700, 2, 0.8F, 3, 0f, LIGHT_PURPLE.toString(), 0x6C509A); + TConstructRegistry.addToolMaterial(MaterialID.Netherrack, "Netherrack", 2, 131, 400, 1, 1.2F, 0, 1f, DARK_RED.toString(), 0x713A3A); + TConstructRegistry.addToolMaterial(MaterialID.Slime, "Slime", 0, 500, 150, 0, 1.5F, 0, 0f, GREEN.toString(), 0x6EB065); + TConstructRegistry.addToolMaterial(MaterialID.Paper, "Paper", 0, 30, 200, 0, 0.3F, 0, 0f, WHITE.toString(), 0xB9B9CB); + TConstructRegistry.addToolMaterial(MaterialID.Cobalt, "Cobalt", 4, 800, 1400, 3, 1.75F, 2, 0f, DARK_AQUA.toString(), 0x2376DD); + TConstructRegistry.addToolMaterial(MaterialID.Ardite, "Ardite", 4, 500, 800, 3, 2.0F, 0, 2f, DARK_RED.toString(), 0xA53000); + TConstructRegistry.addToolMaterial(MaterialID.Manyullyn, "Manyullyn", 5, 1200, 900, 4, 2.5F, 0, 0f, DARK_PURPLE.toString(), 0x7338A5); + TConstructRegistry.addToolMaterial(MaterialID.Copper, "Copper", 1, 180, 500, 2, 1.15F, 0, 0f, RED.toString(), 0xCC6410); + TConstructRegistry.addToolMaterial(MaterialID.Bronze, "Bronze", 2, 550, 800, 2, 1.3F, 1, 0f, GOLD.toString(), 0xCA9956); + TConstructRegistry.addToolMaterial(MaterialID.Alumite, "Alumite", 4, 700, 800, 3, 1.3F, 2, 0f, LIGHT_PURPLE.toString(), 0xE9ADDA); + TConstructRegistry.addToolMaterial(MaterialID.Steel, "Steel", 4, 750, 1000, 4, 1.3F, 2, 0f, GRAY.toString(), 0x8A8A8A); + TConstructRegistry.addToolMaterial(MaterialID.BlueSlime, "BlueSlime", 0, 1200, 150, 0, 2.0F, 0, 0f, AQUA.toString(), 0x66AEB0); + TConstructRegistry.addToolMaterial(MaterialID.PigIron, "PigIron", 3, 250, 600, 2, 1.3F, 1, 0f, RED.toString(), 0xF0A8A4); // Bow Materials: Material ID, durability, drawspeed, arrow speed TConstructRegistry.addBowMaterial(MaterialID.Wood, 384, 20, 1.0f); // Wood diff --git a/src/main/java/tconstruct/tools/blocks/EquipBlock.java b/src/main/java/tconstruct/tools/blocks/EquipBlock.java index 18b8f747167..14a00d69634 100644 --- a/src/main/java/tconstruct/tools/blocks/EquipBlock.java +++ b/src/main/java/tconstruct/tools/blocks/EquipBlock.java @@ -16,6 +16,8 @@ import net.minecraft.util.*; import net.minecraft.world.*; import tconstruct.TConstruct; +import tconstruct.items.tools.FryingPan; +import tconstruct.library.TConstructRegistry; import tconstruct.tools.ToolProxyCommon; import tconstruct.tools.logic.*; import tconstruct.tools.model.FrypanRender; @@ -194,6 +196,34 @@ public Object getModInstance () return TConstruct.instance; } + @Override + @SideOnly(Side.CLIENT) + public int colorMultiplier (IBlockAccess blockAccess, int x, int y, int z) + { + TileEntity te = blockAccess.getTileEntity(x, y, z); + + if (te instanceof FrypanLogic) + { + FrypanLogic logic = (FrypanLogic) te; + ItemStack stack = logic.getEquipmentItem(); + if (stack != null && stack.getItem() instanceof FryingPan) + { + FryingPan pan = (FryingPan) stack.getItem(); + + NBTTagCompound tag = stack.getTagCompound().getCompoundTag("InfiTool"); + + if (tag != null) + { + int head = tag.getInteger("Head"); + + return TConstructRegistry.getMaterial(head).primaryColor(); + } + } + } + + return 16777215; + } + @Override public TileEntity createTileEntity (World world, int metadata) { diff --git a/src/main/java/tconstruct/tools/logic/FrypanLogic.java b/src/main/java/tconstruct/tools/logic/FrypanLogic.java index cdf6f234b37..467f1fd9db3 100644 --- a/src/main/java/tconstruct/tools/logic/FrypanLogic.java +++ b/src/main/java/tconstruct/tools/logic/FrypanLogic.java @@ -82,9 +82,9 @@ public void updateEntity () fuel = fuelGague = (int) (getItemBurnTime(inventory[1]) * 2.5); if (fuel > 0) { - if (inventory[1].getItem().hasContainerItem()) //Fuel slot + if (inventory[1].getItem().hasContainerItem(inventory[1])) //Fuel slot { - inventory[1] = new ItemStack(inventory[1].getItem().getContainerItem()); + inventory[1] = inventory[1].getItem().getContainerItem(inventory[1]); } else {