package lumaceon.mods.clockworkphase2.config;
import lumaceon.mods.clockworkphase2.lib.Reference;
import net.minecraftforge.common.config.Configuration;
import java.io.*;
import java.nio.file.*;
public class ConfigurationHandler
{
public static void init(File directory)
{
String CATEGORY_WORLDGEN = "worldgen";
String CATEGORY_CLOCKWORK = "clockwork";
String CATEGORY_TIME = "time";
directory = new File(directory, Reference.MOD_ID + "/general" + ".cfg");
try {
if(!Files.exists(Paths.get(directory.toURI()).getParent()))
Files.createDirectories(Paths.get(directory.toURI()).getParent());
if(!Files.exists(Paths.get(directory.toURI())))
Files.createFile(Paths.get(directory.toURI()));
} catch (IOException e) {
e.printStackTrace();
}
Configuration config = new Configuration(directory);
try
{
config.load();
ConfigValues.DEVELOPING = config.get(Configuration.CATEGORY_GENERAL, "DEV_MODE", ConfigValues.DEVELOPING, "For developers. This should almost always be false, unless you're developing an add-on mod.").getBoolean();
ConfigValues.SPAWN_COPPER = config.get(CATEGORY_WORLDGEN, "SpawnCopper", ConfigValues.SPAWN_COPPER, "False to cancel copper generation.").getBoolean();
ConfigValues.SPAWN_ZINC = config.get(CATEGORY_WORLDGEN, "SpawnZinc", ConfigValues.SPAWN_ZINC, "False to cancel zinc generation.").getBoolean();
ConfigValues.SPAWN_MOON_FLOWER_RELIC = config.get(CATEGORY_WORLDGEN, "SpawnMoonFlowerRelic", ConfigValues.SPAWN_MOON_FLOWER_RELIC, "False to cancel moon flower relic generation.").getBoolean();
ConfigValues.SPAWN_UNKNOWN_RELIC = config.get(CATEGORY_WORLDGEN, "SpawnUnknownRelic", ConfigValues.SPAWN_UNKNOWN_RELIC, "False to cancel unknown relic generation.").getBoolean();
ConfigValues.BASE_TENSION_COST_PER_BLOCK_BREAK = config.get(CATEGORY_CLOCKWORK, "BaseTensionCostBlockBreak", ConfigValues.BASE_TENSION_COST_PER_BLOCK_BREAK, "The cost in tension to break a block if speed and quality are the same.").getInt();
ConfigValues.BASE_TENSION_COST_PER_ATTACK = config.get(CATEGORY_CLOCKWORK, "BaseTensionCostAttack", ConfigValues.BASE_TENSION_COST_PER_ATTACK, "The cost in tension to attack an entity if speed and quality are the same.").getInt();
ConfigValues.MAX_MAINSPRING_TENSION = config.get(CATEGORY_CLOCKWORK, "MaxMainspringTension", ConfigValues.MAX_MAINSPRING_TENSION, "The maximum tension a mainspring can hold.").getInt();
ConfigValues.TEMPORAL_DRIVE_TIME_PER_TICK = config.get(CATEGORY_TIME, "TemporalDriveTimePerTick", ConfigValues.TEMPORAL_DRIVE_TIME_PER_TICK, "The amount of ticks to generate per tick.").getInt();
ConfigValues.TEMPORAL_DRIVE_TICKS = config.get(CATEGORY_TIME, "TemporalDriveTotalTicks", ConfigValues.TEMPORAL_DRIVE_TICKS, "The amount of ticks in which time will be generated.").getInt();
ConfigValues.ETHEREAL_DRIVE_TIME_PER_TICK = config.get(CATEGORY_TIME, "EtherealDriveTimePerTick", ConfigValues.ETHEREAL_DRIVE_TIME_PER_TICK).getInt();
ConfigValues.ETHEREAL_DRIVE_TICKS = config.get(CATEGORY_TIME, "EtherealDriveTotalTicks", ConfigValues.ETHEREAL_DRIVE_TICKS).getInt();
ConfigValues.TEMPORAL_HOURGLASS_START = config.get(CATEGORY_TIME, "TemporalHourglassStartCap", ConfigValues.TEMPORAL_HOURGLASS_START, "The starting cap for the temporal hourglass.").getInt();
ConfigValues.TEMPORAL_HOURGLASS_HARD_CAP = config.get(CATEGORY_TIME, "TemporalHourglassHardCap", ConfigValues.TEMPORAL_HOURGLASS_HARD_CAP, "The hard cap for the temporal hourglass.").getInt();
ConfigValues.ETHEREAL_HOURGLASS_START = config.get(CATEGORY_TIME, "EtherealHourglassStartCap", ConfigValues.ETHEREAL_HOURGLASS_START).getInt();
ConfigValues.ETHEREAL_HOURGLASS_HARD_CAP = config.get(CATEGORY_TIME, "EtherealHourglassHardCap", ConfigValues.ETHEREAL_HOURGLASS_HARD_CAP).getInt();
ConfigValues.BASE_ETHEREAL_TIMEFRAME_KEY_DROP_RATE = config.get(CATEGORY_TIME, "BaseTimeframeKeyDropRateEthereal", ConfigValues.BASE_ETHEREAL_TIMEFRAME_KEY_DROP_RATE, "The base chance for a timeframe key to drop from ethereal mobs. Chance is 1*lootingLevelOfSword in (config value).").getInt();
ConfigValues.BASE_PHASIC_TIMEFRAME_KEY_DROP_RATE = config.get(CATEGORY_TIME, "BaseTimeframeKeyDropRatePhasic", ConfigValues.BASE_PHASIC_TIMEFRAME_KEY_DROP_RATE).getInt();
ConfigValues.BASE_ETERNAL_TIMEFRAME_KEY_DROP_RATE = config.get(CATEGORY_TIME, "BaseTimeframeKeyDropRateEternal", ConfigValues.BASE_ETERNAL_TIMEFRAME_KEY_DROP_RATE).getInt();
}
catch(Exception ex)
{
System.err.println("[" + Reference.MOD_NAME + "] Exception caught in ConfigurationHandler:");
ex.printStackTrace();
}
finally
{
config.save();
}
}
}