public void Write(BinaryWriter writer)
            {
                var binding = SRInput.ToBinding(action);

                binding.Write(writer.BaseStream);
                writer.Write(commandToRun);
            }
Exemple #2
0
 public static void Postfix(SRInput __instance)
 {
     foreach (var v in BindingRegistry.precreators)
     {
         v(__instance.actions);
     }
 }
Exemple #3
0
 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);
            }