private void OnCreateClicked(MyGuiControlButton sender)
        {
            //MyGuiSandbox.AddScreen(new MyGuiScreenCreateOrEditFaction(ref m_userFaction));
            var screen = (MyGuiScreenCreateOrEditFaction)MyGuiSandbox.CreateScreen(MyPerGameSettings.GUI.CreateFactionScreen);

            screen.Init(ref m_userFaction);
            MyGuiSandbox.AddScreen(screen);
        }
Ejemplo n.º 2
0
 public override void Activate()
 {
     MyScreenManager.CloseScreen(typeof(MyGuiScreenControlMenu));
     MyGuiSandbox.AddScreen
     (
         MyGuiScreenGamePlay.ActiveGameplayScreen = MyGuiSandbox.CreateScreen(MyPerGameSettings.GUI.ToolbarConfigScreen, 0, m_entity as MyShipController)
     );
 }
Ejemplo n.º 3
0
        static MyTimerBlock()
        {
            m_openedToolbars = new List <MyToolbar>();

            var silent = new MyTerminalControlCheckbox <MyTimerBlock>("Silent", MySpaceTexts.BlockPropertyTitle_Silent, MySpaceTexts.ToolTipTimerBlock_Silent);

            silent.Getter = (x) => x.Silent;
            silent.Setter = (x, v) => x.Silent = v;
            silent.EnableAction();
            MyTerminalControlFactory.AddControl(silent);

            var slider = new MyTerminalControlSlider <MyTimerBlock>("TriggerDelay", MySpaceTexts.TerminalControlPanel_TimerDelay, MySpaceTexts.TerminalControlPanel_TimerDelay);

            slider.SetLogLimits(1, 60 * 60);
            slider.DefaultValue = 10;
            slider.Enabled      = (x) => !x.IsCountingDown;
            slider.Getter       = (x) => x.TriggerDelay;
            slider.Setter       = (x, v) => x.m_timerSync.Value = ((int)(Math.Round(v, 1) * 1000));
            slider.Writer       = (x, sb) => MyValueFormatter.AppendTimeExact(Math.Max(x.m_countdownMsStart, 1000) / 1000, sb);
            slider.EnableActions();
            MyTerminalControlFactory.AddControl(slider);

            var toolbarButton = new MyTerminalControlButton <MyTimerBlock>("OpenToolbar", MySpaceTexts.BlockPropertyTitle_TimerToolbarOpen, MySpaceTexts.BlockPropertyTitle_TimerToolbarOpen,
                                                                           delegate(MyTimerBlock self)
            {
                m_openedToolbars.Add(self.Toolbar);
                if (MyGuiScreenCubeBuilder.Static == null)
                {
                    m_shouldSetOtherToolbars          = true;
                    MyToolbarComponent.CurrentToolbar = self.Toolbar;
                    MyGuiScreenBase screen            = MyGuiSandbox.CreateScreen(MyPerGameSettings.GUI.ToolbarConfigScreen, 0, self);
                    MyToolbarComponent.AutoUpdate     = false;
                    screen.Closed += (source) =>
                    {
                        MyToolbarComponent.AutoUpdate = true;
                        m_openedToolbars.Clear();
                    };
                    MyGuiSandbox.AddScreen(screen);
                }
            });

            MyTerminalControlFactory.AddControl(toolbarButton);

            var triggerButton = new MyTerminalControlButton <MyTimerBlock>("TriggerNow", MySpaceTexts.BlockPropertyTitle_TimerTrigger, MySpaceTexts.BlockPropertyTitle_TimerTrigger, (x) => x.OnTrigger());

            triggerButton.EnableAction();
            MyTerminalControlFactory.AddControl(triggerButton);

            var startButton = new MyTerminalControlButton <MyTimerBlock>("Start", MySpaceTexts.BlockPropertyTitle_TimerStart, MySpaceTexts.BlockPropertyTitle_TimerStart, (x) => x.StartBtn());

            startButton.EnableAction();
            MyTerminalControlFactory.AddControl(startButton);

            var stopButton = new MyTerminalControlButton <MyTimerBlock>("Stop", MySpaceTexts.BlockPropertyTitle_TimerStop, MySpaceTexts.BlockPropertyTitle_TimerStop, (x) => x.StopBtn());

            stopButton.EnableAction();
            MyTerminalControlFactory.AddControl(stopButton);
        }
        public override void HandleInput(bool receivedFocusInThisUpdate)
        {
            base.HandleInput(receivedFocusInThisUpdate);

            if (MyInput.Static.IsNewKeyPressed(MyKeys.Escape))
            {
                MyGuiAudio.PlaySound(MyGuiSounds.HudMouseClick);
                MyGuiSandbox.AddScreen(MyGuiSandbox.CreateScreen(MyPerGameSettings.GUI.MainMenu));
            }
        }
Ejemplo n.º 5
0
        public static void StartLoading(Action loadingAction)
        {
            var newGameplayScreen = new MyGuiScreenGamePlay();

            newGameplayScreen.OnLoadingAction += loadingAction;

            var loadScreen = new MyGuiScreenLoading(newGameplayScreen, MyGuiScreenGamePlay.Static);

            loadScreen.OnScreenLoadingFinished += delegate
            {
                MyModAPIHelper.OnSessionLoaded();
                MyGuiSandbox.AddScreen(MyGuiSandbox.CreateScreen(MyPerGameSettings.GUI.HUDScreen));
            };
            MyGuiSandbox.AddScreen(loadScreen);
        }
