public bool Load() { bool b = false; try { if (File.Exists(fullPath)) { ConfigNode node = ConfigNode.Load(fullPath); ConfigNode unwrapped = node.GetNode(GetType().Name); ConfigNode.LoadObjectFromConfig(this, unwrapped); b = true; } else { PortraitStats.log("Settings file could not be found [{0}]", fullPath); b = false; } } catch (Exception e) { PortraitStats.log("Error while loading settings file from [{0}]\n{1}", fullPath, e); b = false; } return(b); }
public void SettingsApplied() { if (HighLogic.CurrentGame != null) { settings = HighLogic.CurrentGame.Parameters.CustomParams <StatsGameSettings>(); } if (settings == null) { return; } if (settings.UseAsDefault) { ShowAlways = settings.AlwaysShow; UseIcon = settings.UseIcon; ExtendedTooltips = settings.ExtendedTooltips; HoverHighlight = settings.HoverHighlight; TransferButton = settings.TransferButton; ReloadDelay = settings.ReloadDelay; if (Save()) { PortraitStats.log("Settings file saved"); } } }
private void Awake() { if (loaded) { Destroy(gameObject); } DontDestroyOnLoad(gameObject); loaded = true; instance = this; fullPath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), fileName).Replace("\\", "/"); GameEvents.OnGameSettingsApplied.Add(SettingsApplied); if (Load()) { PortraitStats.log("Settings file loaded"); } else { if (Save()) { PortraitStats.log("New Settings files generated at:\n{0}", fullPath); } } }
private ConfigNode AsConfigNode() { try { ConfigNode node = new ConfigNode(GetType().Name); node = ConfigNode.CreateConfigFromObject(this, node); return(node); } catch (Exception e) { PortraitStats.log("Failed to generate settings file node...\n{0}", e); return(new ConfigNode(GetType().Name)); } }
public bool Save() { bool b = false; try { ConfigNode node = AsConfigNode(); ConfigNode wrapper = new ConfigNode(GetType().Name); wrapper.AddNode(node); wrapper.Save(fullPath); b = true; } catch (Exception e) { PortraitStats.log("Error while saving settings file from [{0}]\n{1}", fullPath, e); b = false; } return(b); }
private void Start() { instance = this; CacheStrings(); GameEvents.onVesselWasModified.Add(vesselCheck); GameEvents.onVesselChange.Add(vesselChange); GameEvents.OnCameraChange.Add(cameraChange); GameEvents.onCrewTransferred.Add(crewTransfer); GameEvents.Contract.onContractsLoaded.Add(onContractsLoaded); GameEvents.Contract.onParameterChange.Add(onContractParamModified); GameEvents.Contract.onAccepted.Add(onContractChange); careerMode = HighLogic.CurrentGame.Mode == Game.Modes.CAREER; reload = true; if (!loaded) { loaded = true; ctiOk = CTIWrapper.initCTIWrapper() && CTIWrapper.CTI.Loaded; } StatsGameSettings settings = HighLogic.CurrentGame.Parameters.CustomParams <StatsGameSettings>(); showAlways = settings.AlwaysShow; useIcon = settings.UseIcon; extendedTooltips = settings.ExtendedTooltips; hoverHighlight = settings.HoverHighlight; transferButton = settings.TransferButton; if (useIcon && !ctiOk) { // fail gracefully if CTI missing or failed to load log("useIcon is true, but Community Trait Icons could not be found or failed to load! Turning icons off."); useIcon = false; } }