private void UpdateControls() { // Update screen controls foreach (var control in Controls.GetVisibleControls()) { control.Update(); } foreach (var element in Elements) { element.Update(); } m_comboboxHandlingNow = GetExclusiveInputHandler(); m_listboxDragAndDropHandlingNow = GetDragAndDropHandlingNow(); }
//public MyGuiControlBase GetControlUnderMouseCursor() //{ // // Update screen controls // for (int i = m_controlsVisible.Count - 1; i >= 0; i--) // { // if (IsControlUnderCursor(MyGuiManager2.MouseCursorPosition - GetPosition(), m_controlsVisible[i])) return m_controlsVisible[i]; // } // return null; //} MyGuiControlGridDragAndDrop GetDragAndDropHandlingNow() { for (int i = 0; i < Controls.GetVisibleControls().Count; i++) { MyGuiControlBase control = Controls.GetVisibleControls()[i]; MyGuiControlGridDragAndDrop dragAndDrop = control.GetDragAndDropHandlingNow() as MyGuiControlGridDragAndDrop; if (dragAndDrop != null) { return(dragAndDrop); } } // Not found return(null); }
public override MyGuiControlGridDragAndDrop GetDragAndDropHandlingNow() { for (int i = 0; i < Controls.GetVisibleControls().Count; i++) { MyGuiControlBase control = Controls.GetVisibleControls()[i]; if (control is MyGuiControlGridDragAndDrop) { MyGuiControlGridDragAndDrop tempDragAndDrop = (MyGuiControlGridDragAndDrop)control; if (tempDragAndDrop.IsActive()) { return(tempDragAndDrop); } } } // Not found return(null); }
public void Close() { foreach (var system in m_registeredConveyorSystems) { system.BlockAdded -= ConveyorSystem_BlockAdded; system.BlockRemoved -= ConveyorSystem_BlockRemoved; } m_registeredConveyorSystems.Clear(); m_leftTypeGroup.Clear(); m_leftFilterGroup.Clear(); m_rightTypeGroup.Clear(); m_rightFilterGroup.Clear(); m_controlsDisabledWhileDragged.Clear(); m_leftOwnersControl = null; m_leftSuitButton = null; m_leftGridButton = null; m_leftFilterStorageButton = null; m_leftFilterSystemButton = null; m_leftFilterEnergyButton = null; m_leftFilterAllButton = null; m_rightOwnersControl = null; m_rightSuitButton = null; m_rightGridButton = null; m_rightFilterStorageButton = null; m_rightFilterSystemButton = null; m_rightFilterEnergyButton = null; m_rightFilterAllButton = null; m_throwOutButton = null; m_dragAndDrop = null; m_dragAndDropInfo = null; m_focusedOwnerControl = null; m_focusedGridControl = null; m_selectedInventory = null; m_hideEmptyLeft.IsCheckedChanged -= HideEmptyLeft_Checked; m_hideEmptyRight.IsCheckedChanged -= HideEmptyRight_Checked; m_blockSearchLeft.TextChanged -= BlockSearchLeft_TextChanged; m_blockSearchClearLeft.ButtonClicked -= BlockSearchClearLeft_ButtonClicked; m_blockSearchRight.TextChanged -= BlockSearchRight_TextChanged; m_blockSearchClearRight.ButtonClicked -= BlockSearchClearRight_ButtonClicked; m_hideEmptyLeft = null; m_hideEmptyLeftLabel = null; m_hideEmptyRight = null; m_hideEmptyRightLabel = null; m_blockSearchLeft = null; m_blockSearchClearLeft = null; m_blockSearchRight = null; m_blockSearchClearRight = null; }
public void Init(IMyGuiControlsParent controlsParent, MyEntity thisEntity, MyEntity interactedEntity, MyGridColorHelper colorHelper) { ProfilerShort.Begin("MyGuiScreenTerminal.ControllerInventory.Init"); m_userAsEntity = thisEntity; m_interactedAsEntity = interactedEntity; m_colorHelper = colorHelper; m_leftOwnersControl = (MyGuiControlList)controlsParent.Controls.GetControlByName("LeftInventory"); m_rightOwnersControl = (MyGuiControlList)controlsParent.Controls.GetControlByName("RightInventory"); m_leftSuitButton = (MyGuiControlRadioButton)controlsParent.Controls.GetControlByName("LeftSuitButton"); m_leftGridButton = (MyGuiControlRadioButton)controlsParent.Controls.GetControlByName("LeftGridButton"); m_leftFilterStorageButton = (MyGuiControlRadioButton)controlsParent.Controls.GetControlByName("LeftFilterStorageButton"); m_leftFilterSystemButton = (MyGuiControlRadioButton)controlsParent.Controls.GetControlByName("LeftFilterSystemButton"); m_leftFilterEnergyButton = (MyGuiControlRadioButton)controlsParent.Controls.GetControlByName("LeftFilterEnergyButton"); m_leftFilterAllButton = (MyGuiControlRadioButton)controlsParent.Controls.GetControlByName("LeftFilterAllButton"); m_rightSuitButton = (MyGuiControlRadioButton)controlsParent.Controls.GetControlByName("RightSuitButton"); m_rightGridButton = (MyGuiControlRadioButton)controlsParent.Controls.GetControlByName("RightGridButton"); m_rightFilterStorageButton = (MyGuiControlRadioButton)controlsParent.Controls.GetControlByName("RightFilterStorageButton"); m_rightFilterSystemButton = (MyGuiControlRadioButton)controlsParent.Controls.GetControlByName("RightFilterSystemButton"); m_rightFilterEnergyButton = (MyGuiControlRadioButton)controlsParent.Controls.GetControlByName("RightFilterEnergyButton"); m_rightFilterAllButton = (MyGuiControlRadioButton)controlsParent.Controls.GetControlByName("RightFilterAllButton"); m_throwOutButton = (MyGuiControlButton)controlsParent.Controls.GetControlByName("ThrowOutButton"); m_hideEmptyLeft = (MyGuiControlCheckbox)controlsParent.Controls.GetControlByName("CheckboxHideEmptyLeft"); m_hideEmptyLeftLabel = (MyGuiControlLabel)controlsParent.Controls.GetControlByName("LabelHideEmptyLeft"); m_hideEmptyRight = (MyGuiControlCheckbox)controlsParent.Controls.GetControlByName("CheckboxHideEmptyRight"); m_hideEmptyRightLabel = (MyGuiControlLabel)controlsParent.Controls.GetControlByName("LabelHideEmptyRight"); m_blockSearchLeft = (MyGuiControlTextbox)controlsParent.Controls.GetControlByName("BlockSearchLeft"); m_blockSearchClearLeft = (MyGuiControlButton)controlsParent.Controls.GetControlByName("BlockSearchClearLeft"); m_blockSearchRight = (MyGuiControlTextbox)controlsParent.Controls.GetControlByName("BlockSearchRight"); m_blockSearchClearRight = (MyGuiControlButton)controlsParent.Controls.GetControlByName("BlockSearchClearRight"); m_hideEmptyLeft.Visible = false; m_hideEmptyLeftLabel.Visible = false; m_hideEmptyRight.Visible = true; m_hideEmptyRightLabel.Visible = true; m_blockSearchLeft.Visible = false; m_blockSearchClearLeft.Visible = false; m_blockSearchRight.Visible = true; m_blockSearchClearRight.Visible = true; m_hideEmptyLeft.IsCheckedChanged += HideEmptyLeft_Checked; m_hideEmptyRight.IsCheckedChanged += HideEmptyRight_Checked; m_blockSearchLeft.TextChanged += BlockSearchLeft_TextChanged; m_blockSearchClearLeft.ButtonClicked += BlockSearchClearLeft_ButtonClicked; m_blockSearchRight.TextChanged += BlockSearchRight_TextChanged; m_blockSearchClearRight.ButtonClicked += BlockSearchClearRight_ButtonClicked; m_leftSuitButton.SetToolTip(MySpaceTexts.ToolTipTerminalInventory_ShowCharacter); m_leftGridButton.SetToolTip(MySpaceTexts.ToolTipTerminalInventory_ShowConnected); m_rightSuitButton.SetToolTip(MySpaceTexts.ToolTipTerminalInventory_ShowInteracted); m_rightGridButton.SetToolTip(MySpaceTexts.ToolTipTerminalInventory_ShowConnected); m_leftFilterAllButton.SetToolTip(MySpaceTexts.ToolTipTerminalInventory_FilterAll); m_leftFilterEnergyButton.SetToolTip(MySpaceTexts.ToolTipTerminalInventory_FilterEnergy); m_leftFilterStorageButton.SetToolTip(MySpaceTexts.ToolTipTerminalInventory_FilterStorage); m_leftFilterSystemButton.SetToolTip(MySpaceTexts.ToolTipTerminalInventory_FilterSystem); m_rightFilterAllButton.SetToolTip(MySpaceTexts.ToolTipTerminalInventory_FilterAll); m_rightFilterEnergyButton.SetToolTip(MySpaceTexts.ToolTipTerminalInventory_FilterEnergy); m_rightFilterStorageButton.SetToolTip(MySpaceTexts.ToolTipTerminalInventory_FilterStorage); m_rightFilterSystemButton.SetToolTip(MySpaceTexts.ToolTipTerminalInventory_FilterSystem); m_throwOutButton.SetToolTip(MySpaceTexts.ToolTipTerminalInventory_ThrowOut); m_throwOutButton.CueEnum = GuiSounds.None; m_leftTypeGroup.Add(m_leftSuitButton); m_leftTypeGroup.Add(m_leftGridButton); m_rightTypeGroup.Add(m_rightSuitButton); m_rightTypeGroup.Add(m_rightGridButton); m_leftFilterGroup.Add(m_leftFilterAllButton); m_leftFilterGroup.Add(m_leftFilterEnergyButton); m_leftFilterGroup.Add(m_leftFilterStorageButton); m_leftFilterGroup.Add(m_leftFilterSystemButton); m_rightFilterGroup.Add(m_rightFilterAllButton); m_rightFilterGroup.Add(m_rightFilterEnergyButton); m_rightFilterGroup.Add(m_rightFilterStorageButton); m_rightFilterGroup.Add(m_rightFilterSystemButton); m_throwOutButton.DrawCrossTextureWhenDisabled = false; //m_throwOutButton.Enabled = false; // initialize drag and drop // maybe this requires screen? 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_throwOutButton.ButtonClicked += throwOutButton_OnButtonClick; m_dragAndDrop.ItemDropped += dragDrop_OnItemDropped; var thisInventoryOwner = (m_userAsEntity != null && m_userAsEntity.HasInventory) ? m_userAsEntity : null; if (thisInventoryOwner != null) m_userAsOwner = thisInventoryOwner; var targetInventoryOwner = (m_interactedAsEntity != null && m_interactedAsEntity.HasInventory) ? m_interactedAsEntity : null; if (targetInventoryOwner != null) m_interactedAsOwner = targetInventoryOwner; var parentGrid = (m_interactedAsEntity != null) ? m_interactedAsEntity.Parent as MyCubeGrid : null; m_interactedGridOwners.Clear(); if (parentGrid != null) { var group = MyCubeGridGroups.Static.Logical.GetGroup(parentGrid); foreach (var node in group.Nodes) { GetGridInventories(node.NodeData, m_interactedGridOwners); node.NodeData.GridSystems.ConveyorSystem.BlockAdded += ConveyorSystem_BlockAdded; node.NodeData.GridSystems.ConveyorSystem.BlockRemoved += ConveyorSystem_BlockRemoved; m_registeredConveyorSystems.Add(node.NodeData.GridSystems.ConveyorSystem); } } m_leftTypeGroup.SelectedIndex = 0; m_rightTypeGroup.SelectedIndex = (m_interactedAsEntity is MyCharacter) || (m_interactedAsEntity is MyInventoryBagEntity) ? 0 : 1; m_leftFilterGroup.SelectedIndex = 0; m_rightFilterGroup.SelectedIndex = 0; LeftTypeGroup_SelectedChanged(m_leftTypeGroup); RightTypeGroup_SelectedChanged(m_rightTypeGroup); SetLeftFilter(null); SetRightFilter(null); m_leftTypeGroup.SelectedChanged += LeftTypeGroup_SelectedChanged; m_rightTypeGroup.SelectedChanged += RightTypeGroup_SelectedChanged; m_leftFilterAllButton.SelectedChanged += (button) => { if (button.Selected) SetLeftFilter(null); }; m_leftFilterEnergyButton.SelectedChanged += (button) => { if (button.Selected) SetLeftFilter(MyInventoryOwnerTypeEnum.Energy); }; m_leftFilterStorageButton.SelectedChanged += (button) => { if (button.Selected) SetLeftFilter(MyInventoryOwnerTypeEnum.Storage); }; m_leftFilterSystemButton.SelectedChanged += (button) => { if (button.Selected) SetLeftFilter(MyInventoryOwnerTypeEnum.System); }; m_rightFilterAllButton.SelectedChanged += (button) => { if (button.Selected) SetRightFilter(null); }; m_rightFilterEnergyButton.SelectedChanged += (button) => { if (button.Selected) SetRightFilter(MyInventoryOwnerTypeEnum.Energy); }; m_rightFilterStorageButton.SelectedChanged += (button) => { if (button.Selected) SetRightFilter(MyInventoryOwnerTypeEnum.Storage); }; m_rightFilterSystemButton.SelectedChanged += (button) => { if (button.Selected) SetRightFilter(MyInventoryOwnerTypeEnum.System); }; if (m_interactedAsEntity == null) { m_leftGridButton.Enabled = false; m_rightGridButton.Enabled = false; m_rightTypeGroup.SelectedIndex = 0; } RefreshSelectedInventoryItem(); ProfilerShort.End(); }
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); }
internal void Close() { UnregisterEvents(); UnregisterAssemblerEvents(m_selectedAssembler); m_assemblersByKey.Clear(); m_blueprintButtonGroup.Clear(); m_modeButtonGroup.Clear(); m_selectedAssembler = null; m_controlsParent = null; m_terminalSystem = null; m_comboboxAssemblers = null; m_dragAndDrop = null; m_dragAndDropInfo = null; }
private void UpdateControls() { // Update screen controls foreach (var control in Controls.GetVisibleControls()) { control.Update(); } foreach (var element in Elements) element.Update(); m_comboboxHandlingNow = GetExclusiveInputHandler(); m_listboxDragAndDropHandlingNow = GetDragAndDropHandlingNow(); }