Ejemplo n.º 6
0
        protected override void CreateTerminalControls()
        {
            if (MyTerminalControlFactory.AreControlsCreated <MyButtonPanel>())
            {
                return;
            }
            base.CreateTerminalControls();
            var checkAccess = new MyTerminalControlCheckbox <MyButtonPanel>("AnyoneCanUse", MySpaceTexts.BlockPropertyText_AnyoneCanUse, MySpaceTexts.BlockPropertyDescription_AnyoneCanUse);

            checkAccess.Getter = (x) => x.AnyoneCanUse;
            checkAccess.Setter = (x, v) => x.AnyoneCanUse = v;
            checkAccess.EnableAction();
            MyTerminalControlFactory.AddControl(checkAccess);

            var toolbarButton = new MyTerminalControlButton <MyButtonPanel>("Open Toolbar", MySpaceTexts.BlockPropertyTitle_SensorToolbarOpen, MySpaceTexts.BlockPropertyDescription_SensorToolbarOpen,
                                                                            delegate(MyButtonPanel self)
            {
                m_openedToolbars.Add(self.Toolbar);
                if (MyGuiScreenCubeBuilder.Static == null)
                {
                    m_shouldSetOtherToolbars          = true;
                    MyToolbarComponent.CurrentToolbar = self.Toolbar;
                    MyGuiScreenBase screen            = MyGuiSandbox.CreateScreen(MyPerGameSettings.GUI.ToolbarConfigScreen, 0, self);
                    MyToolbarComponent.AutoUpdate     = false;
                    screen.Closed += (source) =>
                    {
                        MyToolbarComponent.AutoUpdate = true;
                        m_openedToolbars.Clear();
                    };
                    MyGuiSandbox.AddScreen(screen);
                }
            });

            MyTerminalControlFactory.AddControl(toolbarButton);

            var buttonsList = new MyTerminalControlListbox <MyButtonPanel>("ButtonText", MySpaceTexts.BlockPropertyText_ButtonList, MySpaceTexts.Blank);

            buttonsList.ListContent  = (x, list1, list2) => x.FillListContent(list1, list2);
            buttonsList.ItemSelected = (x, y) => x.SelectButtonToName(y);
            MyTerminalControlFactory.AddControl(buttonsList);

            var customButtonName = new MyTerminalControlTextbox <MyButtonPanel>("ButtonName", MySpaceTexts.BlockPropertyText_ButtonName, MySpaceTexts.Blank);

            customButtonName.Getter = (x) => x.GetButtonName();
            customButtonName.Setter = (x, v) => x.SetCustomButtonName(v);
            customButtonName.SupportsMultipleBlocks = false;
            MyTerminalControlFactory.AddControl(customButtonName);
        }
Ejemplo n.º 7
0
        public static void StartLoading(Action loadingAction, string customLoadingBackground = null, string customLoadingtext = null)
        {
            MyAnalyticsHelper.LoadingStarted();
            var newGameplayScreen = new MyGuiScreenGamePlay();

            newGameplayScreen.OnLoadingAction += loadingAction;

            var loadScreen = new MyGuiScreenLoading(newGameplayScreen, MyGuiScreenGamePlay.Static, customLoadingBackground, customLoadingtext);

            loadScreen.OnScreenLoadingFinished += delegate
            {
                MyModAPIHelper.OnSessionLoaded();
                MyGuiSandbox.AddScreen(MyGuiSandbox.CreateScreen(MyPerGameSettings.GUI.HUDScreen));
            };
            MyGuiSandbox.AddScreen(loadScreen);
        }
Ejemplo n.º 8
0
        public override void HandleInput(bool receivedFocusInThisUpdate)
        {
            if (MyInput.Static.IsNewGameControlPressed(MyControlsSpace.HELP_SCREEN))
            {
                MyGuiSandbox.AddScreen(MyGuiSandbox.CreateScreen(MyPerGameSettings.GUI.HelpScreen));
            }

            base.HandleInput(receivedFocusInThisUpdate);

            if (MyInput.Static.ENABLE_DEVELOPER_KEYS)
            {
                if (MyInput.Static.IsNewKeyPressed(MyKeys.Multiply) && MyInput.Static.IsAnyShiftKeyPressed())
                {
                    GC.Collect();
                }
                if (MyInput.Static.IsNewKeyPressed(MyKeys.M))
                {
                    RecreateControls(false);
                }
            }

            /*
             * if (MyGuiScreenGamePlay.Static == null || MyGuiScreenGamePlay.Static.GetGameType() == MyGuiScreenGamePlayType.MAIN_MENU)
             * {
             * if (input.IsNewKeyPress(Keys.Escape))
             * {
             * MyAudio.Static.AddCue2D(MySoundCuesEnum.HudMouseClick);
             * OnExitToWindowsClick(null);
             * }
             * }
             */
            //if (input.IsNewKeyPress(Keys.Enter))
            //{
            //    MyGuiSandbox.AddScreen(new MyGuiScreenLoading(Vector2.Zero, null, null, null, new MyGuiScreenGamePlay(Vector2.Zero, null, null, null, false), MyGuiScreenGamePlay.Static));
            //    CloseScreen();
            //}

            //if (input.IsNewKeyPress(Keys.Escape))
            //{
            //    CloseScreen();
            //}

            //if (input.IsNewKeyPress(VRageMath.Input.Keys.P))
            //{
            //    MySandboxGame.Static.UnloadContent();
            //}
        }
