package fox.spiteful.forbidden;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.item.ItemStack;
import net.minecraftforge.common.config.Configuration;
import org.apache.logging.log4j.Level;
import thaumcraft.api.ItemApi;
import thaumcraft.api.aspects.Aspect;
public class Config {
public static HashMap<String, Aspect> spawnerMobs = new HashMap<String, Aspect>();
public static ArrayList<String> trash = new ArrayList<String>();
public static int clusterEnchID;
public static int wrathEnchID;
public static int greedyEnchID;
public static int consumingEnchID;
public static int educationalEnchID;
public static int corruptingEnchID;
public static int voidEnchID;
public static int impactEnchID;
public static int bloodSealPotionID = 70;
public static int dragonwrackPotionID = 71;
public static int hellfireUpgradeID;
public static int pandemoniumUpgradeID;
public static ItemStack thaumcraftResource;
public static ItemStack thaumcraftTaintBlock;
public static ItemStack thaumcraftOre;
public static ItemStack thaumcraftShard;
public static boolean noLust = false;
public static boolean silverfishEmeralds = true;
public static boolean tagResearch = true;
public static boolean wrathCage = true;
public static boolean spork = false;
public static boolean greedyEnch = true;
public static boolean emeraldTrans = true;
public static boolean wrathCrazy = false;
public static byte gluttony = 0;
public static boolean enchanting = true;
public static int hereticID = 666;
public static boolean crossMod = true;
public static boolean crossWand = true;
public static boolean botan = true;
public static boolean bloodMagic = true;
public static boolean am2 = true;
public static boolean tt = true;
public static boolean tc = true;
public static boolean special = true;
public static boolean twilight = true;
public static boolean emc = true;
//public static boolean eewand = true;
public static int bloodvis = 5;
public static int manavis = 8;
public static int wrathCost = 5;
public static int wrathEff = 4;
public static Material taintMaterial;
public static void configurate(File targ) {
Configuration conf = new Configuration(targ);
try {
conf.load();
int enchCount = 66;
clusterEnchID = conf.get("enchantments", "Fiery Core", enchCount++).getInt();
wrathEnchID = conf.get("enchantments", "Wrath", enchCount++).getInt();
greedyEnchID = conf.get("enchantments", "Capitalist", enchCount++).getInt();
consumingEnchID = conf.get("enchantments", "Consuming", enchCount++).getInt();
educationalEnchID = conf.get("enchantments", "Educational", enchCount++).getInt();
corruptingEnchID = conf.get("enchantments", "Corrupting", enchCount++).getInt();
voidEnchID = conf.get("enchantments", "Voidtouched", enchCount++).getInt();
impactEnchID = conf.get("enchantments", "Impact", enchCount++).getInt();
int upgradeCount = 42;
hellfireUpgradeID = conf.get("focus upgrades", "Hellfire", upgradeCount).getInt(upgradeCount++);
pandemoniumUpgradeID = conf.get("focus upgrades", "Pandemonium", upgradeCount).getInt(upgradeCount++);
noLust = conf.get("general", "No Lust", noLust, "Enable to remove Luxuria aspect and related items.").getBoolean(false);
silverfishEmeralds = conf.get("general", "Silverfish Drop Emerald Nuggets", silverfishEmeralds, "Disable to prevent Silverfish from dropping emerald nuggets.").getBoolean(true);
greedyEnch = conf.get("general", "Capitalist Enchantment", greedyEnch, "Disable to remove the recipe and effects of the Capitalist enchantment.").getBoolean(true);
emeraldTrans = conf.get("general", "Emerald Transmutation", emeraldTrans, "Disable to remove the Emerald Transmutation research and recipe.").getBoolean(true);
tagResearch = conf.get("general", "Tag Research Items", tagResearch, "Disable to get rid of the [FM] tags in the Thaumonomicon.").getBoolean(true);
wrathCage = conf.get("general", "Wrath Cage Enabled", wrathCage, "Disable if you don't want players using the Wrath Cage.").getBoolean(true);
wrathCost = conf.get("general", "Wrath Cage Fuel Cost", wrathCost, "Cost of essentia per round of spawns in the Wrath Cage. Raise to increase essentia costs. Defaults to 5. Set to 0 to remove the need to fuel the Wrath Cage. Setting the cost above 64 is not recommended.").getInt(5);
wrathEff = conf.get("general", "Wrath Cage Fuel Efficiency", wrathEff, "Number of spawns a Wrath Cage can get per fuel cost. Defaults to 4. Lower to make the cage less efficient and raise to make it more efficient.").getInt(4);
if (wrathEff < 0)
wrathEff = 4;
wrathCrazy = conf.get("general", "Wrath Cage Cries Havoc", wrathCrazy, "Enable to let the Wrath Cage imprint on ANY non-boss mob. May break your game or make your game Awesome.").getBoolean(false);
enchanting = conf.get("general", "Enchantments Enabled", enchanting, "Disable if you don't like enchantments.").getBoolean(true);
spork = conf.get("silly", "Spork of Doom", spork, "What is this? I don't even...").getBoolean(false);
gluttony = (byte)conf.get("general", "Gluttony", gluttony, "Whether gluttony research is enabled. 0 = Enabled, 1 = Disabled, 2 = Hardcore").getInt(0);
if(gluttony < 0 || gluttony > 2)
gluttony = 0;
hereticID = conf.get("general", "Heretic Villager ID", hereticID).getInt(hereticID);
String trashlist = conf.get("general", "Garbage Blocks", "dirt;sand;gravel;cobblestone;netherrack", "List of OreDict names for garbage blocks, separated by semicolons, for the Consuming enchant to eat").getString();
String[] trashpile = trashlist.split(";");
for(String garbage : trashpile){
trash.add(garbage);
}
bloodSealPotionID = conf.get("potions", "Blood Seal", bloodSealPotionID).getInt(bloodSealPotionID);
dragonwrackPotionID = conf.get("potions", "Dragonwrack", dragonwrackPotionID).getInt(dragonwrackPotionID);
crossMod = conf.get("compatibility", "Cross-Mod Interaction", crossMod, "Disable to keep mods segregated.").getBoolean(true);
crossWand = conf.get("compatibility", "Conversion Wands", crossWand, "Disable to remove all conversion wands.").getBoolean(true);
botan = conf.get("compatibility", "Botania Interaction", botan).getBoolean(true);
bloodMagic = conf.get("compatibility", "Blood Magic Interaction", bloodMagic).getBoolean(true);
am2 = conf.get("compatibility", "Ars Magica 2 Interaction", am2, "AM2 interaction is unsupported. Enable at your own risk.").getBoolean(true);
tt = conf.get("compatibility", "Thaumic Tinkerer Interaction", tt).getBoolean(true);
tc = conf.get("compatibility", "Tinkers Construct Interaction", tc).getBoolean(true);
special = conf.get("compatibility", "Special Mobs Interaction", special).getBoolean(true);
twilight = conf.get("compatibility", "Twilight Forest Interaction", twilight).getBoolean(true);
emc = conf.get("compatibility", "Equivalent Exchange 3 EMC", emc, "Disable if you don't want Forbidden Magic to add EMC values to items.").getBoolean(true);
//eewand = conf.get("compatibility", "Equivalent Exchange 3 Wand", eewand, "Disable to specifically disable the EMC to Vis wand.").getBoolean(true);
bloodvis = conf.get("power converters", "LP to Vis", bloodvis, "How much LP 0.01 Vis is worth").getInt(bloodvis);
manavis = conf.get("power converters", "Mana to Vis", manavis, "How much Mana 0.01 Vis is worth").getInt(manavis);
} catch (Exception e) {
LogHandler.log(Level.ERROR, e, "Had a problem loading its configuration.");
} finally {
conf.save();
}
try {
thaumcraftResource = ItemApi.getItem("itemResource", 0);
thaumcraftShard = ItemApi.getItem("itemShard", 0);
thaumcraftTaintBlock = ItemApi.getBlock("blockTaint", 0);
thaumcraftOre = ItemApi.getBlock("blockCustomOre", 0);
taintMaterial = Block.getBlockFromItem(thaumcraftTaintBlock.getItem()).getMaterial();
} catch (Exception e) {
LogHandler.log(Level.ERROR, e, "There was problem when retrieving information from Thaumcraft.");
e.printStackTrace();
}
}
public static void spawnilify() {
if (wrathCage) {
spawnerMobs.put("Zombie", Aspect.FLESH);
spawnerMobs.put("Skeleton", Aspect.DEATH);
spawnerMobs.put("Creeper", Aspect.FIRE);
spawnerMobs.put("EntityHorse", Aspect.BEAST);
spawnerMobs.put("Pig", Aspect.BEAST);
spawnerMobs.put("Sheep", Aspect.CLOTH);
spawnerMobs.put("Cow", Aspect.BEAST);
spawnerMobs.put("MushroomCow", Aspect.PLANT);
spawnerMobs.put("Ozelot", Aspect.BEAST);
spawnerMobs.put("Chicken", Aspect.FLIGHT);
spawnerMobs.put("Squid", Aspect.SENSES);
spawnerMobs.put("Wolf", Aspect.BEAST);
spawnerMobs.put("Bat", Aspect.FLIGHT);
spawnerMobs.put("Spider", Aspect.CLOTH);
spawnerMobs.put("Slime", Aspect.SLIME);
spawnerMobs.put("Ghast", DarkAspects.NETHER);
spawnerMobs.put("PigZombie", Aspect.GREED);
spawnerMobs.put("Enderman", Aspect.ELDRITCH);
spawnerMobs.put("CaveSpider", Aspect.POISON);
if (silverfishEmeralds)
spawnerMobs.put("Silverfish", Aspect.GREED);
else
spawnerMobs.put("Silverfish", Aspect.BEAST);
spawnerMobs.put("Blaze", Aspect.FIRE);
spawnerMobs.put("LavaSlime", Aspect.FIRE);
spawnerMobs.put("Witch", Aspect.MAGIC);
spawnerMobs.put("Villager", Aspect.GREED);
spawnerMobs.put("Thaumcraft.Firebat", Aspect.FIRE);
spawnerMobs.put("Thaumcraft.Wisp", Aspect.AURA);
spawnerMobs.put("Thaumcraft.ThaumSlime", Aspect.TAINT);
spawnerMobs.put("Thaumcraft.BrainyZombie", Aspect.MIND);
spawnerMobs.put("Thaumcraft.GiantBrainyZombie", Aspect.MIND);
spawnerMobs.put("Thaumcraft.TaintSpider", Aspect.TAINT);
spawnerMobs.put("Thaumcraft.TaintSwarm", Aspect.TAINT);
spawnerMobs.put("Thaumcraft.TaintedPig", Aspect.TAINT);
spawnerMobs.put("Thaumcraft.TaintedSheep", Aspect.TAINT);
spawnerMobs.put("Thaumcraft.TaintedCow", Aspect.TAINT);
spawnerMobs.put("Thaumcraft.TaintedChicken", Aspect.TAINT);
spawnerMobs.put("Thaumcraft.TaintedVillager", Aspect.TAINT);
spawnerMobs.put("Thaumcraft.CultistKnight", Aspect.ELDRITCH);
spawnerMobs.put("Thaumcraft.CultistCleric", Aspect.ELDRITCH);
spawnerMobs.put("Thaumcraft.EldritchCrab", Aspect.ELDRITCH);
spawnerMobs.put("Thaumcraft.InhabitedZombie", Aspect.ELDRITCH);
spawnerMobs.put("Thaumcraft.Pech", Aspect.GREED);
spawnerMobs.put("Thaumcraft.EldritchGuardian", Aspect.ELDRITCH);
// spawnerMobs.put("Taintacle", DarkAspects.LUST);
}
}
}