Esempio n. 1
0
        private void FillRight(MyGps ins)
        {
            UnhookSyncEvents();
            m_panelInsName.SetText(new StringBuilder(ins.Name));
            m_panelInsDesc.SetText(new StringBuilder(ins.Description));
            //m_textInsDesc
            m_xCoord.SetText(new StringBuilder(ins.Coords.X.ToString("F2", System.Globalization.CultureInfo.InvariantCulture)));
            m_yCoord.SetText(new StringBuilder(ins.Coords.Y.ToString("F2", System.Globalization.CultureInfo.InvariantCulture)));
            m_zCoord.SetText(new StringBuilder(ins.Coords.Z.ToString("F2", System.Globalization.CultureInfo.InvariantCulture)));
            m_checkInsShowOnHud.IsCheckedChanged     -= OnShowOnHudChecked;
            m_checkInsShowOnHud.IsChecked             = ins.ShowOnHud;
            m_checkInsShowOnHud.IsCheckedChanged     += OnShowOnHudChecked;
            m_checkInsAlwaysVisible.IsCheckedChanged -= OnAlwaysVisibleChecked;
            m_checkInsAlwaysVisible.IsChecked         = ins.AlwaysVisible;
            m_checkInsAlwaysVisible.IsCheckedChanged += OnAlwaysVisibleChecked;
            m_previousHash = ins.Hash;
            HookSyncEvents();
            m_needsSyncName = false;
            m_needsSyncDesc = false;
            m_needsSyncX    = false;
            m_needsSyncY    = false;
            m_needsSyncZ    = false;

            m_panelInsName.ColorMask = Vector4.One;
            m_xCoord.ColorMask       = Vector4.One;
            m_yCoord.ColorMask       = Vector4.One;
            m_zCoord.ColorMask       = Vector4.One;
            m_nameOk = m_xOk = m_yOk = m_zOk = true;
            updateWarningLabel();
        }
 protected void FillRight()
 {
     if (m_scenarioTable == null || m_scenarioTable.SelectedRow == null)
     {
         m_nameTextbox.SetText(new StringBuilder(""));
         m_descriptionTextbox.SetText(new StringBuilder(""));
     }
     else
     {
         Tuple <string, MyWorldInfo> t = FindSave(m_scenarioTable.SelectedRow);
         m_nameTextbox.SetText(new StringBuilder(MyTexts.GetString(t.Item2.SessionName))); // translation of session name
         m_descriptionTextbox.SetText(new StringBuilder(t.Item2.Description));
         m_descriptionBox.Text = new StringBuilder(MyTexts.GetString(t.Item2.Briefing));   // translation of checkpoint briefing
     }
 }
 /*void OnTableItemConfirmedOrDoubleClick(MyGuiControlTable sender, MyGuiControlTable.EventArgs eventArgs)
  * {
  *  LoadSandbox();
  * }*/
 void FillRight()
 {
     if (m_scenarioTable == null || m_scenarioTable.SelectedRow == null)
     {
         m_nameTextbox.SetText(new StringBuilder(""));
         m_descriptionTextbox.SetText(new StringBuilder(""));
     }
     else
     {
         Tuple <string, MyWorldInfo> t = FindSave(m_scenarioTable.SelectedRow);
         m_nameTextbox.SetText(new StringBuilder(t.Item2.SessionName));
         m_descriptionTextbox.SetText(new StringBuilder(t.Item2.Description));
         m_descriptionBox.Text = new StringBuilder(t.Item2.Briefing);
     }
 }
Esempio n. 4
0
        private void DeleteTriggerOnClick(MyGuiControlButton myGuiControlButton)
        {
            if (m_triggerManipulator.SelectedTrigger == null)
            {
                return;
            }

            // Remove the trigger component from entity container
            m_triggerManipulator.SelectedTrigger.Entity.Components.Remove(typeof(MyTriggerAggregate), m_triggerManipulator.SelectedTrigger);
            // Remove the trigger
            m_triggerManipulator.SelectedTrigger = null;
            // Remove the trigger from gui
            m_helperStringBuilder.Clear();
            m_selectedEntityNameBox.SetText(m_helperStringBuilder);
        }
