protected MyGuiControlCheckbox AddCheckBox(String text, MyDebugComponent component, List <MyGuiControlBase> controlGroup = null, Vector4?color = null, Vector2?checkBoxOffset = null)
        {
            MyGuiControlCheckbox checkBox = AddCheckBox(text, true, controlGroup, color, checkBoxOffset);

            checkBox.IsChecked = component.Enabled;

            checkBox.IsCheckedChanged = delegate(MyGuiControlCheckbox sender)
            {
                component.Enabled = sender.IsChecked;
            };

            return(checkBox);
        }
Exemple #2
0
 void SoloChanged(MyGuiControlCheckbox checkbox)
 {
     if (m_canUpdateValues)
     {
         if (checkbox.IsChecked)
         {
             MyAudio.Static.SoloCue = m_currentCue;
         }
         else
         {
             MyAudio.Static.SoloCue = null;
         }
     }
 }
Exemple #3
0
        public void OnMyCheckEnable(MyGuiControlCheckbox sender)
        {
            foreach (MyPrefabLight prefabLight in m_prefabLights)
            {
                MyLight myLight      = prefabLight.GetLight();
                float   oldIntensity = myLight.Intensity; // Keep old intensity, because Start() will reset it to 1

                MyGuiControlCheckbox  other;
                MyLight.LightTypeEnum lightType;

                if (sender == m_pointLightCheckbox)
                {
                    other     = m_hemisphereLightCheckbox;
                    lightType = MyLight.LightTypeEnum.PointLight;
                }
                else if (sender == m_hemisphereLightCheckbox)
                {
                    other     = m_pointLightCheckbox;
                    lightType = MyLight.LightTypeEnum.Hemisphere;
                }
                else  // (sender == m_spotLightCheckbox)
                {
                    other     = null;
                    lightType = MyLight.LightTypeEnum.Spotlight;
                }

                if (sender.Checked)
                {
                    myLight.Start(lightType | myLight.LightType, myLight.Falloff);
                    myLight.GlareOn = true;
                    if (other != null)
                    {
                        other.Checked = false;                 // only one of Point and Hemisphere can be checked
                    }
                }
                else
                {
                    myLight.Start((~lightType & myLight.LightType), myLight.Falloff);
                    myLight.GlareOn = true;
                }



                myLight.Intensity = oldIntensity; // Set previous intensity

                prefabLight.OnWorldPositionChanged(this);
                prefabLight.UpdateEffect();
            }
            OnComponentChange(null);
        }
Exemple #4
0
        protected void IsMuteCheckedChanged(MyGuiControlCheckbox obj)
        {
            // some mute player checkbox is changed
            ulong userId = (ulong)obj.UserData;

            if (obj.IsChecked)
            {
                MutePlayer(userId);
            }
            else
            {
                UnmutePlayer(userId);
            }
        }
        public void CreateControls(Vector2 controlsOrigin, Vector2 sliderOffset)
        {
            float sliderMax = 1000f;

            AddActivatedCheckbox(controlsOrigin, Scanner.Activated);

            AddIdTextBox(new Vector2(-0.17f, controlsOrigin.Y), Scanner.EntityId.Value.NumericValue);

            //Width slider
            m_widthSize = new MyGuiControlSize(this, controlsOrigin + new Vector2(0.4f, 0f) + 1 * CONTROLS_DELTA, new Vector2(0.8f, MyGuiConstants.SLIDER_HEIGHT), Vector4.Zero, null, 0f, 0.1f, sliderMax, MyTextsWrapper.Get(MyTextsWrapperEnum.Width), MyGuiSizeEnumFlags.All, sliderOffset.X);
            Controls.Add(m_widthSize);

            //Height slider
            m_heightSize = new MyGuiControlSize(this, controlsOrigin + new Vector2(0.4f, 0f) + 2 * CONTROLS_DELTA, new Vector2(0.8f, MyGuiConstants.SLIDER_HEIGHT), Vector4.Zero, null, 0f, 0.1f, sliderMax, MyTextsWrapper.Get(MyTextsWrapperEnum.Height), MyGuiSizeEnumFlags.All, sliderOffset.X);
            Controls.Add(m_heightSize);

            //Depth slider
            m_depthSize = new MyGuiControlSize(this, controlsOrigin + new Vector2(0.4f, 0f) + 3 * CONTROLS_DELTA, new Vector2(0.8f, MyGuiConstants.SLIDER_HEIGHT), Vector4.Zero, null, 0f, 0.1f, sliderMax, MyTextsWrapper.Get(MyTextsWrapperEnum.Depth), MyGuiSizeEnumFlags.All, sliderOffset.X);
            Controls.Add(m_depthSize);

            //Scanning speed slider
            m_scanningSpeedSize = new MyGuiControlSize(this, controlsOrigin + new Vector2(0.4f, 0f) + 4 * CONTROLS_DELTA, new Vector2(0.8f, MyGuiConstants.SLIDER_HEIGHT), Vector4.Zero, null, 0f, 0.1f, sliderMax, MyTextsWrapper.Get(MyTextsWrapperEnum.ScanningSpeed), MyGuiSizeEnumFlags.All, 0.3f);
            Controls.Add(m_scanningSpeedSize);

            // Color
            Vector2 colorPosition = controlsOrigin + 5 * CONTROLS_DELTA;

            m_colorDrawPosition = colorPosition + sliderOffset;
            Controls.Add(new MyGuiControlLabel(this, colorPosition, null, MyTextsWrapperEnum.Color, MyGuiConstants.LABEL_TEXT_COLOR,
                                               MyGuiConstants.LABEL_TEXT_SCALE, MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER));

            MyTextsWrapperEnum[] colorNames = { MyTextsWrapperEnum.Red, MyTextsWrapperEnum.Green, MyTextsWrapperEnum.Blue };
            m_colorSlider = new MyGuiControlSlider[3];
            //color sliders
            for (int i = 0; i < 3; i++)
            {
                Controls.Add(new MyGuiControlLabel(this, controlsOrigin + (6 + i) * CONTROLS_DELTA, null, colorNames[i], MyGuiConstants.LABEL_TEXT_COLOR,
                                                   MyGuiConstants.LABEL_TEXT_SCALE, MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER));
                m_colorSlider[i] = new MyGuiControlSlider(this, (sliderOffset + controlsOrigin) + (6 + i) * CONTROLS_DELTA, MyGuiConstants.SLIDER_WIDTH,
                                                          MyEditorConstants.COLOR_COMPONENT_MIN_VALUE, MyEditorConstants.COLOR_COMPONENT_MAX_VALUE, MyGuiConstants.SLIDER_BACKGROUND_COLOR,
                                                          new StringBuilder(), MyGuiConstants.SLIDER_WIDTH_LABEL, 0, MyGuiConstants.LABEL_TEXT_SCALE * 0.85f * 0.75f);
                Controls.Add(m_colorSlider[i]);
            }

            Controls.Add(new MyGuiControlLabel(this, controlsOrigin + 9 * CONTROLS_DELTA, null, MyTextsWrapperEnum.On, MyGuiConstants.LABEL_TEXT_COLOR,
                                               MyGuiConstants.LABEL_TEXT_SCALE, MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER));
            m_onCheckbox = new MyGuiControlCheckbox(this, controlsOrigin + sliderOffset + 9 * CONTROLS_DELTA, Scanner.Enabled, MyGuiConstants.CHECKBOX_BACKGROUND_COLOR);
            Controls.Add(m_onCheckbox);
        }
        private static void OnCheckboxChanged(MyGuiControlCheckbox obj)
        {
            if (obj == null)
            {
                return;
            }

            if (obj.IsChecked)
            {
                if (Static.GetSelectedTagsLength() >= TAGS_MAX_LENGTH)
                {
                    obj.IsChecked = false;
                }
            }
        }
