private void BuildRingMenu() { ClearControls(); Vector2 controlPadding = new Vector2(0.02f, 0.02f); float num = SCREEN_SIZE.X - HIDDEN_PART_RIGHT - controlPadding.X * 2f; BuildPluginMenuHeader(); MyGuiControlLabel listBoxLabel = new MyGuiControlLabel { Position = new Vector2(-0.153f, -0.334f), OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP, Text = "List of Planets" }; MyGuiControlPanel listBoxLabelBg = new MyGuiControlPanel(new Vector2(listBoxLabel.PositionX - 0.0085f, listBoxLabel.Position.Y - 0.005f), new Vector2(0.2865f, 0.035f), null, null, null, MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP) { BackgroundTexture = MyGuiConstants.TEXTURE_RECTANGLE_DARK_BORDER }; Controls.Add(listBoxLabelBg); Controls.Add(listBoxLabel); m_currentPosition.Y += 0.020f; m_planetListBox = new MyGuiControlListbox(Vector2.Zero, VRage.Game.MyGuiControlListboxStyleEnum.Blueprints); m_planetListBox.Size = new Vector2(num, 0f); m_planetListBox.Enabled = true; m_planetListBox.VisibleRowsCount = 8; m_planetListBox.Position = m_planetListBox.Size / 2f + m_currentPosition; m_planetListBox.ItemClicked += PlanetListItemClicked; m_planetListBox.MultiSelect = false; MyGuiControlSeparatorList separator = new MyGuiControlSeparatorList(); separator.AddHorizontal(new Vector2(0f, 0f) - new Vector2(m_size.Value.X * 0.83f / 2f, -0.00f), m_size.Value.X * 0.73f); Controls.Add(separator); m_currentPosition = m_planetListBox.GetPositionAbsoluteBottomLeft(); m_currentPosition.Y += 0.045f; MyGuiControlParent myGuiControlParent = new MyGuiControlParent { OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP, Position = Vector2.Zero, Size = new Vector2(0.32f, 0.56f) }; MyGuiControlScrollablePanel m_optionsGroup = new MyGuiControlScrollablePanel(myGuiControlParent) { OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP, Position = m_currentPosition, Size = new Vector2(0.32f, 0.32f) }; m_optionsGroup.ScrollbarVEnabled = true; m_optionsGroup.ScrollBarOffset = new Vector2(-0.01f, 0f); Controls.Add(m_optionsGroup); Vector2 vector = -myGuiControlParent.Size * 0.5f; MyGuiControlLabel ringDistLabel = new MyGuiControlLabel { Position = vector + new Vector2(0.001f, 0f), OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP, Text = "Ring distance" }; myGuiControlParent.Controls.Add(ringDistLabel); m_ringDistanceValue = new MyGuiControlLabel { Position = vector + new Vector2(0.285f, 0f), OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_TOP, Text = "0" }; myGuiControlParent.Controls.Add(m_ringDistanceValue); vector.Y += 0.025f; m_ringDistanceSlider = new MyGuiControlClickableSlider(vector + new Vector2(0.001f, 0f), 5000f, 1000000f, intValue: true, toolTip: MyPluginTexts.TOOLTIPS.ADMIN_RING_DISTANCE, showLabel: false);//Make dynamic m_ringDistanceSlider.Size = new Vector2(0.285f, 1f); m_ringDistanceSlider.DefaultValue = 100000; m_ringDistanceSlider.Value = m_ringDistanceSlider.DefaultValue.Value; m_ringDistanceSlider.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP; m_ringDistanceSlider.ValueChanged = (Action <MyGuiControlSlider>) Delegate.Combine(m_ringDistanceSlider.ValueChanged, (Action <MyGuiControlSlider>) delegate(MyGuiControlSlider s) { UpdateRingVisual(); m_ringDistanceValue.Text = s.Value.ToString(); }); m_ringDistanceValue.Text = m_ringDistanceSlider.Value.ToString(); myGuiControlParent.Controls.Add(m_ringDistanceSlider); vector.Y += 0.055f; MyGuiControlLabel ringWidthLabel = new MyGuiControlLabel { Position = vector + new Vector2(0.001f, 0f), OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP, Text = "Ring width" }; myGuiControlParent.Controls.Add(ringWidthLabel); m_ringWidthValue = new MyGuiControlLabel { Position = vector + new Vector2(0.285f, 0f), OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_TOP, Text = "0" }; myGuiControlParent.Controls.Add(m_ringWidthValue); vector.Y += 0.025f; m_ringWidthSlider = new MyGuiControlClickableSlider(vector + new Vector2(0.001f, 0f), SettingsSession.Static.Settings.GeneratorSettings.PlanetSettings.RingSettings.MinPlanetRingWidth, SettingsSession.Static.Settings.GeneratorSettings.PlanetSettings.RingSettings.MaxPlanetRingWidth, intValue: true, toolTip: MyPluginTexts.TOOLTIPS.ADMIN_RING_WIDTH, showLabel: false); m_ringWidthSlider.Size = new Vector2(0.285f, 1f); m_ringWidthSlider.DefaultValue = (SettingsSession.Static.Settings.GeneratorSettings.PlanetSettings.RingSettings.MinPlanetRingWidth + SettingsSession.Static.Settings.GeneratorSettings.PlanetSettings.RingSettings.MaxPlanetRingWidth) / 2; m_ringWidthSlider.Value = m_ringWidthSlider.DefaultValue.Value; m_ringWidthSlider.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP; m_ringWidthSlider.ValueChanged = (Action <MyGuiControlSlider>) Delegate.Combine(m_ringWidthSlider.ValueChanged, (Action <MyGuiControlSlider>) delegate(MyGuiControlSlider s) { UpdateRingVisual(); m_ringWidthValue.Text = s.Value.ToString(); }); m_ringWidthValue.Text = m_ringWidthSlider.Value.ToString(); myGuiControlParent.Controls.Add(m_ringWidthSlider); vector.Y += 0.055f; MyGuiControlLabel ringAngleXLabel = new MyGuiControlLabel { Position = vector + new Vector2(0.001f, 0f), OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP, Text = "Ring angle X" }; myGuiControlParent.Controls.Add(ringAngleXLabel); m_ringAngleXValue = new MyGuiControlLabel { Position = vector + new Vector2(0.285f, 0f), OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_TOP, Text = "0.00" }; myGuiControlParent.Controls.Add(m_ringAngleXValue); vector.Y += 0.025f; m_ringAngleXSlider = new MyGuiControlClickableSlider(vector + new Vector2(0.001f, 0f), -90, 90, intValue: false, toolTip: MyPluginTexts.TOOLTIPS.ADMIN_RING_ANGLE); m_ringAngleXSlider.Size = new Vector2(0.285f, 1f); m_ringAngleXSlider.DefaultValue = 0; m_ringAngleXSlider.Value = m_ringAngleXSlider.DefaultValue.Value; m_ringAngleXSlider.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP; m_ringAngleXSlider.ValueChanged = (Action <MyGuiControlSlider>) Delegate.Combine(m_ringAngleXSlider.ValueChanged, (Action <MyGuiControlSlider>) delegate(MyGuiControlSlider s) { UpdateRingVisual(); m_ringAngleXValue.Text = String.Format("{0:0.00}", s.Value); }); m_ringAngleXValue.Text = String.Format("{0:0.00}", m_ringAngleXSlider.Value); myGuiControlParent.Controls.Add(m_ringAngleXSlider); vector.Y += 0.055f; MyGuiControlLabel ringAngleYLabel = new MyGuiControlLabel { Position = vector + new Vector2(0.001f, 0f), OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP, Text = "Ring angle Y" }; myGuiControlParent.Controls.Add(ringAngleYLabel); m_ringAngleYValue = new MyGuiControlLabel { Position = vector + new Vector2(0.285f, 0f), OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_TOP, Text = "0.00" }; myGuiControlParent.Controls.Add(m_ringAngleYValue); vector.Y += 0.025f; m_ringAngleYSlider = new MyGuiControlClickableSlider(vector + new Vector2(0.001f, 0f), -90, 90, intValue: false, toolTip: MyPluginTexts.TOOLTIPS.ADMIN_RING_ANGLE); m_ringAngleYSlider.Size = new Vector2(0.285f, 1f); m_ringAngleYSlider.DefaultValue = 0; m_ringAngleYSlider.Value = m_ringAngleYSlider.DefaultValue.Value; m_ringAngleYSlider.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP; m_ringAngleYSlider.ValueChanged = (Action <MyGuiControlSlider>) Delegate.Combine(m_ringAngleYSlider.ValueChanged, (Action <MyGuiControlSlider>) delegate(MyGuiControlSlider s) { UpdateRingVisual(); m_ringAngleYValue.Text = String.Format("{0:0.00}", s.Value); }); m_ringAngleYValue.Text = String.Format("{0:0.00}", m_ringAngleYSlider.Value); myGuiControlParent.Controls.Add(m_ringAngleYSlider); vector.Y += 0.055f; MyGuiControlLabel ringAngleZLabel = new MyGuiControlLabel { Position = vector + new Vector2(0.001f, 0f), OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP, Text = "Ring angle Z" }; myGuiControlParent.Controls.Add(ringAngleZLabel); m_ringAngleZValue = new MyGuiControlLabel { Position = vector + new Vector2(0.285f, 0f), OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_TOP, Text = "0.00" }; myGuiControlParent.Controls.Add(m_ringAngleZValue); vector.Y += 0.025f; m_ringAngleZSlider = new MyGuiControlClickableSlider(vector + new Vector2(0.001f, 0f), -90, 90, intValue: false, toolTip: MyPluginTexts.TOOLTIPS.ADMIN_RING_ANGLE); m_ringAngleZSlider.Size = new Vector2(0.285f, 1f); m_ringAngleZSlider.DefaultValue = 0; m_ringAngleZSlider.Value = m_ringAngleZSlider.DefaultValue.Value; m_ringAngleZSlider.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP; m_ringAngleZSlider.ValueChanged = (Action <MyGuiControlSlider>) Delegate.Combine(m_ringAngleZSlider.ValueChanged, (Action <MyGuiControlSlider>) delegate(MyGuiControlSlider s) { UpdateRingVisual(); m_ringAngleZValue.Text = String.Format("{0:0.00}", s.Value); }); m_ringAngleZValue.Text = String.Format("{0:0.00}", m_ringAngleZSlider.Value); myGuiControlParent.Controls.Add(m_ringAngleZSlider); vector.Y += 0.055f; MyGuiControlLabel ringRoidSizeLabel = new MyGuiControlLabel { Position = vector + new Vector2(0.001f, 0f), OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP, Text = "Asteroid min size" }; myGuiControlParent.Controls.Add(ringRoidSizeLabel); m_ringRoidSizeValue = new MyGuiControlLabel { Position = vector + new Vector2(0.285f, 0f), OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_TOP, Text = "0" }; myGuiControlParent.Controls.Add(m_ringRoidSizeValue); vector.Y += 0.025f; m_ringRoidSizeSlider = new MyGuiControlClickableSlider(vector + new Vector2(0.001f, 0f), 128, 1024, intValue: true, toolTip: MyPluginTexts.TOOLTIPS.ADMIN_RING_ROID_SIZE); m_ringRoidSizeSlider.Size = new Vector2(0.285f, 1f); m_ringRoidSizeSlider.DefaultValue = 128; m_ringRoidSizeSlider.Value = m_ringRoidSizeSlider.DefaultValue.Value; m_ringRoidSizeSlider.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP; m_ringRoidSizeSlider.ValueChanged = (Action <MyGuiControlSlider>) Delegate.Combine(m_ringRoidSizeSlider.ValueChanged, (Action <MyGuiControlSlider>) delegate(MyGuiControlSlider s) { m_ringRoidSizeValue.Text = s.Value.ToString(); if (s.Value > m_ringRoidSizeMaxSlider.Value) { m_ringRoidSizeSlider.Value = m_ringRoidSizeMaxSlider.Value; } }); m_ringRoidSizeValue.Text = m_ringRoidSizeSlider.Value.ToString(); myGuiControlParent.Controls.Add(m_ringRoidSizeSlider); vector.Y += 0.055f; MyGuiControlLabel ringRoidSizeMaxLabel = new MyGuiControlLabel { Position = vector + new Vector2(0.001f, 0f), OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP, Text = "Asteroid max size" }; myGuiControlParent.Controls.Add(ringRoidSizeMaxLabel); m_ringRoidSizeMaxValue = new MyGuiControlLabel { Position = vector + new Vector2(0.285f, 0f), OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_TOP, Text = "0" }; myGuiControlParent.Controls.Add(m_ringRoidSizeMaxValue); vector.Y += 0.025f; m_ringRoidSizeMaxSlider = new MyGuiControlClickableSlider(vector + new Vector2(0.001f, 0f), 128, 1024, intValue: true, toolTip: MyPluginTexts.TOOLTIPS.ADMIN_RING_ROID_SIZE_MAX); m_ringRoidSizeMaxSlider.Size = new Vector2(0.285f, 1f); m_ringRoidSizeMaxSlider.DefaultValue = 1028; m_ringRoidSizeMaxSlider.Value = m_ringRoidSizeSlider.DefaultValue.Value; m_ringRoidSizeMaxSlider.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP; m_ringRoidSizeMaxSlider.ValueChanged = (Action <MyGuiControlSlider>) Delegate.Combine(m_ringRoidSizeMaxSlider.ValueChanged, (Action <MyGuiControlSlider>) delegate(MyGuiControlSlider s) { m_ringRoidSizeMaxValue.Text = s.Value.ToString(); if (s.Value < m_ringRoidSizeSlider.Value) { m_ringRoidSizeMaxSlider.Value = m_ringRoidSizeSlider.Value; } }); m_ringRoidSizeMaxValue.Text = m_ringRoidSizeMaxSlider.Value.ToString(); myGuiControlParent.Controls.Add(m_ringRoidSizeMaxSlider); m_optionsGroup.RefreshInternals(); m_currentPosition.Y += m_optionsGroup.Size.Y; MyGuiControlSeparatorList separator2 = new MyGuiControlSeparatorList(); separator2.AddHorizontal(new Vector2(0f, 0f) - new Vector2(m_size.Value.X * 0.83f / 2f, -0.00f), m_size.Value.X * 0.73f); Controls.Add(separator2); m_addRingButton = CreateDebugButton(0.284f, "Add ring to planet", OnAddRingToPlanetButton, true, MyPluginTexts.TOOLTIPS.ADMIN_ADD_RING_BUTTON); m_currentPosition.Y += 0.003f; m_removeRingButton = CreateDebugButton(0.284f, "Remove ring from planet", OnRemoveRingFromPlanetButton, true, MyPluginTexts.TOOLTIPS.ADMIN_REMOVE_RING_BUTTON); m_currentPosition.Y += 0.003f; m_teleportToRingButton = CreateDebugButton(0.284f, "Teleport to ring", OnTeleportToRingButton, true, MyPluginTexts.TOOLTIPS.ADMIN_TP_RING_BUTTON); m_teleportToRingButton.Enabled = false; Controls.Add(m_planetListBox); m_ringAngleXSlider.Enabled = false; m_ringAngleYSlider.Enabled = false; m_ringAngleZSlider.Enabled = false; m_ringDistanceSlider.Enabled = false; m_ringWidthSlider.Enabled = false; m_ringRoidSizeSlider.Enabled = false; m_addRingButton.Enabled = false; m_removeRingButton.Enabled = false; m_teleportToRingButton.Enabled = false; LoadPlanetsInWorld(); }
private void BuildPlanetMenu() { ClearControls(); Vector2 controlPadding = new Vector2(0.02f, 0.02f); float num = SCREEN_SIZE.X - HIDDEN_PART_RIGHT - controlPadding.X * 2f; float num2 = (SCREEN_SIZE.Y - 1f) / 2f; BuildPluginMenuHeader(); MyGuiControlLabel listBoxLabel = new MyGuiControlLabel { Position = new Vector2(-0.153f, -0.334f), OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP, Text = "List of Planet definitions" }; MyGuiControlPanel listBoxLabelBg = new MyGuiControlPanel(new Vector2(listBoxLabel.PositionX - 0.0085f, listBoxLabel.Position.Y - 0.005f), new Vector2(0.2865f, 0.035f), null, null, null, MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP) { BackgroundTexture = MyGuiConstants.TEXTURE_RECTANGLE_DARK_BORDER }; Controls.Add(listBoxLabelBg); Controls.Add(listBoxLabel); m_currentPosition.Y += 0.020f; m_planetDefListBox = new MyGuiControlListbox(Vector2.Zero, VRage.Game.MyGuiControlListboxStyleEnum.Blueprints); m_planetDefListBox.Size = new Vector2(num, 0f); m_planetDefListBox.Enabled = true; m_planetDefListBox.VisibleRowsCount = 8; m_planetDefListBox.Position = m_planetDefListBox.Size / 2f + m_currentPosition; m_planetDefListBox.ItemClicked += PlanetDefListItemClicked; m_planetDefListBox.MultiSelect = false; MyGuiControlSeparatorList separator = new MyGuiControlSeparatorList(); separator.AddHorizontal(new Vector2(0f, 0f) - new Vector2(m_size.Value.X * 0.83f / 2f, -0.00f), m_size.Value.X * 0.73f); Controls.Add(separator); m_currentPosition = m_planetDefListBox.GetPositionAbsoluteBottomLeft(); m_currentPosition.Y += 0.045f; MyGuiControlLabel planetSizeLabel = new MyGuiControlLabel { Position = m_currentPosition + new Vector2(0.001f, 0f), OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP, Text = "PlanetSize" }; Controls.Add(planetSizeLabel); m_planetSizeValue = new MyGuiControlLabel { Position = m_currentPosition + new Vector2(0.285f, 0f), OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_TOP, Text = "0" }; Controls.Add(m_planetSizeValue); m_currentPosition.Y += 0.025f; m_planetSizeSlider = new MyGuiControlClickableSlider(m_currentPosition + new Vector2(0.001f, 0f), 120f, 2400f, intValue: true, toolTip: MyPluginTexts.TOOLTIPS.ADMIN_PLANET_SIZE); m_planetSizeSlider.Size = new Vector2(0.285f, 1f); m_planetSizeSlider.DefaultValue = 1200f; m_planetSizeSlider.Value = m_planetSizeSlider.DefaultValue.Value; m_planetSizeSlider.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP; m_planetSizeSlider.ValueChanged = (Action <MyGuiControlSlider>) Delegate.Combine(m_planetSizeSlider.ValueChanged, (Action <MyGuiControlSlider>) delegate(MyGuiControlSlider s) { m_planetSizeValue.Text = s.Value.ToString(); }); m_planetSizeValue.Text = m_planetSizeSlider.Value.ToString(); Controls.Add(m_planetSizeSlider); m_currentPosition.Y += 0.055f + 0.035f; m_spawnPlanetButton = CreateDebugButton(0.284f, "Spawn planet", OnSpawnPlanetButton, true, MyPluginTexts.TOOLTIPS.ADMIN_ADD_RING_BUTTON); m_spawnPlanetButton.Enabled = false; Controls.Add(m_planetDefListBox); LoadPlanetDefinitions(); }