Esempio n. 5
0
        private void TransformSysOnRayCasted(LineD ray)
        {
            if (m_transformSys.ControlledEntity == null || m_disablePicking)
            {
                return;
            }
            // If the entity was a grid, try picking a functional block
            m_selectedFunctionalBlock = null;
            var grid = m_transformSys.ControlledEntity as MyCubeGrid;

            if (grid != null)
            {
                var blockPosition = grid.RayCastBlocks(ray.From, ray.To);

                if (blockPosition.HasValue)
                {
                    var block = grid.GetCubeBlock(blockPosition.Value);
                    if (block.FatBlock != null)
                    {
                        m_selectedFunctionalBlock = block.FatBlock;
                    }
                }
            }

            // Refresh Gui data
            m_helperStringBuilder.Clear();
            if (m_selectedFunctionalBlock != null)
            {
                // Show display name when name is empty
                m_helperStringBuilder
                .Append(string.IsNullOrEmpty(m_selectedFunctionalBlock.Name) ? m_selectedFunctionalBlock.DisplayNameText : m_selectedFunctionalBlock.Name);
            }

            m_selectedFunctionalBlockNameBox.SetText(m_helperStringBuilder);
        }
        private void SendMessageFromChatTextBox()
        {
            m_chatTextbox.GetText(m_editBoxStringBuilder.Clear());
            string message = m_editBoxStringBuilder.ToString();

            SendChatMessage(message);

            m_chatTextbox.SetText(m_editBoxStringBuilder.Clear());
        }
Esempio n. 7
0
        /// <summary>
        /// Adds the property for naming formats to the textBox
        /// </summary>
        /// <param name="textBox">TextBox</param>
        /// <param name="property">Property</param>
        /// <returns>The resulting text in the text box</returns>
        private string AddNameProperty(MyGuiControlTextbox textBox, string property)
        {
            var sb = new StringBuilder();

            textBox.GetText(sb);
            sb.Append("[" + property + "]");
            textBox.SetText(sb);

            return(sb.ToString());
        }
        void m_chatbox_TextChanged(MyGuiControlTextbox obj)
        {
            m_chatboxText.Clear();
            obj.GetText(m_chatboxText);
            if (m_chatboxText.Length == 0)
            {
                m_sendButton.Enabled = false;
            }
            else
            {
                if (MySession.Static.LocalCharacter != null)
                {
                    m_sendButton.Enabled = true;
                }

                if (m_chatboxText.Length > MyChatConstants.MAX_CHAT_STRING_LENGTH)
                {
                    m_chatboxText.Length = MyChatConstants.MAX_CHAT_STRING_LENGTH;
                    m_chatbox.SetText(m_chatboxText);
                }
            }
        }
Esempio n. 9
0
        private void TriggersListBoxOnItemDoubleClicked(MyGuiControlListbox listBox)
        {
            if (listBox.SelectedItems.Count == 0)
            {
                return;
            }

            // Set the selected trigger to the selected one
            var item    = listBox.SelectedItems[0];
            var trigger = (MyAreaTriggerComponent)item.UserData;

            m_triggerManipulator.SelectedTrigger = trigger;
            // Reset the GUI data
            if (m_triggerManipulator.SelectedTrigger != null)
            {
                var areaTrigger = (MyAreaTriggerComponent)m_triggerManipulator.SelectedTrigger;

                // Set textbox Text ... not the easy way....
                m_helperStringBuilder.Clear();
                m_helperStringBuilder.Append(areaTrigger.Name);
                m_selectedTriggerNameBox.SetText(m_helperStringBuilder);
            }
        }
        private void RenameSelectedEntityOnClick(MyGuiControlButton myGuiControlButton)
        {
            if (m_transformSys.ControlledEntity == null)
            {
                return;
            }

            // Disable picking
            m_disablePicking = true;
            m_transformSys.DisablePicking = true;

            // Rename dialog
            var selectedEntity = m_transformSys.ControlledEntity;
            var dialog         = new ValueGetScreenWithCaption("Entity Rename: " + m_transformSys.ControlledEntity.DisplayNameText,
                                                               "",
                                                               delegate(string text)
            {
                MyEntity e;
                if (MyEntities.TryGetEntityByName(text, out e))
                {
                    return(false);
                }

                selectedEntity.Name = text;
                MyEntities.SetEntityName(selectedEntity, true);

                m_helperStringBuilder.Clear().Append(text);
                m_selectedEntityNameBox.SetText(m_helperStringBuilder);
                return(true);
            });

            // Enable picking
            dialog.Closed += source => { m_disablePicking = false; m_transformSys.DisablePicking = false; };

            MyGuiSandbox.AddScreen(dialog);
        }