Exemple #7
0
        protected MyGuiControlCheckbox AddCheckBox(String text, bool checkedState, Action <MyGuiControlCheckbox> checkBoxChange, bool enabled = true, List <MyGuiControlBase> controlGroup = null, Vector4?color = null, Vector2?checkBoxOffset = null)
        {
            MyGuiControlCheckbox checkBox = AddCheckBox(text, enabled, controlGroup, color, checkBoxOffset);

            checkBox.IsChecked = checkedState;
            if (checkBoxChange != null)
            {
                checkBox.IsCheckedChanged =
                    delegate(MyGuiControlCheckbox sender)
                {
                    checkBoxChange(sender);
                    ValueChanged(sender);
                };
            }
            return(checkBox);
        }
Exemple #8
0
        private MyGuiControlCheckbox CreateCheckbox(Action <MyGuiControlCheckbox> onCheckedChanged, bool isChecked)
        {
            var checkBox = new MyGuiControlCheckbox(
                visualStyle: MyGuiControlCheckboxStyleEnum.Debug,
                originAlign: MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP,
                isChecked: isChecked
                );


            checkBox.Size              = ITEM_SIZE;
            checkBox.IsCheckedChanged += onCheckedChanged;

            Controls.Add(checkBox);

            return(checkBox);
        }
        protected void AddPlayer(ulong userId)
        {
            //string playerName = SteamAPI.Instance.Friends.GetPersonaName(userId);
            string playerName = MyMultiplayer.Static.GetMemberName(userId);

            if (String.IsNullOrEmpty(playerName))
            {
                return;
            }

            var row = new MyGuiControlTable.Row(userData: userId);

            row.AddCell(new MyGuiControlTable.Cell(text: new StringBuilder(playerName), userData: playerName));

            var playerId = Sync.Players.TryGetIdentityId(userId);
            var faction  = MySession.Static.Factions.GetPlayerFaction(playerId);

            row.AddCell(new MyGuiControlTable.Cell(text: new StringBuilder(faction != null ? faction.Tag : "")));
            row.AddCell(new MyGuiControlTable.Cell(text: new StringBuilder(faction != null ? faction.Name : "")));

            // cell with/without mute checkbox
            MyGuiControlTable.Cell cell = new MyGuiControlTable.Cell(text: new StringBuilder(""));
            row.AddCell(cell);

            if (MyPerGameSettings.EnableMutePlayer && userId != Sync.MyId)
            {
                MyGuiControlCheckbox check = new MyGuiControlCheckbox(toolTip: "", visualStyle: MyGuiControlCheckboxStyleEnum.Muted);
                check.IsChecked         = MySandboxGame.Config.MutedPlayers.Contains(userId);
                check.IsCheckedChanged += IsMuteCheckedChanged;
                check.UserData          = userId;
                cell.Control            = check;

                m_playersTable.Controls.Add(check);
            }

            // cell with admin marker
            StringBuilder  adminString = new StringBuilder();
            MyPromoteLevel userLevel   = MySession.Static.GetUserPromoteLevel(userId);

            for (int i = 0; i < (int)userLevel; i++)
            {
                adminString.Append("*");
            }

            row.AddCell(new MyGuiControlTable.Cell(adminString));
            m_playersTable.Add(row);
        }
