package mods.ocminecart;
import java.util.ArrayList;
public class Settings {
public static final String OC_ResLoc = "opencomputers"; // Resource domain for OpenComputers
public static final String OC_Namespace = "oc:"; // Namespace for OpenComputers NBT Data
public static float OC_SoundVolume;
public static double OC_IC2PWR;
public static double OC_SuckDelay;
public static double OC_DropDelay;
public static int ComputerCartBaseCost; //Config Value -> basecost
public static int ComputerCartComplexityCost; //Config Value -> costmultiplier
public static int ComputerCartEnergyCap; //Config Value -> energystore
public static double ComputerCartEnergyUse; //Config Value -> energyuse
public static int ComputerCartCreateEnergy; //Config Value -> newenergy
public static double ComputerCartEngineUse; //Config Value -> engineuse
public static double ComputerCartETrackLoad; //Config Value -> maxtrackcharge
public static double ComputerCartETrackBuf; //Config Value -> maxtrackcharge
public static double ComputerCartETrackLoss; //Config Value -> maxtrackcharge
public static int NetRailPowerTransfer; //Config Value -> transferspeed
public static double LinkingLinkDelay;
public static double LinkingLinkCost;
public static double LinkingUnlinkDelay;
public static double LinkingUnlinkCost;
public static int[] RemoteRange;
public static boolean GeneralFixCartBox; //Config Value -> cartboxfix
public static void init(){
OCMinecart.config.load();
confComments();
confValues();
confOrder();
OCMinecart.config.save();
ocValues();
}
private static void ocValues(){ //Get the settings from OpenCOmputers
OC_SoundVolume = li.cil.oc.Settings.get().soundVolume();
OC_IC2PWR = li.cil.oc.Settings.get().ratioIndustrialCraft2();
OC_SuckDelay = li.cil.oc.Settings.get().suckDelay();
OC_DropDelay = li.cil.oc.Settings.get().dropDelay();
}
private static void confValues(){
// computercart
ComputerCartBaseCost = OCMinecart.config.get("computercart", "basecost", 50000 , "Energy cost for a ComputerCart with Complexity 0 [default: 50000]").getInt(50000);
ComputerCartComplexityCost = OCMinecart.config.get("computercart", "costmultiplier", 10000 , "Energy - Complexity multiplier [default: 10000]").getInt(10000);
ComputerCartEnergyCap = OCMinecart.config.get("computercart", "energystore", 20000 , "Energy a Computer cart can store [default: 20000]").getInt(20000);
ComputerCartEnergyUse = OCMinecart.config.get("computercart", "energyuse", 0.25 , "Energy a Computer cart consume every tick [default: 0.25]").getDouble(0.25);
ComputerCartCreateEnergy= OCMinecart.config.get("computercart", "newenergy", 20000 , "Energy new a Computer cart has stored [default: 20000]").getInt(20000);
ComputerCartEngineUse = OCMinecart.config.get("computercart", "engineuse", 2 , "Energy multiplier for the Engine. Speed times Value [default: 2]").getDouble(2);
ComputerCartETrackBuf = OCMinecart.config.get("computercart", "trackchargebuffer", 1000 , "[Railcraft] Charge buffer for the computer cart (EU) [default: 1000]").getDouble(1000);
ComputerCartETrackLoss = OCMinecart.config.get("computercart", "chargebufferloss", 0.1 , "[Railcraft] Charge buffer loss per tick (EU) [default: 0.1]").getDouble(0.1);
ComputerCartETrackLoad = OCMinecart.config.get("computercart", "maxtrackcharge", 16 , "[Railcraft] Max. Energy a cart can take from the charge buffer per tick (EU) [default: 16]").getDouble(16);
// networkrail
NetRailPowerTransfer= OCMinecart.config.get("networkrail", "transferspeed",150 , "Energy that a network rail can transfer per tick [default: 100]").getInt(150);
// general
GeneralFixCartBox = OCMinecart.config.get("general", "cartboxfix", true, "Fix the computer cart bounding box if railcraft is installed [default:true]").getBoolean(true);
//upgrades
LinkingLinkDelay= OCMinecart.config.get("upgrades", "linkingdelay", 0.2 , "Pause time when linking two carts with a Linking Upgrade (also when unsuccessful). in seconds [default: 0.5]").getDouble(0.5);
LinkingLinkCost= OCMinecart.config.get("upgrades", "linkingcost", 0.5 , "Energy the Linking Upgrade will take when linked successful [default: 0.5]").getDouble(0.5);
LinkingUnlinkDelay= OCMinecart.config.get("upgrades", "unlinkdelay", 0.2 , "Pause time when unlinklink two carts with a Linking Upgrade (also when unsuccessful). in seconds [default: 0.3]").getDouble(0.3);
LinkingLinkDelay= OCMinecart.config.get("upgrades", "unlinkcost", 0.5 , "Energy the Linking Upgrade will take when unlinked successful [default: 0.4]").getDouble(0.4);
RemoteRange = OCMinecart.config.get("upgrades", "remoterange", new int[]{4,64,256}, "Wireless range for the remote modules (Tier 1,2,3) [default: {4,64,256}]").getIntList();
}
private static void confComments(){
OCMinecart.config.addCustomCategoryComment("computercart", "Settings for the computer cart\n"
+ "[Railcraft] <= This settings are useless if Railcraft is not installed. ");
OCMinecart.config.addCustomCategoryComment("networkrail", "Settings for the network rail");
OCMinecart.config.addCustomCategoryComment("general", "Some general settings for the mod");
OCMinecart.config.addCustomCategoryComment("upgrades", "Some general settings for upgrades");
}
private static void confOrder(){
ArrayList<String> computercart = new ArrayList<String>();
computercart.add("basecost");
computercart.add("costmultiplier");
computercart.add("newenergy");
computercart.add("energystore");
computercart.add("energyuse");
computercart.add("engineuse");
computercart.add("maxtrackcharge");
computercart.add("trackchargebuffer");
computercart.add("chargebufferloss");
OCMinecart.config.setCategoryPropertyOrder("computercart", computercart);
ArrayList<String> upgrades = new ArrayList<String>();
upgrades.add("remoterange");
upgrades.add("linkingdelay");
upgrades.add("linkingcost");
upgrades.add("unlinkdelay");
upgrades.add("unlinkcost");
OCMinecart.config.setCategoryPropertyOrder("upgrades", upgrades);
}
}