using Godot; using System.Collections.Generic; namespace Rokojori { [Tool] [GlobalClass] public partial class LoadAppSettings:Action { [Export] public string savePath = ""; [Export] public App app; [Export] public bool writeDefaults = true; protected override void _OnTrigger() { this.LogInfo( "Loading App Settings" ); var data = GDFilesSync.LoadJSON>( savePath ); this.LogInfo( "App Settings", data ); foreach ( var vk in data ) { app.settings.ApplySetting( app, vk.Key, vk.Value ); } // var settings = // this.LogInfo( JSON.StringifyObject( data ) ); // var resolvedApp = app ?? Unique.Get(); // var data = resolvedApp.GetAppSettingsData(); // var saveMap = new Dictionary(); // foreach ( var kv in data ){ saveMap[ kv.Key ] = kv.Value; } // if ( writeDefaults ) // { // app.settings.categories.ForEach( // ( c )=> // { // c.settings.ForEach( // ( appSetting )=> // { // if ( saveMap.ContainsKey( appSetting.id ) ) // { // return; // } // saveMap[ appSetting.id ] = appSetting.GetDefaultValue(); // } // ); // } // ); // } } } }