Exemple #10
0
        void Init()
        {
            m_enableBackgroundFade = true;
            m_size = new Vector2(0.8f, 0.4f);

            // Add screen title
            AddCaption();

            Vector2 originDelta        = new Vector2(0.05f, 0.02f);
            Vector2 controlsOriginLeft = GetControlsOriginLeftFromScreenSize() + originDelta;

            AddActivatedCheckbox(controlsOriginLeft, Prefab.Activated);

            m_onLabel = new MyGuiControlLabel(this, controlsOriginLeft + 1 * MyGuiConstants.CONTROLS_DELTA, null, MyTextsWrapperEnum.On, MyGuiConstants.LABEL_TEXT_COLOR, MyGuiConstants.LABEL_TEXT_SCALE, MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER);
            Controls.Add(m_onLabel);
            m_on = new MyGuiControlCheckbox(this, controlsOriginLeft + 1 * MyGuiConstants.CONTROLS_DELTA + new Vector2(0.1f, 0f), Prefab.Enabled, MyGuiConstants.CHECKBOX_BACKGROUND_COLOR);
            Controls.Add(m_on);

            m_alarmLabel = new MyGuiControlLabel(this, controlsOriginLeft + 2 * MyGuiConstants.CONTROLS_DELTA, null, MyTextsWrapperEnum.Alarm, MyGuiConstants.LABEL_TEXT_COLOR, MyGuiConstants.LABEL_TEXT_SCALE, MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER);
            Controls.Add(m_alarmLabel);

            var alarmComboboxPredefinedSize = MyGuiControlPreDefinedSize.MEDIUM;
            var alarmComboboxSize           = MyGuiControlCombobox.GetPredefinedControlSize(alarmComboboxPredefinedSize);

            m_alarmComboBox = new MyGuiControlCombobox(
                this,
                controlsOriginLeft + 2 * MyGuiConstants.CONTROLS_DELTA +
                new Vector2(0.075f + alarmComboboxSize.X / 2, 0f),
                alarmComboboxPredefinedSize,
                MyGuiConstants.COMBOBOX_BACKGROUND_COLOR,
                MyGuiConstants.COMBOBOX_TEXT_SCALE);

            m_alarmComboBox.AddItem(0, MyTextsWrapperEnum.Default);
            m_alarmComboBox.AddItem(1, MyTextsWrapperEnum.On);
            m_alarmComboBox.AddItem(2, MyTextsWrapperEnum.Off);
            if (Prefab.DefaultCausesAlarm())
            {
                m_alarmComboBox.SelectItemByKey(0);
            }
            else
            {
                m_alarmComboBox.SelectItemByKey(Prefab.CausesAlarm ? 1 : 2);
            }
            Controls.Add(m_alarmComboBox);

            AddOkAndCancelButtonControls();
        }
        public void CheckChanged(MyGuiControlCheckbox sender)
        {
            m_gameTypeFilter &= ~MyGameTypes.Deathmatch;
            m_gameTypeFilter &= ~MyGameTypes.Story;

            if (m_deathCheck.Checked)
            {
                m_gameTypeFilter |= MyGameTypes.Deathmatch;
            }

            if (m_storyCheck.Checked)
            {
                m_gameTypeFilter |= MyGameTypes.Story;
            }

            GetDataFromServer(true);
        }
