public void TestSceneSerializeDeserialize()
        {
            string dirname = Path.GetRandomFileName();

            try
            {
                MakerSquare.FileSystem.Manager.Initialize(dirname);
                var fsmanager = MakerSquare.FileSystem.Manager.Instance;
                SavedFilesManager savedFilesManager = new SavedFilesManager(fsmanager);
                var ram_entity = new Entity(new Position(12f, 14.3f));
                ram_entity.Name = "Potato!";
                var scene = new SavedScene();
                scene.entities.Add(ram_entity);
                savedFilesManager.SaveScene(scene, "rammy");
                savedFilesManager.LoadScene(out SavedScene file_scene, "rammy");
                Assert.IsTrue(file_scene.entities[0].Name == scene.entities[0].Name);
            }
            catch (MakerSquare.SavingSystem.CannotLoadFileException)
            {
            }
            catch (MakerSquare.SavingSystem.CannotSaveFileException)
            {
            }
            finally
            {
                CleanupDirectory(dirname);
            }
        }
Beispiel #2
0
        public static void CreateMenuScene(Game game)
        {
            var jouer_entity = new Entity(true);

            jouer_entity.Name        = "jouer";
            jouer_entity.Transform.x = 300;
            jouer_entity.Transform.y = 200;
            var jouer_cmp       = new Engine.System.UI.ImageButtonComponent(jouer_entity);
            var jouer_img_asset = new Engine.System.UI.ImageAsset();

            jouer_img_asset.ContentName = "bouton_jouer";
            jouer_cmp.onclick.action    = (entity, context) => { Embed.LoadScene("game_scene", Engine.Core.Game.Instance); };

            jouer_cmp.AddAsset(jouer_img_asset);
            jouer_entity.AddComponent(jouer_cmp);

            var quitter_entity = new Entity(true);

            quitter_entity.Name        = "quitter";
            quitter_entity.Transform.x = 288;
            quitter_entity.Transform.y = 275;
            var quitter_cmp       = new ImageButtonComponent(quitter_entity);
            var quitter_img_asset = new ImageAsset();

            quitter_img_asset.ContentName = "bouton_quitter";
            quitter_cmp.AddAsset(quitter_img_asset);
            jouer_cmp.onclick.contextRefs = null;
            quitter_cmp.onclick.action    = (entity, context) => { Game.Instance.Exit(); };
            quitter_entity.AddComponent(quitter_cmp);

            var text_entity = new Entity(true);

            text_entity.Name        = "text";
            text_entity.Transform.x = 230;
            text_entity.Transform.y = 100;
            var text_cmp = new UITextComponent(text_entity);

            text_cmp.Text     = "Makers² : le jeu démo !";
            text_cmp.Color    = new Vector4(0, 0, 0, 1);
            text_cmp.FontSize = 36;


            var font_asset = new FontAsset();

            font_asset.ContentName = "coolvetica";
            text_cmp.AddAsset(font_asset);
            text_entity.AddComponent(text_cmp);

            var save_manager = new SavedFilesManager(Manager.Instance);
            var PreSave      = new List <Entity> {
                jouer_entity, quitter_entity, text_entity
            };
            var scene = new SavedScene();

            scene.entities = PreSave;
            save_manager.SaveScene(scene, "menu_scene");
        }
