public void RestoreFromJSON(JSONNode commandsJSON) { if ((commandsJSON?.Count ?? 0) == 0) { return; } _commands.Clear(); foreach (JSONClass commandJSON in commandsJSON.AsArray) { ICustomCommand action; var commandType = commandJSON["__type"]; switch (commandType) { case DebugCommand.Type: action = new DebugCommand(); break; case DiscreteTriggerCommand.Type: action = new DiscreteTriggerCommand(_containingAtom, _prefabManager); break; default: SuperController.LogError($"Keybindings: Unknown command type {commandType}"); continue; } action.RestoreFromJSON(commandJSON); _commands.Add(action); } }
public ICustomCommand AddDiscreteTrigger() { var command = new DiscreteTriggerCommand(_containingAtom, _prefabManager); _commands.Add(command); onChange.Invoke(); return(command); }