Exemple #12
0
 private void blockLimits_CheckedChanged(MyGuiControlCheckbox checkbox)
 {
     if (!checkbox.IsChecked)
     {
         var messageBox = MyGuiSandbox.CreateMessageBox(
             messageText: MyTexts.Get(MyCommonTexts.MessageBoxTextBlockLimitDisableWarning),
             messageCaption: MyTexts.Get(MyCommonTexts.MessageBoxCaptionWarning));
         MyGuiSandbox.AddScreen(messageBox);
         Settings.MaxBlocksPerPlayer = 0;
         Settings.MaxGridSize        = 0;
     }
     else
     {
         Settings.MaxBlocksPerPlayer = 100000;
         Settings.MaxGridSize        = 50000;
     }
 }
        public MyGuiScreenOptionsGame()
            : base(new Vector2(0.5f, 0.5f), MyGuiConstants.SCREEN_BACKGROUND_COLOR, null)
        {
            m_enableBackgroundFade = true;
            m_size = new Vector2(0.51f, 0.525f);
            //m_backgroundTexture = MyTextureManager.GetTexture<MyTexture2D>("Textures\\GUI\\GameOptionsBackground", flags: TextureFlags.IgnoreQuality);

            AddCaption(MyTextsWrapperEnum.GameOptions, new Vector2(0, 0.005f));

            Vector2 controlsOriginLeft  = new Vector2(-m_size.Value.X / 2.0f + 0.05f, -m_size.Value.Y / 2.0f + 0.125f);
            Vector2 controlsOriginRight = new Vector2(-m_size.Value.X / 2.0f + 0.175f, -m_size.Value.Y / 2.0f + 0.125f);
            Vector2 controlsDelta       = new Vector2(0, 0.0525f);

            //  Language
            Controls.Add(new MyGuiControlLabel(this, controlsOriginLeft + 0 * controlsDelta, null, MyTextsWrapperEnum.Language, MyGuiConstants.LABEL_TEXT_COLOR,
                                               MyGuiConstants.LABEL_TEXT_SCALE, MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER));
            m_languageCombobox = new MyGuiControlCombobox(this, controlsOriginRight + 0 * controlsDelta + new Vector2(MyGuiConstants.COMBOBOX_MEDIUM_SIZE.Y / 2.0f + 0.1f, 0), MyGuiControlPreDefinedSize.MEDIUM, MyGuiConstants.COMBOBOX_BACKGROUND_COLOR, MyGuiConstants.COMBOBOX_TEXT_SCALE);
            m_languageCombobox.AddItem((int)MyLanguagesEnum.English, MyTextsWrapperEnum.LanguageEnglish);
            m_languageCombobox.AddItem((int)MyLanguagesEnum.Cesky, MyTextsWrapperEnum.LanguageCesky);
            Controls.Add(m_languageCombobox);

            //  Subtitles
            Controls.Add(new MyGuiControlLabel(this, controlsOriginLeft + 1 * controlsDelta, null, MyTextsWrapperEnum.Subtitles, MyGuiConstants.LABEL_TEXT_COLOR,
                                               MyGuiConstants.LABEL_TEXT_SCALE, MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER));
            m_subtitlesCheckbox = new MyGuiControlCheckbox(this, controlsOriginRight + 1 * controlsDelta + new Vector2(MyGuiConstants.CHECKBOX_SIZE.X / 2.0f + 0.1f, 0), true, MyGuiConstants.CHECKBOX_BACKGROUND_COLOR);
            Controls.Add(m_subtitlesCheckbox);

            //  Notifications
            Controls.Add(new MyGuiControlLabel(this, controlsOriginLeft + 2 * controlsDelta, null, MyTextsWrapperEnum.Notifications, MyGuiConstants.LABEL_TEXT_COLOR,
                                               MyGuiConstants.LABEL_TEXT_SCALE, MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER));
            m_notificationsCheckbox = new MyGuiControlCheckbox(this, controlsOriginRight + 2 * controlsDelta + new Vector2(MyGuiConstants.CHECKBOX_SIZE.X / 2.0f + 0.1f, 0), true, MyGuiConstants.CHECKBOX_BACKGROUND_COLOR);
            Controls.Add(m_notificationsCheckbox);

            //  Buttons OK and CANCEL
            Vector2 buttonDelta = new Vector2(0.1f, m_size.Value.Y / 2.0f - MyGuiConstants.MESSAGE_BOX_BORDER_AREA_Y - MyGuiConstants.MESSAGE_BOX_BUTTON_SIZE.Y / 2.0f - 0.03f);

            Controls.Add(new MyGuiControlButton(this, new Vector2(-buttonDelta.X, buttonDelta.Y), MyGuiConstants.MESSAGE_BOX_BUTTON_SIZE, MyGuiConstants.BUTTON_BACKGROUND_COLOR,
                                                MyTextsWrapperEnum.Ok, MyGuiConstants.BUTTON_TEXT_COLOR, MyGuiConstants.BUTTON_TEXT_SCALE, OnOkClick, MyGuiControlButtonTextAlignment.CENTERED, true, MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER, true));
            Controls.Add(new MyGuiControlButton(this, new Vector2(+buttonDelta.X, buttonDelta.Y), MyGuiConstants.MESSAGE_BOX_BUTTON_SIZE, MyGuiConstants.BUTTON_BACKGROUND_COLOR,
                                                MyTextsWrapperEnum.Cancel, MyGuiConstants.BUTTON_TEXT_COLOR, MyGuiConstants.BUTTON_TEXT_SCALE, OnCancelClick, MyGuiControlButtonTextAlignment.CENTERED, true, MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER, true));


            //  Update controls with values from config file
            UpdateControls();
        }
Exemple #14
0
        void OnMothershipStartFlagChange(MyGuiControlCheckbox sender)
        {
            if (!m_canUpdateValues)
            {
                return;
            }

            // Make sure there's only one start location per sector
            if (m_mothershipStart.Checked && (DummyPoint.DummyFlags & MyDummyPointFlags.MOTHERSHIP_START) == 0)
            {
                foreach (var entity in MyEntities.GetEntities())
                {
                    var dummyPoint = entity as MyDummyPoint;
                    if (dummyPoint != null && (dummyPoint.DummyFlags & MyDummyPointFlags.MOTHERSHIP_START) > 0)
                    {
                        MyGuiManager.AddScreen(new MyGuiScreenMessageBox(MyMessageBoxType.ERROR, MyTextsWrapperEnum.EntryPointAlreadyDefined, MyTextsWrapperEnum.MessageBoxCaptionError,
                                                                         MyTextsWrapperEnum.Yes, MyTextsWrapperEnum.Cancel, mbReturn =>
                        {
                            if (mbReturn == MyGuiScreenMessageBoxCallbackEnum.YES)
                            {
                                MyEditorGizmo.ClearSelection();
                                MyEditorGizmo.AddEntityToSelection(dummyPoint);
                                CloseScreen();
                            }
                            else
                            {
                                m_mothershipStart.Checked = false;
                            }
                        }));
                        return;
                    }
                }
            }

            if (m_mothershipStart.Checked)
            {
                DummyPoint.DummyFlags |= MyDummyPointFlags.MOTHERSHIP_START;
            }
            else
            {
                DummyPoint.DummyFlags &= ~MyDummyPointFlags.MOTHERSHIP_START;
            }

            UpdateValues();
        }
        public override void RecreateControls(bool constructor)
        {
            if (!_allowControls)
            {
                return;
            }
            this.m_checkboxEnableVR = new MyGuiControlCheckbox(null, null, "Enable VR mode");
            base.RecreateControls(constructor);
            if (!constructor)
            {
                return;
            }

            Debug.Assert(m_size.HasValue);

            MyGuiDrawAlignEnum originAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP;
            Vector2            value       = new Vector2(90f) / MyGuiConstants.GUI_OPTIMAL_SIZE;
            Vector2            value2      = new Vector2(54f) / MyGuiConstants.GUI_OPTIMAL_SIZE;
            float   num    = 455f / MyGuiConstants.GUI_OPTIMAL_SIZE.X;
            float   num2   = 25f;
            float   y      = MyGuiConstants.SCREEN_CAPTION_DELTA_Y * 0.5f;
            float   num3   = 0.0015f;
            Vector2 value3 = new Vector2(0f, 0.045f);
            float   num4   = 0f;
            Vector2 value4 = (this.m_size.Value / 2f - value) * new Vector2(-1f, -1f) + new Vector2(0f, y);
            Vector2 value5 = (this.m_size.Value / 2f - value) * new Vector2(1f, -1f) + new Vector2(0f, y);
            Vector2 value6 = (this.m_size.Value / 2f - value2) * new Vector2(0f, 1f);
            Vector2 value7 = new Vector2(value5.X - (num + num3), value5.Y);

            num4 -= 0.045f;
            num4 += 3;
            num4 += .45f;
            num4 += .66f;
            num4 += 2.0f;
            MyGuiControlLabel lblEnableVr = new MyGuiControlLabel(null, null, "Enable VR", null)
            {
                Position    = value4 + num4 * value3,
                OriginAlign = originAlign
            };

            m_checkboxEnableVR.Position    = value7 + num4 * value3;
            m_checkboxEnableVR.OriginAlign = originAlign;
            Controls.Add(lblEnableVr);
            Controls.Add(m_checkboxEnableVR);
        }
