2013-06-11 16:36:06 -07:00

131 lines
2.7 KiB
Java

package mods.tinker.tconstruct.library.crafting;
import java.util.LinkedList;
import mods.tinker.tconstruct.common.TContent;
import mods.tinker.tconstruct.library.TConstructRegistry;
import mods.tinker.tconstruct.library.tools.ToolCore;
import net.minecraft.item.Item;
/*
* Small class for checking if a particular tool combination is this one
*/
public class ToolRecipe
{
LinkedList<Item> headList = new LinkedList<Item>();
LinkedList<Item> handleList = new LinkedList<Item>();
LinkedList<Item> accessoryList = new LinkedList<Item>();
LinkedList<Item> extraList = new LinkedList<Item>();
ToolCore result;
public ToolRecipe(Item head, ToolCore tool)
{
this(head, TConstructRegistry.toolRod, null, null, tool);
}
public ToolRecipe(Item head, Item accessory, ToolCore tool)
{
this(head, TConstructRegistry.toolRod, accessory, null, tool);
}
public ToolRecipe(Item head, Item accessory, Item extra, ToolCore tool)
{
this(head, TConstructRegistry.toolRod, accessory, extra, tool);
}
public ToolRecipe(Item head, Item handle, Item accessory, Item extra, ToolCore tool)
{
this.headList.add(head);
this.handleList.add(handle);
if (accessory != null)
this.accessoryList.add(accessory);
if (extra != null)
this.extraList.add(extra);
result = tool;
}
public void addHeadItem(Item head)
{
this.headList.add(head);
}
public void addHandleItem(Item head)
{
this.handleList.add(head);
}
public void addAccessoryItem(Item head)
{
this.accessoryList.add(head);
}
public void addExtraItem(Item head)
{
this.extraList.add(head);
}
public boolean validHead (Item input)
{
for (Item part : headList)
{
if (part == input)
return true;
}
return false;
}
public boolean validHandle (Item input)
{
for (Item part : handleList)
{
if (part == input)
return true;
if (part == TContent.toolRod && (input == Item.stick || input == Item.bone))
return true;
}
return false;
}
public boolean validAccessory (Item input)
{
if (input == null)
{
if (accessoryList.size() < 1)
return true;
return false;
}
for (Item part : accessoryList)
{
if (part == input)
return true;
if (part == TContent.toolRod && (input == Item.stick || input == Item.bone))
return true;
}
return false;
}
public boolean validExtra (Item input)
{
if (input == null)
{
if (extraList.size() < 1)
return true;
return false;
}
for (Item part : extraList)
{
if (part == input)
return true;
if (part == TContent.toolRod && (input == Item.stick || input == Item.bone))
return true;
}
return false;
}
public ToolCore getType ()
{
return result;
}
}