Esempio n. 11
0
        public MyGuiScreenTriggerBlockDestroyed(MyTrigger trig) : base(trig, new Vector2(0.5f, 0.8f))
        {
            trigger = (MyTriggerBlockDestroyed)trig;
            AddCaption(MySpaceTexts.GuiTriggerCaptionBlockDestroyed);

            var layout = new MyLayoutTable(this);

            layout.SetColumnWidthsNormalized(10, 30, 3, 30, 10);
            layout.SetRowHeightsNormalized(20, 35, 6, 4, 4, 5, 33);

            m_selectedBlocks = new MyGuiControlTable();
            m_selectedBlocks.VisibleRowsCount = 8;
            m_selectedBlocks.ColumnsCount     = 1;
            m_selectedBlocks.SetCustomColumnWidths(new float[] { 1 });
            m_selectedBlocks.SetColumnName(0, MyTexts.Get(MySpaceTexts.GuiTriggerBlockDestroyed_ColumnName));

            layout.AddWithSize(m_selectedBlocks, MyAlignH.Left, MyAlignV.Top, 1, 1, rowSpan: 1, colSpan: 3);

            m_buttonPaste = new MyGuiControlButton(
                text: MyTexts.Get(MySpaceTexts.GuiTriggerPasteBlocks),
                visualStyle: MyGuiControlButtonStyleEnum.Rectangular,
                onButtonClick: OnPasteButtonClick
                );
            m_buttonPaste.SetToolTip(MySpaceTexts.GuiTriggerPasteBlocksTooltip);
            layout.AddWithSize(m_buttonPaste, MyAlignH.Left, MyAlignV.Top, 2, 1, rowSpan: 1, colSpan: 1);

            m_buttonDelete = new MyGuiControlButton(
                text: MyTexts.Get(MySpaceTexts.GuiTriggerDeleteBlocks),
                visualStyle: MyGuiControlButtonStyleEnum.Rectangular,
                onButtonClick: OnDeleteButtonClick);
            layout.AddWithSize(m_buttonDelete, MyAlignH.Left, MyAlignV.Top, 2, 3, rowSpan: 1, colSpan: 1);

            m_labelSingleMessage = new MyGuiControlLabel(
                text: MyTexts.Get(MySpaceTexts.GuiTriggerBlockDestroyedSingleMessage).ToString()
                );
            layout.AddWithSize(m_labelSingleMessage, MyAlignH.Left, MyAlignV.Top, 3, 1, rowSpan: 1, colSpan: 1);
            m_textboxSingleMessage = new MyGuiControlTextbox(
                defaultText: trigger.SingleMessage,
                maxLength: 85);
            layout.AddWithSize(m_textboxSingleMessage, MyAlignH.Left, MyAlignV.Top, 4, 1, rowSpan: 1, colSpan: 3);

            foreach (var block in trigger.Blocks)
            {
                AddRow(block.Key);
            }
            m_tempSb.Clear().Append(trigger.SingleMessage);
            m_textboxSingleMessage.SetText(m_tempSb);
        }