Beispiel #3
0
        public static void CreateGameScene(Game game)
        {
            var bg_ent = new Entity(true);

            bg_ent.Transform.x = 0;
            bg_ent.Transform.y = 0;
            bg_ent.AddComponent(new SpriteComponent(bg_ent, "CloudBackgroundSmall", true));
            bg_ent.AddComponent(new AudioComponent(bg_ent, "NyanCat", false, false, true));

            Bat      bat      = new Bat();
            Ball     ball     = new Ball();
            Breakout breakout = new Breakout(1, 0, ball);

            /*    breakout.CreateBricks(200, 200, "Brick", 100);
             *  breakout.CreateBricks(200, 400, "Brick", 100);
             *  breakout.CreateBricks(200, 600, "Brick", 100);
             *  breakout.CreateBricks(200, 800, "Brick", 100);
             */

            var invisibleWallLeft  = new InvisibleWall(new Vector2(0, 0), new Vector2(5, 980));
            var invisibleWallRight = new InvisibleWall(new Vector2(640, 0), new Vector2(5, 980));
            var invisibleWallTop   = new InvisibleWall(new Vector2(0, 0), new Vector2(1240, 5));
            var invisibleWallDown  = new InvisibleWall(new Vector2(0, 480), new Vector2(1240, 5), true);


            var bricks    = BrickArenaBuilder.CreateNew().Init().Build();
            var santa_ent = SantaBuilder.CreateNew().Init(game).Build();

            var camera_ent = new Entity(true);

            /*    var cameraInput = new InputComponent(camera_ent);
             *  ActionDelegate cam_up = (entity, dict) => { CameraManager.MoveCameraY(-1); };
             *  ActionDelegate cam_down = (entity, dict) => { CameraManager.MoveCameraY(1); };
             *  ActionDelegate cam_right = (entity, dict) => { CameraManager.MoveCameraX(1); };
             *  ActionDelegate cam_left = (entity, dict) => { CameraManager.MoveCameraX(-1); };
             *
             *  cameraInput.AddAction("cam_up", OnKey.DOWN, Key.Z, null, cam_up);
             *  cameraInput.AddAction("cam_down", OnKey.DOWN, Key.S, null, cam_down);
             *  cameraInput.AddAction("cam_right", OnKey.DOWN, Key.D, null, cam_right);
             *  cameraInput.AddAction("cam_left", OnKey.DOWN, Key.Q, null, cam_left);
             *  camera_ent.AddComponent(cameraInput);*/

            var save_manager = new SavedFilesManager(Manager.Instance);
            var PreSave      = new List <Entity> {
                bg_ent,
                camera_ent, invisibleWallTop, invisibleWallDown, invisibleWallLeft, invisibleWallRight, breakout, ball, bat
            };

            //  PreSave.AddRange(bricks);
            PreSave.AddRange(breakout.wall);
            var scene = new SavedScene();

            scene.entities = PreSave;
            save_manager.SaveScene(scene, "game_scene");
        }
        public void TestSaveSysDirectoryFree()
        {
            string dirname = Path.GetRandomFileName();

            try
            {
                MakerSquare.FileSystem.Manager.Initialize(dirname);
                var fsmanager = MakerSquare.FileSystem.Manager.Instance;
                SavedFilesManager savedFilesManager = new SavedFilesManager(fsmanager);
                Assert.IsTrue(CheckProjectHierarchy(dirname));
            }
            finally
            {
                CleanupDirectory(dirname);
            }
        }
Beispiel #5
0
        public static void LoadScene(string scene_name, Engine.Core.Game game, bool additively = false)
        {
            var save_manager = new SavedFilesManager(MakerSquare.FileSystem.Manager.Instance);
            var scene        = new SavedScene();

            save_manager.LoadScene(out scene, scene_name);

            if (!additively)
            {
                EntityManager.UnloadEntities();
            }

            EntityManager.AddListEntityInList(scene.entities);
            if (game.IsActive)
            {
                EntityManager.PostContentLoad();
            }
        }
        public void TestSaveSysDirectoryNoRights()
        {
            string dirname = Path.Combine("C:", Path.GetRandomFileName());

            try
            {
                MakerSquare.FileSystem.Manager.Initialize(dirname);
                var fsmanager = MakerSquare.FileSystem.Manager.Instance;
                SavedFilesManager savedFilesManager = new SavedFilesManager(fsmanager);
                Assert.IsTrue(CheckProjectHierarchy(dirname));
            }
            catch (MakerSquare.FileSystem.CannotCreateProjectDirException)
            {
            }
            finally
            {
                CleanupDirectory(dirname);
            }
        }
        public void TestSaveSysDirectoryExistsFull()
        {
            string dirname = Path.GetRandomFileName();

            try
            {
                Directory.CreateDirectory(dirname);
                Directory.CreateDirectory(Path.Combine(dirname, "Prefabs"));
                Directory.CreateDirectory(Path.Combine(dirname, "Scenes"));
                MakerSquare.FileSystem.Manager.Initialize(dirname);
                var fsmanager = MakerSquare.FileSystem.Manager.Instance;
                SavedFilesManager savedFilesManager = new SavedFilesManager(fsmanager);
                Assert.IsTrue(CheckProjectHierarchy(dirname));
            }
            catch (MakerSquare.FileSystem.CannotCreateProjectDirException)
            {
            }
            finally
            {
                CleanupDirectory(dirname);
            }
        }