public override void RecreateControls(bool contructor) { base.RecreateControls(contructor); this.Controls.Add(new MyGuiControlLabel(new Vector2(0.0f, -0.10f), text: "Select the amount and type of items to spawn in your inventory", originAlign: MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER)); m_amountTextbox = new MyGuiControlTextbox(new Vector2(-0.2f, 0.0f), null, 9, null, MyGuiConstants.DEFAULT_TEXT_SCALE, MyGuiControlTextboxType.DigitsOnly); m_items = new MyGuiControlCombobox(new Vector2(0.2f, 0.0f), new Vector2(0.3f, 0.05f), null, null, 10, null); m_confirmButton = new MyGuiControlButton(new Vector2(0.21f, 0.10f), MyGuiControlButtonStyleEnum.Default, new Vector2(0.2f, 0.05f), null, MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER, null, new System.Text.StringBuilder("Confirm")); m_cancelButton = new MyGuiControlButton(new Vector2(-0.21f, 0.10f), MyGuiControlButtonStyleEnum.Default, new Vector2(0.2f, 0.05f), null, MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER, null, new System.Text.StringBuilder("Cancel")); foreach (var definition in MyDefinitionManager.Static.GetAllDefinitions()) { var physicalItemDef = definition as MyPhysicalItemDefinition; if (physicalItemDef == null || physicalItemDef.CanSpawnFromScreen == false) continue; int key = m_physicalItemDefinitions.Count; m_physicalItemDefinitions.Add(physicalItemDef); m_items.AddItem(key, definition.DisplayNameText); } this.Controls.Add(m_amountTextbox); this.Controls.Add(m_items); this.Controls.Add(m_confirmButton); this.Controls.Add(m_cancelButton); m_amountTextbox.Text = string.Format("{0}", m_lastAmount); m_items.SelectItemByIndex(m_lastSelectedItem); m_confirmButton.ButtonClicked += confirmButton_OnButtonClick; m_cancelButton.ButtonClicked += cancelButton_OnButtonClick; }
protected override void BuildControls() { base.BuildControls(); // Training level { var trainingLabel = MakeLabel(MySpaceTexts.TrainingLevel); trainingLabel.Position = new Vector2(-0.25f, -0.47f + MARGIN_TOP); trainingLabel.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_CENTER; m_trainingLevel = new MyGuiControlCombobox( position: new Vector2(-0.04f, -0.47f + MARGIN_TOP), size: new Vector2(0.2f, trainingLabel.Size.Y), originAlign: MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_CENTER ); m_trainingLevel.AddItem((int)TrainingLevel.BASIC, MySpaceTexts.TrainingLevel_Basic); m_trainingLevel.AddItem((int)TrainingLevel.INTERMEDIATE, MySpaceTexts.TrainingLevel_Intermediate); m_trainingLevel.AddItem((int)TrainingLevel.ADVANCED, MySpaceTexts.TrainingLevel_Advanced); m_trainingLevel.SelectItemByIndex(0); m_trainingLevel.ItemSelected += OnTrainingLevelSelected; Controls.Add(trainingLabel); Controls.Add(m_trainingLevel); } }
public override void RecreateControls(bool constructor) { base.RecreateControls(constructor); BackgroundColor = new Vector4(1f, 1f, 1f, 0.5f); m_currentPosition = -m_size.Value / 2.0f + new Vector2(0.02f, 0.13f); AddCaption("Voxels", Color.Yellow.ToVector4()); AddShareFocusHint(); AddSlider("Max precalc time", 0f, 20f, null, MemberHelper.GetMember(() => MyFakes.MAX_PRECALC_TIME_IN_MILLIS)); AddCheckBox("Enable yielding", null, MemberHelper.GetMember(() => MyFakes.ENABLE_YIELDING_IN_PRECALC_TASK)); m_filesCombo = MakeComboFromFiles(Path.Combine(MyFileSystem.ContentPath, "VoxelMaps")); m_filesCombo.ItemSelected += filesCombo_OnSelect; m_materialsCombo = AddCombo(); foreach (var material in MyDefinitionManager.Static.GetVoxelMaterialDefinitions()) { m_materialsCombo.AddItem(material.Index, new StringBuilder(material.Id.SubtypeName)); } m_materialsCombo.ItemSelected += materialsCombo_OnSelect; m_materialsCombo.SelectItemByIndex(0); AddCombo<MyVoxelDebugDrawMode>(null, MemberHelper.GetMember(() => MyDebugDrawSettings.DEBUG_DRAW_VOXELS_MODE)); AddButton(new StringBuilder("Remove all"), onClick: RemoveAllAsteroids); AddButton(new StringBuilder("Generate render"), onClick: GenerateRender); AddButton(new StringBuilder("Generate physics"), onClick: GeneratePhysics); AddButton(new StringBuilder("Voxelize all"), onClick: ForceVoxelizeAllVoxelMaps); AddButton(new StringBuilder("Resave prefabs"), onClick: ResavePrefabs); AddButton(new StringBuilder("Reset all"), onClick: ResetAll); AddButton(new StringBuilder("Reset part"), onClick: ResetPart); m_currentPosition.Y += 0.01f; AddCheckBox("Geometry cell debug draw", null, MemberHelper.GetMember(() => MyDebugDrawSettings.DEBUG_DRAW_VOXEL_GEOMETRY_CELL)); AddCheckBox("Freeze terrain queries", MyRenderProxy.Settings, MemberHelper.GetMember(() => MyRenderProxy.Settings.FreezeTerrainQueries)); AddCheckBox("Debug render clipmap cells", MyRenderProxy.Settings, MemberHelper.GetMember(() => MyRenderProxy.Settings.DebugRenderClipmapCells)); AddCheckBox("Debug clipmap lod colors", () => MyRenderSettings.DebugClipmapLodColor, (value) => MyRenderSettings.DebugClipmapLodColor = value); AddCheckBox("Enable physics shape discard", null, MemberHelper.GetMember(() => MyFakes.ENABLE_VOXEL_PHYSICS_SHAPE_DISCARDING)); AddCheckBox("Wireframe", MyRenderProxy.Settings, MemberHelper.GetMember(() => MyRenderProxy.Settings.Wireframe)); AddCheckBox("Green background", MyRenderProxy.Settings, MemberHelper.GetMember(() => MyRenderProxy.Settings.ShowGreenBackground)); m_currentPosition.Y += 0.01f; AddSlider("Clipmap highest lod", MyClipmap.DebugClipmapMostDetailedLod, 0f, 15.9f, (slider) => MyClipmap.DebugClipmapMostDetailedLod = slider.Value); m_currentPosition.Y += 0.01f; }
public override void RecreateControls(bool constructor) { base.RecreateControls(constructor); m_currentPosition = -m_size.Value / 2.0f + new Vector2(0.02f, 0.10f); m_currentPosition.Y += 0.01f; m_scale = 0.7f; AddCaption("Audio FX", Color.Yellow.ToVector4()); AddShareFocusHint(); if (MyAudio.Static is MyNullAudio) return; m_categoriesCombo = AddCombo(); List<MyStringId> categories = MyAudio.Static.GetCategories(); m_categoriesCombo.AddItem(0, new StringBuilder(ALL_CATEGORIES)); int catCount = 1; foreach (var category in categories) { m_categoriesCombo.AddItem(catCount++, new StringBuilder(category.ToString()));//jn:TODO get rid of ToString } m_categoriesCombo.SortItemsByValueText(); m_categoriesCombo.ItemSelected += new MyGuiControlCombobox.ItemSelectedDelegate(categoriesCombo_OnSelect); m_cuesCombo = AddCombo(); m_cuesCombo.ItemSelected += new MyGuiControlCombobox.ItemSelectedDelegate(cuesCombo_OnSelect); m_cueVolumeSlider = AddSlider("Volume", 1f, 0f, 1f, null); m_cueVolumeSlider.ValueChanged = CueVolumeChanged; m_applyVolumeToCategory = AddButton(new StringBuilder("Apply to category"), OnApplyVolumeToCategorySelected); m_applyVolumeToCategory.Enabled = false; m_cueVolumeCurveCombo = AddCombo(); foreach (var curveType in Enum.GetValues(typeof(MyCurveType))) { m_cueVolumeCurveCombo.AddItem((int)curveType, new StringBuilder(curveType.ToString())); } m_effects = AddCombo(); m_effects.AddItem(0,new StringBuilder("")); catCount =1; foreach(var effect in MyDefinitionManager.Static.GetAudioEffectDefinitions()) { m_effects.AddItem(catCount++, new StringBuilder(effect.Id.SubtypeName)); } m_effects.SelectItemByIndex(0); m_effects.ItemSelected += effects_ItemSelected; m_cueMaxDistanceSlider = AddSlider("Max distance", 0, 0, 2000, null); m_cueMaxDistanceSlider.ValueChanged = MaxDistanceChanged; m_applyMaxDistanceToCategory = AddButton(new StringBuilder("Apply to category"), OnApplyMaxDistanceToCategorySelected); m_applyMaxDistanceToCategory.Enabled = false; m_cueVolumeVariationSlider = AddSlider("Volume variation", 0, 0, 10, null); m_cueVolumeVariationSlider.ValueChanged = VolumeVariationChanged; m_cuePitchVariationSlider = AddSlider("Pitch variation", 0, 0, 500, null); m_cuePitchVariationSlider.ValueChanged = PitchVariationChanged; m_soloCheckbox = AddCheckBox("Solo", false, null); m_soloCheckbox.IsCheckedChanged = SoloChanged; MyGuiControlButton btn = AddButton(new StringBuilder("Play selected"), OnPlaySelected); btn.CueEnum = GuiSounds.None; AddButton(new StringBuilder("Stop selected"), OnStopSelected); AddButton(new StringBuilder("Save"), OnSave); AddButton(new StringBuilder("Reload"), OnReload); if (m_categoriesCombo.GetItemsCount() > 0) m_categoriesCombo.SelectItemByIndex(0); }
void UdpateCuesCombo(MyGuiControlCombobox box) { box.ClearItems(); long key = 0; foreach (var cue in MyAudio.Static.CueDefinitions) { if ((m_currentCategorySelectedItem == ALL_CATEGORIES) || (m_currentCategorySelectedItem == cue.Category.ToString())) { box.AddItem(key, new StringBuilder(cue.SubtypeId.ToString())); key++; } } box.SortItemsByValueText(); if (box.GetItemsCount() > 0) box.SelectItemByIndex(0); }
public void Init(IMyGuiControlsParent controlsParent, MyCubeGrid grid) { if (grid == null) { ShowError(MySpaceTexts.ScreenTerminalError_ShipNotConnected, controlsParent); return; } grid.RaiseGridChanged(); m_assemblerKeyCounter = 0; m_assemblersByKey.Clear(); foreach (var block in grid.GridSystems.TerminalSystem.Blocks) { var assembler = block as MyAssembler; if (assembler == null) continue; if (!assembler.HasLocalPlayerAccess()) continue; m_assemblersByKey.Add(m_assemblerKeyCounter++, assembler); } m_controlsParent = controlsParent; m_terminalSystem = grid.GridSystems.TerminalSystem; m_blueprintsArea = (MyGuiControlScrollablePanel)controlsParent.Controls.GetControlByName("BlueprintsScrollableArea"); m_queueArea = (MyGuiControlScrollablePanel)controlsParent.Controls.GetControlByName("QueueScrollableArea"); m_inventoryArea = (MyGuiControlScrollablePanel)controlsParent.Controls.GetControlByName("InventoryScrollableArea"); m_blueprintsBgPanel = controlsParent.Controls.GetControlByName("BlueprintsBackgroundPanel"); m_blueprintsLabel = controlsParent.Controls.GetControlByName("BlueprintsLabel"); m_comboboxAssemblers = (MyGuiControlCombobox)controlsParent.Controls.GetControlByName("AssemblersCombobox"); m_blueprintsGrid = (MyGuiControlGrid)m_blueprintsArea.ScrolledControl; m_queueGrid = (MyGuiControlGrid)m_queueArea.ScrolledControl; m_inventoryGrid = (MyGuiControlGrid)m_inventoryArea.ScrolledControl; m_materialsList = (MyGuiControlComponentList)controlsParent.Controls.GetControlByName("MaterialsList"); m_repeatCheckbox = (MyGuiControlCheckbox)controlsParent.Controls.GetControlByName("RepeatCheckbox"); m_slaveCheckbox = (MyGuiControlCheckbox)controlsParent.Controls.GetControlByName("SlaveCheckbox"); m_disassembleAllButton = (MyGuiControlButton)controlsParent.Controls.GetControlByName("DisassembleAllButton"); m_controlPanelButton = (MyGuiControlButton)controlsParent.Controls.GetControlByName("ControlPanelButton"); m_inventoryButton = (MyGuiControlButton)controlsParent.Controls.GetControlByName("InventoryButton"); { var assemblingButton = (MyGuiControlRadioButton)controlsParent.Controls.GetControlByName("AssemblingButton"); var disassemblingButton = (MyGuiControlRadioButton)controlsParent.Controls.GetControlByName("DisassemblingButton"); assemblingButton.Key = (int)AssemblerMode.Assembling; disassemblingButton.Key = (int)AssemblerMode.Disassembling; m_modeButtonGroup.Add(assemblingButton); m_modeButtonGroup.Add(disassemblingButton); } foreach (var entry in m_assemblersByKey) { if (entry.Value.IsFunctional == false) { m_incompleteAssemblerName.Clear(); m_incompleteAssemblerName.AppendStringBuilder(entry.Value.CustomName); m_incompleteAssemblerName.AppendStringBuilder(MyTexts.Get(MySpaceTexts.Terminal_BlockIncomplete)); m_comboboxAssemblers.AddItem(entry.Key, m_incompleteAssemblerName); } else { m_comboboxAssemblers.AddItem(entry.Key, entry.Value.CustomName); } } m_comboboxAssemblers.ItemSelected += Assemblers_ItemSelected; m_comboboxAssemblers.SelectItemByIndex(0); m_dragAndDrop = new MyGuiControlGridDragAndDrop(MyGuiConstants.DRAG_AND_DROP_BACKGROUND_COLOR, MyGuiConstants.DRAG_AND_DROP_TEXT_COLOR, 0.7f, MyGuiConstants.DRAG_AND_DROP_TEXT_OFFSET, true); controlsParent.Controls.Add(m_dragAndDrop); m_dragAndDrop.DrawBackgroundTexture = false; m_dragAndDrop.ItemDropped += dragDrop_OnItemDropped; RefreshBlueprints(); Assemblers_ItemSelected(); RegisterEvents(); if (m_assemblersByKey.Count == 0) ShowError(MySpaceTexts.ScreenTerminalError_NoAssemblers, controlsParent); }
public override void RecreateControls(bool constructor) { base.RecreateControls(constructor); m_scale = 0.7f; AddCaption("Render Character", Color.Yellow.ToVector4()); AddShareFocusHint(); m_currentPosition = -m_size.Value / 2.0f + new Vector2(0.02f, 0.10f); m_currentPosition.Y += 0.01f; if (MySession.ControlledEntity == null || !(MySession.ControlledEntity is MyCharacter)) { AddLabel("None active character", Color.Yellow.ToVector4(), 1.2f); return; } MyCharacter playerCharacter = MySession.LocalCharacter; if (!constructor) playerCharacter.DebugMode = true; AddSlider("Max slope", playerCharacter.Definition.MaxSlope, 0f, 89f, (slider) => { playerCharacter.Definition.MaxSlope = slider.Value; }); AddLabel(playerCharacter.Model.AssetName, Color.Yellow.ToVector4(), 1.2f); AddLabel("Animation A:", Color.Yellow.ToVector4(), 1.2f); m_animationComboA = AddCombo(); int i = 0; foreach (var animation in playerCharacter.Definition.AnimationNameToSubtypeName) { m_animationComboA.AddItem(i++, new StringBuilder(animation.Key)); } m_animationComboA.SelectItemByIndex(0); AddLabel("Animation B:", Color.Yellow.ToVector4(), 1.2f); m_animationComboB = AddCombo(); i = 0; foreach (var animation in playerCharacter.Definition.AnimationNameToSubtypeName) { m_animationComboB.AddItem(i++, new StringBuilder(animation.Key)); } m_animationComboB.SelectItemByIndex(0); m_blendSlider = AddSlider("Blend time", 0.5f, 0, 3, null); AddButton(new StringBuilder("Play A->B"), OnPlayBlendButtonClick); m_currentPosition.Y += 0.01f; m_animationCombo = AddCombo(); i = 0; foreach (var animation in playerCharacter.Definition.AnimationNameToSubtypeName) { m_animationCombo.AddItem(i++, new StringBuilder(animation.Key)); } m_animationCombo.SortItemsByValueText(); m_animationCombo.SelectItemByIndex(0); m_loopCheckbox = AddCheckBox("Loop", false, null); m_currentPosition.Y += 0.02f; foreach (var val in System.Enum.GetValues(typeof(MyBonesArea))) { string name = System.Enum.GetName(typeof(MyBonesArea), val); var checkBox = AddCheckBox(name, false, null); checkBox.UserData = val; if (name == "Body") checkBox.IsChecked = true; } AddButton(new StringBuilder("Play animation"), OnPlayButtonClick); m_currentPosition.Y += 0.01f; }
public override void RecreateControls(bool constructor) { base.RecreateControls(constructor); BackgroundColor = new Vector4(1f, 1f, 1f, 0.5f); m_currentPosition = -m_size.Value / 2.0f + new Vector2(0.02f, 0.13f); AddCaption("Voxel materials", Color.Yellow.ToVector4()); AddShareFocusHint(); m_materialsCombo = AddCombo(); var defList = MyDefinitionManager.Static.GetVoxelMaterialDefinitions().OrderBy(x => x.Id.SubtypeName).ToList(); foreach (var material in defList) { m_materialsCombo.AddItem(material.Index, new StringBuilder(material.Id.SubtypeName)); } m_materialsCombo.ItemSelected += materialsCombo_OnSelect; m_currentPosition.Y += 0.01f; m_sliderInitialScale = AddSlider("Initial scale", 0, 1f, 100f, null); m_sliderScaleMultiplier = AddSlider("Scale multiplier", 0, 1f, 100f, null); m_sliderInitialDistance = AddSlider("Initial distance", 0, 1f, 100f, null); m_sliderDistanceMultiplier = AddSlider("Distance multiplier", 0, 1f, 100f, null); m_sliderFar1Distance = AddSlider("Far1 distance", 0, 0f, 20000f, null); m_sliderFar1Scale = AddSlider("Far1 scale", 0, 1f, 50000f, null); m_sliderFar2Distance = AddSlider("Far2 distance", 0, 0f, 20000f, null); m_sliderFar2Scale = AddSlider("Far2 scale", 0, 1f, 50000f, null); m_sliderFar3Distance = AddSlider("Far3 distance", 0, 0f, 40000f, null); m_sliderFar3Scale = AddSlider("Far3 scale", 0, 1f, 50000f, null); m_sliderExtScale = AddSlider("Detail scale (/1000)", 0, 0.01f, 1f, null); m_materialsCombo.SelectItemByIndex(0); m_colorFar3 = AddColor(new StringBuilder("Far3 color"), m_selectedVoxelMaterial, MemberHelper.GetMember(() => m_selectedVoxelMaterial.Far3Color)); m_colorFar3.SetColor(m_selectedVoxelMaterial.Far3Color); m_currentPosition.Y += 0.01f; AddButton(new StringBuilder("Reload definition"), OnReloadDefinition); }
private void CreateObjectsSpawnMenu(float separatorSize, float usableWidth) { AddSubcaption(MyTexts.GetString(MySpaceTexts.ScreenDebugSpawnMenu_Items), Color.White.ToVector4(), new Vector2(-HIDDEN_PART_RIGHT, 0.0f)); AddLabel(MyTexts.GetString(MySpaceTexts.ScreenDebugSpawnMenu_ItemType), Vector4.One, m_scale); m_physicalObjectCombobox = AddCombo(); { foreach (var definition in MyDefinitionManager.Static.GetAllDefinitions()) { if (!definition.Public) continue; var physicalItemDef = definition as MyPhysicalItemDefinition; if (physicalItemDef == null || physicalItemDef.CanSpawnFromScreen == false) continue; int key = m_physicalItemDefinitions.Count; m_physicalItemDefinitions.Add(physicalItemDef); m_physicalObjectCombobox.AddItem(key, definition.DisplayNameText); } m_physicalObjectCombobox.SortItemsByValueText(); m_physicalObjectCombobox.SelectItemByIndex(m_lastSelectedFloatingObjectIndex); m_physicalObjectCombobox.ItemSelected += OnPhysicalObjectCombobox_ItemSelected; } m_currentPosition.Y += separatorSize; AddLabel(MyTexts.GetString(MySpaceTexts.ScreenDebugSpawnMenu_ItemAmount), Vector4.One, m_scale); m_amountTextbox = new MyGuiControlTextbox(m_currentPosition, m_amount.ToString(), 6, null, m_scale, MyGuiControlTextboxType.DigitsOnly); m_amountTextbox.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP; m_amountTextbox.TextChanged += OnAmountTextChanged; Controls.Add(m_amountTextbox); m_currentPosition.Y += separatorSize + m_amountTextbox.Size.Y; m_errorLabel = AddLabel(MyTexts.GetString(MySpaceTexts.ScreenDebugSpawnMenu_InvalidAmount), Color.Red.ToVector4(), m_scale); m_errorLabel.Visible = false; CreateDebugButton(usableWidth, MySpaceTexts.ScreenDebugSpawnMenu_SpawnObject, OnSpawnPhysicalObject); m_currentPosition.Y += separatorSize; }
private void UpdateOwnerGui() { long?owner; bool propertyMixed = GetOwnershipStatus(out owner); m_transferToCombobox.ClearItems(); if (!propertyMixed && !owner.HasValue) { return; //selected block without id module } if (propertyMixed || owner.Value != 0) { m_transferToCombobox.AddItem(0, MyTexts.Get(MySpaceTexts.BlockOwner_Nobody)); } if (propertyMixed || owner.Value != MySession.LocalPlayerId) { m_transferToCombobox.AddItem(MySession.LocalPlayerId, MyTexts.Get(MySpaceTexts.BlockOwner_Me)); } foreach (var playerEntry in Sync.Players.GetOnlinePlayers()) { var identity = playerEntry.Identity; if (identity.IdentityId != MySession.LocalPlayerId && !identity.IsDead) { var relation = MySession.LocalHumanPlayer.GetRelationTo(identity.IdentityId); if (relation != MyRelationsBetweenPlayerAndBlock.Enemies) { m_transferToCombobox.AddItem(identity.IdentityId, new StringBuilder(identity.DisplayName)); } } } foreach (var identityId in Sync.Players.GetNPCIdentities()) { var identity = Sync.Players.TryGetIdentity(identityId); Debug.Assert(identity != null, "Couldn't find NPC identity!"); if (identity == null) { continue; } var relation = MySession.LocalHumanPlayer.GetRelationTo(identity.IdentityId); m_transferToCombobox.AddItem(identity.IdentityId, new StringBuilder(identity.DisplayName)); } if (!propertyMixed) { if (owner.Value == MySession.LocalPlayerId) { m_shareModeCombobox.Enabled = true; } else { m_shareModeCombobox.Enabled = false; } if (owner.Value == 0) { m_transferToCombobox.Enabled = true; m_ownerLabel.TextEnum = MySpaceTexts.BlockOwner_Nobody; } else { m_transferToCombobox.Enabled = owner.Value == MySession.LocalPlayerId; m_ownerLabel.TextEnum = MySpaceTexts.BlockOwner_Me; if (owner.Value != MySession.LocalPlayerId) { var identity = Sync.Players.TryGetIdentity(owner.Value); if (identity != null) { m_ownerLabel.Text = identity.DisplayName + (identity.IsDead ? " [" + MyTexts.Get(MySpaceTexts.PlayerInfo_Dead).ToString() + "]" : ""); } else { m_ownerLabel.TextEnum = MySpaceTexts.BlockOwner_Unknown; } } } MyOwnershipShareModeEnum?shareMode; propertyMixed = GetShareMode(out shareMode); m_canChangeShareMode = false; if (!propertyMixed && shareMode.HasValue && owner.Value != 0) { m_shareModeCombobox.SelectItemByKey((long)shareMode.Value); } else { m_shareModeCombobox.SelectItemByIndex(-1); } m_canChangeShareMode = true; } else { m_shareModeCombobox.Enabled = true; m_ownerLabel.Text = ""; m_canChangeShareMode = false; m_shareModeCombobox.SelectItemByIndex(-1); m_canChangeShareMode = true; } }
void m_transferToCombobox_ItemSelected() { if (m_transferToCombobox.GetSelectedIndex() == -1) { return; } if (m_askForConfirmation) { long ownerKey = m_transferToCombobox.GetSelectedKey(); int ownerIndex = m_transferToCombobox.GetSelectedIndex(); var ownerName = m_transferToCombobox.GetItemByIndex(ownerIndex).Value; var messageBox = MyGuiSandbox.CreateMessageBox( buttonType : MyMessageBoxButtonsType.YES_NO, messageCaption : MyTexts.Get(MySpaceTexts.MessageBoxCaptionPleaseConfirm), messageText : new StringBuilder().AppendFormat(MyTexts.GetString(MySpaceTexts.MessageBoxTextChangeOwner), ownerName.ToString()), focusedResult : MyGuiScreenMessageBox.ResultEnum.NO, callback : delegate(MyGuiScreenMessageBox.ResultEnum retval) { if (retval == MyGuiScreenMessageBox.ResultEnum.YES) { if (m_currentBlocks.Length > 0) { m_requests.Clear(); foreach (var block in m_currentBlocks) { if (block.IDModule != null) { if (block.OwnerId == 0 || block.OwnerId == MySession.LocalPlayerId) { m_requests.Add(new MySyncGrid.MySingleOwnershipRequest() { BlockId = block.EntityId, Owner = ownerKey }); } } } if (m_requests.Count > 0) { MySyncGrid.ChangeOwnersRequest(MyOwnershipShareModeEnum.None, m_requests); } } RecreateOwnershipControls(); UpdateOwnerGui(); } else { m_askForConfirmation = false; m_transferToCombobox.SelectItemByIndex(-1); m_askForConfirmation = true; } }); messageBox.CanHideOthers = false; MyGuiSandbox.AddScreen(messageBox); } else { UpdateOwnerGui(); } }
public override void RecreateControls(bool constructor) { base.RecreateControls(constructor); AddCaption("Cube blocks", Color.Yellow.ToVector4()); m_combo = AddCombo(); m_combo.Position = new Vector2(-0.15f, -0.35f); Dictionary<long, int> dict = new Dictionary<long, int>(); Dictionary<long, StringBuilder> names = new Dictionary<long, StringBuilder>(); foreach (var entity in MyEntities.GetEntities()) { if (entity is MyCubeGrid) { var grid = entity as MyCubeGrid; foreach (var block in grid.GetBlocks()) { long defId = block.BlockDefinition.Id.GetHashCode(); if (!dict.ContainsKey(defId)) dict.Add(defId, 0); dict[defId]++; string cubesize = ""; switch(block.BlockDefinition.CubeSize) { case MyCubeSize.Large: cubesize = "Large"; break; case MyCubeSize.Small: cubesize = "Small"; break; } StringBuilder blockName = new StringBuilder().Append("[").Append(cubesize).Append("] ").Append(block.BlockDefinition.DisplayNameText); if (!names.ContainsKey(defId)) names.Add(defId, blockName); } } } int qt; StringBuilder name; foreach (var key in names.Keys) //could be dict.Keys too { if (names.TryGetValue(key, out name) && dict.TryGetValue(key, out qt)) m_combo.AddItem(key, name.Append(": ").Append(qt)); } m_combo.SortItemsByValueText(); if(m_combo.GetItemsCount() > 0) m_combo.SelectItemByIndex(0); m_button = AddButton(new StringBuilder("Remove All"), onClick_RemoveAllBlocks); m_button.VisualStyle = MyGuiControlButtonStyleEnum.Default; m_button.Position = new Vector2(0.0f, -0.25f); m_currentPosition = -m_size.Value / 2.0f + new Vector2(0.02f, 0.35f); AddCheckBox("Enable use object highlight", null, MemberHelper.GetMember(() => MyFakes.ENABLE_USE_OBJECT_HIGHLIGHT)); AddCheckBox("Show grids decay", null, MemberHelper.GetMember(() => MyDebugDrawSettings.DEBUG_DRAW_GRIDS_DECAY)); m_currentPosition += new Vector2(0.00f, 0.21f); AddCheckBox("Debug draw all mount points", MyDebugDrawSettings.DEBUG_DRAW_MOUNT_POINTS_ALL, onClick_DebugDrawMountPointsAll); AddCheckBox("Debug draw mount points", MyDebugDrawSettings.DEBUG_DRAW_MOUNT_POINTS, onClick_DebugDrawMountPoints); AddCheckBox("Forward", null, MemberHelper.GetMember(() => MyDebugDrawSettings.DEBUG_DRAW_MOUNT_POINTS_AXIS0)); AddCheckBox("Backward", null, MemberHelper.GetMember(() => MyDebugDrawSettings.DEBUG_DRAW_MOUNT_POINTS_AXIS1)); AddCheckBox("Left", null, MemberHelper.GetMember(() => MyDebugDrawSettings.DEBUG_DRAW_MOUNT_POINTS_AXIS2)); AddCheckBox("Right", null, MemberHelper.GetMember(() => MyDebugDrawSettings.DEBUG_DRAW_MOUNT_POINTS_AXIS3)); AddCheckBox("Up", null, MemberHelper.GetMember(() => MyDebugDrawSettings.DEBUG_DRAW_MOUNT_POINTS_AXIS4)); AddCheckBox("Down", null, MemberHelper.GetMember(() => MyDebugDrawSettings.DEBUG_DRAW_MOUNT_POINTS_AXIS5)); AddCheckBox("Draw autogenerated", null, MemberHelper.GetMember(() => MyDebugDrawSettings.DEBUG_DRAW_MOUNT_POINTS_AUTOGENERATE)); AddCheckBox("CubeBlock Integrity", null, MemberHelper.GetMember(() => MyDebugDrawSettings.DEBUG_DRAW_BLOCK_INTEGRITY)); m_button = AddButton(new StringBuilder("Resave mountpoints"), onClick_Save); m_button.VisualStyle = MyGuiControlButtonStyleEnum.Default; }
public override void RecreateControls(bool constructor) { base.RecreateControls(constructor); m_currentPosition = -m_size.Value / 2.0f + new Vector2(0.02f, 0.10f); m_currentPosition.Y += 0.01f; m_scale = 0.7f; AddCaption("Render Model FX", Color.Yellow.ToVector4()); AddShareFocusHint(); //if (MySession.ControlledObject == null) //return; AddButton(new StringBuilder("Reload textures"), delegate { VRageRender.MyRenderProxy.ReloadTextures(); }); //Line line = new Line(MySector.MainCamera.Position, MySector.MainCamera.Position + MySector.MainCamera.ForwardVector * 10); //var res = MyEntities.GetIntersectionWithLine(ref line, null, null); //if (!res.HasValue) // return; ////MyModel model = MySession.ControlledObject.ModelLod0; //m_model = res.Value.Entity.ModelLod0; m_modelsCombo = AddCombo(); var modelList = MyModels.LoadedModels.Values.ToList(); if (modelList.Count == 0) return; for (int i = 0; i < modelList.Count; i++) { var model = modelList[i]; m_modelsCombo.AddItem((int)i, new StringBuilder(System.IO.Path.GetFileNameWithoutExtension(model.AssetName))); } m_modelsCombo.SelectItemByIndex(m_currentModelSelectedItem); m_modelsCombo.ItemSelected += new MyGuiControlCombobox.ItemSelectedDelegate(modelsCombo_OnSelect); m_model = modelList[m_currentModelSelectedItem]; if (m_model == null) return; m_meshesCombo = AddCombo(); for (int i = 0; i < m_model.GetMeshList().Count; i++) { var mesh = m_model.GetMeshList()[i]; m_meshesCombo.AddItem((int)i, new StringBuilder(mesh.Material.Name)); } m_meshesCombo.SelectItemByIndex(m_currentSelectedMeshItem); m_meshesCombo.ItemSelected += new MyGuiControlCombobox.ItemSelectedDelegate(meshesCombo_OnSelect); if (MySector.MainCamera != null) { m_voxelsCombo = AddCombo(); m_voxelsCombo.AddItem(-1, new StringBuilder("None")); int i = 0; foreach (var voxelMaterial in MyDefinitionManager.Static.GetVoxelMaterialDefinitions()) { m_voxelsCombo.AddItem(i++, new StringBuilder(voxelMaterial.Id.SubtypeName)); } m_voxelsCombo.SelectItemByIndex(m_currentSelectedVoxelItem + 1); m_voxelsCombo.ItemSelected += new MyGuiControlCombobox.ItemSelectedDelegate(voxelsCombo_OnSelect); } var selectedMesh = m_model.GetMeshList()[m_currentSelectedMeshItem]; var selectedMaterial = selectedMesh.Material; m_diffuseColor = AddColor(new StringBuilder("Diffuse"), selectedMaterial, MemberHelper.GetMember(() => selectedMaterial.DiffuseColor)); m_specularIntensity = AddSlider("Specular intensity", selectedMaterial.SpecularIntensity, 0, 32, null); m_specularPower = AddSlider("Specular power", selectedMaterial.SpecularPower, 0, 128, null); }
public override void RecreateControls(bool constructor) { base.RecreateControls(constructor); BackgroundColor = new Vector4(1f, 1f, 1f, 0.5f); m_currentPosition = -m_size.Value / 2.0f + new Vector2(0.02f, 0.13f); AddCaption("Voxels", Color.Yellow.ToVector4()); AddShareFocusHint(); AddSlider("Max precalc time", 0f, 20f, null, MemberHelper.GetMember(() => MyFakes.MAX_PRECALC_TIME_IN_MILLIS)); //AddSlider("Terrain Tau Parameter", 0f, 1f, () => MyPlanetShapeProvider.GetTau(), x => MyPlanetShapeProvider.SetTau(x)); AddCheckBox("Enable yielding", null, MemberHelper.GetMember(() => MyFakes.ENABLE_YIELDING_IN_PRECALC_TASK)); m_filesCombo = MakeComboFromFiles(Path.Combine(MyFileSystem.ContentPath, "VoxelMaps")); m_filesCombo.ItemSelected += filesCombo_OnSelect; m_materialsCombo = AddCombo(); foreach (var material in MyDefinitionManager.Static.GetVoxelMaterialDefinitions()) { m_materialsCombo.AddItem(material.Index, new StringBuilder(material.Id.SubtypeName)); } m_materialsCombo.ItemSelected += materialsCombo_OnSelect; m_materialsCombo.SelectItemByIndex(0); AddCombo<MyVoxelDebugDrawMode>(null, MemberHelper.GetMember(() => MyDebugDrawSettings.DEBUG_DRAW_VOXELS_MODE)); AddLabel("Voxel ranges", Color.Yellow.ToVector4(), 0.7f); AddCombo<MyRenderQualityEnum>(null, MemberHelper.GetMember(() => VoxelRangesQuality)); AddButton(new StringBuilder("Remove all"), onClick: RemoveAllAsteroids); AddButton(new StringBuilder("Generate render"), onClick: GenerateRender); AddButton(new StringBuilder("Generate physics"), onClick: GeneratePhysics); //AddButton(new StringBuilder("Voxelize all"), onClick: ForceVoxelizeAllVoxelMaps); //AddButton(new StringBuilder("Resave prefabs"), onClick: ResavePrefabs); AddButton(new StringBuilder("Reset all"), onClick: ResetAll); //AddButton(new StringBuilder("Reset part"), onClick: ResetPart); m_currentPosition.Y += 0.01f; //AddCheckBox("Geometry cell debug draw", null, MemberHelper.GetMember(() => MyDebugDrawSettings.DEBUG_DRAW_VOXEL_GEOMETRY_CELL)); AddCheckBox("Freeze terrain queries", MyRenderProxy.Settings, MemberHelper.GetMember(() => MyRenderProxy.Settings.FreezeTerrainQueries)); AddCheckBox("Debug render clipmap cells", MyRenderProxy.Settings, MemberHelper.GetMember(() => MyRenderProxy.Settings.DebugRenderClipmapCells)); AddCheckBox("Debug render merged cells", MyRenderProxy.Settings, MemberHelper.GetMember(() => MyRenderProxy.Settings.DebugRenderMergedCells)); AddCheckBox("Debug clipmap lod colors", () => MyRenderSettings.DebugClipmapLodColor, (value) => MyRenderSettings.DebugClipmapLodColor = value); AddCheckBox("Enable physics shape discard", null, MemberHelper.GetMember(() => MyFakes.ENABLE_VOXEL_PHYSICS_SHAPE_DISCARDING)); AddCheckBox("Wireframe", MyRenderProxy.Settings, MemberHelper.GetMember(() => MyRenderProxy.Settings.Wireframe)); //AddCheckBox("Green background", MyRenderProxy.Settings, MemberHelper.GetMember(() => MyRenderProxy.Settings.ShowGreenBackground)); AddCheckBox("Use triangle cache", this, MemberHelper.GetMember(() => UseTriangleCache)); AddCheckBox("Use lod cutting", null, MemberHelper.GetMember(() => MyClipmap.UseLodCut)); AddCheckBox("Use storage cache", null, MemberHelper.GetMember(() => MyStorageBase.UseStorageCache)); AddCheckBox("Use dithering", null, MemberHelper.GetMember(() => MyClipmap.UseDithering)); AddCheckBox("Use voxel merging", () => MyRenderProxy.Settings.EnableVoxelMerging, (x) => { VoxelMergeChanged(x); }); AddCheckBox("Use queries", null, MemberHelper.GetMember(() => MyClipmap.UseQueries)); AddCheckBox("Voxel AO", null, MemberHelper.GetMember(() => MyFakes.ENABLE_VOXEL_COMPUTED_OCCLUSION)); m_currentPosition.Y += 0.01f; }
public override void RecreateControls(bool constructor) { base.RecreateControls(constructor); var layout = new MyLayoutTable(this); layout.SetColumnWidthsNormalized(50, 300, 300, 300, 300, 300, 50); layout.SetRowHeightsNormalized(50, 450, 70, 70, 70, 400, 70, 70, 50); //BRIEFING: MyGuiControlParent briefing = new MyGuiControlParent(); var briefingScrollableArea = new MyGuiControlScrollablePanel( scrolledControl: briefing) { Name = "BriefingScrollableArea", ScrollbarVEnabled = true, OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP, BackgroundTexture = MyGuiConstants.TEXTURE_SCROLLABLE_LIST, ScrolledAreaPadding = new MyGuiBorderThickness(0.005f), }; layout.AddWithSize(briefingScrollableArea, MyAlignH.Left, MyAlignV.Top, 1, 1, rowSpan: 4, colSpan: 3); //inside scrollable area: m_descriptionBox = new MyGuiControlMultilineText( position: new Vector2(-0.227f, 5f), size: new Vector2(briefingScrollableArea.Size.X - 0.02f, 11f), textBoxAlign: MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP, selectable: false); briefing.Controls.Add(m_descriptionBox); m_connectedPlayers = new MyGuiControlTable(); m_connectedPlayers.Size = new Vector2(490f, 150f) / MyGuiConstants.GUI_OPTIMAL_SIZE; m_connectedPlayers.VisibleRowsCount = 8; m_connectedPlayers.ColumnsCount = 2; m_connectedPlayers.SetCustomColumnWidths(new float[] { 0.7f, 0.3f }); m_connectedPlayers.SetColumnName(0, MyTexts.Get(MySpaceTexts.GuiScenarioPlayerName)); m_connectedPlayers.SetColumnName(1, MyTexts.Get(MySpaceTexts.GuiScenarioPlayerStatus)); m_kickPlayerButton = new MyGuiControlButton(text: MyTexts.Get(MyCommonTexts.Kick), visualStyle: MyGuiControlButtonStyleEnum.Rectangular, highlightType: MyGuiControlHighlightType.WHEN_ACTIVE, size: new Vector2(190f, 48f) / MyGuiConstants.GUI_OPTIMAL_SIZE, onButtonClick: OnKick2Clicked); m_kickPlayerButton.Enabled = CanKick(); m_timeoutLabel = new MyGuiControlLabel(text: MyTexts.GetString(MySpaceTexts.GuiScenarioTimeout), originAlign: MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER); TimeoutCombo = new MyGuiControlCombobox(); TimeoutCombo.ItemSelected += OnTimeoutSelected; TimeoutCombo.AddItem(3, MyTexts.Get(MySpaceTexts.GuiScenarioTimeout3min)); TimeoutCombo.AddItem(5, MyTexts.Get(MySpaceTexts.GuiScenarioTimeout5min)); TimeoutCombo.AddItem(10, MyTexts.Get(MySpaceTexts.GuiScenarioTimeout10min)); TimeoutCombo.AddItem(-1, MyTexts.Get(MySpaceTexts.GuiScenarioTimeoutUnlimited)); TimeoutCombo.SelectItemByIndex(0); TimeoutCombo.Enabled = Sync.IsServer; m_canJoinRunningLabel = new MyGuiControlLabel(text: MyTexts.GetString(MySpaceTexts.ScenarioSettings_CanJoinRunningShort), originAlign: MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER); m_canJoinRunning = new MyGuiControlCheckbox(); m_canJoinRunningLabel.Enabled = false; m_canJoinRunning.Enabled = false; m_startButton = new MyGuiControlButton(text: MyTexts.Get(MySpaceTexts.GuiScenarioStart), visualStyle: MyGuiControlButtonStyleEnum.Rectangular, highlightType: MyGuiControlHighlightType.WHEN_ACTIVE, size: new Vector2(200, 48f) / MyGuiConstants.GUI_OPTIMAL_SIZE, onButtonClick: OnStartClicked); m_startButton.Enabled = Sync.IsServer; m_chatControl = new MyHudControlChat( MyHud.Chat, size: new Vector2(1400f, 300f) / MyGuiConstants.GUI_OPTIMAL_SIZE, font: MyFontEnum.DarkBlue, textScale: 0.7f, textAlign: MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_BOTTOM, backgroundColor: MyGuiConstants.THEMED_GUI_BACKGROUND_COLOR, contents: null, drawScrollbar: true, textBoxAlign: MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_BOTTOM); m_chatControl.BorderEnabled = true; m_chatControl.BorderColor = Color.CornflowerBlue; m_chatTextbox = new MyGuiControlTextbox(maxLength: ChatMessageBuffer.MAX_MESSAGE_SIZE); m_chatTextbox.Size = new Vector2(1400f, 48f) / MyGuiConstants.GUI_OPTIMAL_SIZE; m_chatTextbox.TextScale = 0.8f; m_chatTextbox.VisualStyle = MyGuiControlTextboxStyleEnum.Default; m_chatTextbox.EnterPressed += ChatTextbox_EnterPressed; m_sendChatButton = new MyGuiControlButton(text: MyTexts.Get(MySpaceTexts.GuiScenarioSend), visualStyle: MyGuiControlButtonStyleEnum.Rectangular, highlightType: MyGuiControlHighlightType.WHEN_ACTIVE, size: new Vector2(190f, 48f) / MyGuiConstants.GUI_OPTIMAL_SIZE, onButtonClick: OnSendChatClicked); layout.AddWithSize(m_connectedPlayers, MyAlignH.Left, MyAlignV.Top, 1, 4, rowSpan: 2, colSpan: 2); layout.AddWithSize(m_kickPlayerButton, MyAlignH.Left, MyAlignV.Center, 2, 5); layout.AddWithSize(m_timeoutLabel, MyAlignH.Left, MyAlignV.Center, 3, 4); layout.AddWithSize(TimeoutCombo, MyAlignH.Left, MyAlignV.Center, 3, 5); layout.AddWithSize(m_canJoinRunningLabel, MyAlignH.Left, MyAlignV.Center, 4, 4); layout.AddWithSize(m_canJoinRunning, MyAlignH.Right, MyAlignV.Center, 4, 5); layout.AddWithSize(m_chatControl, MyAlignH.Left, MyAlignV.Top, 5, 1, rowSpan: 1, colSpan: 5); layout.AddWithSize(m_chatTextbox, MyAlignH.Left, MyAlignV.Top, 6, 1, rowSpan: 1, colSpan: 4); layout.AddWithSize(m_sendChatButton, MyAlignH.Right, MyAlignV.Top, 6, 5); layout.AddWithSize(m_startButton, MyAlignH.Left, MyAlignV.Top, 7, 2); }
public override void RecreateControls(bool constructor) { base.RecreateControls(constructor); if (m_asteroid_showPlanet) { CreatePlanetMenu(); return; } Vector2 cbOffset = new Vector2(-0.05f, 0.0f); Vector2 controlPadding = new Vector2(0.02f, 0.02f); // X: Left & Right, Y: Bottom & Top float textScale = 0.8f; float separatorSize = 0.01f; float usableWidth = SCREEN_SIZE.X - HIDDEN_PART_RIGHT - controlPadding.X * 2; float hiddenPartTop = (SCREEN_SIZE.Y - 1.0f) / 2.0f; m_currentPosition = -m_size.Value / 2.0f; m_currentPosition += controlPadding; m_currentPosition.Y += hiddenPartTop; m_scale = textScale; var caption = AddCaption(MySpaceTexts.ScreenDebugSpawnMenu_Caption, Color.White.ToVector4(), controlPadding + new Vector2(-HIDDEN_PART_RIGHT, hiddenPartTop)); m_currentPosition.Y += MyGuiConstants.SCREEN_CAPTION_DELTA_Y + separatorSize; if (MyFakes.ENABLE_SPAWN_MENU_ASTEROIDS || MyFakes.ENABLE_SPAWN_MENU_PROCEDURAL_ASTEROIDS) { AddSubcaption(MyTexts.GetString(MySpaceTexts.ScreenDebugSpawnMenu_Asteroids), Color.White.ToVector4(), new Vector2(-HIDDEN_PART_RIGHT, 0.0f)); } if (MyFakes.ENABLE_SPAWN_MENU_ASTEROIDS && MyFakes.ENABLE_SPAWN_MENU_PROCEDURAL_ASTEROIDS) { AddLabel(MyTexts.GetString(MySpaceTexts.ScreenDebugSpawnMenu_SelectAsteroidType), Vector4.One, m_scale); var combo = AddCombo(); combo.AddItem(1, MySpaceTexts.ScreenDebugSpawnMenu_PredefinedAsteroids); combo.AddItem(2, MySpaceTexts.ScreenDebugSpawnMenu_ProceduralAsteroids); // DA: Remove from MySpaceTexts and just hardcode until release. Leave a todo so you don't forget about it before release of planets. combo.AddItem(3, MySpaceTexts.ScreenDebugSpawnMenu_Planets); combo.SelectItemByKey(m_asteroid_showPlanet ? 3 : m_asteroid_showPredefinedOrProcedural ? 1 : 2); combo.ItemSelected += () => { m_asteroid_showPredefinedOrProcedural = combo.GetSelectedKey() == 1; m_asteroid_showPlanet = combo.GetSelectedKey() == 3; RecreateControls(false); }; } if (MyFakes.ENABLE_SPAWN_MENU_ASTEROIDS && m_asteroid_showPredefinedOrProcedural) { AddLabel(MyTexts.GetString(MySpaceTexts.ScreenDebugSpawnMenu_Asteroid), Vector4.One, m_scale); m_asteroidCombobox = AddCombo(); { foreach (var definition in MyDefinitionManager.Static.GetVoxelMapStorageDefinitions()) { m_asteroidCombobox.AddItem((int)definition.Id.SubtypeId, definition.Id.SubtypeId.ToString()); } m_asteroidCombobox.ItemSelected += OnAsteroidCombobox_ItemSelected; m_asteroidCombobox.SortItemsByValueText(); m_asteroidCombobox.SelectItemByIndex(m_lastSelectedAsteroidIndex); } m_currentPosition.Y += separatorSize; AddLabel(MyTexts.GetString(MySpaceTexts.ScreenDebugSpawnMenu_AsteroidGenerationCanTakeLong), Color.Red.ToVector4(), m_scale); CreateDebugButton(usableWidth, MySpaceTexts.ScreenDebugSpawnMenu_SpawnAsteroid, OnLoadAsteroid); m_currentPosition.Y += separatorSize; } if (MyFakes.ENABLE_SPAWN_MENU_PROCEDURAL_ASTEROIDS && !m_asteroid_showPredefinedOrProcedural) { AddLabel(MyTexts.GetString(MySpaceTexts.ScreenDebugSpawnMenu_ProceduralSize), Vector4.One, m_scale); m_procAsteroidSize = new MyGuiControlSlider( position: m_currentPosition, width: 400f / MyGuiConstants.GUI_OPTIMAL_SIZE.X, minValue: 5.0f, maxValue: 500f, labelText: String.Empty, labelDecimalPlaces: 2, labelScale: 0.75f * m_scale, originAlign: MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP, labelFont: MyFontEnum.Debug); m_procAsteroidSize.DebugScale = m_sliderDebugScale; m_procAsteroidSize.ColorMask = Color.White.ToVector4(); Controls.Add(m_procAsteroidSize); MyGuiControlLabel label = new MyGuiControlLabel( position: m_currentPosition + new Vector2(m_procAsteroidSize.Size.X + 0.005f, m_procAsteroidSize.Size.Y / 2), text: String.Empty, colorMask: Color.White.ToVector4(), textScale: MyGuiConstants.DEFAULT_TEXT_SCALE * 0.8f * m_scale, font: MyFontEnum.Debug); label.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER; Controls.Add(label); m_procAsteroidSize.ValueChanged += (MyGuiControlSlider s) => { label.Text = MyValueFormatter.GetFormatedFloat(s.Value, 2) + "m"; m_procAsteroidSizeValue = s.Value; }; m_procAsteroidSize.Value = m_procAsteroidSizeValue; m_currentPosition.Y += m_procAsteroidSize.Size.Y; m_currentPosition.Y += separatorSize; AddLabel(MyTexts.GetString(MySpaceTexts.ScreenDebugSpawnMenu_ProceduralSeed), Color.White.ToVector4(), m_scale); m_procAsteroidSeed = new MyGuiControlTextbox(m_currentPosition, m_procAsteroidSeedValue, 20, Color.White.ToVector4(), m_scale, MyGuiControlTextboxType.Normal); m_procAsteroidSeed.TextChanged += (MyGuiControlTextbox t) => { m_procAsteroidSeedValue = t.Text; }; m_procAsteroidSeed.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP; Controls.Add(m_procAsteroidSeed); m_currentPosition.Y += m_procAsteroidSize.Size.Y + separatorSize; CreateDebugButton(usableWidth, MySpaceTexts.ScreenDebugSpawnMenu_GenerateSeed, generateSeedButton_OnButtonClick); AddLabel(MyTexts.GetString(MySpaceTexts.ScreenDebugSpawnMenu_AsteroidGenerationCanTakeLong), Color.Red.ToVector4(), m_scale); CreateDebugButton(usableWidth, MySpaceTexts.ScreenDebugSpawnMenu_SpawnAsteroid, OnSpawnProceduralAsteroid); m_currentPosition.Y += separatorSize; } CreateObjectsSpawnMenu(separatorSize, usableWidth); }
private void CreateAsteroidsSpawnMenu(float separatorSize, float usableWidth) { AddLabel(MyTexts.GetString(MySpaceTexts.ScreenDebugSpawnMenu_Asteroid), Vector4.One, m_scale); m_asteroidCombobox = AddCombo(); { foreach (var definition in MyDefinitionManager.Static.GetVoxelMapStorageDefinitions()) { m_asteroidCombobox.AddItem((int)definition.Id.SubtypeId, definition.Id.SubtypeId.ToString()); } m_asteroidCombobox.ItemSelected += OnAsteroidCombobox_ItemSelected; m_asteroidCombobox.SortItemsByValueText(); m_asteroidCombobox.SelectItemByIndex(m_lastSelectedAsteroidIndex); } m_currentPosition.Y += separatorSize; AddLabel(MyTexts.GetString(MySpaceTexts.ScreenDebugSpawnMenu_AsteroidGenerationCanTakeLong), Color.Red.ToVector4(), m_scale); CreateDebugButton(usableWidth, MySpaceTexts.ScreenDebugSpawnMenu_SpawnAsteroid, OnLoadAsteroid); m_currentPosition.Y += separatorSize; }
void m_transferToCombobox_ItemSelected() { if (m_transferToCombobox.GetSelectedIndex() == -1) { return; } if (m_askForConfirmation) { long ownerKey = m_transferToCombobox.GetSelectedKey(); int ownerIndex = m_transferToCombobox.GetSelectedIndex(); var ownerName = m_transferToCombobox.GetItemByIndex(ownerIndex).Value; var messageBox = MyGuiSandbox.CreateMessageBox( buttonType : MyMessageBoxButtonsType.YES_NO, messageCaption : MyTexts.Get(MyCommonTexts.MessageBoxCaptionPleaseConfirm), messageText : new StringBuilder().AppendFormat(MyTexts.GetString(MyCommonTexts.MessageBoxTextChangeOwner), ownerName.ToString()), focusedResult : MyGuiScreenMessageBox.ResultEnum.NO, callback : delegate(MyGuiScreenMessageBox.ResultEnum retval) { if (retval == MyGuiScreenMessageBox.ResultEnum.YES) { if (m_currentBlocks.Length > 0) { m_requests.Clear(); foreach (var block in m_currentBlocks) { if (block.IDModule != null) { if (block.OwnerId == 0 || block.OwnerId == MySession.Static.LocalPlayerId || MySession.Static.AdminSettings.HasFlag(AdminSettingsEnum.UseTerminals)) { m_requests.Add(new MyCubeGrid.MySingleOwnershipRequest() { BlockId = block.EntityId, Owner = ownerKey }); } } } if (m_requests.Count > 0) { if (MySession.Static.IsUserSpaceMaster(MySession.Static.LocalHumanPlayer.Client.SteamUserId) && Sync.Players.IdentityIsNpc(ownerKey)) { MyCubeGrid.ChangeOwnersRequest(MyOwnershipShareModeEnum.Faction, m_requests, MySession.Static.LocalPlayerId); } else if (MySession.Static.LocalPlayerId == ownerKey) { // this should not be changed to No share, without approval from a designer, see ticket https://app.asana.com/0/64822442925263/64356719169418 MyCubeGrid.ChangeOwnersRequest(MyOwnershipShareModeEnum.Faction, m_requests, MySession.Static.LocalPlayerId); } else { MyCubeGrid.ChangeOwnersRequest(MyOwnershipShareModeEnum.None, m_requests, MySession.Static.LocalPlayerId); } } } RecreateOwnershipControls(); UpdateOwnerGui(); } else { m_askForConfirmation = false; m_transferToCombobox.SelectItemByIndex(-1); m_askForConfirmation = true; } }); messageBox.CanHideOthers = false; MyGuiSandbox.AddScreen(messageBox); } else { UpdateOwnerGui(); } }
private void CreatePlanetsSpawnMenu(float separatorSize, float usableWidth) { float min = MyFakes.ENABLE_EXTENDED_PLANET_OPTIONS ? 100 : 19000; float max = /*MyFakes.ENABLE_EXTENDED_PLANET_OPTIONS ? (6378.1f * 1000 * 2) :*/ 120000f; MyGuiControlSlider slider = null; slider = new MyGuiControlSlider( position: m_currentPosition, width: 400f / MyGuiConstants.GUI_OPTIMAL_SIZE.X, minValue: min, maxValue: max, labelText: String.Empty, originAlign: MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP, labelFont: MyFontEnum.Debug, intValue: true); slider.DebugScale = m_sliderDebugScale; slider.ColorMask = Color.White.ToVector4(); Controls.Add(slider); var label = new MyGuiControlLabel( position: m_currentPosition + new Vector2(slider.Size.X + 0.005f, slider.Size.Y / 2), text: String.Empty, colorMask: Color.White.ToVector4(), textScale: MyGuiConstants.DEFAULT_TEXT_SCALE * 0.8f * m_scale, font: MyFontEnum.Debug); label.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER; Controls.Add(label); m_currentPosition.Y += slider.Size.Y; m_currentPosition.Y += separatorSize; slider.ValueChanged += (MyGuiControlSlider s) => { StringBuilder sb = new StringBuilder(); MyValueFormatter.AppendDistanceInBestUnit(s.Value, sb); label.Text = sb.ToString(); m_procAsteroidSizeValue = s.Value; }; slider.Value = 8000; m_procAsteroidSeed = CreateSeedButton(m_procAsteroidSeedValue, usableWidth); m_planetCombobox = AddCombo(); { foreach (var definition in MyDefinitionManager.Static.GetPlanetsGeneratorsDefinitions()) { m_planetCombobox.AddItem((int)definition.Id.SubtypeId, definition.Id.SubtypeId.ToString()); } m_planetCombobox.ItemSelected += OnPlanetCombobox_ItemSelected; m_planetCombobox.SortItemsByValueText(); m_planetCombobox.SelectItemByIndex(0); } CreateDebugButton(usableWidth, MySpaceTexts.ScreenDebugSpawnMenu_SpawnAsteroid, x => { int seed = GetProceduralAsteroidSeed(m_procAsteroidSeed); CreatePlanet(seed, slider.Value); CloseScreenNow(); }); }
public override void RecreateControls(bool constructor) { base.RecreateControls(constructor); m_scale = 0.7f; AddCaption("Cutscenes", Color.Yellow.ToVector4()); AddShareFocusHint(); m_currentPosition = -m_size.Value / 2.0f + new Vector2(0.02f, 0.10f); m_comboCutscenes = AddCombo(); m_playButton = AddButton(new StringBuilder("Play"), onClick_PlayButton); m_addCutsceneButton = AddButton(new StringBuilder("Add cutscene"), onClick_AddCutsceneButton); m_deleteCutsceneButton = AddButton(new StringBuilder("Delete cutscene"), onClick_DeleteCutsceneButton); m_currentPosition.Y += 0.01f; AddLabel("Nodes", Color.Yellow.ToVector4(), 1); m_comboNodes = AddCombo(); m_comboNodes.ItemSelected += m_comboNodes_ItemSelected; m_addNodeButton = AddButton(new StringBuilder("Add node"), onClick_AddNodeButton); m_deleteNodeButton = AddButton(new StringBuilder("Delete node"), onClick_DeleteNodeButton); m_nodeTimeSlider = AddSlider("Node time", 0, 0, 100, OnNodeTimeChanged); var cutscenes = MySession.Static.GetComponent<MySessionComponentCutscenes>(); m_comboCutscenes.ClearItems(); foreach (var key in cutscenes.GetCutscenes().Keys) { m_comboCutscenes.AddItem(key.GetHashCode(), key); } m_comboCutscenes.SortItemsByValueText(); m_comboCutscenes.ItemSelected += m_comboCutscenes_ItemSelected; AddLabel("Waypoints", Color.Yellow.ToVector4(), 1); m_comboWaypoints = AddCombo(); m_comboWaypoints.ItemSelected += m_comboWaypoints_ItemSelected; m_currentPosition.Y += 0.01f; m_spawnButton = AddButton(new StringBuilder("Spawn entity"), onSpawnButton); m_removeAllButton = AddButton(new StringBuilder("Remove all"), onRemoveAllButton); if (m_comboCutscenes.GetItemsCount() > 0) m_comboCutscenes.SelectItemByIndex(0); }