4 private static const int POPUP_ID_NONE = -1;
5 private static const int POPUP_ID_DIALOG_RELOAD = 0;
6 private static const int POPUP_ID_DIALOG_RENAME = 1;
8 private static const int POPUP_ID_DIALOG_DISCARD_BREADCRUMB = 2;
9 private static const int POPUP_ID_DIALOG_RENAME_BREADCRUMB = 3;
11 private int m_ActivePopup;
14 private Widget m_ScenePanel;
15 private WrapSpacerWidget m_TriggersListWidget;
16 private ScrollWidget m_TriggersListScrollWidget;
17 private ButtonWidget m_TriggerRenameButton;
18 private ButtonWidget m_TriggerExportButton;
19 private ButtonWidget m_TriggerDeleteButton;
20 private ButtonWidget m_TriggerReloadButton;
21 private ButtonWidget m_TriggerEditBreadcrumbsButton;
23 private Widget m_TriggersSection;
24 private Widget m_BreadcrumbEditPanel;
25 private TextWidget m_BreadcrumbEditHeader;
26 private WrapSpacerWidget m_BreadcrumbsListWidget;
27 private ScrollWidget m_BreadcrumbsListScrollWidget;
28 private ButtonWidget m_BreadcrumbRenameButton;
29 private ButtonWidget m_BreadcrumbDeleteButton;
30 private ButtonWidget m_BreadcrumbSaveButton;
31 private ButtonWidget m_BreadcrumbBackButton;
32 private ButtonWidget m_BreadcrumbApplyButton;
34 private Widget m_BreadcrumbParamsSection;
35 private ButtonWidget m_BreadcrumbParamsHeader;
36 private Widget m_BreadcrumbParamsContent;
37 private EditBoxWidget m_BreadcrumbParamsEyeAcc;
38 private CheckBoxWidget m_BreadcrumbParamsUseRaycast;
39 private EditBoxWidget m_BreadcrumbParamsRadius;
40 private CheckBoxWidget m_BreadcrumbParamsLightLerp;
43 private PluginUndergroundTriggerManager m_UndergroundTriggerManager;
50 private bool m_IsInputActive;
54 void UndergroundTriggerEditorMenu()
61 m_UndergroundTriggerManager = PluginUndergroundTriggerManager.Cast(
GetPlugin(PluginUndergroundTriggerManager));
62 m_UndergroundTriggerManager.OnUIEditorOpened();
64 m_ActivePopup = POPUP_ID_NONE;
66 m_Popups.Insert(POPUP_ID_DIALOG_RELOAD,
new UndergroundTriggerEditorReloadDialog(layoutRoot));
67 m_Popups.Insert(POPUP_ID_DIALOG_RENAME,
new UndergroundTriggerEditorRenameDialog(layoutRoot));
68 m_Popups.Insert(POPUP_ID_DIALOG_DISCARD_BREADCRUMB,
new UndergroundTriggerEditorDiscardBreadcrumbsDialog(layoutRoot));
69 m_Popups.Insert(POPUP_ID_DIALOG_RENAME_BREADCRUMB,
new UndergroundTriggerEditorRenameBreadcrumbDialog(layoutRoot));
71 m_UndergroundTriggerManager.Event_OnUpdateData().Insert(OnUpdateData);
72 m_UndergroundTriggerManager.Event_OnSelectTrigger().Insert(OnSelectTrigger);
73 m_UndergroundTriggerManager.Event_OnDeleteTrigger().Insert(OnDeleteTrigger);
74 m_UndergroundTriggerManager.Event_OnSelectBreadcrumb().Insert(OnSelectBreadcrumb);
75 m_UndergroundTriggerManager.Event_OnDeleteBreadcrumb().Insert(OnDeleteBreadcrumb);
76 m_UndergroundTriggerManager.Event_OnBreadcrumbEditModeChanged().Insert(OnBreadcrumbEditModeChanged);
81 void ~UndergroundTriggerEditorMenu()
87 m_UndergroundTriggerManager.ExitBreadcrumbEditMode(
false);
89 m_UndergroundTriggerManager.SelectTrigger(null);
91 m_UndergroundTriggerManager.Event_OnUpdateData().Remove(OnUpdateData);
92 m_UndergroundTriggerManager.Event_OnSelectTrigger().Remove(OnSelectTrigger);
93 m_UndergroundTriggerManager.Event_OnDeleteTrigger().Remove(OnDeleteTrigger);
94 m_UndergroundTriggerManager.Event_OnSelectBreadcrumb().Remove(OnSelectBreadcrumb);
95 m_UndergroundTriggerManager.Event_OnDeleteBreadcrumb().Remove(OnDeleteBreadcrumb);
96 m_UndergroundTriggerManager.Event_OnBreadcrumbEditModeChanged().Remove(OnBreadcrumbEditModeChanged);
97 m_UndergroundTriggerManager.OnUIEditorClosed();
99 m_UndergroundTriggerManager = null;
121 layoutRoot =
g_Game.GetWorkspace().CreateWidgets(
"gui/layouts/underground_trigger_editor/day_z_underground_trigger_editor.layout");
123 m_TriggersListWidget = WrapSpacerWidget.Cast(layoutRoot.FindAnyWidget(
"triggers_list"));
124 m_TriggersListScrollWidget = ScrollWidget.Cast(layoutRoot.FindAnyWidget(
"triggers_list_scroll"));
125 m_ScenePanel =
Widget.Cast(layoutRoot.FindAnyWidget(
"panel_scene"));
127 m_TriggerRenameButton = ButtonWidget.Cast(layoutRoot.FindAnyWidget(
"trigger_controls_rename"));
128 m_TriggerExportButton = ButtonWidget.Cast(layoutRoot.FindAnyWidget(
"trigger_controls_export"));
129 m_TriggerDeleteButton = ButtonWidget.Cast(layoutRoot.FindAnyWidget(
"trigger_controls_delete"));
130 m_TriggerReloadButton = ButtonWidget.Cast(layoutRoot.FindAnyWidget(
"trigger_controls_reload"));
131 m_TriggerEditBreadcrumbsButton = ButtonWidget.Cast(layoutRoot.FindAnyWidget(
"trigger_controls_edit_breadcrumbs"));
133 m_TriggersSection =
Widget.Cast(layoutRoot.FindAnyWidget(
"triggers_section"));
134 m_BreadcrumbEditPanel =
Widget.Cast(layoutRoot.FindAnyWidget(
"breadcrumb_edit_panel"));
135 m_BreadcrumbEditHeader = TextWidget.Cast(layoutRoot.FindAnyWidget(
"breadcrumb_edit_header"));
136 m_BreadcrumbsListWidget = WrapSpacerWidget.Cast(layoutRoot.FindAnyWidget(
"breadcrumbs_list"));
137 m_BreadcrumbsListScrollWidget = ScrollWidget.Cast(layoutRoot.FindAnyWidget(
"breadcrumbs_list_scroll"));
138 m_BreadcrumbRenameButton = ButtonWidget.Cast(layoutRoot.FindAnyWidget(
"breadcrumb_controls_rename"));
139 m_BreadcrumbDeleteButton = ButtonWidget.Cast(layoutRoot.FindAnyWidget(
"breadcrumb_controls_delete"));
140 m_BreadcrumbSaveButton = ButtonWidget.Cast(layoutRoot.FindAnyWidget(
"breadcrumb_controls_save"));
141 m_BreadcrumbBackButton = ButtonWidget.Cast(layoutRoot.FindAnyWidget(
"breadcrumb_controls_back"));
143 m_BreadcrumbParamsSection =
Widget.Cast(layoutRoot.FindAnyWidget(
"breadcrumb_params_section"));
144 m_BreadcrumbParamsHeader = ButtonWidget.Cast(layoutRoot.FindAnyWidget(
"breadcrumb_params_header"));
145 m_BreadcrumbParamsContent =
Widget.Cast(layoutRoot.FindAnyWidget(
"breadcrumb_params_content"));
146 m_BreadcrumbParamsEyeAcc = EditBoxWidget.Cast(layoutRoot.FindAnyWidget(
"breadcrumb_params_eye_acc"));
147 m_BreadcrumbParamsUseRaycast = CheckBoxWidget.Cast(layoutRoot.FindAnyWidget(
"breadcrumb_params_use_raycast"));
148 m_BreadcrumbParamsRadius = EditBoxWidget.Cast(layoutRoot.FindAnyWidget(
"breadcrumb_params_radius"));
149 m_BreadcrumbParamsLightLerp = CheckBoxWidget.Cast(layoutRoot.FindAnyWidget(
"breadcrumb_params_light_lerp"));
150 m_BreadcrumbApplyButton = ButtonWidget.Cast(layoutRoot.FindAnyWidget(
"breadcrumb_params_controls_apply"));
152 UpdateTriggersList();
166 super.OnDoubleClick(w,
x,
y, button);
168 if (m_UndergroundTriggerManager.IsBreadcrumbEditMode())
171 UndergroundTriggerHandle handle = m_TriggersList.Get(w);
174 m_UndergroundTriggerManager.SelectTrigger(handle);
175 m_UndergroundTriggerManager.FocusOnObject();
186 super.OnClick(w,
x,
y, button);
188 if (m_ActivePopup > POPUP_ID_NONE)
190 if (m_Popups.Get(m_ActivePopup).OnClick(w,
x,
y, button))
196 if (w == m_BreadcrumbSaveButton)
198 m_UndergroundTriggerManager.SaveBreadcrumbs();
202 if (w == m_BreadcrumbBackButton)
204 if (m_UndergroundTriggerManager.IsBreadcrumbsDirty())
206 m_ActivePopup = POPUP_ID_DIALOG_DISCARD_BREADCRUMB;
207 UndergroundTriggerEditorDiscardBreadcrumbsDialog discardDialog = UndergroundTriggerEditorDiscardBreadcrumbsDialog.Cast(m_Popups.Get(m_ActivePopup));
208 discardDialog.SetMessage(
"Discard unsaved breadcrumb changes?");
209 discardDialog.Open();
213 m_UndergroundTriggerManager.ExitBreadcrumbEditMode(
false);
218 if (w == m_BreadcrumbApplyButton)
220 ApplyBreadcrumbParams();
224 if (w == m_BreadcrumbParamsHeader)
226 ShowBreadcrumbParamsSection(!m_BreadcrumbParamsContent.IsVisible());
230 if (w == m_BreadcrumbDeleteButton)
232 UndergroundBreadcrumbHandle breadcrumbHandle = m_UndergroundTriggerManager.GetSelectedBreadcrumb();
233 if (breadcrumbHandle)
234 m_UndergroundTriggerManager.DeleteBreadcrumb(breadcrumbHandle);
238 if (w == m_BreadcrumbRenameButton)
240 UndergroundBreadcrumbHandle selectedBreadcrumb = m_UndergroundTriggerManager.GetSelectedBreadcrumb();
241 if (selectedBreadcrumb)
243 m_ActivePopup = POPUP_ID_DIALOG_RENAME_BREADCRUMB;
244 UndergroundTriggerEditorRenameBreadcrumbDialog renameDialogBreadcrumb = UndergroundTriggerEditorRenameBreadcrumbDialog.Cast(m_Popups.Get(m_ActivePopup));
245 renameDialogBreadcrumb.SetMessage(
"Rename breadcrumb");
246 renameDialogBreadcrumb.SetName(selectedBreadcrumb.GetHandleName());
247 renameDialogBreadcrumb.Open();
252 UndergroundBreadcrumbHandle breadcrumbListHandle = m_BreadcrumbsList.Get(w);
253 if (breadcrumbListHandle)
255 m_UndergroundTriggerManager.SelectBreadcrumb(breadcrumbListHandle);
260 if (m_UndergroundTriggerManager.IsBreadcrumbEditMode())
265 UndergroundTriggerHandle triggerHandle = m_TriggersList.Get(w);
266 if (w == m_TriggerDeleteButton)
268 triggerHandle = m_UndergroundTriggerManager.GetSelectedTrigger();
270 m_UndergroundTriggerManager.DeleteTrigger(triggerHandle);
277 m_UndergroundTriggerManager.SelectTrigger(triggerHandle);
281 if (w == m_TriggerEditBreadcrumbsButton)
283 m_UndergroundTriggerManager.EnterBreadcrumbEditMode();
287 if (w == m_TriggerExportButton)
289 m_UndergroundTriggerManager.ExportData();
293 if (w == m_TriggerReloadButton)
295 m_ActivePopup = POPUP_ID_DIALOG_RELOAD;
296 UndergroundTriggerEditorReloadDialog reloadDialog = UndergroundTriggerEditorReloadDialog.Cast(m_Popups.Get(m_ActivePopup));
297 reloadDialog.SetMessage(
"Unexported changes will be lost after reload from file.");
302 if (w == m_TriggerRenameButton)
304 triggerHandle = m_UndergroundTriggerManager.GetSelectedTrigger();
307 m_ActivePopup = POPUP_ID_DIALOG_RENAME;
308 UndergroundTriggerEditorRenameDialog renameDialog = UndergroundTriggerEditorRenameDialog.Cast(m_Popups.Get(m_ActivePopup));
309 renameDialog.SetMessage(
"Rename trigger");
310 renameDialog.SetName(triggerHandle.GetHandleName());
317 if (w != m_ScenePanel)
319 if (m_UndergroundTriggerManager.IsBreadcrumbEditMode())
321 if (m_UndergroundTriggerManager.GetSelectedBreadcrumb())
322 m_UndergroundTriggerManager.SelectBreadcrumb(null);
326 if (m_UndergroundTriggerManager.GetSelectedTrigger())
327 m_UndergroundTriggerManager.SelectTrigger(null);
340 UndergroundTriggerHandle handle = m_UndergroundTriggerManager.GetSelectedTrigger();
343 m_UndergroundTriggerManager.FocusOnObject();
355 if (!m_IsInputActive)
357 g_Game.GetMission().AddActiveInputExcludes({
"menu"});
358 g_Game.GetInput().ChangeGameFocus(1);
359 m_IsInputActive =
true;
361 g_Game.GetUIManager().ShowUICursor(
true);
371 g_Game.GetMission().RemoveActiveInputExcludes({
"menu"},
true);
373 g_Game.GetInput().ResetGameFocus(-1);
374 m_IsInputActive =
false;
376 g_Game.GetUIManager().ShowUICursor(
false);
381 private void OnUpdateData()
383 UpdateTriggersList();
384 UpdateTriggersDirtyIndicator();
385 if (m_UndergroundTriggerManager.IsBreadcrumbEditMode())
387 UpdateBreadcrumbsList();
388 UpdateBreadcrumbDirtyIndicator();
394 private void OnSelectTrigger(UndergroundTriggerHandle handle)
396 UpdateTriggersList();
398 foreach (
Widget buttonWidget, UndergroundTriggerEditorCustomListElement element: m_TriggersListElements)
403 Widget key =
Widget.Cast(m_TriggersList.GetKeyByValue(handle));
405 array<UndergroundTriggerHandle> existingTriggerHandles = m_TriggersList.GetValueArray();
406 int matchingHandleId = existingTriggerHandles.Find(handle);
409 m_TriggersListElements[key].Select();
410 UpdateBreadcrumbsList();
414 m_TriggersListScrollWidget.VScrollToWidget(key);
417 m_TriggersListScrollWidget.Update();
419 UpdateEditBreadcrumbsButtonState();
424 private void OnDeleteTrigger(UndergroundTriggerHandle handle)
426 Widget key =
Widget.Cast(m_TriggersList.GetKeyByValue(handle));
429 auto element = UndergroundTriggerEditorCustomListElement.Cast(m_TriggersListElements[key]);
430 m_TriggersListWidget.RemoveChild(element.GetRoot());
431 m_TriggersListElements.Remove(key);
432 m_TriggersList.Remove(key);
434 m_TriggersListWidget.Update();
435 m_TriggersListScrollWidget.Update();
438 UpdateEditBreadcrumbsButtonState();
443 private void UpdateTriggersList()
445 array<UndergroundTriggerHandle> existingTriggerHandles = m_TriggersList.GetValueArray();
446 array<UndergroundTriggerHandle> triggerHandles = m_UndergroundTriggerManager.GetTriggersList();
448 foreach (
auto triggerHandle : triggerHandles)
453 UndergroundTriggerEditorCustomListElement element =
new UndergroundTriggerEditorCustomListElement(m_TriggersListWidget, triggerHandle.GetHandleName());
454 ButtonWidget buttonWidget = element.GetButton();
455 m_TriggersListWidget.AddChild(element.GetRoot());
456 m_TriggersListElements.Insert(buttonWidget, element);
457 m_TriggersList.Insert(buttonWidget, triggerHandle);
460 m_TriggersListWidget.
Update();
461 m_TriggersListScrollWidget.Update();
466 private void OnSelectBreadcrumb(UndergroundBreadcrumbHandle handle)
468 Widget key =
Widget.Cast(m_BreadcrumbsList.GetKeyByValue(handle));
470 foreach (
Widget buttonWidget, UndergroundTriggerEditorCustomListElement element: m_BreadcrumbsListElements)
475 m_BreadcrumbsListElements[key].Select();
476 m_BreadcrumbsListScrollWidget.VScrollToWidget(key);
477 m_BreadcrumbsListScrollWidget.Update();
482 ShowBreadcrumbParamsSection(
true);
485 ShowBreadcrumbParamsSection(
false);
487 SyncBreadcrumbParamsUI();
492 private void OnDeleteBreadcrumb(UndergroundBreadcrumbHandle handle)
494 Widget key =
Widget.Cast(m_BreadcrumbsList.GetKeyByValue(handle));
497 auto element = UndergroundTriggerEditorCustomListElement.Cast(m_BreadcrumbsListElements[key]);
498 m_BreadcrumbsListWidget.RemoveChild(element.GetRoot());
499 m_BreadcrumbsListElements.Remove(key);
500 m_BreadcrumbsList.Remove(key);
502 ShowBreadcrumbParamsSection(
false);
504 m_BreadcrumbsListWidget.Update();
505 m_BreadcrumbsListScrollWidget.Update();
511 private void UpdateBreadcrumbsList()
514 Widget child = m_BreadcrumbsListWidget.GetChildren();
517 Widget next = child.GetSibling();
518 m_BreadcrumbsListWidget.RemoveChild(child);
521 m_BreadcrumbsListElements.
Clear();
522 m_BreadcrumbsList.Clear();
525 array<UndergroundBreadcrumbHandle> breadcrumbHandles = m_UndergroundTriggerManager.GetBreadcrumbsList();
526 foreach (UndergroundBreadcrumbHandle breadcrumbHandle : breadcrumbHandles)
528 UndergroundTriggerEditorCustomListElement element =
new UndergroundTriggerEditorCustomListElement(m_BreadcrumbsListWidget, breadcrumbHandle.GetHandleName());
529 ButtonWidget buttonWidget = element.GetButton();
530 m_BreadcrumbsListWidget.AddChild(element.GetRoot());
531 m_BreadcrumbsListElements.Insert(buttonWidget, element);
532 m_BreadcrumbsList.Insert(buttonWidget, breadcrumbHandle);
536 UndergroundBreadcrumbHandle selectedBreadcrumb = m_UndergroundTriggerManager.GetSelectedBreadcrumb();
537 if (selectedBreadcrumb)
539 Widget selectedKey =
Widget.Cast(m_BreadcrumbsList.GetKeyByValue(selectedBreadcrumb));
541 m_BreadcrumbsListElements[selectedKey].Select();
544 m_BreadcrumbsListWidget.Update();
545 m_BreadcrumbsListScrollWidget.Update();
550 private void OnBreadcrumbEditModeChanged(
bool active)
552 m_TriggersSection.Show(!active);
553 m_BreadcrumbEditPanel.Show(active);
557 UpdateBreadcrumbsList();
558 UpdateBreadcrumbDirtyIndicator();
563 Widget child = m_BreadcrumbsListWidget.GetChildren();
566 m_BreadcrumbsListWidget.RemoveChild(child);
567 child = child.GetSibling();
569 m_BreadcrumbsListElements.
Clear();
570 m_BreadcrumbsList.Clear();
573 m_BreadcrumbsListWidget.Update();
574 m_BreadcrumbsListScrollWidget.Update();
579 private void UpdateTriggersDirtyIndicator()
581 if (m_UndergroundTriggerManager.IsTriggersDirty())
582 m_TriggerExportButton.
SetText(
"Export *");
584 m_TriggerExportButton.SetText(
"Export");
589 private void UpdateBreadcrumbDirtyIndicator()
591 bool dirty = m_UndergroundTriggerManager.IsBreadcrumbsDirty();
595 m_BreadcrumbEditHeader.SetText(
"Breadcrumbs *");
596 m_BreadcrumbEditHeader.SetColor(
ARGB(255, 255, 0, 0));
597 m_BreadcrumbSaveButton.SetText(
"Save *");
601 m_BreadcrumbEditHeader.SetText(
"Breadcrumbs");
602 m_BreadcrumbEditHeader.SetColor(
ARGB(255, 255, 255, 0));
603 m_BreadcrumbSaveButton.SetText(
"Save");
609 private void ShowBreadcrumbParamsSection(
bool show)
611 m_BreadcrumbParamsContent.Show(show);
613 m_BreadcrumbParamsHeader.
SetText(
"Parameters ^");
615 m_BreadcrumbParamsHeader.SetText(
"Parameters v");
618 private void SyncBreadcrumbParamsUI()
620 UndergroundBreadcrumbHandle handle = m_UndergroundTriggerManager.GetSelectedBreadcrumb();
621 if (!handle || !handle.m_Data)
624 m_BreadcrumbParamsEyeAcc.SetText(handle.m_Data.EyeAccommodation.ToString());
625 m_BreadcrumbParamsUseRaycast.SetChecked(handle.m_Data.UseRaycast);
626 m_BreadcrumbParamsRadius.SetText(handle.m_Data.Radius.ToString());
627 m_BreadcrumbParamsLightLerp.SetChecked(handle.m_Data.LightLerp);
630 private void ApplyBreadcrumbParams()
632 UndergroundBreadcrumbHandle handle = m_UndergroundTriggerManager.GetSelectedBreadcrumb();
633 if (!handle || !handle.m_Data)
636 string eyeAccText = m_BreadcrumbParamsEyeAcc.GetText();
637 if (eyeAccText.
Length() > 0)
639 handle.m_Data.EyeAccommodation = Math.Clamp(eyeAccText.
ToFloat(), 0.0, 1.0);
640 m_BreadcrumbParamsEyeAcc.Update();
643 handle.m_Data.UseRaycast = m_BreadcrumbParamsUseRaycast.IsChecked();
645 string radiusText = m_BreadcrumbParamsRadius.GetText();
646 if (radiusText.
Length() > 0)
648 handle.m_Data.Radius = Math.Clamp(radiusText.
ToFloat(), -1.0, 100.0);
649 m_BreadcrumbParamsRadius.Update();
652 handle.m_Data.LightLerp = m_BreadcrumbParamsLightLerp.IsChecked();
654 SyncBreadcrumbParamsUI();
656 m_UndergroundTriggerManager.MarkBreadcrumbsDirty();
659 void DiscardBreadcrumbs()
661 m_UndergroundTriggerManager.ExitBreadcrumbEditMode(
false);
666 private void UpdateEditBreadcrumbsButtonState()
668 bool hasSelection = (m_UndergroundTriggerManager.GetSelectedTrigger() != null);
669 m_TriggerEditBreadcrumbsButton.Enable(hasSelection);
683 if (m_ActivePopup > POPUP_ID_NONE)
685 m_Popups.Get(m_ActivePopup).Close();
686 m_ActivePopup = POPUP_ID_NONE;
692 void ReloadDataFromFile()
694 m_UndergroundTriggerManager.DeleteAllTrigers();
695 m_UndergroundTriggerManager.DeleteAllBreadcrumbs();
697 Widget child = m_TriggersListWidget.GetChildren();
700 m_TriggersListWidget.RemoveChild(child);
701 child = child.GetSibling();
704 m_TriggersListElements.
Clear();
705 m_TriggersList.Clear();
707 m_BreadcrumbsList.Clear();
708 m_BreadcrumbsListElements.Clear();
710 m_UndergroundTriggerManager.LoadDataFromFile();
711 UpdateTriggersList();
712 UpdateBreadcrumbsList();
715 void RenameTrigger(
string name)
717 UndergroundTriggerHandle handle = m_UndergroundTriggerManager.GetSelectedTrigger();
718 handle.SetHandleName(
name);
719 m_UndergroundTriggerManager.MarkTriggersDirty();
720 OnDeleteTrigger(handle);
721 UpdateTriggersList();
722 UpdateBreadcrumbsList();
725 void RenameBreadcrumb(
string name)
727 UndergroundBreadcrumbHandle handle = m_UndergroundTriggerManager.GetSelectedBreadcrumb();
731 handle.SetHandleName(
name);
732 m_UndergroundTriggerManager.MarkBreadcrumbsDirty();
733 UpdateBreadcrumbsList();
742 private bool m_IsSelected;
746 protected ButtonWidget m_ContextButton;
747 protected TextWidget m_ButtonText;
749 void UndergroundTriggerEditorCustomListElement(
Widget parent,
string name)
751 m_Root =
g_Game.GetWorkspace().CreateWidgets(
"gui/layouts/underground_trigger_editor/day_z_underground_trigger_editor_list_item.layout", parent);
752 m_ContextButton = ButtonWidget.Cast(
m_Root.FindAnyWidget(
"button"));
753 m_ButtonText = TextWidget.Cast(
m_Root.FindAnyWidget(
"text"));
754 m_ButtonText.SetText(
name);
764 ButtonWidget GetButton()
766 return m_ContextButton;
771 m_ButtonText.SetColor(
ARGB(255, 255, 0, 0));
777 m_ButtonText.SetColor(
ARGB(255, 255, 255, 255));
778 m_IsSelected =
false;
786 protected ref UndergroundTriggerEditorMenu
m_Menu;
788 void UndergroundTriggerEditorPopupBase()
794 m_Menu = UndergroundTriggerEditorMenu.Cast(
g_Game.GetUIManager().GetMenu());
803 protected void OnPopupClose()
805 UndergroundTriggerEditorMenu menu = UndergroundTriggerEditorMenu.Cast(
g_Game.GetUIManager().GetMenu());
810class UndergroundTriggerEditorDialog : UndergroundTriggerEditorPopupBase
812 protected ButtonWidget m_OKButton;
813 protected ButtonWidget m_CancelButton;
814 protected RichTextWidget m_Message;
816 void UndergroundTriggerEditorDialog(
Widget parent)
818 m_Root =
g_Game.GetWorkspace().CreateWidgets(
"gui/layouts/underground_trigger_editor/day_z_underground_trigger_editor_popup_dialog.layout", parent);
821 m_OKButton = ButtonWidget.Cast(
m_Root.FindAnyWidget(
"button_ok"));
822 m_CancelButton = ButtonWidget.Cast(
m_Root.FindAnyWidget(
"button_cancel"));
823 m_Message = RichTextWidget.Cast(
m_Root.FindAnyWidget(
"message"));
828 void SetMessage(
string message)
830 m_Message.SetText(message);
834class UndergroundTriggerEditorReloadDialog : UndergroundTriggerEditorDialog
841 m_Menu.ReloadDataFromFile();
845 else if (w == m_CancelButton)
852 return super.OnClick(w,
x,
y, button);
856class UndergroundTriggerEditorDiscardBreadcrumbsDialog : UndergroundTriggerEditorDialog
863 m_Menu.DiscardBreadcrumbs();
867 else if (w == m_CancelButton)
874 return super.OnClick(w,
x,
y, button);
878class UndergroundTriggerEditorRenameDialog : UndergroundTriggerEditorDialog
880 private EditBoxWidget
m_Name;
882 void UndergroundTriggerEditorRenameDialog(
Widget parent)
884 m_Root =
g_Game.GetWorkspace().CreateWidgets(
"gui/layouts/underground_trigger_editor/day_z_underground_trigger_editor_popup_dialog_input.layout", parent);
887 m_OKButton = ButtonWidget.Cast(
m_Root.FindAnyWidget(
"button_ok"));
888 m_CancelButton = ButtonWidget.Cast(
m_Root.FindAnyWidget(
"button_cancel"));
889 m_Message = RichTextWidget.Cast(
m_Root.FindAnyWidget(
"message"));
890 m_Name = EditBoxWidget.Cast(
m_Root.FindAnyWidget(
"name"));
909 else if (w == m_CancelButton)
916 return super.OnClick(w,
x,
y, button);
920class UndergroundTriggerEditorRenameBreadcrumbDialog : UndergroundTriggerEditorDialog
922 private EditBoxWidget
m_Name;
924 void UndergroundTriggerEditorRenameBreadcrumbDialog(
Widget parent)
926 m_Root =
g_Game.GetWorkspace().CreateWidgets(
"gui/layouts/underground_trigger_editor/day_z_underground_trigger_editor_popup_dialog_input.layout", parent);
929 m_OKButton = ButtonWidget.Cast(
m_Root.FindAnyWidget(
"button_ok"));
930 m_CancelButton = ButtonWidget.Cast(
m_Root.FindAnyWidget(
"button_cancel"));
931 m_Message = RichTextWidget.Cast(
m_Root.FindAnyWidget(
"message"));
932 m_Name = EditBoxWidget.Cast(
m_Root.FindAnyWidget(
"name"));
951 else if (w == m_CancelButton)
958 return super.OnClick(w,
x,
y, button);
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
override bool OnClick(Widget w, int x, int y, int button)
buttons clicks
proto GizmoApi GetGizmoApi()
PluginBase GetPlugin(typename plugin_type)
bool IsModuleExist(typename plugin_type)
ServerBrowserMenuNew m_Menu
proto GizmoTransformMode GetTransformMode()
proto void SetTransformMode(GizmoTransformMode mode)
void Update(float timeslice)
const int INDEX_NOT_FOUND
proto native int Length()
Returns length of string.
proto native float ToFloat()
Converts string to float.
int ARGB(int a, int r, int g, int b)