use of thaumcraft.api.aspects.Aspect in project Railcraft by Railcraft.
the class CrucibleRecipe method removeMatching.
public AspectList removeMatching(AspectList itags) {
AspectList temptags = new AspectList();
temptags.aspects.putAll(itags.aspects);
for (Aspect tag : getAspects().getAspects()) {
temptags.remove(tag, getAspects().getAmount(tag));
}
itags = temptags;
return itags;
}
use of thaumcraft.api.aspects.Aspect in project PneumaticCraft by MineMaarten.
the class ThaumcraftApi method registerComplexObjectTag.
/**
* Used to assign aspects to the given item/block.
* Attempts to automatically generate aspect tags by checking registered recipes.
* Here is an example of the declaration for pistons:<p>
* <i>ThaumcraftApi.registerComplexObjectTag(new ItemStack(Blocks.cobblestone), (new AspectList()).add(Aspect.MECHANISM, 2).add(Aspect.MOTION, 4));</i>
* IMPORTANT - this should only be used if you are not happy with the default aspects the object would be assigned.
* @param item, pass OreDictionary.WILDCARD_VALUE to meta if all damage values of this item/block should have the same aspects
* @param aspects A ObjectTags object of the associated aspects
*/
public static void registerComplexObjectTag(ItemStack item, AspectList aspects) {
if (!exists(item.getItem(), item.getItemDamage())) {
AspectList tmp = ThaumcraftApiHelper.generateTags(item.getItem(), item.getItemDamage());
if (tmp != null && tmp.size() > 0) {
for (Aspect tag : tmp.getAspects()) {
aspects.add(tag, tmp.getAmount(tag));
}
}
registerObjectTag(item, aspects);
} else {
AspectList tmp = ThaumcraftApiHelper.getObjectAspects(item);
for (Aspect tag : aspects.getAspects()) {
tmp.merge(tag, tmp.getAmount(tag));
}
registerObjectTag(item, tmp);
}
}
use of thaumcraft.api.aspects.Aspect in project PneumaticCraft by MineMaarten.
the class ThaumcraftApiHelper method cullTags.
public static AspectList cullTags(AspectList temp) {
AspectList temp2 = new AspectList();
for (Aspect tag : temp.getAspects()) {
if (tag != null)
temp2.add(tag, temp.getAmount(tag));
}
while (temp2 != null && temp2.size() > 6) {
Aspect lowest = null;
float low = Short.MAX_VALUE;
for (Aspect tag : temp2.getAspects()) {
if (tag == null)
continue;
float ta = temp2.getAmount(tag);
if (tag.isPrimal()) {
ta *= .9f;
} else {
if (!tag.getComponents()[0].isPrimal()) {
ta *= 1.1f;
if (!tag.getComponents()[0].getComponents()[0].isPrimal()) {
ta *= 1.05f;
}
if (!tag.getComponents()[0].getComponents()[1].isPrimal()) {
ta *= 1.05f;
}
}
if (!tag.getComponents()[1].isPrimal()) {
ta *= 1.1f;
if (!tag.getComponents()[1].getComponents()[0].isPrimal()) {
ta *= 1.05f;
}
if (!tag.getComponents()[1].getComponents()[1].isPrimal()) {
ta *= 1.05f;
}
}
}
if (ta < low) {
low = ta;
lowest = tag;
}
}
temp2.aspects.remove(lowest);
}
return temp2;
}
use of thaumcraft.api.aspects.Aspect in project PneumaticCraft by MineMaarten.
the class ResearchItem method getResearchPrimaryTag.
/**
* @return the aspect aspects ordinal with the highest value. Used to determine scroll color and similar things
*/
public Aspect getResearchPrimaryTag() {
Aspect aspect = null;
int highest = 0;
if (tags != null)
for (Aspect tag : tags.getAspects()) {
if (tags.getAmount(tag) > highest) {
aspect = tag;
highest = tags.getAmount(tag);
}
;
}
return aspect;
}
use of thaumcraft.api.aspects.Aspect in project ArsMagica2 by Mithion.
the class ThaumcraftApiHelper method getAllAspects.
public static AspectList getAllAspects(int amount) {
if (allAspects.get(amount) == null) {
AspectList al = new AspectList();
for (Aspect aspect : Aspect.aspects.values()) {
al.add(aspect, amount);
}
allAspects.put(amount, al);
}
return allAspects.get(amount);
}
Aggregations