Skip to content

Commit

Permalink
Allow coloring of tools, made Tool Recipes Itemstack sensitive to all…
Browse files Browse the repository at this point in the history
…ow more customizable recipes
  • Loading branch information
Vexatos committed Sep 21, 2014
1 parent 11cd201 commit 22bdbdd
Show file tree
Hide file tree
Showing 4 changed files with 74 additions and 35 deletions.
26 changes: 13 additions & 13 deletions src/main/java/tconstruct/library/crafting/ToolBuilder.java
Expand Up @@ -29,8 +29,8 @@ public static void addNormalToolRecipe (ToolCore output, Item head, Item handle)
ToolRecipe recipe = instance.recipeList.get(output.getToolName());
if (recipe != null)
{
recipe.addHeadItem(head);
recipe.addHandleItem(handle);
recipe.addHeadItem(new ItemStack(head,1));
recipe.addHandleItem(new ItemStack(handle));
}
else
{
Expand All @@ -46,9 +46,9 @@ public static void addNormalToolRecipe (ToolCore output, Item head, Item handle,
ToolRecipe recipe = instance.recipeList.get(output.getToolName());
if (recipe != null)
{
recipe.addHeadItem(head);
recipe.addHandleItem(handle);
recipe.addAccessoryItem(accessory);
recipe.addHeadItem(new ItemStack(head));
recipe.addHandleItem(new ItemStack(handle));
recipe.addAccessoryItem(new ItemStack(accessory));
}
else
{
Expand All @@ -63,10 +63,10 @@ public static void addNormalToolRecipe (ToolCore output, Item head, Item handle,
ToolRecipe recipe = instance.recipeList.get(output.getToolName());
if (recipe != null)
{
recipe.addHeadItem(head);
recipe.addHandleItem(handle);
recipe.addAccessoryItem(accessory);
recipe.addExtraItem(extra);
recipe.addHeadItem(new ItemStack(head));
recipe.addHandleItem(new ItemStack(handle));
recipe.addAccessoryItem(new ItemStack(accessory));
recipe.addExtraItem(new ItemStack(extra));
}
else
{
Expand All @@ -91,7 +91,7 @@ public static void addToolRecipe (ToolCore output, Item... items)
addNormalToolRecipe(output, items[0], items[1], items[2], items[3]);
}

public ToolCore getMatchingRecipe (Item head, Item handle, Item accessory, Item extra)
public ToolCore getMatchingRecipe (ItemStack head, ItemStack handle, ItemStack accessory, ItemStack extra)
{
for (ToolRecipe recipe : combos)
{
Expand Down Expand Up @@ -156,7 +156,7 @@ public ItemStack buildTool (ItemStack headStack, ItemStack handleStack, ItemStac

if (accessoryStack == null)
{
item = getMatchingRecipe(headStack.getItem(), handleStack.getItem(), null, null);
item = getMatchingRecipe(headStack, handleStack, null, null);
}
else
{
Expand All @@ -172,11 +172,11 @@ public ItemStack buildTool (ItemStack headStack, ItemStack handleStack, ItemStac
if (extra == -1)
return null;

item = getMatchingRecipe(headStack.getItem(), handleStack.getItem(), accessoryStack.getItem(), extraStack.getItem());
item = getMatchingRecipe(headStack, handleStack, accessoryStack, extraStack);
}
else
{
item = getMatchingRecipe(headStack.getItem(), handleStack.getItem(), accessoryStack.getItem(), null);
item = getMatchingRecipe(headStack, handleStack, accessoryStack, null);
}
}

Expand Down
39 changes: 20 additions & 19 deletions src/main/java/tconstruct/library/crafting/ToolRecipe.java
Expand Up @@ -3,6 +3,7 @@
import java.util.LinkedList;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import tconstruct.library.TConstructRegistry;
import tconstruct.library.tools.ToolCore;

Expand Down Expand Up @@ -45,49 +46,49 @@ public ToolRecipe(Item head, Item handle, Item accessory, Item extra, ToolCore t
result = tool;
}

public void addHeadItem (Item head)
public void addHeadItem (ItemStack head)
{
this.headList.add(head);
this.headList.add(head.getItem());
}

public void addHandleItem (Item head)
public void addHandleItem (ItemStack handle)
{
this.handleList.add(head);
this.handleList.add(handle.getItem());
}

public void addAccessoryItem (Item head)
public void addAccessoryItem (ItemStack accessory)
{
this.accessoryList.add(head);
this.accessoryList.add(accessory.getItem());
}

public void addExtraItem (Item head)
public void addExtraItem (ItemStack extra)
{
this.extraList.add(head);
this.extraList.add(extra.getItem());
}

public boolean validHead (Item input)
public boolean validHead (ItemStack input)
{
for (Item part : headList)
{
if (part == input)
if (part == input.getItem())
return true;
}
return false;
}

public boolean validHandle (Item input)
public boolean validHandle (ItemStack input)
{
for (Item part : handleList)
{
if (part == input)
if (part == input.getItem())
return true;
if (toolRod != null && part == toolRod && (input == Items.stick || input == Items.bone))
if (toolRod != null && part == toolRod && (input.getItem() == Items.stick || input.getItem() == Items.bone))
return true;
}
return false;
}

public boolean validAccessory (Item input)
public boolean validAccessory (ItemStack input)
{
if (input == null)
{
Expand All @@ -97,15 +98,15 @@ public boolean validAccessory (Item input)
}
for (Item part : accessoryList)
{
if (part == input)
if (part == input.getItem())
return true;
if (toolRod != null && part == toolRod && (input == Items.stick || input == Items.bone))
if (toolRod != null && part == toolRod && (input.getItem() == Items.stick || input.getItem() == Items.bone))
return true;
}
return false;
}

public boolean validExtra (Item input)
public boolean validExtra (ItemStack input)
{
if (input == null)
{
Expand All @@ -115,9 +116,9 @@ public boolean validExtra (Item input)
}
for (Item part : extraList)
{
if (part == input)
if (part == input.getItem())
return true;
if (toolRod != null && part == toolRod && (input == Items.stick || input == Items.bone))
if (toolRod != null && part == toolRod && (input.getItem() == Items.stick || input.getItem() == Items.bone))
return true;
}
return false;
Expand Down
37 changes: 37 additions & 0 deletions src/main/java/tconstruct/library/tools/ToolCore.java
Expand Up @@ -662,6 +662,43 @@ public float getDamageModifier ()
return 1.0f;
}


public static HashMap<Integer, Integer> materialColorMap = new HashMap<Integer, Integer>();

@Override
public int getColorFromItemStack(ItemStack stack, int renderPass) {

NBTTagCompound tags = stack.getTagCompound();

if (tags != null)
{
tags = stack.getTagCompound().getCompoundTag("InfiTool");
if (renderPass < getPartAmount())
{
if (renderPass == 0 && materialColorMap.containsKey(tags.getInteger("Handle"))) // Handle
{
return materialColorMap.get(tags.getInteger("Handle"));
}

else if (renderPass == 1 && materialColorMap.containsKey(tags.getInteger("Head"))) // Head
{
return materialColorMap.get(tags.getInteger("Head"));
}

else if (renderPass == 2 && materialColorMap.containsKey(tags.getInteger("Accessory"))) // Accessory
{
return materialColorMap.get(tags.getInteger("Accessory"));
}

else if (renderPass == 3 && materialColorMap.containsKey(tags.getInteger("Extra"))) // Extra
{
return materialColorMap.get(tags.getInteger("Extra"));
}
}
}
return super.getColorFromItemStack(stack, renderPass);
}

@Override
public ItemStack onItemRightClick (ItemStack stack, World world, EntityPlayer player)
{
Expand Down
7 changes: 4 additions & 3 deletions src/main/java/tconstruct/tools/BowRecipe.java
Expand Up @@ -2,6 +2,7 @@

import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import tconstruct.library.crafting.ToolRecipe;
import tconstruct.library.tools.ToolCore;

Expand All @@ -24,13 +25,13 @@ public BowRecipe(Item head, Item handle, Item accessory, Item extra, ToolCore to
}

@Override
public boolean validHead (Item input)
public boolean validHead (ItemStack input)
{
for (Item part : headList)
{
if (part == input)
if (part == input.getItem())
return true;
if (toolRod != null && part == toolRod && (input == Items.stick || input == Items.bone))
if (toolRod != null && part == toolRod && (input.getItem() == Items.stick || input.getItem() == Items.bone))
return true;
}
return false;
Expand Down

0 comments on commit 22bdbdd

Please sign in to comment.