public void Write(BinaryWriter writer) { var binding = SRInput.ToBinding(action); binding.Write(writer.BaseStream); writer.Write(commandToRun); }
public static void Postfix(SRInput __instance) { foreach (var v in BindingRegistry.precreators) { v(__instance.actions); } }
public static void Pull(SavedProfile profile) { foreach (var mod in new HashSet <SRMod>(BindingRegistry.moddedActions.Values)) { var filename = Path.Combine(FileSystem.GetConfigPath(mod), KEYBIND_FILE_NAME); var modoptions = new ModOptionsV01(); var v = BindingRegistry.moddedActions.Where(x => x.Value == mod).Select(x => x.Key).ToList(); foreach (var action in v) { modoptions.bindings.bindings.Add(SRInput.ToBinding(action)); } using (var file = File.Open(filename, FileMode.OpenOrCreate)) { modoptions.Write(file); } } }
public static KeyBinding Read(BinaryReader reader) { var binding = new BindingV01(); binding.Load(reader.BaseStream); var action = new PlayerAction(binding.action, KeyBindManager.Actions); BindingRegistry.ephemeralActions.Add(action); if (int.TryParse(binding.action.Substring(PREFIX.Length), out var val) && val >= latestID) { latestID = val + 1; } SRInput.AddOrReplaceBinding(action, binding); var keybind = new KeyBinding() { action = action, commandToRun = reader.ReadString() }; return(keybind); }