public static IConfigurationTemplate FromJsonProtoTemplate(IDictionary<string, dynamic> protoTemplate, EmulatorBridge bridge) { var booleanMapping = new BooleanMapping((string)protoTemplate["boolean"]["true"], (string)protoTemplate["boolean"]["false"]); var entries = new List<IConfigurationEntry>(); string fileName = protoTemplate["filename"]; string configName = protoTemplate["templateid"]; string stringTemplate = bridge.GetStringResource($"{configName}.template"); IDictionary<string, dynamic> defaults = new Dictionary<string, dynamic>(); foreach (var value in protoTemplate["keys"]) { entries.Add(new ConfigurationEntry((string)value.Value.description, (string)value.Name, (object)value.Value.defaultValue.Value)); } return new ConfigurationTemplate(stringTemplate, entries, booleanMapping, fileName, configName); }
public static IInputTemplate FromJsonProtoTemplate(IDictionary<string, dynamic> protoTemplate, EmulatorBridge bridge) { IList<string> templateKeys = protoTemplate["templatekeys"].ToObject<IList<string>>(); string nobind = protoTemplate["nobind"]; string name = protoTemplate["name"]; string template = bridge.GetStringResource($"{name}.template"); IDictionary<string, IGamepadMapping> gamepadMappings = new Dictionary<string, IGamepadMapping>(); IDictionary<string, IKeyboardMapping> keyboardMappings = new Dictionary<string, IKeyboardMapping>(); foreach(var gamepadMapping in protoTemplate["gamepad"]) { gamepadMappings.Add(gamepadMapping.Name, (IGamepadMapping)new GamepadMapping(gamepadMapping.Value.ToObject<IDictionary<string, string>>())); } foreach (var keyboardMapping in protoTemplate["keyboard"]) { keyboardMappings.Add(keyboardMapping.Name, (IKeyboardMapping)new KeyboardMapping(keyboardMapping.Value.ToObject<IDictionary<string, string>>())); } return new InputTemplate(name, template, templateKeys, nobind, gamepadMappings, keyboardMappings); }