{
public class AutomapMod : ModSystem
{
+ public const string _configFilename = @"automap.json";
+
private ICoreAPI API { get; set; }
private ICoreClientAPI ClientAPI { get; set; }
private ILogger Logger { get; set; }
this.ClientAPI = api as ICoreClientAPI;
this.Logger = Mod.Logger;
-
ClientAPI.Logger.VerboseDebug("Automap Present!");
- _localAutomap = new AutomapSystem(this.ClientAPI, this.Logger);
- _automapDialog = new AutomapGUIDialog(ClientAPI, _localAutomap);
+ PrepareClientsideConfig( );
+ _localAutomap = new AutomapSystem(this.ClientAPI, this.Logger, this.CachedConfiguration);
+ _automapDialog = new AutomapGUIDialog(ClientAPI, _localAutomap, this.CachedConfiguration);
ClientAPI.Input.RegisterHotKey(AutomapGUIDialog._automapControlPanelKey, "Automap control panel", GlKeys.M, HotkeyType.GUIOrOtherControls, shiftPressed: true);
ClientAPI.Input.SetHotKeyHandler(AutomapGUIDialog._automapControlPanelKey, ToggleAM_Dialog);
+
+ ClientAPI.Event.LeaveWorld += PersistParameterChange;
}
base.StartClientSide(api);
return true;
}
+
+ internal PersistedConfiguration CachedConfiguration {
+ get
+ {
+ return ( PersistedConfiguration )ClientAPI.ObjectCache[_configFilename];
+ }
+ set
+ {
+ ClientAPI.ObjectCache.Add(_configFilename, value);
+ }
+ }
+
+ private void PrepareClientsideConfig( )
+ {
+ PersistedConfiguration config = ClientAPI.LoadModConfig<PersistedConfiguration>(_configFilename);
+
+ if (config == null) {
+ //Regen default
+ Mod.Logger.Warning("Regenerating default config as it was missing / unparsable...");
+ ClientAPI.StoreModConfig<PersistedConfiguration>(new PersistedConfiguration(defaults: true ), _configFilename);
+ config = ClientAPI.LoadModConfig<PersistedConfiguration>(_configFilename);
+ }
+
+ this.CachedConfiguration = config;
+ }
+
+ internal void PersistParameterChange( )
+ {
+ //Store altered parameters
+
+ ClientAPI.StoreModConfig<PersistedConfiguration>(this.CachedConfiguration, _configFilename);
+ }
+
+
+
}
}