package fox.spiteful.forbidden;
import java.util.Iterator;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.oredict.OreDictionary;
import thaumcraft.api.ThaumcraftApi;
import thaumcraft.api.ThaumcraftApiHelper;
import thaumcraft.api.aspects.Aspect;
import thaumcraft.api.aspects.AspectList;
import fox.spiteful.forbidden.blocks.ForbiddenBlocks;
import fox.spiteful.forbidden.items.ForbiddenItems;
public class DarkAspects {
public static Aspect NETHER;
public static Aspect WRATH;
public static Aspect ENVY;
public static Aspect GLUTTONY;
public static Aspect PRIDE;
public static Aspect LUST;
public static Aspect SLOTH;
public static void initAspects() {
if (!Config.noLust) {
LUST = new Aspect("luxuria", 0xffc1ce, new Aspect[] { Aspect.FLESH, Aspect.HUNGER }, new ResourceLocation("forbidden", "textures/aspects/luxuria.png"), 1);
}
NETHER = new Aspect("infernus", 0xff0000, new Aspect[] { Aspect.FIRE, Aspect.MAGIC }, new ResourceLocation("forbidden", "textures/aspects/infernus.png"), 771);
PRIDE = new Aspect("superbia", 0x9639ff, new Aspect[] { Aspect.FLIGHT, Aspect.VOID }, new ResourceLocation("forbidden", "textures/aspects/superbia.png"), 1);
GLUTTONY = new Aspect("gula", 0xd59c46, new Aspect[] { Aspect.HUNGER, Aspect.VOID }, new ResourceLocation("forbidden", "textures/aspects/gula.png"), 1);
ENVY = new Aspect("invidia", 0x00ba00, new Aspect[] { Aspect.SENSES, Aspect.HUNGER }, new ResourceLocation("forbidden", "textures/aspects/invidia.png"), 1);
SLOTH = new Aspect("desidia", 0x6e6e6e, new Aspect[] { Aspect.TRAP, Aspect.SOUL }, new ResourceLocation("forbidden", "textures/aspects/desidia.png"), 771);
WRATH = new Aspect("ira", 0x870404, new Aspect[] { Aspect.WEAPON, Aspect.FIRE }, new ResourceLocation("forbidden", "textures/aspects/ira.png"), 771);
}
private static AspectList getAspectList(ItemStack stack) {
AspectList list = ThaumcraftApiHelper.getObjectAspects(stack);
return list != null ? list : new AspectList();
}
public static void addAspects() {
AspectList list;
list = getAspectList(new ItemStack(Blocks.netherrack));
list.add(NETHER, 1);
ThaumcraftApi.registerObjectTag(new ItemStack(Blocks.netherrack, 1, OreDictionary.WILDCARD_VALUE), list);
list = getAspectList(new ItemStack(Blocks.portal));
list.add(NETHER, 4);
ThaumcraftApi.registerObjectTag(new ItemStack(Blocks.portal, 1, OreDictionary.WILDCARD_VALUE), list);
// list = getAspectList(new ItemStack(Block.oreNetherQuartz));
// list.add(NETHER, 2);
// ThaumcraftApi.registerObjectTag(Block.oreNetherQuartz.blockID, -1,
// list);
ThaumcraftApi.registerObjectTag("oreQuartz", (new AspectList()).add(Aspect.CRYSTAL, 3).add(NETHER, 2));
list = getAspectList(new ItemStack(Items.nether_star));
list.add(NETHER, 8).add(PRIDE, 8);
ThaumcraftApi.registerObjectTag(new ItemStack(Items.nether_star, 1, 0), list);
list = getAspectList(new ItemStack(Items.nether_wart));
list.add(NETHER, 1);
ThaumcraftApi.registerObjectTag(new ItemStack(Items.nether_wart, 1, 0), list);
list = getAspectList(new ItemStack(Items.netherbrick));
list.add(NETHER, 1);
ThaumcraftApi.registerObjectTag(new ItemStack(Items.netherbrick, 1, OreDictionary.WILDCARD_VALUE), list);
list = getAspectList(new ItemStack(Blocks.nether_brick));
list.add(NETHER, 2);
ThaumcraftApi.registerObjectTag(new ItemStack(Blocks.nether_brick, 1, 0), list);
list = getAspectList(new ItemStack(Items.ghast_tear));
list.add(WRATH, 4);
ThaumcraftApi.registerObjectTag(new ItemStack(Items.ghast_tear, 1, OreDictionary.WILDCARD_VALUE), list);
list = getAspectList(new ItemStack(Items.skull, 1, 1));
list.add(NETHER, 4);
ThaumcraftApi.registerObjectTag(new ItemStack(Items.skull, 1, 1), list);
list = getAspectList(new ItemStack(Items.skull, 1, 4));
list.add(WRATH, 2);
ThaumcraftApi.registerObjectTag(new ItemStack(Items.skull, 1, 4), list);
// list = getAspectList(new ItemStack(Item.enderPearl));
// list.add(PRIDE, 1);
// ThaumcraftApi.registerObjectTag(Item.enderPearl.itemID, -1, list);
list = getAspectList(new ItemStack(Blocks.tnt));
list.add(WRATH, 2);
ThaumcraftApi.registerObjectTag(new ItemStack(Blocks.tnt, 1, 0), list);
list = getAspectList(new ItemStack(Items.golden_helmet));
if (list != null) {
list.add(PRIDE, 2);
ThaumcraftApi.registerObjectTag(new ItemStack(Items.golden_helmet, 1, OreDictionary.WILDCARD_VALUE), list);
}
list = getAspectList(new ItemStack(Items.golden_chestplate));
if (list != null) {
list.add(PRIDE, 1);
ThaumcraftApi.registerObjectTag(new ItemStack(Items.golden_chestplate, 1, OreDictionary.WILDCARD_VALUE), list);
}
list = getAspectList(new ItemStack(Items.golden_leggings));
if (list != null) {
list.add(PRIDE, 1);
ThaumcraftApi.registerObjectTag(new ItemStack(Items.golden_leggings, 1, OreDictionary.WILDCARD_VALUE), list);
}
list = getAspectList(new ItemStack(Items.golden_boots));
if (list != null) {
list.add(PRIDE, 1);
ThaumcraftApi.registerObjectTag(new ItemStack(Items.golden_boots, 1, OreDictionary.WILDCARD_VALUE), list);
}
list = getAspectList(new ItemStack(Items.golden_sword));
if (list != null) {
list.add(PRIDE, 2);
ThaumcraftApi.registerObjectTag(new ItemStack(Items.golden_sword, 1, OreDictionary.WILDCARD_VALUE), list);
}
// list = getAspectList(new ItemStack(Item.bed));
// list.add(SLOTH, 4);
list = (new AspectList()).add(Aspect.CRAFT, 3).add(Aspect.CLOTH, 6).add(SLOTH, 4);
ThaumcraftApi.registerObjectTag(new ItemStack(Items.bed, 1, OreDictionary.WILDCARD_VALUE), list);
// list = getAspectList(new ItemStack(Item.eyeOfEnder)).copy();
list = (new AspectList()).add(Aspect.SENSES, 4).add(Aspect.ELDRITCH, 4).add(Aspect.MAGIC, 3);
list.add(ENVY, 4);
ThaumcraftApi.registerObjectTag(new ItemStack(Items.ender_eye, 1, 0), list);
// ThaumcraftApi.registerComplexObjectTag(Item.eyeOfEnder.itemID, 0,
// (new AspectList()).add(Aspect.SENSES, 4).add(ENVY, 86));
list = getAspectList(new ItemStack(Items.cake));
list.add(GLUTTONY, 7);
ThaumcraftApi.registerObjectTag(new ItemStack(Items.cake, 1, 0), list);
list = getAspectList(new ItemStack(Items.cookie));
list.add(GLUTTONY, 1);
ThaumcraftApi.registerObjectTag(new ItemStack(Items.cookie, 1, OreDictionary.WILDCARD_VALUE), list);
list = getAspectList(new ItemStack(Items.fire_charge));
list.add(WRATH, 1);
ThaumcraftApi.registerObjectTag(new ItemStack(Items.fire_charge, 1, 0), list);
// list = getAspectList(new ItemStack(Item.comparator)).copy();
// list.add(ENVY, 2);
list = (new AspectList()).add(Aspect.MECHANISM, 2).add(Aspect.ORDER, 2).add(ENVY, 2);
ThaumcraftApi.registerObjectTag(new ItemStack(Items.comparator, 1, OreDictionary.WILDCARD_VALUE), list);
// ThaumcraftApi.registerComplexObjectTag(Block.redstoneComparatorIdle.blockID,
// -1, (new AspectList()).merge(Aspect.MECHANISM, 2).merge(Aspect.ORDER,
// 2).merge(ENVY, 2));
// ThaumcraftApi.registerComplexObjectTag(Block.redstoneComparatorActive.blockID,
// -1, (new AspectList()).merge(Aspect.MECHANISM, 2).merge(Aspect.ORDER,
// 2).merge(ENVY, 2));
list = (new AspectList()).add(Aspect.FLESH, 6).add(Aspect.LIFE, 6).add(Aspect.ENERGY, 6).add(Aspect.BEAST, 4).add(GLUTTONY, 6);
ThaumcraftApi.registerObjectTag("itemBacon", list);
if (!Config.noLust) {
list = getAspectList(new ItemStack(Items.saddle));
list.add(LUST, 2);
ThaumcraftApi.registerObjectTag(new ItemStack(Items.saddle, 1, OreDictionary.WILDCARD_VALUE), list);
// list = getAspectList(new ItemStack(Item.leash));
list = (new AspectList()).add(Aspect.BEAST, 2).add(Aspect.CLOTH, 2).add(Aspect.SLIME, 1);
list.add(LUST, 2);
ThaumcraftApi.registerObjectTag(new ItemStack(Items.lead, 1, OreDictionary.WILDCARD_VALUE), list);
}
Iterator mobCount = ThaumcraftApi.scanEntities.iterator();
while (mobCount.hasNext()) {
ThaumcraftApi.EntityTags mobTag = (ThaumcraftApi.EntityTags) mobCount.next();
if (mobTag.entityName.equals("BrainyZombie")) {
mobTag.aspects.add(WRATH, 3);
} else if (mobTag.entityName.equals("GiantBrainyZombie")) {
mobTag.aspects.add(WRATH, 4);
} else if (mobTag.entityName.equals("Firebat")) {
mobTag.aspects.add(WRATH, 1).add(NETHER, 2);
} else if (mobTag.entityName.equals("Skeleton") && mobTag.nbts.length > 0) {
mobTag.aspects.add(NETHER, 3);
} else if (mobTag.entityName.equals("Creeper")) {
if (mobTag.nbts.length > 0)
mobTag.aspects.add(WRATH, 4);
else
mobTag.aspects.add(WRATH, 2);
} else if (mobTag.entityName.equals("WitherBoss")) {
mobTag.aspects.add(NETHER, 7).add(WRATH, 7);
} else if (mobTag.entityName.equals("Ozelot")) {
mobTag.aspects.add(SLOTH, 3);
} else if (mobTag.entityName.equals("Enderman")) {
mobTag.aspects.add(PRIDE, 4).add(ENVY, 4);
} else if (mobTag.entityName.equals("Ghast")) {
mobTag.aspects.add(NETHER, 3).add(WRATH, 3);
} else if (mobTag.entityName.equals("PigZombie")) {
mobTag.aspects.add(WRATH, 6);
} else if (mobTag.entityName.equals("EnderDragon")) {
mobTag.aspects.add(PRIDE, 10);
} else if (!Config.noLust && mobTag.entityName.equals("Taintacle")) {
mobTag.aspects.add(LUST, 3);
} else if (mobTag.entityName.equals("Pig")) {
mobTag.aspects.add(GLUTTONY, 3);
} else if (mobTag.entityName.equals("LavaSlime")) {
mobTag.aspects.add(NETHER, 1);
} else if (!Config.noLust && mobTag.entityName.equals("TwilightForest.Forest Bunny")) {
mobTag.aspects.add(LUST, 5);
} else if (mobTag.entityName.equals("TwilightForest.Mini Ghast")) {
mobTag.aspects.add(NETHER, 1).add(WRATH, 1);
} else if (mobTag.entityName.equals("TwilightForest.Tower Boss")) {
mobTag.aspects.add(NETHER, 10).add(WRATH, 10);
} else if (mobTag.entityName.equals("TwilightForest.Tower Ghast")) {
mobTag.aspects.add(NETHER, 3).add(WRATH, 3);
} else if (mobTag.entityName.equals("TwilightForest.Twilight Lich")) {
mobTag.aspects.add(PRIDE, 10);
} else if (!Config.noLust && mobTag.entityName.equals("TwilightForest.Pinch Beetle")) {
mobTag.aspects.add(LUST, 3);
} else if (mobTag.entityName.equals("TwilightForest.King Spider")) {
mobTag.aspects.add(PRIDE, 4);
} else if (mobTag.entityName.equals("witchery.demon")) {
mobTag.aspects.add(NETHER, 8);
}
}
ThaumcraftApi.registerObjectTag(new ItemStack(ForbiddenItems.deadlyShards, 1, 0), (new AspectList()).add(NETHER, 1).add(WRATH, 2).add(Aspect.CRYSTAL, 1));
ThaumcraftApi.registerObjectTag(new ItemStack(ForbiddenItems.deadlyShards, 1, 1), (new AspectList()).add(NETHER, 1).add(ENVY, 2).add(Aspect.CRYSTAL, 1));
ThaumcraftApi.registerObjectTag(new ItemStack(ForbiddenItems.deadlyShards, 1, 2), (new AspectList()).add(Aspect.TAINT, 3).add(Aspect.CRYSTAL, 1));
ThaumcraftApi.registerObjectTag(new ItemStack(ForbiddenItems.deadlyShards, 1, 3), (new AspectList()).add(NETHER, 1).add(PRIDE, 2).add(Aspect.CRYSTAL, 1));
if (!Config.noLust)
ThaumcraftApi.registerObjectTag(new ItemStack(ForbiddenItems.deadlyShards, 1, 4), (new AspectList()).add(NETHER, 1).add(LUST, 2).add(Aspect.CRYSTAL, 1));
else
ThaumcraftApi.registerObjectTag(new ItemStack(ForbiddenItems.deadlyShards, 1, 4), (new AspectList()).add(Aspect.VOID, 1));
ThaumcraftApi.registerObjectTag(new ItemStack(ForbiddenItems.gluttonyShard, 1, OreDictionary.WILDCARD_VALUE), (new AspectList()).add(NETHER, 1).add(GLUTTONY, 2).add(Aspect.CRYSTAL, 1));
ThaumcraftApi.registerObjectTag(new ItemStack(ForbiddenItems.deadlyShards, 1, 5), (new AspectList()).add(NETHER, 1).add(SLOTH, 2).add(Aspect.CRYSTAL, 1));
ThaumcraftApi.registerObjectTag(new ItemStack(ForbiddenItems.deadlyShards, 1, 6), (new AspectList()).add(NETHER, 1).add(Aspect.GREED, 2).add(Aspect.CRYSTAL, 1));
ThaumcraftApi.registerObjectTag(new ItemStack(ForbiddenItems.resource, 1, 0), (new AspectList()).add(Aspect.CRYSTAL, 1));
ThaumcraftApi.registerObjectTag(new ItemStack(ForbiddenItems.resource, 1, 1), (new AspectList()).add(Aspect.DARKNESS, 1));
ThaumcraftApi.registerObjectTag(new ItemStack(ForbiddenBlocks.blackFlower, 1, OreDictionary.WILDCARD_VALUE), (new AspectList()).add(Aspect.PLANT, 1).add(Aspect.LIFE, 1).add(Aspect.SENSES, 1).add(Aspect.DARKNESS, 1));
if (!Config.noLust)
ThaumcraftApi.registerObjectTag(new ItemStack(ForbiddenItems.ridingCrop, 1, OreDictionary.WILDCARD_VALUE), (new AspectList()).add(Aspect.TREE, 2).add(Aspect.CLOTH, 2).add(Aspect.BEAST, 1).add(LUST, 1).add(Aspect.WEAPON, 1));
ThaumcraftApi.registerObjectTag(new ItemStack(ForbiddenItems.taintFruit, 1, OreDictionary.WILDCARD_VALUE), (new AspectList()).add(Aspect.TAINT, 2).add(Aspect.POISON, 1));
ThaumcraftApi.registerObjectTag(new ItemStack(ForbiddenItems.taintCoal, 1, OreDictionary.WILDCARD_VALUE), (new AspectList()).add(Aspect.TAINT, 2).add(Aspect.ENTROPY, 2));
ThaumcraftApi.registerObjectTag(new ItemStack(ForbiddenBlocks.taintLeaves, 1, OreDictionary.WILDCARD_VALUE), (new AspectList()).add(Aspect.TAINT, 1).add(Aspect.PLANT, 1));
ThaumcraftApi.registerObjectTag(new ItemStack(ForbiddenBlocks.taintLog, 1, OreDictionary.WILDCARD_VALUE), (new AspectList()).add(Aspect.TAINT, 1).add(Aspect.TREE, 3));
ThaumcraftApi.registerObjectTag(new ItemStack(ForbiddenBlocks.taintPlanks, 1, OreDictionary.WILDCARD_VALUE), (new AspectList()).add(Aspect.TREE, 1));
ThaumcraftApi.registerObjectTag(new ItemStack(ForbiddenBlocks.taintStone, 1, 1), (new AspectList()).add(Aspect.EARTH, 1));
}
}