Add generic ruleset config.

This commit is contained in:
2022-11-16 00:25:08 +08:00
parent 15e66d29c4
commit 852c93c6d0
3 changed files with 23 additions and 11 deletions

View File

@@ -1,7 +1,7 @@
using Newtonsoft.Json;
using System;
using System.IO;
using System.Text;
using System;
using UnityEngine;
using UnityEngine.SceneManagement;
@@ -10,6 +10,9 @@ namespace Cryville.Crtr.Config {
[SerializeField]
Transform m_content;
[SerializeField]
SettingsPanel m_genericConfigPanel;
[SerializeField]
InputConfigPanel m_inputConfigPanel;
@@ -43,6 +46,9 @@ namespace Cryville.Crtr.Config {
});
}
}
m_genericConfigPanel.Target = _rscfg.generic;
var proxy = new InputProxy(ruleset.Root, null);
proxy.LoadFrom(_rscfg.inputs);
m_inputConfigPanel.proxy = proxy;

View File

@@ -1,12 +1,18 @@
using System.Collections.Generic;
using Newtonsoft.Json;
using System.Collections.Generic;
namespace Cryville.Crtr.Config {
public class RulesetConfig {
public Dictionary<string, InputConfigEntry> inputs
= new Dictionary<string, InputConfigEntry>();
public Generic generic = new Generic();
public class Generic {
[JsonProperty("skin")]
public string Skin { get; set; }
}
public class InputConfigEntry {
public Dictionary<string, InputEntry> inputs
= new Dictionary<string, InputEntry>();
public class InputEntry {
public string handler;
public int type;
}
}
}

View File

@@ -37,7 +37,7 @@ namespace Cryville.Crtr {
readonly Dictionary<string, int> _use = new Dictionary<string, int>();
readonly Dictionary<string, List<string>> _rev = new Dictionary<string, List<string>>();
public event EventHandler<ProxyChangedEventArgs> ProxyChanged;
public void LoadFrom(Dictionary<string, InputConfigEntry> config) {
public void LoadFrom(Dictionary<string, RulesetConfig.InputEntry> config) {
foreach (var cfg in config) {
Set(new InputProxyEntry {
Target = cfg.Key,
@@ -48,10 +48,10 @@ namespace Cryville.Crtr {
});
}
}
public void SaveTo(Dictionary<string, InputConfigEntry> config) {
public void SaveTo(Dictionary<string, RulesetConfig.InputEntry> config) {
config.Clear();
foreach (var p in _tproxies) {
config.Add(p.Key, new InputConfigEntry {
config.Add(p.Key, new RulesetConfig.InputEntry {
handler = ReflectionHelper.GetNamespaceQualifiedName(p.Value.Source.Value.Handler.GetType()),
type = p.Value.Source.Value.Type
});