示例#1
0
        void Serialize()
        {
            var data = new ScriptManagerData();

            data.LastScriptId = LastScriptId;

            data.Input.ActionmapEvents = Input.ActionmapEvents;

            data.Input.KeyEvents   = Input.KeyEventsInvocationList;
            data.Input.MouseEvents = Input.MouseEventsInvocationList;

            if (GameRules.Current != null)
            {
                data.GameRulesId = GameRules.Current.Id;
            }
            else
            {
                data.GameRulesId = -1;
            }

            AddScriptInstance(data, ScriptType.CryScriptInstance);

            using (var stream = File.Create(SerializedScriptsFile))
                Formatter.Serialize(stream, Scripts);
        }
示例#2
0
        private void Serialize()
        {
            var data = new ScriptManagerData
            {
                LastScriptId = this.LastScriptId,
                Input        =
                {
                    ActionmapEvents = Input.ActionmapEvents,
                    KeyEvents       = Input.KeyEventsInvocationList,
                    MouseEvents     = Input.MouseEventsInvocationList
                }
            };

            if (Logic.GameRules.GameRules.Current != null)
            {
                data.GameRulesId = Logic.GameRules.GameRules.Current.Id;
            }
            else
            {
                data.GameRulesId = -1;
            }

            data.ConsoleCommands  = ConsoleCommand.Commands;
            data.ConsoleVariables = CVar.CVars;

            data.ConsoleVariables.RemoveAll(cvar =>
            {
                if (cvar is ByRefCVar)
                {
                    Native.ConsoleInterop.UnregisterCVar(cvar.Name, true);

                    return(true);
                }

                return(false);
            });

            AddScriptInstance(data, ScriptType.CryScriptInstance);

            using (var stream = File.Create(SerializedScriptsFile))
                Formatter.Serialize(stream, Scripts);
        }