void Awake() { ignoreFuelsForFill = null; tankDefinitions = null; managedResources = null; Destroy(this); }
public static void Initialize() { ignoreFuelsForFill = new HashSet <string> (); tankDefinitions = new Tanks.TankDefinitionList(); managedResources = new Dictionary <string, HashSet <string> > (); overrides = new Dictionary <string, ConfigNode[]>(); // fill vsps & conductivities resourceVsps = new Dictionary <string, double>(); resourceConductivities = new Dictionary <string, double>(); foreach (ConfigNode n in GameDatabase.Instance.GetConfigNodes("RESOURCE_DEFINITION")) { if (n.HasValue("vsp")) { double dtmp; if (double.TryParse(n.GetValue("vsp"), out dtmp)) { resourceVsps[n.GetValue("name")] = dtmp; } } if (n.HasValue("conductivity")) { double dtmp; if (double.TryParse(n.GetValue("conductivity"), out dtmp)) { resourceConductivities[n.GetValue("name")] = dtmp; } } } ConfigNode node = GameDatabase.Instance.GetConfigNodes("MFSSETTINGS").LastOrDefault(); log.info("Loading global settings"); if (node != null) { bool tb; float tf; double td; if (bool.TryParse(node.GetValue("useRealisticMass"), out tb)) { useRealisticMass = tb; } if (float.TryParse(node.GetValue("tankMassMultiplier"), out tf)) { tankMassMultiplier = tf; } if (float.TryParse(node.GetValue("baseCostPV"), out tf)) { baseCostPV = tf; } if (float.TryParse(node.GetValue("partUtilizationDefault"), out tf)) { partUtilizationDefault = tf; } if (bool.TryParse(node.GetValue("partUtilizationTweakable"), out tb)) { partUtilizationTweakable = tb; } if (node.HasValue("unitLabel")) { unitLabel = node.GetValue("unitLabel"); } if (bool.TryParse(node.GetValue("basemassUseTotalVolume"), out tb)) { basemassUseTotalVolume = tb; } if (node.HasValue("radiatorMinTempMult")) { if (double.TryParse(node.GetValue("radiatorMinTempMult"), out td)) { radiatorMinTempMult = td; } } ConfigNode ignoreNode = node.GetNode("IgnoreFuelsForFill"); if (ignoreNode != null) { foreach (ConfigNode.Value v in ignoreNode.values) { ignoreFuelsForFill.Add(v.name); } } } foreach (ConfigNode defNode in GameDatabase.Instance.GetConfigNodes("TANK_DEFINITION")) { if (tankDefinitions.Contains(defNode.GetValue("name"))) { log.warn("Ignored duplicate definition of tank type " + defNode.GetValue("name")); } else { tankDefinitions.Add(new Tanks.TankDefinition(defNode)); } } }