Ejemplo n.º 9
0
        protected override void CreateTerminalControls()
        {
            if (MyTerminalControlFactory.AreControlsCreated <MyAirVent>())
            {
                return;
            }
            base.CreateTerminalControls();
            var isDepressurizing = new MyTerminalControlOnOffSwitch <MyAirVent>("Depressurize", MySpaceTexts.BlockPropertyTitle_Depressurize, MySpaceTexts.BlockPropertyDescription_Depressurize);

            isDepressurizing.Getter = (x) => x.IsDepressurizing;
            isDepressurizing.Setter = (x, v) => { x.IsDepressurizing = v; x.UpdateEmissivity(); };
            isDepressurizing.EnableToggleAction();
            isDepressurizing.EnableOnOffActions();
            MyTerminalControlFactory.AddControl(isDepressurizing);

            var toolbarButton = new MyTerminalControlButton <MyAirVent>("Open Toolbar", MySpaceTexts.BlockPropertyTitle_SensorToolbarOpen, MySpaceTexts.BlockPropertyDescription_SensorToolbarOpen,
                                                                        delegate(MyAirVent self)
            {
                if (self.m_onFullAction != null)
                {
                    self.m_actionToolbar.SetItemAtIndex(0, self.m_onFullAction);
                }
                if (self.m_onEmptyAction != null)
                {
                    self.m_actionToolbar.SetItemAtIndex(1, self.m_onEmptyAction);
                }

                self.m_actionToolbar.ItemChanged += self.Toolbar_ItemChanged;
                if (MyGuiScreenCubeBuilder.Static == null)
                {
                    MyToolbarComponent.CurrentToolbar = self.m_actionToolbar;
                    MyGuiScreenBase screen            = MyGuiSandbox.CreateScreen(MyPerGameSettings.GUI.ToolbarConfigScreen, 0, self);
                    MyToolbarComponent.AutoUpdate     = false;

                    screen.Closed += (source) =>
                    {
                        MyToolbarComponent.AutoUpdate     = true;
                        self.m_actionToolbar.ItemChanged -= self.Toolbar_ItemChanged;
                        self.m_actionToolbar.Clear();
                    };
                    MyGuiSandbox.AddScreen(screen);
                }
            });

            toolbarButton.SupportsMultipleBlocks = false;
            MyTerminalControlFactory.AddControl(toolbarButton);
        }
Ejemplo n.º 10
0
        public static void OnJoinBattle(MyGuiScreenProgress progress, Result joinResult, LobbyEnterInfo enterInfo, MyMultiplayerBase multiplayer)
        {
            MyLog.Default.WriteLine(String.Format("Battle lobby join response: {0}, enter state: {1}", joinResult.ToString(), enterInfo.EnterState));

            bool battleCanBeJoined = multiplayer != null && multiplayer.BattleCanBeJoined;

            if (joinResult == Result.OK && enterInfo.EnterState == LobbyEnterResponseEnum.Success && battleCanBeJoined && multiplayer.GetOwner() != MySteam.UserId)
            {
                // Create session with empty world
                Debug.Assert(MySession.Static == null);

                MySession.CreateWithEmptyWorld(multiplayer);
                MySession.Static.Settings.Battle = true;

                progress.CloseScreen();

                MyLog.Default.WriteLine("Battle lobby joined");

                if (MyPerGameSettings.GUI.BattleLobbyClientScreen != null)
                {
                    MyGuiSandbox.AddScreen(MyGuiSandbox.CreateScreen(MyPerGameSettings.GUI.BattleLobbyClientScreen));
                }
                else
                {
                    Debug.Fail("No battle lobby client screen");
                }
            }
            else
            {
                string status = "ServerHasLeft";
                if (joinResult != Result.OK)
                {
                    status = joinResult.ToString();
                }
                else if (enterInfo.EnterState != LobbyEnterResponseEnum.Success)
                {
                    status = enterInfo.EnterState.ToString();
                }
                else if (!battleCanBeJoined)
                {
                    status = "Started battle cannot be joined";
                }

                OnJoinBattleFailed(progress, multiplayer, status);
            }
        }
Ejemplo n.º 11
0
 private void OnClickNewGame(MyGuiControlButton sender)
 {
     if (MySandboxGame.Config.EnableNewNewGameScreen)
     {
         RunWithTutorialCheck(delegate
         {
             MyGuiSandbox.AddScreen(MyGuiSandbox.CreateScreen <MyGuiScreenSimpleNewGame>(Array.Empty <object>()));
         });
         return;
     }
     RunWithTutorialCheck(delegate
     {
         MyGuiSandbox.AddScreen(MyGuiSandbox.CreateScreen <MyGuiScreenNewGame>(new object[3] {
             true, true, true
         }));
     });
 }
Ejemplo n.º 12
0
        public override void RecreateControls(bool constructor)
        {
            base.RecreateControls(constructor);
            _elementGroup = new MyGuiControlElementGroup();
            _elementGroup.HighlightChanged += ElementGroupHighlightChanged;
            AddCaption(MyCommonTexts.ScreenCaptionOptions, null, null);
            var value = new Vector2(0f, -m_size.Value.Y / 2f + 0.146f);
            var num   = 0;
            var myGuiControlButton = new MyGuiControlButton(value + num ++ *MyGuiConstants.MENU_BUTTONS_POSITION_DELTA, MyGuiControlButtonStyleEnum.Default, null, null, MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER, null, MyTexts.Get(MyCommonTexts.ScreenOptionsButtonGame), 0.8f, MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER, MyGuiControlHighlightType.WHEN_ACTIVE, delegate(MyGuiControlButton sender)
            {
                MyGuiSandbox.AddScreen(MyGuiSandbox.CreateScreen <TorchSettingsScreen>());
            }, GuiSounds.MouseClick, 1f, null);

            Controls.Add(myGuiControlButton);
            _elementGroup.Add(myGuiControlButton);
            CloseButtonEnabled = true;
        }
Ejemplo n.º 13
0
        public static void OnJoinScenario(MyGuiScreenProgress progress, Result joinResult, LobbyEnterInfo enterInfo, MyMultiplayerBase multiplayer)
        {
            MyLog.Default.WriteLine(String.Format("Lobby join response: {0}, enter state: {1}", joinResult.ToString(), enterInfo.EnterState));

            if (joinResult == Result.OK && enterInfo.EnterState == LobbyEnterResponseEnum.Success && multiplayer.GetOwner() != Sync.MyId)
            {
                // Create session with empty world
                if (MySession.Static != null)
                {
                    MySession.Static.Unload();
                    MySession.Static = null;
                }

                MySession.CreateWithEmptyWorld(multiplayer);

                progress.CloseScreen();

                MyScreenManager.CloseAllScreensNowExcept(null);
                MyLog.Default.WriteLine("Scenario lobby joined");

                if (MyPerGameSettings.GUI.ScenarioLobbyClientScreen != null)
                {
                    MyGuiSandbox.AddScreen(MyGuiSandbox.CreateScreen(MyPerGameSettings.GUI.ScenarioLobbyClientScreen));
                }
                else
                {
                    Debug.Fail("No scenario lobby client screen");
                }
            }
            else
            {
                string status = "ServerHasLeft";
                if (joinResult != Result.OK)
                {
                    status = joinResult.ToString();
                }
                else if (enterInfo.EnterState != LobbyEnterResponseEnum.Success)
                {
                    status = enterInfo.EnterState.ToString();
                }

                OnJoinBattleFailed(progress, multiplayer, status);
            }
        }