Exemple #16
0
        private void ShowModelsChange(MyGuiControlCheckbox sender, List<MyEntity> entities, string modelPath, MyMeshDrawTechnique? drawTechnique = null, bool staticAsteroids = false, MyMwcVoxelMaterialsEnum? voxelMaterial = null, List<MyMwcObjectBuilder_StaticAsteroid_TypesEnum> asteroidEnums = null)
        {
            if (sender.Checked)
            {
                string[] modelNames = Enum.GetNames(typeof(MyModelsEnum));
                int numModels = modelNames.Length;

                Vector3 forward = MySession.PlayerShip.GetWorldRotation().Forward;
                Vector3 currentPosition = MySession.PlayerShip.GetPosition() + forward * 20;

                if (!staticAsteroids)
                {
                    for (int i = 0; i < numModels; i++)
                    {
                        if (!MyModels.GetModelAssetName((MyModelsEnum)i).StartsWith(modelPath))
                            continue;

                        MyModel model = MyModels.GetModelOnlyData((MyModelsEnum)i);

                        MyEntity debugDebris = addDebris(new StringBuilder(modelNames[i]), (MyModelsEnum)i, null, ref currentPosition, forward, drawTechnique);

                        MyEntities.Add(debugDebris);
                        entities.Add(debugDebris);
                    }
                }
                else
                {
                      //foreach(MyMwcObjectBuilder_StaticAsteroid_TypesEnum statEnum in Enum.GetValues(typeof(MyMwcObjectBuilder_StaticAsteroid_TypesEnum)))
                      foreach(MyMwcObjectBuilder_StaticAsteroid_TypesEnum statEnum in asteroidEnums)
                      {
                          MyEntity debugDebris = addStaticAsteroid(new StringBuilder(statEnum.ToString()), statEnum, ref currentPosition, forward, null, voxelMaterial.Value);
                          MyEntities.Add(debugDebris);
                          entities.Add(debugDebris);
                      }
                }
            }
            else
            {
                foreach (MyEntity entity in entities)
                {
                    entity.MarkForClose();
                }
                entities.Clear();
            }
        }
        public override void RecreateControls(bool constructor)
        {
            base.RecreateControls(constructor);
            AddCaption(MyTexts.GetString(MyCommonTexts.PerformanceWarningHelpHeader));

            m_warningsList = new MyGuiControlList(position: new Vector2(0f, -0.05f), size: new Vector2(0.92f, 0.7f));
            var m_showWarningsLabel = new MyGuiControlLabel(
                text: MyTexts.GetString(MyCommonTexts.ScreenOptionsGame_EnablePerformanceWarnings),
                position: new Vector2(-0.17f, 0.35f),
                originAlign: VRage.Utils.MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_CENTER
                );

            m_showWarningsCheckBox = new MyGuiControlCheckbox(
                toolTip: MyTexts.GetString(MyCommonTexts.ToolTipGameOptionsEnablePerformanceWarnings),
                position: new Vector2(-0.15f, 0.35f),
                originAlign: VRage.Utils.MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER
                );
            m_showWarningsCheckBox.IsChecked         = MySandboxGame.Config.EnablePerformanceWarnings;
            m_showWarningsCheckBox.IsCheckedChanged += ShowWarningsChanged;

            var m_showAllLabel = new MyGuiControlLabel(
                text: MyTexts.GetString(MyCommonTexts.PerformanceWarningShowAll),
                position: new Vector2(0.25f, 0.35f),
                originAlign: VRage.Utils.MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_CENTER
                );

            m_showAllCheckBox = new MyGuiControlCheckbox(
                toolTip: MyTexts.GetString(MyCommonTexts.ToolTipPerformanceWarningShowAll),
                position: new Vector2(0.27f, 0.35f),
                originAlign: VRage.Utils.MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER
                );
            m_showAllCheckBox.IsChecked         = m_showAll;
            m_showAllCheckBox.IsCheckedChanged += KeepInListChanged;

            m_okButton = new MyGuiControlButton(position: new Vector2(0, 0.42f), text: MyTexts.Get(MyCommonTexts.Ok));
            m_okButton.ButtonClicked += m_okButton_ButtonClicked;

            Controls.Add(m_warningsList);
            Controls.Add(m_showWarningsLabel);
            Controls.Add(m_showWarningsCheckBox);
            Controls.Add(m_showAllLabel);
            Controls.Add(m_showAllCheckBox);
            Controls.Add(m_okButton);
        }