Esempio n. 12
0
        protected override void OnUpdateVisual()
        {
            base.OnUpdateVisual();
            var first = FirstBlock;

            if (first != null)
            {
                StringBuilder newText = GetValue(first);
                if (!m_textbox.TextEquals(newText))
                {
                    m_textbox.TextChanged -= m_textChanged;
                    m_textbox.SetText(newText);
                    m_textbox.TextChanged += m_textChanged;
                }
            }
        }
        public void Init(IMyGuiControlsParent controlsParent)
        {
            m_playerList  = (MyGuiControlListbox)controlsParent.Controls.GetControlByName("PlayerListbox");
            m_factionList = (MyGuiControlListbox)controlsParent.Controls.GetControlByName("FactionListbox");

            m_chatHistory = (MyGuiControlMultilineText)controlsParent.Controls.GetControlByName("ChatHistory");
            m_chatbox     = (MyGuiControlTextbox)controlsParent.Controls.GetControlByName("Chatbox");

            m_playerList.ItemsSelected += m_playerList_ItemsSelected;
            m_playerList.MultiSelect    = false;

            m_factionList.ItemsSelected += m_factionList_ItemsSelected;
            m_factionList.MultiSelect    = false;

            m_sendButton = (MyGuiControlButton)controlsParent.Controls.GetControlByName("SendButton");
            m_sendButton.ButtonClicked += m_sendButton_ButtonClicked;

            m_chatbox.TextChanged  += m_chatbox_TextChanged;
            m_chatbox.EnterPressed += m_chatbox_EnterPressed;

            if (MySession.Static.LocalCharacter != null)
            {
                MySession.Static.ChatSystem.PlayerMessageReceived  += MyChatSystem_PlayerMessageReceived;
                MySession.Static.ChatSystem.FactionMessageReceived += MyChatSystem_FactionMessageReceived;
                MySession.Static.ChatSystem.GlobalMessageReceived  += MyChatSystem_GlobalMessageReceived;

                MySession.Static.ChatSystem.FactionHistoryDeleted += ChatSystem_FactionHistoryDeleted;
                MySession.Static.ChatSystem.PlayerHistoryDeleted  += ChatSystem_PlayerHistoryDeleted;
            }

            MySession.Static.Players.PlayersChanged += Players_PlayersChanged;

            RefreshLists();

            m_chatbox.SetText(m_emptyText);
            m_sendButton.Enabled = false;

            if (MyMultiplayer.Static != null)
            {
                MyMultiplayer.Static.ChatMessageReceived += Multiplayer_ChatMessageReceived;
            }


            m_closed = false;
        }