Ejemplo n.º 14
0
        void OnEditClick(MyGuiControlButton sender)
        {
            var row = m_sessionsTable.SelectedRow;

            if (row == null)
            {
                return;
            }
            var save = FindSave(row);

            if (save != null)
            {
                ulong dummySizeInBytes;
                var   checkpoint = MyLocalCache.LoadCheckpoint(save.Item1, out dummySizeInBytes);
                MySession.FixIncorrectSettings(checkpoint.Settings);
                var worldSettingsScreen = MyGuiSandbox.CreateScreen(MyPerGameSettings.GUI.EditWorldSettingsScreen, checkpoint, save.Item1);
                MyGuiSandbox.AddScreen(worldSettingsScreen);
                worldSettingsScreen.Closed += (source) => { m_state = StateEnum.ListNeedsReload; };
            }
        }
Ejemplo n.º 15
0
        public override void Use(UseActionEnum actionEnum, IMyEntity entity)
        {
            var user = entity as MyCharacter;

            switch (actionEnum)
            {
            case UseActionEnum.Manipulate:
                if (!m_buttonPanel.IsWorking)
                {
                    return;
                }
                if (!m_buttonPanel.AnyoneCanUse && !m_buttonPanel.HasLocalPlayerAccess())
                {
                    MyHud.Notifications.Add(MyNotificationSingletons.AccessDenied);
                    return;
                }
                m_buttonPanel.Toolbar.UpdateItem(m_index);
                m_buttonPanel.Toolbar.ActivateItemAtIndex(m_index);
                m_buttonPanel.PressButton(m_index);
                break;

            case UseActionEnum.OpenTerminal:
                if (!m_buttonPanel.HasLocalPlayerAccess())
                {
                    return;
                }
                MyToolbarComponent.CurrentToolbar = m_buttonPanel.Toolbar;
                MyGuiScreenBase screen = MyGuiScreenCubeBuilder.Static;
                if (screen == null)
                {
                    screen = MyGuiSandbox.CreateScreen(MyPerGameSettings.GUI.ToolbarConfigScreen, 0, m_buttonPanel);
                }
                MyToolbarComponent.AutoUpdate = false;
                screen.Closed += (source) => MyToolbarComponent.AutoUpdate = true;
                MyGuiSandbox.AddScreen(screen);
                break;

            default:
                break;
            }
        }
Ejemplo n.º 16
0
        public override void HandleInput(bool receivedFocusInThisUpdate)
        {
            if (MyInput.Static.IsNewGameControlPressed(MyControlsSpace.HELP_SCREEN))
            {
                MyGuiSandbox.AddScreen(MyGuiSandbox.CreateScreen(MyPerGameSettings.GUI.HelpScreen));
            }

            base.HandleInput(receivedFocusInThisUpdate);

            if (MyInput.Static.ENABLE_DEVELOPER_KEYS)
            {
                if (MyInput.Static.IsNewKeyPressed(MyKeys.Multiply) && MyInput.Static.IsAnyShiftKeyPressed())
                {
                    GC.Collect();
                }
                if (MyInput.Static.IsNewKeyPressed(MyKeys.M))
                {
                    RecreateControls(false);
                }
            }
        }
Ejemplo n.º 17
0
        void OnEditClick(MyGuiControlButton sender)
        {
            var row = m_saveBrowser.SelectedRow;

            if (row == null)
            {
                return;
            }
            var save = m_saveBrowser.GetSave(row);

            if (save != null)
            {
                ulong dummySizeInBytes;
                var   checkpoint = MyLocalCache.LoadCheckpoint(save.Item1, out dummySizeInBytes);
                MySession.FixIncorrectSettings(checkpoint.Settings);
                var worldSettingsScreen = MyGuiSandbox.CreateScreen(MyPerGameSettings.GUI.EditWorldSettingsScreen, checkpoint, save.Item1);
                worldSettingsScreen.Closed += source => m_saveBrowser.ForceRefresh();

                MyGuiSandbox.AddScreen(worldSettingsScreen);
            }
        }
Ejemplo n.º 18
0
 public override void HandleInput(bool receivedFocusInThisUpdate)
 {
     if (MyInput.Static.IsNewGameControlPressed(MyControlsSpace.HELP_SCREEN) || MyControllerHelper.IsControl(MySpaceBindingCreator.CX_GUI, MyControlsGUI.BUTTON_Y))
     {
         if (MyInput.Static.IsAnyShiftKeyPressed() && MyPerGameSettings.GUI.PerformanceWarningScreen != null)
         {
             MyGuiAudio.PlaySound(MyGuiSounds.HudMouseClick);
             MyGuiSandbox.AddScreen(MyGuiSandbox.CreateScreen(MyPerGameSettings.GUI.PerformanceWarningScreen));
         }
         else
         {
             MyGuiAudio.PlaySound(MyGuiSounds.HudMouseClick);
             MyGuiSandbox.AddScreen(MyGuiSandbox.CreateScreen(MyPerGameSettings.GUI.HelpScreen));
         }
     }
     if (MyControllerHelper.IsControl(MyControllerHelper.CX_BASE, MyControlsSpace.WARNING_SCREEN) && MyPerGameSettings.GUI.PerformanceWarningScreen != null)
     {
         MyGuiAudio.PlaySound(MyGuiSounds.HudMouseClick);
         MyGuiSandbox.AddScreen(MyGuiSandbox.CreateScreen(MyPerGameSettings.GUI.PerformanceWarningScreen));
     }
     base.HandleInput(receivedFocusInThisUpdate);
 }
Ejemplo n.º 19
0
        public void OnBattleClick(MyGuiControlButton sender)
        {
            if (MySteam.IsOnline)
            {
                if (MyFakes.ENABLE_TUTORIAL_PROMPT && MySandboxGame.Config.NeedShowBattleTutorialQuestion)
                {
                    MyGuiSandbox.AddScreen(MyGuiSandbox.CreateMessageBox(buttonType : MyMessageBoxButtonsType.YES_NO,
                                                                         messageText : MyTexts.Get(MySpaceTexts.MessageBoxTextTutorialQuestion),
                                                                         messageCaption : MyTexts.Get(MyCommonTexts.MessageBoxCaptionVideoTutorial),
                                                                         callback : delegate(MyGuiScreenMessageBox.ResultEnum val)
                    {
                        if (val == MyGuiScreenMessageBox.ResultEnum.YES)
                        {
                            MyGuiSandbox.OpenUrlWithFallback(MySteamConstants.URL_GUIDE_BATTLE, "Steam Guide");
                        }
                        else
                        {
                            MyGuiSandbox.AddScreen(MyGuiSandbox.CreateScreen(MyPerGameSettings.GUI.BattleScreen));
                        }
                    }));

                    MySandboxGame.Config.NeedShowBattleTutorialQuestion = false;
                    MySandboxGame.Config.Save();
                }
                else
                {
                    MyGuiSandbox.AddScreen(MyGuiSandbox.CreateScreen(MyPerGameSettings.GUI.BattleScreen));
                }
            }
            else
            {
                MyGuiSandbox.AddScreen(MyGuiSandbox.CreateMessageBox(
                                           buttonType: MyMessageBoxButtonsType.OK,
                                           messageCaption: MyTexts.Get(MyCommonTexts.MessageBoxCaptionError),
                                           messageText: MyTexts.Get(MyCommonTexts.SteamIsOfflinePleaseRestart)
                                           ));
            }
        }
Ejemplo n.º 20
0
 private void OnClickInventory(MyGuiControlButton obj)
 {
     if (MyGameService.IsActive)
     {
         if (MyGameService.Service.GetInstallStatus(out var _))
         {
             if (MySession.Static == null)
             {
                 MyGuiScreenLoadInventory inventory = MyGuiSandbox.CreateScreen <MyGuiScreenLoadInventory>(Array.Empty <object>());
                 MyGuiScreenLoading       screen    = new MyGuiScreenLoading(inventory, null);
                 MyGuiScreenLoadInventory myGuiScreenLoadInventory = inventory;
                 myGuiScreenLoadInventory.OnLoadingAction = (Action)Delegate.Combine(myGuiScreenLoadInventory.OnLoadingAction, (Action) delegate
                 {
                     MySessionLoader.LoadInventoryScene();
                     MySandboxGame.IsUpdateReady = true;
                     inventory.Initialize(inGame: false, null);
                 });
                 MyGuiSandbox.AddScreen(screen);
             }
             else
             {
                 MyGuiSandbox.AddScreen(MyGuiSandbox.CreateScreen <MyGuiScreenLoadInventory>(new object[2] {
                     false, null
                 }));
             }
         }
         else
         {
             MyGuiSandbox.AddScreen(MyGuiSandbox.CreateMessageBox(MyMessageBoxStyleEnum.Error, MyMessageBoxButtonsType.OK, messageCaption: MyTexts.Get(MyCommonTexts.MessageBoxCaptionInfo), messageText: MyTexts.Get(MyCommonTexts.InventoryScreen_InstallInProgress)));
         }
     }
     else
     {
         MyGuiSandbox.AddScreen(MyGuiSandbox.CreateMessageBox(MyMessageBoxStyleEnum.Error, MyMessageBoxButtonsType.OK, messageCaption: MyTexts.Get(MyCommonTexts.MessageBoxCaptionError), messageText: MyTexts.Get(MyCommonTexts.SteamIsOfflinePleaseRestart)));
     }
 }
Ejemplo n.º 21
0
 public void OnTutorialClick(MyGuiControlButton sender)
 {
     MyAnalyticsHelper.ReportTutorialScreen("TutorialsButtonClicked");
     MyGuiSandbox.AddScreen(MyGuiSandbox.CreateScreen(MyPerGameSettings.GUI.TutorialScreen));
 }
Ejemplo n.º 22
0
 public void OnScenarioGameClick(MyGuiControlButton sender)
 {
     MyGuiSandbox.AddScreen(MyGuiSandbox.CreateScreen(MyPerGameSettings.GUI.ScenarioScreen));
 }
Ejemplo n.º 23
0
 public void OnCustomGameClick(MyGuiControlButton sender)
 {
     MyGuiSandbox.AddScreen(MyGuiSandbox.CreateScreen(MyPerGameSettings.GUI.CustomWorldScreen));
 }
Ejemplo n.º 24
0
 private void OnClickHelp(MyGuiControlButton sender)
 {
     MyGuiSandbox.AddScreen(MyGuiSandbox.CreateScreen <MyGuiScreenHelpSpace>());
 }
Ejemplo n.º 25
0
 private void OnClickOptions(MyGuiControlButton sender)
 {
     MyGuiSandbox.AddScreen(MyGuiSandbox.CreateScreen <MyGuiScreenOptionsSpace>());
 }
Ejemplo n.º 26
0
 private void OnClickPlayers(MyGuiControlButton obj)
 {
     MyGuiSandbox.AddScreen(MyGuiSandbox.CreateScreen <MyGuiScreenPlayers>());
 }
Ejemplo n.º 27
0
 private void OnClickNewGame(MyGuiControlButton sender)
 {
     MyGuiSandbox.AddScreen(MyGuiSandbox.CreateScreen <MyGuiScreenNewGame>());
 }
Ejemplo n.º 28
0
 private void OnCustomGameClicked(MyGuiControlButton myGuiControlButton)
 {
     MyGuiSandbox.AddScreen(MyGuiSandbox.CreateScreen <MyGuiScreenWorldSettings>());
 }
Ejemplo n.º 29
0
        static MySensorBlock()
        {
            m_openedToolbars = new List <MyToolbar>();

            var toolbarButton = new MyTerminalControlButton <MySensorBlock>("Open Toolbar", MySpaceTexts.BlockPropertyTitle_SensorToolbarOpen, MySpaceTexts.BlockPropertyDescription_SensorToolbarOpen,
                                                                            delegate(MySensorBlock self)
            {
                m_openedToolbars.Add(self.Toolbar);
                if (MyGuiScreenCubeBuilder.Static == null)
                {
                    m_shouldSetOtherToolbars          = true;
                    MyToolbarComponent.CurrentToolbar = self.Toolbar;
                    MyGuiScreenBase screen            = MyGuiSandbox.CreateScreen(MyPerGameSettings.GUI.ToolbarConfigScreen, 0, self);
                    MyToolbarComponent.AutoUpdate     = false;
                    screen.Closed += (source) =>
                    {
                        MyToolbarComponent.AutoUpdate = true;
                        m_openedToolbars.Clear();
                    };
                    MyGuiSandbox.AddScreen(screen);
                }
            });

            MyTerminalControlFactory.AddControl(toolbarButton);

            var fieldWidthMin = new MyTerminalControlSlider <MySensorBlock>("Left", MySpaceTexts.BlockPropertyTitle_SensorFieldWidthMin, MySpaceTexts.BlockPropertyDescription_SensorFieldLeft);

            fieldWidthMin.SetLimits(block => 1, block => block.MaxRange);
            fieldWidthMin.DefaultValue = 5;
            fieldWidthMin.Getter       = (x) => - x.m_fieldMin.X;
            fieldWidthMin.Setter       = (x, v) =>
            {
                var fieldMin = x.FieldMin;
                fieldMin.X = -v;
                x.FieldMin = fieldMin;
                (x.SyncObject as MySyncSensorBlock).SendChangeSensorMinRequest(ref fieldMin);
            };
            fieldWidthMin.Writer = (x, result) => result.AppendInt32((int)-x.m_fieldMin.X).Append(" m");
            fieldWidthMin.EnableActions();
            MyTerminalControlFactory.AddControl(fieldWidthMin);

            var fieldWidthMax = new MyTerminalControlSlider <MySensorBlock>("Right", MySpaceTexts.BlockPropertyTitle_SensorFieldWidthMax, MySpaceTexts.BlockPropertyDescription_SensorFieldRight);

            fieldWidthMax.SetLimits(block => 1, block => block.MaxRange);
            fieldWidthMax.DefaultValue = 5;
            fieldWidthMax.Getter       = (x) => x.m_fieldMax.X;
            fieldWidthMax.Setter       = (x, v) =>
            {
                var fieldMax = x.FieldMax;
                fieldMax.X = v;
                x.FieldMax = fieldMax;
                (x.SyncObject as MySyncSensorBlock).SendChangeSensorMaxRequest(ref fieldMax);
            };
            fieldWidthMax.Writer = (x, result) => result.AppendInt32((int)x.m_fieldMax.X).Append(" m");
            fieldWidthMax.EnableActions();
            MyTerminalControlFactory.AddControl(fieldWidthMax);


            var fieldHeightMin = new MyTerminalControlSlider <MySensorBlock>("Bottom", MySpaceTexts.BlockPropertyTitle_SensorFieldHeightMin, MySpaceTexts.BlockPropertyDescription_SensorFieldBottom);

            fieldHeightMin.SetLimits(block => 1, block => block.MaxRange);
            fieldHeightMin.DefaultValue = 5;
            fieldHeightMin.Getter       = (x) => - x.m_fieldMin.Y;
            fieldHeightMin.Setter       = (x, v) =>
            {
                var fieldMin = x.FieldMin;
                fieldMin.Y = -v;
                x.FieldMin = fieldMin;
                (x.SyncObject as MySyncSensorBlock).SendChangeSensorMinRequest(ref fieldMin);
            };
            fieldHeightMin.Writer = (x, result) => result.AppendInt32((int)-x.m_fieldMin.Y).Append(" m");
            fieldHeightMin.EnableActions();
            MyTerminalControlFactory.AddControl(fieldHeightMin);

            var fieldHeightMax = new MyTerminalControlSlider <MySensorBlock>("Top", MySpaceTexts.BlockPropertyTitle_SensorFieldHeightMax, MySpaceTexts.BlockPropertyDescription_SensorFieldTop);

            fieldHeightMax.SetLimits(block => 1, block => block.MaxRange);
            fieldHeightMax.DefaultValue = 5;
            fieldHeightMax.Getter       = (x) => x.m_fieldMax.Y;
            fieldHeightMax.Setter       = (x, v) =>
            {
                var fieldMax = x.FieldMax;
                fieldMax.Y = v;
                x.FieldMax = fieldMax;
                (x.SyncObject as MySyncSensorBlock).SendChangeSensorMaxRequest(ref fieldMax);
            };
            fieldHeightMax.Writer = (x, result) => result.AppendInt32((int)x.m_fieldMax.Y).Append(" m");
            fieldHeightMax.EnableActions();
            MyTerminalControlFactory.AddControl(fieldHeightMax);

            var fieldDepthMax = new MyTerminalControlSlider <MySensorBlock>("Back", MySpaceTexts.BlockPropertyTitle_SensorFieldDepthMax, MySpaceTexts.BlockPropertyDescription_SensorFieldBack);

            fieldDepthMax.SetLimits(block => 1, block => block.MaxRange);
            fieldDepthMax.DefaultValue = 5;
            fieldDepthMax.Getter       = (x) => x.m_fieldMax.Z;
            fieldDepthMax.Setter       = (x, v) =>
            {
                var fieldMax = x.FieldMax;
                fieldMax.Z = v;
                x.FieldMax = fieldMax;
                (x.SyncObject as MySyncSensorBlock).SendChangeSensorMaxRequest(ref fieldMax);
            };
            fieldDepthMax.Writer = (x, result) => result.AppendInt32((int)x.m_fieldMax.Z).Append(" m");
            fieldDepthMax.EnableActions();
            MyTerminalControlFactory.AddControl(fieldDepthMax);

            var fieldDepthMin = new MyTerminalControlSlider <MySensorBlock>("Front", MySpaceTexts.BlockPropertyTitle_SensorFieldDepthMin, MySpaceTexts.BlockPropertyDescription_SensorFieldFront);

            fieldDepthMin.SetLimits(block => 1, block => block.MaxRange);
            fieldDepthMin.DefaultValue = 5;
            fieldDepthMin.Getter       = (x) => - x.m_fieldMin.Z;
            fieldDepthMin.Setter       = (x, v) =>
            {
                var fieldMin = x.FieldMin;
                fieldMin.Z = -v;
                x.FieldMin = fieldMin;
                (x.SyncObject as MySyncSensorBlock).SendChangeSensorMinRequest(ref fieldMin);
            };
            fieldDepthMin.Writer = (x, result) => result.AppendInt32((int)-x.m_fieldMin.Z).Append(" m");
            fieldDepthMin.EnableActions();
            MyTerminalControlFactory.AddControl(fieldDepthMin);

            var separatorFilters = new MyTerminalControlSeparator <MySensorBlock>();

            MyTerminalControlFactory.AddControl(separatorFilters);

            var detectPlayProximitySoundSwitch = new MyTerminalControlOnOffSwitch <MySensorBlock>("Audible Proximity Alert", MySpaceTexts.BlockPropertyTitle_SensorPlaySound, MySpaceTexts.BlockPropertyTitle_SensorPlaySound);

            detectPlayProximitySoundSwitch.Getter = (x) => x.PlayProximitySound;
            detectPlayProximitySoundSwitch.Setter = (x, v) =>
            {
                x.PlayProximitySound = v;
                (x.SyncObject as MySyncSensorBlock).SendChangeSensorPlaySoundRequest(x.PlayProximitySound);
            };
            MyTerminalControlFactory.AddControl(detectPlayProximitySoundSwitch);

            var detectPlayersSwitch = new MyTerminalControlOnOffSwitch <MySensorBlock>("Detect Players", MySpaceTexts.BlockPropertyTitle_SensorDetectPlayers, MySpaceTexts.BlockPropertyTitle_SensorDetectPlayers);

            detectPlayersSwitch.Getter = (x) => x.DetectPlayers;
            detectPlayersSwitch.Setter = (x, v) =>
            {
                x.DetectPlayers = v;
                (x.SyncObject as MySyncSensorBlock).SendFiltersChangedRequest(x.Filters);
            };
            detectPlayersSwitch.EnableToggleAction(MyTerminalActionIcons.CHARACTER_TOGGLE);
            detectPlayersSwitch.EnableOnOffActions(MyTerminalActionIcons.CHARACTER_ON, MyTerminalActionIcons.CHARACTER_OFF);
            MyTerminalControlFactory.AddControl(detectPlayersSwitch);

            var detectFloatingObjectsSwitch = new MyTerminalControlOnOffSwitch <MySensorBlock>("Detect Floating Objects", MySpaceTexts.BlockPropertyTitle_SensorDetectFloatingObjects, MySpaceTexts.BlockPropertyTitle_SensorDetectFloatingObjects);

            detectFloatingObjectsSwitch.Getter = (x) => x.DetectFloatingObjects;
            detectFloatingObjectsSwitch.Setter = (x, v) =>
            {
                x.DetectFloatingObjects = v;
                (x.SyncObject as MySyncSensorBlock).SendFiltersChangedRequest(x.Filters);
            };
            detectFloatingObjectsSwitch.EnableToggleAction(MyTerminalActionIcons.MOVING_OBJECT_TOGGLE);
            detectFloatingObjectsSwitch.EnableOnOffActions(MyTerminalActionIcons.MOVING_OBJECT_ON, MyTerminalActionIcons.MOVING_OBJECT_OFF);
            MyTerminalControlFactory.AddControl(detectFloatingObjectsSwitch);

            var detectSmallShipsSwitch = new MyTerminalControlOnOffSwitch <MySensorBlock>("Detect Small Ships", MySpaceTexts.BlockPropertyTitle_SensorDetectSmallShips, MySpaceTexts.BlockPropertyTitle_SensorDetectSmallShips);

            detectSmallShipsSwitch.Getter = (x) => x.DetectSmallShips;
            detectSmallShipsSwitch.Setter = (x, v) =>
            {
                x.DetectSmallShips = v;
                (x.SyncObject as MySyncSensorBlock).SendFiltersChangedRequest(x.Filters);
            };
            detectSmallShipsSwitch.EnableToggleAction(MyTerminalActionIcons.SMALLSHIP_TOGGLE);
            detectSmallShipsSwitch.EnableOnOffActions(MyTerminalActionIcons.SMALLSHIP_ON, MyTerminalActionIcons.SMALLSHIP_OFF);
            MyTerminalControlFactory.AddControl(detectSmallShipsSwitch);

            var detectLargeShipsSwitch = new MyTerminalControlOnOffSwitch <MySensorBlock>("Detect Large Ships", MySpaceTexts.BlockPropertyTitle_SensorDetectLargeShips, MySpaceTexts.BlockPropertyTitle_SensorDetectLargeShips);

            detectLargeShipsSwitch.Getter = (x) => x.DetectLargeShips;
            detectLargeShipsSwitch.Setter = (x, v) =>
            {
                x.DetectLargeShips = v;
                (x.SyncObject as MySyncSensorBlock).SendFiltersChangedRequest(x.Filters);
            };
            detectLargeShipsSwitch.EnableToggleAction(MyTerminalActionIcons.LARGESHIP_TOGGLE);
            detectLargeShipsSwitch.EnableOnOffActions(MyTerminalActionIcons.LARGESHIP_ON, MyTerminalActionIcons.LARGESHIP_OFF);
            MyTerminalControlFactory.AddControl(detectLargeShipsSwitch);

            var detectStationsSwitch = new MyTerminalControlOnOffSwitch <MySensorBlock>("Detect Stations", MySpaceTexts.BlockPropertyTitle_SensorDetectStations, MySpaceTexts.BlockPropertyTitle_SensorDetectStations);

            detectStationsSwitch.Getter = (x) => x.DetectStations;
            detectStationsSwitch.Setter = (x, v) =>
            {
                x.DetectStations = v;
                (x.SyncObject as MySyncSensorBlock).SendFiltersChangedRequest(x.Filters);
            };
            detectStationsSwitch.EnableToggleAction(MyTerminalActionIcons.STATION_TOGGLE);
            detectStationsSwitch.EnableOnOffActions(MyTerminalActionIcons.STATION_ON, MyTerminalActionIcons.STATION_OFF);
            MyTerminalControlFactory.AddControl(detectStationsSwitch);

            var detectAsteroidsSwitch = new MyTerminalControlOnOffSwitch <MySensorBlock>("Detect Asteroids", MySpaceTexts.BlockPropertyTitle_SensorDetectAsteroids, MySpaceTexts.BlockPropertyTitle_SensorDetectAsteroids);

            detectAsteroidsSwitch.Getter = (x) => x.DetectAsteroids;
            detectAsteroidsSwitch.Setter = (x, v) =>
            {
                x.DetectAsteroids = v;
                (x.SyncObject as MySyncSensorBlock).SendFiltersChangedRequest(x.Filters);
            };
            detectAsteroidsSwitch.EnableToggleAction();
            detectAsteroidsSwitch.EnableOnOffActions();
            MyTerminalControlFactory.AddControl(detectAsteroidsSwitch);

            var separatorFactionFilters = new MyTerminalControlSeparator <MySensorBlock>();

            MyTerminalControlFactory.AddControl(separatorFactionFilters);

            var detectOwnerSwitch = new MyTerminalControlOnOffSwitch <MySensorBlock>("Detect Owner", MySpaceTexts.BlockPropertyTitle_SensorDetectOwner, MySpaceTexts.BlockPropertyTitle_SensorDetectOwner);

            detectOwnerSwitch.Getter = (x) => x.DetectOwner;
            detectOwnerSwitch.Setter = (x, v) =>
            {
                x.DetectOwner = v;
                (x.SyncObject as MySyncSensorBlock).SendFiltersChangedRequest(x.Filters);
            };
            detectOwnerSwitch.EnableToggleAction();
            detectOwnerSwitch.EnableOnOffActions();
            MyTerminalControlFactory.AddControl(detectOwnerSwitch);

            var detectFriendlySwitch = new MyTerminalControlOnOffSwitch <MySensorBlock>("Detect Friendly", MySpaceTexts.BlockPropertyTitle_SensorDetectFriendly, MySpaceTexts.BlockPropertyTitle_SensorDetectFriendly);

            detectFriendlySwitch.Getter = (x) => x.DetectFriendly;
            detectFriendlySwitch.Setter = (x, v) =>
            {
                x.DetectFriendly = v;
                (x.SyncObject as MySyncSensorBlock).SendFiltersChangedRequest(x.Filters);
            };
            detectFriendlySwitch.EnableToggleAction();
            detectFriendlySwitch.EnableOnOffActions();
            MyTerminalControlFactory.AddControl(detectFriendlySwitch);

            var detectNeutralSwitch = new  MyTerminalControlOnOffSwitch <MySensorBlock>("Detect Neutral", MySpaceTexts.BlockPropertyTitle_SensorDetectNeutral, MySpaceTexts.BlockPropertyTitle_SensorDetectNeutral);

            detectNeutralSwitch.Getter = (x) => x.DetectNeutral;
            detectNeutralSwitch.Setter = (x, v) =>
            {
                x.DetectNeutral = v;
                (x.SyncObject as MySyncSensorBlock).SendFiltersChangedRequest(x.Filters);
            };
            detectNeutralSwitch.EnableToggleAction();
            detectNeutralSwitch.EnableOnOffActions();
            MyTerminalControlFactory.AddControl(detectNeutralSwitch);

            var detectEnemySwitch = new MyTerminalControlOnOffSwitch <MySensorBlock>("Detect Enemy", MySpaceTexts.BlockPropertyTitle_SensorDetectEnemy, MySpaceTexts.BlockPropertyTitle_SensorDetectEnemy);

            detectEnemySwitch.Getter = (x) => x.DetectEnemy;
            detectEnemySwitch.Setter = (x, v) =>
            {
                x.DetectEnemy = v;
                (x.SyncObject as MySyncSensorBlock).SendFiltersChangedRequest(x.Filters);
            };
            detectEnemySwitch.EnableToggleAction();
            detectEnemySwitch.EnableOnOffActions();
            MyTerminalControlFactory.AddControl(detectEnemySwitch);
        }
Ejemplo n.º 30
0
 private void OnClickHelp(MyGuiControlButton sender)
 {
     MyGuiSandbox.AddScreen(MyGuiSandbox.CreateScreen(MyPerGameSettings.GUI.HelpScreen));
 }