Exemple #18
0
        protected void AddPlayer(ulong userId)
        {
            //string playerName = SteamAPI.Instance.Friends.GetPersonaName(userId);
            string playerName = MyMultiplayer.Static.GetMemberName(userId);

            if (String.IsNullOrEmpty(playerName))
            {
                return;
            }

            bool isAdmin        = MyMultiplayer.Static.IsAdmin(userId);
            bool hasAdminRights = MySession.Static.HasPlayerAdminRights(userId);

            var row = new MyGuiControlTable.Row(userData: userId);

            row.AddCell(new MyGuiControlTable.Cell(text: new StringBuilder(playerName), userData: playerName));

            var playerId = Sync.Players.TryGetIdentityId(userId);
            var faction  = MySession.Static.Factions.GetPlayerFaction(playerId);

            row.AddCell(new MyGuiControlTable.Cell(text: new StringBuilder(faction != null ? faction.Tag : "")));
            row.AddCell(new MyGuiControlTable.Cell(text: new StringBuilder(faction != null ? faction.Name : "")));

            // cell with/without mute checkbox
            MyGuiControlTable.Cell cell = new MyGuiControlTable.Cell(text: new StringBuilder(""));
            row.AddCell(cell);

            if (MyPerGameSettings.EnableMutePlayer && userId != Sync.MyId)
            {
                MyGuiControlCheckbox check = new MyGuiControlCheckbox(toolTip: "", visualStyle: MyGuiControlCheckboxStyleEnum.Muted);
                check.IsChecked         = MySandboxGame.Config.MutedPlayers.Contains(userId);
                check.IsCheckedChanged += IsMuteCheckedChanged;
                check.UserData          = userId;
                cell.Control            = check;

                m_playersTable.Controls.Add(check);
            }

            // cell with admin marker
            string adminString = isAdmin ? GAME_OWNER_MARKER : (hasAdminRights ? GAME_MASTER_MARKER : String.Empty);

            row.AddCell(new MyGuiControlTable.Cell(text: new StringBuilder(adminString)));
            m_playersTable.Add(row);
        }
        void Init()
        {
            m_enableBackgroundFade = true;
            m_size = new Vector2(0.92f, 0.95f);

            // Add screen title
            AddCaption();

            Vector2 originDelta         = new Vector2(0.02f, 0);
            Vector2 controlsOriginLeft  = GetControlsOriginLeftFromScreenSize() + originDelta;
            Vector2 controlsOriginRight = GetControlsOriginRightFromScreenSize() + originDelta;

            m_label = new MyGuiControlLabel(this, controlsOriginLeft, null, MyTextsWrapperEnum.On, MyGuiConstants.LABEL_TEXT_COLOR, MyGuiConstants.LABEL_TEXT_SCALE, MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER);
            Controls.Add(m_label);
            m_on = new MyGuiControlCheckbox(this, controlsOriginLeft + new Vector2(0.1f, 0f), PrefabKinematic.CanOpen, MyGuiConstants.CHECKBOX_BACKGROUND_COLOR);
            Controls.Add(m_on);

            AddOkAndCancelButtonControls();
        }
        private void OnCheckboxChecked(MyGuiControlCheckbox sender)
        {
            if (sender.Checked)
            {
                // projected
                m_voxelShapeDistanceSlider.SetBounds(MyVoxelConstants.MIN_PROJECTED_VOXEL_HAND_OFFSET, MyVoxelConstants.MAX_PROJECTED_VOXEL_HAND_OFFSET);
                OnVoxelHandDistanceChanged(MyVoxelConstants.DEFAULT_PROJECTED_VOXEL_HAND_OFFSET);
                m_voxelShapeDistanceLabel.UpdateText(MyTextsWrapper.Get(MyTextsWrapperEnum.EditVoxelHandShapeOffset).ToString());
            }
            else
            {
                // not projected
                m_voxelShapeDistanceSlider.SetBounds(MyVoxelConstants.MIN_VOXEL_HAND_DISTANCE, MyVoxelConstants.MAX_VOXEL_HAND_DISTANCE);
                OnVoxelHandDistanceChanged(MyVoxelConstants.DEFAULT_VOXEL_HAND_DISTANCE);
                m_voxelShapeDistanceLabel.UpdateText(MyTextsWrapper.Get(MyTextsWrapperEnum.EditVoxelHandShapeDistance).ToString());
            }

            UpdateVoxelHandProperties();
        }
        private MyGuiControlCheckbox AddCheckBox(String text, bool enabled = true, List <MyGuiControlBase> controlGroup = null, Vector4?color = null, Vector2?checkBoxOffset = null)
        {
            MyGuiControlLabel label = new MyGuiControlLabel(
                position: m_currentPosition,
                text: text,
                colorMask: color ?? m_defaultTextColor,
                textScale: MyGuiConstants.DEFAULT_TEXT_SCALE * MyGuiConstants.DEBUG_LABEL_TEXT_SCALE * m_scale,
                font: MyFontEnum.Debug);

            label.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP;

            float labelWidth = label.GetTextSize().X + 0.02f;

            m_maxWidth    = Math.Max(m_maxWidth, labelWidth);
            label.Enabled = enabled;
            Controls.Add(label);


            Vector2?screenSize = this.GetSize();

            MyGuiControlCheckbox checkBox = new MyGuiControlCheckbox(
                isChecked: false,
                color: 0.8f * (color ?? m_defaultColor),
                visualStyle: MyGuiControlCheckboxStyleEnum.Debug,
                originAlign: MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_CENTER);

            checkBox.Position    = m_currentPosition + new Vector2(screenSize.Value.X - checkBox.Size.X, 0) + (checkBoxOffset ?? Vector2.Zero);
            checkBox.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_TOP;
            checkBox.Enabled     = enabled;

            Controls.Add(checkBox);

            m_currentPosition.Y += Math.Max(checkBox.Size.Y, label.Size.Y);

            if (controlGroup != null)
            {
                controlGroup.Add(label);
                controlGroup.Add(checkBox);
            }

            return(checkBox);
        }
        protected void AddGroupBox(StringBuilder text, MyGuiScreenDebugBase screen, List <MyGuiControlBase> controlGroup = null)
        {
            MyGuiControlCheckbox checkBox = AddCheckBox(text, screen, controlGroup);

            s_groupList.Add(checkBox);

            checkBox.OnCheck += delegate(MyGuiControlCheckbox sender)
            {
                if (sender.Checked)
                {
                    foreach (MyGuiControlCheckbox chb in s_groupList)
                    {
                        if (chb != sender)
                        {
                            chb.Checked = false;
                        }
                    }
                }
            };
        }
        public override void RecreateControls(bool constructor)
        {
            base.RecreateControls(constructor);

            base.m_position = new Vector2(MyGuiManager.GetMaxMouseCoord().X - 0.25f, 0.5f);

            var layout = new MyLayoutVertical(this, 35f);

            layout.Advance(20);

            {
                layout.Add(new MyGuiControlLabel(text: MyTexts.GetString(MyCommonTexts.BotSettingsScreen_Title)), MyAlignH.Center);
            }

            layout.Advance(30);

            {
                var enableDebuggingCheckBox = new MyGuiControlCheckbox(isChecked: MyDebugDrawSettings.DEBUG_DRAW_BOTS);
                enableDebuggingCheckBox.IsCheckedChanged += enableDebuggingCheckBox_IsCheckedChanged;
                layout.Add(new MyGuiControlLabel(text: MyTexts.GetString(MyCommonTexts.BotSettingsScreen_EnableBotsDebugging)), MyAlignH.Left, advance: false);
                layout.Add(enableDebuggingCheckBox, MyAlignH.Right);
            }

            layout.Advance(15);

            {
                MyGuiControlButton nextButton = new MyGuiControlButton(
                    text: MyTexts.Get(MyCommonTexts.BotSettingsScreen_NextBot),
                    onButtonClick: nextButton_OnButtonClick);
                MyGuiControlButton previousButton = new MyGuiControlButton(
                    text: MyTexts.Get(MyCommonTexts.BotSettingsScreen_PreviousBot),
                    onButtonClick: previousButton_OnButtonClick);
                layout.Add(nextButton, previousButton);
            }

            layout.Advance(30);

            {
                layout.Add(new MyGuiControlButton(text: MyTexts.Get(MyCommonTexts.Close), onButtonClick: OnCloseClicked), MyAlignH.Center);
            }
        }
