Testing
This commit is contained in:
commit
8601e9faff
498 changed files with 45817 additions and 0 deletions
73
BM_src/thaumcraft/api/crafting/CrucibleRecipe.java
Normal file
73
BM_src/thaumcraft/api/crafting/CrucibleRecipe.java
Normal file
|
@ -0,0 +1,73 @@
|
|||
package thaumcraft.api.crafting;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.oredict.OreDictionary;
|
||||
import thaumcraft.api.ThaumcraftApiHelper;
|
||||
import thaumcraft.api.aspects.Aspect;
|
||||
import thaumcraft.api.aspects.AspectList;
|
||||
|
||||
public class CrucibleRecipe
|
||||
{
|
||||
public ItemStack recipeOutput;
|
||||
public Object catalyst;
|
||||
public AspectList aspects;
|
||||
public String key;
|
||||
|
||||
public CrucibleRecipe(String researchKey, ItemStack result, Object cat, AspectList tags)
|
||||
{
|
||||
recipeOutput = result;
|
||||
this.aspects = tags;
|
||||
this.key = researchKey;
|
||||
this.catalyst = cat;
|
||||
|
||||
if (cat instanceof String)
|
||||
{
|
||||
this.catalyst = OreDictionary.getOres((String) cat);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean matches(AspectList itags, ItemStack cat)
|
||||
{
|
||||
if (catalyst instanceof ItemStack &&
|
||||
!ThaumcraftApiHelper.itemMatches((ItemStack) catalyst, cat, false))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else if (catalyst instanceof ArrayList && ((ArrayList<ItemStack>)catalyst).size() > 0)
|
||||
{
|
||||
if (!ThaumcraftApiHelper.containsMatch(true, ((ArrayList<ItemStack>)catalyst).toArray(new ItemStack[] {}), cat)) return false;
|
||||
}
|
||||
|
||||
if (itags == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
for (Aspect tag: aspects.getAspects())
|
||||
{
|
||||
if (itags.getAmount(tag) < aspects.getAmount(tag))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public AspectList removeMatching(AspectList itags)
|
||||
{
|
||||
AspectList temptags = new AspectList();
|
||||
temptags.aspects.putAll(itags.aspects);
|
||||
|
||||
for (Aspect tag: aspects.getAspects())
|
||||
{
|
||||
temptags.remove(tag, aspects.getAmount(tag));
|
||||
// if (!temptags.remove(tag, aspects.getAmount(tag))) return null;
|
||||
}
|
||||
|
||||
itags = temptags;
|
||||
return itags;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue