public UiMainRadio(int _x, int _y, NxMenu _menu) : base(_menu.frame.NxOverlay) { Menu = _menu; x = _x; y = _y; PreviousRadio = new NxButton(x - RadioWidth / 2 - RadioNextPrevWidth - 2, y, RadioNextPrevWidth, Height, "<<", Menu); NextRadio = new NxButton(x + RadioWidth / 2 + 2, y, RadioNextPrevWidth, Height, ">>", Menu); Radio = new NxButton(x - RadioWidth / 2, y, RadioWidth, Height, "[ ] Radio Sidewinder", Menu); Add(PreviousRadio); Add(NextRadio); Add(Radio); Volume = new NxProgressBar(x - RadioWidth / 2 - RadioNextPrevWidth - 2, y + Height + 10, totalWidth, 10, EDColors.YELLOW); Volume.Value = (int)(RadioPlayer.Instance.Volume * 100); Add(Volume); }
public UiSearchCreate(UiSearch2 _search) : base(_search.Menu.frame.NxOverlay) { m_UiSearch = _search; //10 params max /*Allegiance * Economy * Government * Needs Permit * Population * 100000000000 * Power * Power State * Security * State * Secondary Economy*/ // InitGrid(8, 20); x = 5; y = 70; width = NxMenu.Width - 10; height = NxMenu.Height - 90 - 5; RelativeChildPos = true; int _cx = 0; int _cy = 0; int boxsize = 15; int boxPlusPadding = boxsize + 4; int spaceBetweenCheckbox = 8; int spaceBetweenCategories = 35; Color breakLineColor = EDColors.getColor(EDColors.GREEN, 0.5f); //Allegiance Add(new NxSimpleText(0, 0, "Allegiance", EDColors.BLUE, 18, NxFonts.EuroCapital)); Add(new NxRectangle(5, _cy + 20, m_UiSearch.Menu.frame.WindowWidth - 10, 1, breakLineColor)); _cy += 24; foreach (string s in SpanshDatas.allegiance) { int _width = (int)m_UiSearch.Menu.frame.NxGraphics.MeasureString(s, NxCheckbox.DefaultFont).Width + boxPlusPadding; _cx += spaceBetweenCheckbox; NxCheckbox b = new NxCheckbox(_cx, _cy, _width, 30, s, m_UiSearch.Menu) { BoxSize = boxsize }; b.Obj = nameof(SpanshDatas.allegiance); Add(b); _cx += _width; } //Permit _cx += 25; int permitCatPositionX = _cx; Add(new NxSimpleText(_cx, 0, "Need a permit", EDColors.BLUE, 18, NxFonts.EuroCapital)); for (int i = 0; i < 3; i++) { string _cbText = "???"; switch (i) { case 0: _cbText = "Yes"; break; case 1: _cbText = "No"; break; case 2: _cbText = "Mine only"; break; } int _width = (int)m_UiSearch.Menu.frame.NxGraphics.MeasureString(_cbText, NxCheckbox.DefaultFont).Width + boxPlusPadding; NxCheckbox b = new NxCheckbox(_cx, _cy, _width, 30, _cbText, m_UiSearch.Menu) { BoxSize = boxsize, CircleBox = true }; m_CbPermits[i] = b; b.onClick += onPermitChanged; b.Obj = "permitOptions"; if (i == 2) { b.Checked = true; } Add(b); _cx += _width; _cx += 15; } _cx = 0; _cy += spaceBetweenCategories; //Economy Add(new NxSimpleText(_cx, _cy, "Economy", EDColors.BLUE, 18, NxFonts.EuroCapital)); Add(new NxRectangle(5, _cy + 20, m_UiSearch.Menu.frame.WindowWidth - 10, 1, breakLineColor)); _cy += 24; foreach (string s in SpanshDatas.economy) { int _width = (int)m_UiSearch.Menu.frame.NxGraphics.MeasureString(s, NxCheckbox.DefaultFont).Width + boxPlusPadding; if (_cx + _width + 5 > m_UiSearch.Menu.frame.WindowWidth) { _cx = 0; _cy += 32; } _cx += spaceBetweenCheckbox; NxCheckbox b = new NxCheckbox(_cx, _cy, _width, 30, s, m_UiSearch.Menu) { BoxSize = boxsize }; b.Obj = nameof(SpanshDatas.economy); Add(b); _cx += _width; } _cx = 0; _cy += spaceBetweenCategories; //Governement Add(new NxSimpleText(_cx, _cy, "Government", EDColors.BLUE, 18, NxFonts.EuroCapital)); Add(new NxRectangle(5, _cy + 20, m_UiSearch.Menu.frame.WindowWidth - 10, 1, breakLineColor)); _cy += 24; foreach (string s in SpanshDatas.government) { int _width = (int)m_UiSearch.Menu.frame.NxGraphics.MeasureString(s, NxCheckbox.DefaultFont).Width + boxPlusPadding; if (_cx + _width + 5 > m_UiSearch.Menu.frame.WindowWidth) { _cx = 0; _cy += 32; } _cx += spaceBetweenCheckbox; NxCheckbox b = new NxCheckbox(_cx, _cy, _width, 30, s, m_UiSearch.Menu) { BoxSize = boxsize }; b.Obj = nameof(SpanshDatas.government); Add(b); _cx += _width; } _cx = 0; _cy += spaceBetweenCategories; //State Add(new NxSimpleText(_cx, _cy, "State", EDColors.BLUE, 18, NxFonts.EuroCapital)); Add(new NxRectangle(5, _cy + 20, m_UiSearch.Menu.frame.WindowWidth - 10, 1, breakLineColor)); _cy += 24; foreach (string s in SpanshDatas.state) { int _width = (int)m_UiSearch.Menu.frame.NxGraphics.MeasureString(s, NxCheckbox.DefaultFont).Width + boxPlusPadding; if (_cx + _width + 5 > m_UiSearch.Menu.frame.WindowWidth) { _cx = 0; _cy += 32; } _cx += spaceBetweenCheckbox; NxCheckbox b = new NxCheckbox(_cx, _cy, _width, 30, s, m_UiSearch.Menu) { BoxSize = boxsize }; b.Obj = nameof(SpanshDatas.state); Add(b); _cx += _width; } _cx = 0; _cy += spaceBetweenCategories; int powerPositionY = _cy; //Power Add(new NxSimpleText(_cx, _cy, "Power", EDColors.BLUE, 18, NxFonts.EuroCapital)); Add(new NxRectangle(5, _cy + 20, m_UiSearch.Menu.frame.WindowWidth - 10, 1, breakLineColor)); _cy += 24; foreach (string s in SpanshDatas.power) { int _width = (int)m_UiSearch.Menu.frame.NxGraphics.MeasureString(s, NxCheckbox.DefaultFont).Width + boxPlusPadding; if (_cx + _width + 5 > permitCatPositionX) { _cx = 0; _cy += 32; } _cx += spaceBetweenCheckbox; NxCheckbox b = new NxCheckbox(_cx, _cy, _width, 30, s, m_UiSearch.Menu) { BoxSize = boxsize }; b.Obj = nameof(SpanshDatas.power); Add(b); _cx += _width; } _cx = permitCatPositionX; _cy = powerPositionY; //State Add(new NxSimpleText(_cx, _cy, "Power state", EDColors.BLUE, 18, NxFonts.EuroCapital)); // Add(new NxRectangle(5, _cy + 20, m_menu.frame.WindowWidth - 10, 1, breakLineColor)); _cy += 24; foreach (string s in SpanshDatas.power_state) { int _width = (int)m_UiSearch.Menu.frame.NxGraphics.MeasureString(s, NxCheckbox.DefaultFont).Width + boxPlusPadding; if (_cx + _width + 5 > m_UiSearch.Menu.frame.WindowWidth) { _cx = permitCatPositionX; _cy += 32; } _cx += spaceBetweenCheckbox; NxCheckbox b = new NxCheckbox(_cx, _cy, _width, 30, s, m_UiSearch.Menu) { BoxSize = boxsize }; b.Obj = nameof(SpanshDatas.power_state); Add(b); _cx += _width; } _cx = 0; _cy += spaceBetweenCategories; powerPositionY = _cy; //Security Add(new NxSimpleText(_cx, _cy, "Security", EDColors.BLUE, 18, NxFonts.EuroCapital)); Add(new NxRectangle(5, _cy + 20, m_UiSearch.Menu.frame.WindowWidth - 10, 1, breakLineColor)); _cy += 24; foreach (string s in SpanshDatas.security) { int _width = (int)m_UiSearch.Menu.frame.NxGraphics.MeasureString(s, NxCheckbox.DefaultFont).Width + boxPlusPadding; if (_cx + _width + 5 > permitCatPositionX) { _cx = 0; _cy += 32; } _cx += spaceBetweenCheckbox; NxCheckbox b = new NxCheckbox(_cx, _cy, _width, 30, s, m_UiSearch.Menu) { BoxSize = boxsize }; b.Obj = nameof(SpanshDatas.security); Add(b); _cx += _width; } _cx = permitCatPositionX; _cy = powerPositionY; //Population Add(new NxSimpleText(_cx, _cy, "Population", EDColors.BLUE, 18, NxFonts.EuroCapital)); // Add(new NxRectangle(5, _cy + 20, m_menu.frame.WindowWidth - 10, 1, breakLineColor)); _cy += 24; for (int i = 0; i < 3; i++) { string s = "Unpopulated"; if (i == 1) { s = "Populated"; } else if (i == 2) { s = "Both"; } int _width = (int)m_UiSearch.Menu.frame.NxGraphics.MeasureString(s, NxCheckbox.DefaultFont).Width + boxPlusPadding; if (_cx + _width + 5 > m_UiSearch.Menu.frame.WindowWidth) { _cx = permitCatPositionX; _cy += 32; } _cx += spaceBetweenCheckbox; NxCheckbox b = new NxCheckbox(_cx, _cy, _width, 30, s, m_UiSearch.Menu) { BoxSize = boxsize, CircleBox = true }; b.Checked = i == 2; m_CbPopulation[i] = b; b.onClick += onPopulationChanged; b.Obj = "populationOptions"; Add(b); _cx += _width; } _cx = 0; _cy = m_UiSearch.Menu.frame.WindowHeight - 110; NxButton btnCreate = new NxButton(5, _cy, m_UiSearch.Menu.frame.WindowWidth / 2 - 15, 30, "Save search", m_UiSearch.Menu); btnCreate.onClick += onSave; btnCreate.ColorBack = EDColors.getColor(EDColors.GREEN, 0.1f); btnCreate.ColorBackSelected = EDColors.getColor(EDColors.GREEN, 0.9f); Add(btnCreate); NxButton btnSearch = new NxButton(m_UiSearch.Menu.frame.WindowWidth / 2 + 10, _cy, m_UiSearch.Menu.frame.WindowWidth / 2 - 15, 30, "Search now", m_UiSearch.Menu); btnSearch.onClick += onSearch; Add(btnSearch); MoveCursorToFirst(); Reset(); }
public override void Update() { base.Update(); if (!isVisible) { _skipUpdate = true; return; } else if (_skipUpdate) { _skipUpdate = false; return; } if (NexHudEngine.isShortcutPressed(Shortcuts.get(ShortcutId.right)) && m_CursorCoords.X < m_CursorMaxX) { m_CursorCoords.X++; } if (NexHudEngine.isShortcutPressed(Shortcuts.get(ShortcutId.left)) && m_CursorCoords.X > 0) { m_CursorCoords.X--; } if (NexHudEngine.isShortcutPressed(Shortcuts.get(ShortcutId.down))) { if (m_CursorCoords.Y < m_CursorMaxY[m_CursorCoords.X]) { m_CursorCoords.Y++; } else if (m_CursorCoords.X < m_CursorMaxX) { m_CursorCoords.X++; m_CursorCoords.Y = 0; } } if (NexHudEngine.isShortcutPressed(Shortcuts.get(ShortcutId.up))) { if (m_CursorCoords.Y > (m_CursorCoords.X == 0 ? 1 : 0)) { m_CursorCoords.Y--; } else if (m_CursorCoords.X > 0) { m_CursorCoords.X--; m_CursorCoords.Y = m_CursorMaxY[m_CursorCoords.X]; } } //Pick the one NxButton _selected = null; while (_selected == null) { _selected = m_Buttons.Where(x => x.Coords == m_CursorCoords).FirstOrDefault(); if (_selected != null && !_selected.isSelectable) { if (NexHudEngine.isShortcutPressed(Shortcuts.get(ShortcutId.up))) { m_CursorCoords.Y--; } else { m_CursorCoords.Y++; } _selected = null; continue; } if (_selected == null) { if (m_CursorCoords.Y > 1) { m_CursorCoords.Y--; } else if (m_CursorCoords.X > 0) { m_CursorCoords.X--; } else { break; } } } foreach (NxButton b in m_Buttons) { b.Selected = b == _selected; } if (NexHudEngine.isShortcutPressed(Shortcuts.get(ShortcutId.select)) && _selected != null) { if (_selected.Obj is string) { m_TypeSelected = (string)_selected.Obj; } else if (_selected.Obj is BlueprintDatas) { BlueprintDatas d = (BlueprintDatas)_selected.Obj; BlueprintDatas _maxGrade = EngineerHelper.blueprints.Where(x => x.Type == d.Type && x.Name == d.Name && x.Grade == d.MaxGrade).FirstOrDefault(); m_uiImprove.BlueprintDetails.setBlueprint(_maxGrade); m_uiImprove.changeState(UiImprove.UiImproveState.BlueprintDetail); } refresh(); } }
public UiSearchResult(UiSearch2 _search, UiImprove _uiImprove = null) : base(_search != null ? _search.Menu.frame.NxOverlay : _uiImprove.Menu.frame.NxOverlay) { m_UiSearch = _search; m_UiImprove = _uiImprove; RelativeChildPos = true; //Title m_title = new NxSimpleText(0, 0, "Search result...", EDColors.ORANGE, 24, NxFonts.EuroCapital); Add(m_title); int _by = 0; width = NxMenu.Width; height = NxMenu.Height - y; //Bookmark buttons //Tips for materials //Title _by += 40; //Loading m_loading = new NxLoading(NxMenu.Width / 2, 500); Add(m_loading); //Message m_messageInfo = new NxSimpleText(10, height - 160, "", Color.CadetBlue, 20); Add(m_messageInfo); //results m_results = new UiSearchResultLine[MAX_LINE_RESULT]; for (int i = 0; i < m_results.Length; i++) { m_results[i] = new UiSearchResultLine(this) { x = 0, y = _by, width = NxMenu.Width, height = 30 }; _by += m_results[i].height + 2; m_results[i].onClick += OnClickResult; Add(m_results[i]); } MoveCursorToFirst(); m_BtnSave = new NxButton(width / 2 + 5, height - 135, width / 2 - 10, 35, "Save search", Menu); m_BtnSave.ColorBack = EDColors.getColor(EDColors.GREEN, 0.1f); m_BtnSave.ColorBackSelected = EDColors.getColor(EDColors.GREEN, 0.8f); m_BtnSave.onClick += onSaveClicked; Add(m_BtnSave); m_BtnDelete = new NxButton(5, height - 135, width / 2 - 10, 35, "Delete search", Menu); m_BtnDelete.ColorBack = EDColors.getColor(EDColors.RED, 0.1f); m_BtnDelete.ColorBackSelected = EDColors.getColor(EDColors.RED, 0.8f); m_BtnDelete.onClick += onDeleteClicked; Add(m_BtnDelete); }