コード例 #1
0
ファイル: Quicksave.cs プロジェクト: dncep/Woofer
        public override void Input()
        {
            ButtonInput saveButton = Woofer.Controller.InputManager.ActiveInputMap.Quicksave;
            ButtonInput loadButton = Woofer.Controller.InputManager.ActiveInputMap.Quickload;

            if (saveButton.Consume())
            {
                SaveOperation save = new SaveOperation(Owner, TargetFile);
                save.AddConverter(new CollisionBoxConverter());
                save.AddConverter(new ColorConverter());
                save.AddConverter(new ListConverter <CollisionBox>());
                save.AddConverter(new ListConverter <Sound>());
                save.AddConverter(new ListConverter <Sprite>());
                save.AddConverter(new ListConverter <AnimatedSprite>());
                save.AddConverter(new EnumConverter <DrawMode>());
                save.AddConverter(new BoolMapConverter());

                save.Save();
                Owner.Events.InvokeEvent(new ShowTextEvent("Saved", null));
            }

            if (loadButton.Consume())
            {
                LoadOperation load = new LoadOperation(Woofer.Controller, TargetFile);
                load.AddConverter(new CollisionBoxConverter());
                load.AddConverter(new ColorConverter());
                load.AddConverter(new ListConverter <CollisionBox>());
                load.AddConverter(new ListConverter <Sound>());
                load.AddConverter(new ListConverter <Sprite>());
                load.AddConverter(new ListConverter <AnimatedSprite>());
                load.AddConverter(new EnumConverter <DrawMode>());
                load.AddConverter(new BoolMapConverter());

                Woofer.Controller.CommandFired(new InternalSceneChangeCommand(load.Load()));
                Woofer.Controller.ActiveScene.Events.InvokeEvent(new ShowTextEvent("Loaded", null));
                Woofer.Controller.Paused = false;
            }
        }