Esempio n. 14
0
        /// <summary>
        /// Loads the global settings and reflects them in gui
        /// </summary>
        private void LoadSettings()
        {
            foreach (var moon in MySettings.Static.Settings.MoonDefinitions)
            {
                var row = new MyGuiControlTable.Row(moon);
                row.AddCell(new MyGuiControlTable.Cell(moon));

                m_moonDefsTable.Add(row);
            }
            foreach (var gasGiant in MySettings.Static.Settings.GasGiantDefinitions)
            {
                var row = new MyGuiControlTable.Row(gasGiant);
                row.AddCell(new MyGuiControlTable.Cell(gasGiant));

                m_gasGiantsDefsTable.Add(row);
            }
            foreach (var sun in MySettings.Static.Settings.SunDefinitions)
            {
                var row = new MyGuiControlTable.Row(sun);
                row.AddCell(new MyGuiControlTable.Cell(sun));

                m_sunDefsTable.Add(row);
            }
            foreach (var mandatory in MySettings.Static.Settings.MandatoryPlanetDefinitions)
            {
                var row = new MyGuiControlTable.Row(mandatory);
                row.AddCell(new MyGuiControlTable.Cell(mandatory));

                m_mandatoryDefsTable.Add(row);
            }
            foreach (var blacklisted in MySettings.Static.Settings.BlacklistedPlanetDefinitions)
            {
                var row = new MyGuiControlTable.Row(blacklisted);
                row.AddCell(new MyGuiControlTable.Cell(blacklisted));

                m_blacklistDefsTable.Add(row);
            }
            m_planetNameBox.SetText(new StringBuilder(MySettings.Static.Settings.PlanetNameFormat));
            m_moonNameBox.SetText(new StringBuilder(MySettings.Static.Settings.MoonNameFormat));
            m_beltNameBox.SetText(new StringBuilder(MySettings.Static.Settings.BeltNameFormat));
        }
        /// <summary>
        /// Refresh the controls and regenerate gui elements
        /// </summary>
        /// <param name="constructor">Is run from constructor</param>
        public override void RecreateControls(bool constructor)
        {
            base.RecreateControls(constructor);

            MyGuiControlLabel caption = new MyGuiControlLabel(null, null, m_caption);

            caption.OriginAlign = VRage.Utils.MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_TOP;
            caption.Position    = new Vector2(0, Size.Value.Y / -2 + PADDING.Y);

            Controls.Add(caption);

            MyGuiControlParentTableLayout table = new MyGuiControlParentTableLayout(6, true, PADDING);

            table.AddTableSeparator();

            m_xBox = new MyGuiControlTextbox(type: MyGuiControlTextboxType.DigitsOnly);
            m_yBox = new MyGuiControlTextbox(type: MyGuiControlTextboxType.DigitsOnly);
            m_zBox = new MyGuiControlTextbox(type: MyGuiControlTextboxType.DigitsOnly);

            m_xBox.Size = new Vector2(0.1f, m_xBox.Size.Y);
            m_yBox.Size = new Vector2(0.1f, m_yBox.Size.Y);
            m_zBox.Size = new Vector2(0.1f, m_zBox.Size.Y);

            m_xBox.SetText(new StringBuilder("0"));
            m_yBox.SetText(new StringBuilder("0"));
            m_zBox.SetText(new StringBuilder("0"));

            table.AddTableRow(new MyGuiControlLabel(text: "X:"), m_xBox, new MyGuiControlLabel(text: "Y:"), m_yBox, new MyGuiControlLabel(text: "Z:"), m_zBox);

            table.AddTableSeparator();

            table.ApplyRows();

            table.Position    = new Vector2(0, caption.Position.Y + caption.Size.Y + PADDING.Y);
            table.OriginAlign = VRage.Utils.MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_TOP;

            Controls.Add(table);

            m_okButton                = new MyGuiControlButton();
            m_okButton.Text           = MyCommonTexts.Ok.ToString();
            m_okButton.OriginAlign    = VRage.Utils.MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_BOTTOM;
            m_okButton.Position       = new Vector2(-PADDING.X, Size.Value.Y / 2 - PADDING.Y);
            m_okButton.ButtonClicked += delegate
            {
                var    xb = new StringBuilder();
                var    yb = new StringBuilder();
                var    zb = new StringBuilder();
                double x  = 0;
                double y  = 0;
                double z  = 0;
                m_xBox.GetText(xb);
                m_yBox.GetText(yb);
                m_zBox.GetText(zb);
                if (double.TryParse(xb.ToString(), out x) && double.TryParse(yb.ToString(), out y) && double.TryParse(zb.ToString(), out z))
                {
                    OnConfirmed?.Invoke(new Vector3D(x, y, z));
                    CloseScreen();
                }
                else
                {
                    m_errorLabel.Visible = true;
                }
            };

            m_cancelButton                = new MyGuiControlButton();
            m_cancelButton.Text           = MyCommonTexts.Cancel.ToString();
            m_cancelButton.OriginAlign    = VRage.Utils.MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_BOTTOM;
            m_cancelButton.Position       = new Vector2(PADDING.X, Size.Value.Y / 2 - PADDING.Y);
            m_cancelButton.ButtonClicked += delegate
            {
                CloseScreen();
            };

            Controls.Add(m_okButton);
            Controls.Add(m_cancelButton);


            m_errorLabel             = new MyGuiControlLabel(null, null, "Those are not valid coordinates.", font: "Red");
            m_errorLabel.OriginAlign = VRage.Utils.MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP;
            m_errorLabel.Position    = new Vector2(Size.Value.X / -2 + PADDING.X, m_xBox.Position.Y + m_xBox.Size.Y);
            m_errorLabel.Visible     = false;

            Controls.Add(m_errorLabel);
        }
        /// <summary>
        /// Runs on click of the parent item box. Sets the ranges for the sliders and resets the values.
        /// </summary>
        /// <param name="box">The listbox which calls this method on item clicked</param>
        private void OnParentItemClicked(MyGuiControlListbox box)
        {
            if (box.SelectedItems.Count > 0)
            {
                m_spawnRingButton.Enabled     = true;
                m_zoomInButton.Enabled        = m_snapToParent;
                m_offsetToCoordButton.Enabled = false;
                m_offset = Vector3D.Zero;

                var parent   = box.SelectedItems[box.SelectedItems.Count - 1].UserData as MySystemObject;
                var settings = MySettingsSession.Static.Settings.GeneratorSettings;

                if (parent == m_fetchedStarSytem.CenterObject)
                {
                    m_radiusSlider.MinValue = settings.MinMaxOrbitDistance.Min / 1000;
                    m_radiusSlider.MaxValue = settings.WorldSize < 0 ? int.MaxValue / 1000 : settings.WorldSize / 1000;
                    m_radiusSlider.Value    = m_radiusSlider.MinValue + (m_radiusSlider.MaxValue - m_radiusSlider.MinValue) / 2;
                    m_radiusSlider.Enabled  = true;

                    m_widthSlider.MinValue = settings.MinMaxOrbitDistance.Min / 2000;
                    m_widthSlider.MaxValue = settings.MinMaxOrbitDistance.Max / 1000;
                    m_widthSlider.Value    = m_widthSlider.MinValue + (m_widthSlider.MaxValue - m_widthSlider.MinValue) / 2;
                    m_widthSlider.Enabled  = true;

                    m_heightSlider.MinValue = m_widthSlider.MinValue / 10;
                    m_heightSlider.MaxValue = m_widthSlider.MaxValue / 10;
                    m_heightSlider.Value    = m_heightSlider.MinValue + (m_heightSlider.MaxValue - m_heightSlider.MinValue) / 2;
                    m_heightSlider.Enabled  = true;

                    m_asteroidSizesSlider.Enabled = true;
                    m_asteroidSizesSlider.SetValues(32, 1024);

                    m_angleXSlider.Enabled = true;
                    m_angleXSlider.Value   = 0;
                    m_angleYSlider.Enabled = true;
                    m_angleYSlider.Value   = 0;
                    m_angleZSlider.Enabled = true;
                    m_angleZSlider.Value   = 0;

                    m_offsetToCoordButton.Enabled = true;

                    if (m_snapToParent)
                    {
                        m_parentScreen.CameraLookAt(Vector3D.Zero, new Vector3D(0, 0, m_radiusSlider.Value * 2000));
                    }
                    UpdateRingVisual(GenerateAsteroidRing());
                    return;
                }

                if (parent.Type != MySystemObjectType.PLANET && parent.Type != MySystemObjectType.MOON)
                {
                    return;
                }
                var planet = parent as MySystemPlanet;

                m_radiusSlider.MinValue = (int)planet.Diameter / 1000 * 0.75f;
                m_radiusSlider.MaxValue = (int)planet.Diameter / 1000 * 2f;
                m_radiusSlider.Value    = m_radiusSlider.MinValue + (m_radiusSlider.MaxValue - m_radiusSlider.MinValue) / 2;
                m_radiusSlider.Enabled  = true;

                m_widthSlider.MinValue = (int)planet.Diameter / 1000 / 20f;
                m_widthSlider.MaxValue = (int)planet.Diameter / 1000 / 1.25f;
                m_widthSlider.Value    = m_widthSlider.MinValue + (m_widthSlider.MaxValue - m_widthSlider.MinValue) / 2;
                m_widthSlider.Enabled  = true;

                m_heightSlider.MinValue = m_widthSlider.MinValue / 10;
                m_heightSlider.MaxValue = m_widthSlider.MaxValue / 10;
                m_heightSlider.Value    = m_heightSlider.MinValue + (m_heightSlider.MaxValue - m_heightSlider.MinValue) / 2;
                m_heightSlider.Enabled  = true;

                m_asteroidSizesSlider.Enabled = true;
                m_asteroidSizesSlider.SetValues(32, 1024);

                m_angleXSlider.Enabled = true;
                m_angleXSlider.Value   = 0;
                m_angleYSlider.Enabled = true;
                m_angleYSlider.Value   = 0;
                m_angleZSlider.Enabled = true;
                m_angleZSlider.Value   = 0;

                m_nameBox.SetText(new StringBuilder(""));

                if (m_snapToParent)
                {
                    m_parentScreen.CameraLookAt(planet.CenterPosition, (float)planet.Diameter * 2f);
                }
                UpdateRingVisual(GenerateAsteroidRing());
            }
            else
            {
                m_radiusSlider.Enabled        = false;
                m_widthSlider.Enabled         = false;
                m_heightSlider.Enabled        = false;
                m_asteroidSizesSlider.Enabled = false;
                m_angleXSlider.Enabled        = false;
                m_angleYSlider.Enabled        = false;
                m_angleZSlider.Enabled        = false;
                m_spawnRingButton.Enabled     = false;
            }
        }
        private void TransformSysOnRayCasted(LineD ray)
        {
            if (m_transformSys.ControlledEntity == null || m_disablePicking)
            {
                return;
            }

            if (m_selectedFunctionalBlock != null)
            {
                // Disable highlight on block
                var highlightSystem = MySession.Static.GetComponent <MyHighlightSystem>();
                if (highlightSystem != null)
                {
                    highlightSystem.RequestHighlightChange(new MyHighlightSystem.MyHighlightData
                    {
                        EntityId  = m_selectedFunctionalBlock.EntityId,
                        PlayerId  = -1,
                        Thickness = -1
                    });
                }

                m_selectedFunctionalBlock = null;
            }
            // If the entity was a grid, try picking a functional block
            var grid = m_transformSys.ControlledEntity as MyCubeGrid;

            if (grid != null)
            {
                var blockPosition = grid.RayCastBlocks(ray.From, ray.To);

                if (blockPosition.HasValue)
                {
                    var block = grid.GetCubeBlock(blockPosition.Value);
                    if (block.FatBlock != null)
                    {
                        m_selectedFunctionalBlock = block.FatBlock;
                    }
                }
            }

            // Refresh Gui data
            m_helperStringBuilder.Clear();
            if (m_selectedFunctionalBlock != null)
            {
                // Show display name when name is empty
                m_helperStringBuilder
                .Append(string.IsNullOrEmpty(m_selectedFunctionalBlock.Name) ? m_selectedFunctionalBlock.DisplayNameText : m_selectedFunctionalBlock.Name);

                // Enable highlight on block
                var highlightSystem = MySession.Static.GetComponent <MyHighlightSystem>();
                if (highlightSystem != null)
                {
                    highlightSystem.RequestHighlightChange(new MyHighlightSystem.MyHighlightData
                    {
                        EntityId            = m_selectedFunctionalBlock.EntityId,
                        IgnoreUseObjectData = true,
                        OutlineColor        = Color.Blue,
                        PulseTimeInFrames   = 120,
                        Thickness           = 3,
                        PlayerId            = -1
                    });
                }
            }

            m_selectedFunctionalBlockNameBox.SetText(m_helperStringBuilder);
        }