Exemple #24
0
            public override void RecreateControls(bool constructor)
            {
                base.RecreateControls(constructor);

                m_sizeCombobox = new MyGuiControlCombobox()
                {
                    OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_CENTER,
                    Position    = Vector2.Zero,
                };
                foreach (var val in typeof(MyCubeSize).GetEnumValues())
                {
                    m_sizeCombobox.AddItem((int)(MyCubeSize)val, new StringBuilder(val.ToString()));
                }
                m_sizeCombobox.SelectItemByKey((int)MyCubeSize.Large);

                m_staticCheckbox = new MyGuiControlCheckbox()
                {
                    OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER,
                    IsChecked   = true,
                };
                var staticLabel = new MyGuiControlLabel()
                {
                    OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER,
                    Position    = new Vector2(m_staticCheckbox.Size.X, 0f),
                    Text        = "Static grid"
                };

                var okButton = new MyGuiControlButton()
                {
                    OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_TOP,
                    Text        = "Ok",
                    Position    = new Vector2(0f, 0.05f),
                };

                okButton.ButtonClicked += okButton_ButtonClicked;

                Elements.Add(m_sizeCombobox);
                Elements.Add(m_staticCheckbox);
                Elements.Add(staticLabel);
                Elements.Add(okButton);
            }
        protected MyGuiControlCheckbox AddCheckBox(String text, Func <bool> getter, Action <bool> setter, bool enabled = true, List <MyGuiControlBase> controlGroup = null, Vector4?color = null, Vector2?checkBoxOffset = null)
        {
            MyGuiControlCheckbox checkBox = AddCheckBox(text, enabled, controlGroup, color, checkBoxOffset);

            System.Diagnostics.Debug.Assert(getter != null && setter != null, "Setter or getter was null");

            if (getter != null)
            {
                checkBox.IsChecked = getter();
            }

            if (setter != null)
            {
                checkBox.IsCheckedChanged = delegate(MyGuiControlCheckbox sender)
                {
                    setter(sender.IsChecked);
                };
            }

            return(checkBox);
        }
