Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_MenuEditorComponent.c
Go to the documentation of this file.
1[ComponentEditorProps(category: "GameScripted/Editor", description: "GUI for in-game editor. Works only with SCR_EditorBaseEntity!", icon: "WBData/ComponentEditorProps/componentEditor.png")]
5
9{
10 [Attribute(desc: "Menu created when the editor is opened.", defvalue: "-1", uiwidget: UIWidgets.ComboBox, enums: ParamEnumArray.FromEnum(ChimeraMenuPreset))]
11 private ChimeraMenuPreset m_EditorMenuPreset;
12
13 [Attribute(desc: "Visibility status when the editor is opened.", defvalue: "1")]
14 private bool m_bVisible;
15
16 [Attribute(desc: "Is visibility of the menu preserved whent editor is closed and opened again?", defvalue: "1")]
17 private bool m_bVisiblePersistent;
18
19 private bool m_bVisibleDefault;
20 private EditorMenuBase m_EditorMenu;
22 private InputManager m_InputManager;
23
24 private ref ScriptInvoker Event_OnVisibilityChange = new ScriptInvoker;
25
31 void SetVisible(bool visible, bool instant = false)
32 {
33 if (visible == m_bVisible) return;
34 m_bVisible = visible;
35
37 if (hideComponent)
38 hideComponent.SetVisible(m_bVisible, instant);
39
41 if (hudManager)
42 hudManager.SetVisible(m_bVisible);
43
44 Event_OnVisibilityChange.Invoke(m_bVisible);
45 }
49 void ToggleVisible()
50 {
52 }
57 bool IsVisible()
58 {
59 return m_bVisible;
60 }
65 EditorMenuBase GetMenu()
66 {
67 return m_EditorMenu;
68 }
73 SCR_MenuEditorUIComponent GetMenuComponent()
74 {
76 }
81 ScriptInvoker GetOnVisibilityChange()
82 {
83 return Event_OnVisibilityChange;
84 }
85
86 protected void OnModeChange()
87 {
88 SetVisible(true, true);
89 }
90
91 //--- EOnAfterEditorOpen() is used instead of EOnEditorOpen() to make sure GUI follows all other components
92 override protected void EOnEditorPostActivate()
93 {
94 //--- Reset visibility when presistence is disabled
95 if (!m_bVisiblePersistent) m_bVisible = m_bVisibleDefault;
96
97 //--- Use the concept menu or the final one?
98 ChimeraMenuPreset menuPreset = m_EditorMenuPreset;
99
100 if (menuPreset < 0) menuPreset = ChimeraMenuPreset.EditorMenu;
101 MenuBase baseMenu = GetGame().GetMenuManager().OpenMenu(menuPreset);
102 m_EditorMenu = EditorMenuBase.Cast(baseMenu);
103 if (!m_EditorMenu)
104 {
105 GetGame().GetMenuManager().CloseMenu(baseMenu);
106 Print("Editor menu is not type EditorMenuBase!", LogLevel.ERROR);
107 }
108
109 m_EditorMenuComponent = SCR_MenuEditorUIComponent.Cast(m_EditorMenu.GetRootWidget().FindHandler(SCR_MenuEditorUIComponent));
110 if (!m_EditorMenu)
111 {
112 GetGame().GetMenuManager().CloseMenu(baseMenu);
113 Print("Editor menu root widget is missing SCR_MenuEditorUIComponent!", LogLevel.ERROR);
114 }
115
116 //--- Reveal GUI when switching modes
118 if (editorManager)
119 editorManager.GetOnModeChange().Insert(OnModeChange);
120 }
121 override protected void EOnEditorDeactivate()
122 {
124 if (editorManager)
125 editorManager.GetOnModeChange().Remove(OnModeChange);
126 }
127 override protected void EOnEditorClose()
128 {
129 if (m_EditorMenu) GetGame().GetMenuManager().CloseMenu(m_EditorMenu);
130
132 if (hudManager) hudManager.SetVisible(true);
133 }
134 override protected void EOnEditorActivate()
135 {
136 m_InputManager = GetGame().GetInputManager();
137 }
138 override protected void EOnEditorInit()
139 {
140 m_bVisibleDefault = m_bVisible;
141 DiagMenu.RegisterMenu(SCR_DebugMenuID.DEBUGUI_EDITOR_GUI, "Editor GUI", "Editor");
142 }
143};
ChimeraMenuPreset
Menu presets.
SCR_DebugMenuID
This enum contains all IDs for DiagMenu entries added in script.
Definition DebugMenuID.c:4
ArmaReforgerScripted GetGame()
Definition game.c:1398
enum EAIGroupCombatMode ComponentEditorProps(category:"GameScripted/AI", description:"Component for utility AI system for groups")
void SCR_EditorManagerEntity(IEntitySource src, IEntity parent)
void ToggleVisible()
Visibility toggle.
SCR_RadialMenu GetMenu()
bool IsVisible()
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
void SetVisible(int layer)
Diagnostic and developer menu system.
Definition DiagMenu.c:18
Input management system for user interactions.
void SCR_BaseEditorComponent(IEntityComponentSource src, IEntity ent, IEntity parent)
static SCR_HUDManagerComponent GetHUDManager()
void SetVisible(bool visible, bool instant=false)
SCR_MenuEditorUIComponent m_EditorMenuComponent
proto external GenericEntity GetOwner()
Get owner entity.
proto void Print(void var, LogLevel level=LogLevel.NORMAL)
Prints content of variable to console/log.
LogLevel
Enum with severity of the logging message.
Definition LogLevel.c:14
SCR_FieldOfViewSettings Attribute
ScriptInvokerBase< func > ScriptInvoker
Definition tools.c:134