Esempio n. 1
0
        // Map Selection
        Action GetLoadMapAction(ScreenGameMain mainMenu)
        {
            var engine = new MapEngine(Content);
            var maps   = engine.AvailableEntities(Content).OrderBy(e => e.DisplayName).ToImmutableList();


            Action loadMap = async() =>
            {
                _mousePressed       = true;
                Cursor.CurrentState = CursorState.Normal;

                var selectionScreen = await UpdateContext.Wait(Task.Factory.StartNew(() => new ScreenEntitySelection {
                    Items = maps
                }));

                await mainMenu.Navigation.PushAsync(selectionScreen);

                var map = await selectionScreen.SelectItemAsync();

                _guiVisible = false;

                GameParameters.SetNextMap(map.DisplayName);
                Exit(Result.LoadNext);
            };

            return(loadMap);
        }
Esempio n. 2
0
        Xamarin.Forms.Page CreateGUI()
        {
            var mainMenu = new ScreenGameMain();
            var entities = _scriptEntityFactory.AvailableEntities(Content).ToImmutableList();

            mainMenu.AddEntity_Page += () =>
            {
                Cursor.CurrentState = CursorState.Normal;
                return(CreateEntitySelectionGUI());
            };

            mainMenu.BuildMode_Clicked += () =>
            {
                Cursor.CurrentState = CursorState.Build;
            };

            mainMenu.PlayPause_Clicked += () =>
            {
                _isPaused = !_isPaused;
            };


            mainMenu.LoadMap_Clicked += () =>
            {
                var loadMap = GetLoadMapAction(mainMenu);

                loadMap();
            };

            // HACK 2
            _mapClick += () =>
            {
                var loadMap = GetLoadMapAction(mainMenu);

                loadMap();
            };

            // HACK
            if (!_sandbox)
            {
                _entityClick += () => mainMenu.AddEntity_Click(null, null);
            }

            return(new Xamarin.Forms.NavigationPage(mainMenu));
        }