Exemple #26
0
        void Init()
        {
            m_enableBackgroundFade = true;
            m_size = new Vector2(0.8f, 0.4f);

            // Add screen title
            AddCaption();

            Vector2 originDelta         = new Vector2(0.05f, 0.02f);
            Vector2 controlsOriginLeft  = GetControlsOriginLeftFromScreenSize() + originDelta;
            Vector2 controlsOriginRight = GetControlsOriginRightFromScreenSize() + originDelta;

            AddActivatedCheckbox(controlsOriginLeft, PrefabContainer.Activated);

            m_label = new MyGuiControlLabel(this, controlsOriginLeft + 1 * CONTROLS_DELTA, null, MyTextsWrapperEnum.Alarm, MyGuiConstants.LABEL_TEXT_COLOR, MyGuiConstants.LABEL_TEXT_SCALE, MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER);
            Controls.Add(m_label);
            m_alarmOn = new MyGuiControlCheckbox(this, controlsOriginLeft + 1 * CONTROLS_DELTA + new Vector2(0.1f, 0f), PrefabContainer.AlarmOn, MyGuiConstants.CHECKBOX_BACKGROUND_COLOR);
            Controls.Add(m_alarmOn);

            AddOkAndCancelButtonControls();
        }
 private void checkboxChanged(MyGuiControlCheckbox obj)
 {
     if (obj == m_controlHintsCheckbox)
     {
         m_settings.ControlHints = obj.IsChecked;
     }
     else if (m_rotationHintsCheckbox != null && obj == m_rotationHintsCheckbox)
     {
         m_settings.RotationHints = obj.IsChecked;
     }
     else if (obj == m_crosshairCheckbox)
     {
         m_settings.ShowCrosshair = obj.IsChecked;
     }
     else if (obj == m_disableHeadbobCheckbox)
     {
         m_settings.DisableHeadbob = obj.IsChecked;
     }
     else if (obj == m_compressSavesCheckbox)
     {
         m_settings.CompressSaveGames = obj.IsChecked;
     }
     else if (obj == m_showPlayerNamesCheckbox)
     {
         m_settings.ShowPlayerNamesOnHud = obj.IsChecked;
     }
     else if (obj == m_releasingAltResetsCameraCheckbox)
     {
         m_settings.ReleasingAltResetsCamera = obj.IsChecked;
     }
     else if (obj == m_animatedRotationCheckbox)
     {
         m_settings.AnimatedRotation = obj.IsChecked;
     }
     else if (obj == m_showBuildingSizeHintCheckbox)
     {
         m_settings.ShowBuildingSizeHint = obj.IsChecked;
     }
 }
Exemple #28
0
        private void OnAlwaysVisibleChecked(MyGuiControlCheckbox sender)
        {
            if (m_tableIns.SelectedRow == null)
            {
                return;
            }

            MyGps gps = m_tableIns.SelectedRow.UserData as MyGps;

            gps.AlwaysVisible = sender.IsChecked;//will be updated onSuccess but need to be correct for trySync now
            gps.ShowOnHud     = gps.ShowOnHud || gps.AlwaysVisible;

            // Check Show on HUD without sending it
            m_checkInsShowOnHud.IsCheckedChanged -= OnShowOnHudChecked;
            m_checkInsShowOnHud.IsChecked         = m_checkInsShowOnHud.IsChecked || sender.IsChecked;
            m_checkInsShowOnHud.IsCheckedChanged += OnShowOnHudChecked;

            if (!trySync())
            {
                MySession.Static.Gpss.ChangeAlwaysVisible(MySession.Static.LocalPlayerId, gps.Hash, sender.IsChecked);
            }
        }
        private void AddGroupBox(String text, Type screenType, List <MyGuiControlBase> controlGroup)
        {
            MyGuiControlCheckbox checkBox = AddCheckBox(text, true, null, controlGroup: controlGroup);

            checkBox.IsChecked = s_activeScreen != null && s_activeScreen.GetType() == screenType;
            checkBox.UserData  = screenType;

            s_groupList.Add(checkBox);

            checkBox.IsCheckedChanged += delegate(MyGuiControlCheckbox sender)
            {
                var senderScreenType = sender.UserData as Type;
                if (sender.IsChecked)
                {
                    foreach (MyGuiControlCheckbox chb in s_groupList)
                    {
                        if (chb != sender)
                        {
                            chb.IsChecked = false;
                        }
                    }
                    var newScreen = (MyGuiScreenBase)Activator.CreateInstance(senderScreenType);
                    newScreen.Closed += (source) =>
                    {
                        if (source == s_activeScreen)
                        {
                            s_activeScreen = null;
                        }
                    };
                    MyGuiSandbox.AddScreen(newScreen);
                    s_activeScreen = newScreen;
                }
                else if (s_activeScreen != null && s_activeScreen.GetType() == senderScreenType)
                {
                    s_activeScreen.CloseScreen();
                }
            };
        }
Exemple #30
0
        void OnPlayButtonClick(MyGuiControlButton sender)
        {
            string bonesArea = "";

            foreach (var control in Controls)
            {
                if (control is MyGuiControlCheckbox)
                {
                    MyGuiControlCheckbox chb = control as MyGuiControlCheckbox;
                    if (chb.IsChecked && chb.UserData != null)
                    {
                        bonesArea += " " + chb.UserData;
                    }
                }
            }

            MySession.LocalCharacter.PlayCharacterAnimation(
                m_animationCombo.GetSelectedValue().ToString(),
                MyBlendOption.Immediate,
                m_loopCheckbox.IsChecked ? MyFrameOption.Loop : MyFrameOption.None,
                m_blendSlider.Value
                );
        }