Arma Reforger Explorer  1.1.0.42
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
SCR_BaseEditorAttributeUIComponent.c
Go to the documentation of this file.
1 
3 class SCR_BaseEditorAttributeUIComponent: ScriptedWidgetComponent
4 {
5  [Attribute()]
6  protected string m_sUiComponentName;
7 
8  [Attribute("TickboxHolder")]
9  protected string m_sTickBoxAttributeName;
10 
11  [Attribute("AttributeHolder")]
12  protected string m_sAttributeHolder;
13 
14  [Attribute("GamePadLockedSelector")]
15  protected string m_sGamePadLockedSelectorName;
16 
17  [Attribute("SubAttributeIndicator", desc: "Shown when attribute is a subattribute")]
18  protected string m_sSubAttributeIndicatorName;
19 
20  [Attribute("0.25", desc: "Subattribute indicator disabled alpha")]
21  protected float m_fSubAttributeDisabledAlphaColor;
22 
23  protected ref SCR_EditorAttributeUIInfo m_ButtonDescriptionUIInfo = new SCR_EditorAttributeUIInfo;
24  protected SCR_AttributeButtonUIComponent m_ActiveButtonDescription;
25 
26  protected SCR_ChangeableComponentBase m_UIComponent;
27  private SCR_BaseEditorAttribute m_Attribute;
28  protected float m_fBottomPadding = 1;
29  protected bool m_bIsSubAttribute;
30  protected SCR_AttributeTickboxUIComponent m_TickBoxAttribute;
31  protected Widget m_GamePadLockedSelector;
32  protected SCR_AttributesManagerEditorComponent m_AttributeManager;
33  protected InputManager m_InputManager;
34  protected Widget m_SubAttributeIndicator;
35  protected Widget m_wAttributeHolder;
36 
37  protected bool m_bEnabledByAttribute;
38  protected bool m_bEnabledByTickbox;
39  protected bool m_bIsFocused;
40 
41  //Attribute desciption
42  protected bool m_bIsShowingDescription;
43  protected bool m_bShowButtonDescription;
44  protected string m_sButtonDescription;
45  protected string m_sButtonDescriptionParam1;
46 
47  protected ref ScriptInvoker Event_OnAttributeChanged = new ScriptInvoker;
48  protected ref ScriptInvoker Event_OnEnabledByAttribute = new ScriptInvoker;
49  protected ref ScriptInvoker Event_OnAttributeUIFocusChanged = new ScriptInvoker;
50  protected ref ScriptInvoker Event_OnInputDeviceChanged = new ScriptInvoker;
51  protected ref ScriptInvoker Event_OnMouseLeave = new ScriptInvoker;
52 
53 
54  //============================ Getters ============================\\
55 
59  SCR_BaseEditorAttribute GetAttribute()
60  {
61  return m_Attribute;
62  }
63 
64  //============================ Set from var ============================\\
65  protected void SetFromVarExternal(SCR_BaseEditorAttributeVar var, bool isReset)
66  {
67  //If Reset
68  if (isReset)
69  {
70  GetAttribute().SetConflictingAttributeWasReset(false);
71  if (GetAttribute().GetHasConflictingValues())
72  {
73  SetVariableToDefaultValue(m_Attribute.GetVariableOrCopy());
74 
75  if (m_TickBoxAttribute.GetToggled())
76  m_TickBoxAttribute.ToggleTickbox(false);
77  }
78  }
79 
80  SetFromVar(var);
81  }
82 
87  void SetFromVar(SCR_BaseEditorAttributeVar var)
88  {
89  SetFromVarOrDefault();
90  }
91 
92  protected void SetFromVarOrDefault()
93  {
94  array<SCR_BaseAttributeDynamicDescription> dynamicDescriptionArray = {};
95  m_Attribute.GetDynamicDescriptionArray(dynamicDescriptionArray);
96 
97  //~ Init dynamic descriptions
98  foreach(SCR_BaseAttributeDynamicDescription discription: dynamicDescriptionArray)
99  {
100  discription.InitDynamicDescription(m_Attribute, this);
101  }
102 
103  //~ Update discription if showing
104  if (m_bIsShowingDescription)
105  ShowAttributeDescription();
106  }
107 
108  //============================ Init ============================\\
109 
115  void Init(Widget w, SCR_BaseEditorAttribute attribute)
116  {
117  m_Attribute = attribute;
118  m_AttributeManager = SCR_AttributesManagerEditorComponent.Cast(SCR_AttributesManagerEditorComponent.GetInstance(SCR_AttributesManagerEditorComponent));
119 
120  if (m_Attribute.GetOnExternalnChange())
121  m_Attribute.GetOnExternalnChange().Insert(SetFromVarExternal);
122  m_Attribute.GetOnVarChanged().Insert(SetFromVar);
123  m_Attribute.GetOnToggleEnable().Insert(ToggleEnableAttribute);
124  m_Attribute.GetOnToggleButtonSelected().Insert(ToggleButtonSelected);
125  m_Attribute.GetOnSetAsSubAttribute().Insert(SetAsSubAttribute);
126 
127  m_SubAttributeIndicator = w.FindAnyWidget(m_sSubAttributeIndicatorName);
128 
129  m_InputManager = GetGame().GetInputManager();
130 
131  Widget tickbox = w.FindAnyWidget(m_sTickBoxAttributeName);
132  if (!tickbox)
133  {
134  Print(string.Format("SCR_BaseEditorAttributeUIComponent could not find tickbox: %1!", m_sTickBoxAttributeName), LogLevel.ERROR);
135  return;
136  }
137 
138  m_TickBoxAttribute = SCR_AttributeTickboxUIComponent.Cast(tickbox.FindHandler(SCR_AttributeTickboxUIComponent));
139 
140  m_GamePadLockedSelector = w.FindAnyWidget(m_sGamePadLockedSelectorName);
141 
142  if (m_GamePadLockedSelector)
143  {
144  SCR_OnFocusUIComponent focusComponent = SCR_OnFocusUIComponent.Cast(m_GamePadLockedSelector.FindHandler(SCR_OnFocusUIComponent));
145 
146  if (focusComponent)
147  focusComponent.GetOnFocusChanged().Insert(GamePadLockedSelectorFocusChanged);
148  }
149 
150  if (m_TickBoxAttribute)
151  m_TickBoxAttribute.GetOnToggleChanged().Insert(OnTickboxToggleChanged);
152 
153  //m_AttributeSizeLayout = SizeLayoutWidget.Cast(w.FindAnyWidget(m_sAttributeSizeLayoutName));
154 
155  Widget uiComponentWidget = w.FindAnyWidget(m_sUiComponentName);
156  if (uiComponentWidget)
157  {
158  m_UIComponent = SCR_ChangeableComponentBase.Cast(uiComponentWidget.FindHandler(SCR_ChangeableComponentBase));
159 
160  if (m_UIComponent)
161  attribute.GetUIInfo().SetNameTo(m_UIComponent.GetLabel());
162  }
163 
164  //Check if is disabled by means of overriding varriables
165  m_bEnabledByTickbox = (!attribute.GetIsMultiSelect()) || (attribute.GetIsMultiSelect() && !attribute.GetHasConflictingValues() || (attribute.GetHasConflictingValues() && attribute.GetIsOverridingValues()));
166 
167  //If not multi select it can be disabled and enabled
168  ToggleEnableAttribute(attribute.IsEnabled());
169 
170  if (attribute.GetIsSubAttribute())
171  SetAsSubAttribute();
172 
173  //Padding
174  LayoutSlot.SetPadding(w,0,0,0,m_fBottomPadding);
175 
176  //Override attributes link
177  typename linkedOverrideAttributeType = typename.Empty;
178 
179  if (attribute.GetHasConflictingValues() && !GetAttribute().GetInitCalled())
180  {
181  GetGame().OnInputDeviceIsGamepadInvoker().Insert(SetGamepadLockSelectorActive);
182  }
183 
184  //Multiselect
185  if (attribute.GetIsMultiSelect())
186  {
187  //If attribute init or reset was called make sure that attribute settings are reset and default values are set
188  if (attribute.GetHasConflictingValues() && (!GetAttribute().GetInitCalled() || GetAttribute().GetConflictingAttributeWasReset()))
189  {
190  if (!attribute.GetInitCalled())
191  attribute.SetInitCalled(true);
192  else if (attribute.GetConflictingAttributeWasReset())
193  attribute.SetConflictingAttributeWasReset(false);
194 
195  attribute.ResetAttribute();
196  SetVariableToDefaultValue(m_Attribute.GetVariableOrCopy());
197  }
198  }
199  //Override
200  else
201  {
202  array<ref SCR_BaseEditorAttributeEntry> entries = new array<ref SCR_BaseEditorAttributeEntry>;
203  attribute.GetEntries(entries);
204 
205  foreach (SCR_BaseEditorAttributeEntry entry: entries)
206  {
208 
209  if (overrideEntry)
210  {
211  //attribute.SetHasConflictingValues(true);
212  bool isOverride;
213  overrideEntry.GetToggleStateAndTypename(isOverride, linkedOverrideAttributeType);
214  attribute.SetIsOverridingValues(isOverride);
215 
216  break;
217  }
218  }
219  }
220 
221  if (attribute.GetIsMultiSelect())
222  {
223  if (attribute.GetHasConflictingValues())
224  m_TickBoxAttribute.InitTickbox(attribute.GetIsOverridingValues(), this);
225  else
226  m_TickBoxAttribute.InitDisabled();
227  }
228  //If values are overriden by another attribute
229  else if (attribute.GetHasConflictingValues())
230  {
231  m_TickBoxAttribute.InitTickbox(attribute.GetIsOverridingValues(), this, linkedOverrideAttributeType);
232  }
233 
234  // Setup attribut holder
235  m_wAttributeHolder = w.FindAnyWidget(m_sAttributeHolder);
236  if (m_wAttributeHolder)
237  {
238  Widget child = m_wAttributeHolder.GetChildren();
239  if (child)
240  {
241  // Setup event handler and callbacks
243  eventHandler.GetOnFocus().Insert(OnFocusAttributeWidget);
244  child.AddHandler(eventHandler);
245 
246  }
247  }
248  }
249 
250  //============================ Set button states ============================\\
251  //Button boxs only, toggle the slection state of buttons
252  protected void ToggleButtonSelected(bool selected, int index, bool animated = true)
253  {
254  }
255 
256  //============================ UI Logics ============================\\
257  //Sets an indent on the label if it is a child of another attribute
258  protected void SetAsSubAttribute()
259  {
260  m_bIsSubAttribute = true;
261  m_Attribute.GetOnSetAsSubAttribute().Remove(SetAsSubAttribute);
262 
263  if (!m_SubAttributeIndicator)
264  {
265  Print("SCR_BaseEditorAttributeUIComponent is lacking subattribute indicator and can never be shown as a subattribute", LogLevel.WARNING);
266  return;
267  }
268 
269  m_SubAttributeIndicator.SetVisible(true);
270 
271  if (GetAttribute().GetHasConflictingValues())
272  m_TickBoxAttribute.ToggleEnableByAttribute(false);
273  }
274 
275  //============================ Varriable changed ============================\\
276  override bool OnChange(Widget w, int x, int y, bool finished)
277  {
278  AttributeValueChanged();
279  return false;
280  }
281 
282  //On attribute value changed
283  protected void AttributeValueChanged()
284  {
285  m_Attribute.UpdateInterlinkedVariables(m_Attribute.GetVariable(), m_AttributeManager);
286  m_Attribute.PreviewVariable(true, m_AttributeManager);
287 
288  //~ Update discription
289  ShowAttributeDescription();
290  Event_OnAttributeChanged.Invoke();
291  }
292 
293  //============================ Set tooltip ============================\\
294  protected void ShowAttributeDescription()
295  {
296  if (!m_AttributeManager)
297  return;
298 
299  m_bIsShowingDescription = true;
300 
301  //~ Always show tickbox description first
302  if (!m_TickBoxAttribute.GetToggled() && m_TickBoxAttribute.IsVisibleAndEnabled())
303  {
304  m_AttributeManager.SetAttributeDescription(m_AttributeManager.GetConflictingAttributeUIInfo(), m_AttributeManager.GetConflictingAttributeUIInfo().GetDescription());
305  return;
306  }
307 
308  array<SCR_BaseAttributeDynamicDescription> dynamicDescriptionArray = {};
309  m_Attribute.GetDynamicDescriptionArray(dynamicDescriptionArray);
310 
311  //~ Get first valid description
312  SCR_BaseAttributeDynamicDescription dynamicDescription;
313  foreach(SCR_BaseAttributeDynamicDescription discription: dynamicDescriptionArray)
314  {
315  if (discription.IsValid(m_Attribute, this))
316  {
317  dynamicDescription = discription;
318  break;
319  }
320  }
321 
322  //~ Get button dynamic
323  SCR_BaseButtonAttributeDynamicDescription buttonDynamicDescription;
324  if (dynamicDescription)
325  {
326  buttonDynamicDescription = SCR_BaseButtonAttributeDynamicDescription.Cast(dynamicDescription);
327  }
328 
329  //~ Button description
330  if (m_bShowButtonDescription && (!buttonDynamicDescription || !buttonDynamicDescription.HasPriorityOverButton()))
331  {
332  m_AttributeManager.SetAttributeDescription(m_ButtonDescriptionUIInfo, string.Empty, m_sButtonDescriptionParam1);
333  return;
334  }
335 
336  //~ Dynamic description
337  if (dynamicDescription)
338  {
340  string param1, param2, param3;
341 
342  dynamicDescription.GetDescriptionData(m_Attribute, this, uiInfo, param1, param2, param3);
343 
344  if (!uiInfo)
345  {
346  Print("SCR_BaseEditorAttributeUIComponent 'dynamicDescription' is missing UIInfo this means a dynamic description was added but the UIInfo was not set!", LogLevel.WARNING);
347  m_AttributeManager.SetAttributeDescription(GetAttribute().GetUIInfo());
348  return;
349  }
350 
351  string descr = uiInfo.GetDescription();
352 
353  if (SCR_StringHelper.IsEmptyOrWhiteSpace(descr))
354  {
355  Print("'SCR_BaseEditorAttributeUIComponent' dynamicDescription does not have a description assigned! This means the description is not set!", LogLevel.WARNING);
356  m_AttributeManager.SetAttributeDescription(GetAttribute().GetUIInfo());
357  return;
358  }
359 
360  m_AttributeManager.SetAttributeDescription(uiInfo, descr, param1, param2, param3);
361  return;
362  }
363 
364  //~ Default attribute description
365  m_AttributeManager.SetAttributeDescription(GetAttribute().GetUIInfo());
366  }
367 
368  protected void HideAttributeDescription()
369  {
370  if (!m_AttributeManager)
371  return;
372 
373  m_bIsShowingDescription = false;
374  m_AttributeManager.SetAttributeDescription(null);
375  }
376 
377  void ShowButtonDescription(SCR_AttributeButtonUIComponent button, bool showButtonDescription, string buttonDescription = string.Empty)
378  {
379  //~ If trying to hide description but that description is not active ignore it
380  if (showButtonDescription)
381  m_ActiveButtonDescription = button;
382  else if (m_ActiveButtonDescription != button && button != null)
383  return;
384 
385  if (buttonDescription.IsEmpty())
386  m_bShowButtonDescription = false;
387  else
388  m_bShowButtonDescription = showButtonDescription;
389 
390  m_sButtonDescriptionParam1 = buttonDescription;
391 
392  //~ Override description to that of the button
393  ShowAttributeDescription();
394  }
395 
396  //============================ Script Invokers ============================\\
397 
401  ScriptInvoker GetOnAttributeChanged()
402  {
403  return Event_OnAttributeChanged;
404  }
405 
410  ScriptInvoker GetOnAttributeUIFocusChanged()
411  {
412  return Event_OnAttributeUIFocusChanged;
413  }
414 
419  ScriptInvoker GetOnEnabledByAttribute()
420  {
421  return Event_OnEnabledByAttribute;
422  }
423 
428  ScriptInvoker GetOnMouseLeave()
429  {
430  return Event_OnMouseLeave;
431  }
432 
433  //============================ Enabling and Disabling UI and Tickbox ============================\\
434  //Sets a default state for the UI and var value if conflicting attribute
435  protected void SetVariableToDefaultValue(SCR_BaseEditorAttributeVar var)
436  {
437  SetFromVarOrDefault();
438  }
439 
440  protected void ToggleEnableAttribute(bool enabled)
441  {
442  m_bEnabledByAttribute = enabled;
443  ToggleEnable(m_bEnabledByAttribute);
444  Event_OnEnabledByAttribute.Invoke(m_bEnabledByAttribute);
445 
446  if (GetAttribute().GetHasConflictingValues())
447  m_TickBoxAttribute.ToggleEnableByAttribute(enabled);
448  }
449 
450 
455  protected void ToggleEnable(bool enabled)
456  {
457  if (m_SubAttributeIndicator)
458  {
459  Color color = Color.FromInt(m_SubAttributeIndicator.GetColor().PackToInt());
460  if (!enabled)
461  color.SetA(m_fSubAttributeDisabledAlphaColor);
462  else
463  color.SetA(1);
464 
465  m_SubAttributeIndicator.SetColor(color);
466  }
467 
468  //If Multiselect
469  if (GetAttribute().GetHasConflictingValues())
470  {
471  //~ Create var from copy var if enabled
472  if (enabled)
473  {
474  //~ Only do this if copy existis
475  if (m_Attribute.GetCopyVariable())
476  {
477  GetAttribute().SetVariable(m_Attribute.GetCopyVariable());
478  GetAttribute().ClearCopyVar();
479  }
480  }
481  //~ Create copy var and Delete var if disabled
482  else
483  {
484  //~ Only do this if var existis
485  if (GetAttribute().GetVariable(false))
486  {
487  GetAttribute().CreateCopyVariable();
488  GetAttribute().ClearVar();
489  }
490  }
491  }
492 
493  if (m_bEnabledByAttribute && m_bEnabledByTickbox)
494  m_UIComponent.SetEnabled(true);
495  else
496  m_UIComponent.SetEnabled(false);
497 
498  }
499 
504  bool GetTickboxEnabled()
505  {
506  return m_TickBoxAttribute && m_TickBoxAttribute.GetEnabled();
507  }
508 
512  void ToggleEnableAttributeTickbox()
513  {
514  if (GetAttribute().GetHasConflictingValues())
515  m_TickBoxAttribute.ToggleTickbox(!GetAttribute().GetIsOverridingValues());
516 
517  if (GetAttribute().GetIsOverridingValues())
518  GetGame().GetWorkspace().SetFocusedWidget(m_UIComponent.GetRootWidget());
519  else
520  GetGame().GetWorkspace().SetFocusedWidget(m_GamePadLockedSelector);
521  }
522 
523  //Listens to tickbox if the state changed
524  protected void OnTickboxToggleChanged(bool toggle)
525  {
526  if (GetAttribute().GetHasConflictingValues())
527  {
528  GetAttribute().SetIsOverridingValues(toggle);
529  }
530 
531  m_bEnabledByTickbox = toggle;
532  ToggleEnable(toggle);
533 
534  SetGamepadLockSelectorActive(!GetGame().GetInputManager().IsUsingMouseAndKeyboard());
535 
536  if (toggle)
537  AttributeValueChanged();
538 
539  if (m_bIsShowingDescription)
540  ShowAttributeDescription();
541  }
542 
543  //If Disabled attribute is focused or not with gamepad
544  protected void GamePadLockedSelectorFocusChanged(bool newFocus)
545  {
546  if (!GetAttribute().GetHasConflictingValues())
547  return;
548 
549  if (newFocus)
550  {
551  ShowAttributeDescription();
552  Event_OnAttributeUIFocusChanged.Invoke(this);
553  }
554 
555  else
556  {
557  HideAttributeDescription();
558  Event_OnAttributeUIFocusChanged.Invoke(null);
559  }
560  }
561 
566  bool GetIsFocused()
567  {
568  return m_bIsFocused;
569  }
570 
571  //------------------------------------------------------------------------------------------------
573  protected void OnFocusAttributeWidget(Widget w)
574  {
575  OnFocus(w, 0, 0);
576  }
577 
578  //------------------------------------------------------------------------------------------------
579  //If enabled UI is focused
580  override bool OnFocus(Widget w, int x, int y)
581  {
582  m_bIsFocused = true;
583 
584  if (!m_InputManager.IsUsingMouseAndKeyboard())
585  ShowButtonDescription(null, false);
586 
587  if (GetAttribute().GetHasConflictingValues())
588  Event_OnAttributeUIFocusChanged.Invoke(this);
589 
590  ShowAttributeDescription();
591 
592  return true;
593  }
594 
595  //------------------------------------------------------------------------------------------------
596  //If enabled UI is lost focus
597  override bool OnFocusLost(Widget w, int x, int y)
598  {
599  m_bIsFocused = false;
600 
601  if (GetAttribute().GetHasConflictingValues())
602  Event_OnAttributeUIFocusChanged.Invoke(null);
603 
604  return false;
605  }
606 
607  override bool OnMouseEnter(Widget w, int x, int y)
608  {
609  return OnFocus(w, x, y);
610  }
611 
612  override bool OnMouseLeave(Widget w, Widget enterW, int x, int y)
613  {
614  Event_OnMouseLeave.Invoke();
615  return false;
616  }
617 
618  //For tickbox
619  protected void SetGamepadLockSelectorActive(bool isGamepad)
620  {
621  m_GamePadLockedSelector.SetVisible(isGamepad && !m_TickBoxAttribute.GetToggled());
622  }
623 
624  //============================ On Destroy ============================\\
625  override void HandlerDeattached(Widget w)
626  {
627  if (m_Attribute)
628  {
629  if (m_Attribute.GetOnExternalnChange())
630  m_Attribute.GetOnExternalnChange().Remove(SetFromVarExternal);
631 
632  m_Attribute.GetOnVarChanged().Remove(SetFromVar);
633  m_Attribute.GetOnToggleEnable().Remove(ToggleEnableAttribute);
634  m_Attribute.GetOnToggleButtonSelected().Remove(ToggleButtonSelected);
635 
636  if (!m_bIsSubAttribute)
637  m_Attribute.GetOnSetAsSubAttribute().Remove(SetAsSubAttribute);
638 
639  if (m_Attribute.GetHasConflictingValues())
640  GetGame().OnInputDeviceIsGamepadInvoker().Remove(SetGamepadLockSelectorActive);
641  }
642 
643  if (m_TickBoxAttribute)
644  m_TickBoxAttribute.GetOnToggleChanged().Remove(OnTickboxToggleChanged);
645 
646 
647  if (m_GamePadLockedSelector)
648  {
649  SCR_OnFocusUIComponent focusComponent = SCR_OnFocusUIComponent.Cast(m_GamePadLockedSelector.FindHandler(SCR_OnFocusUIComponent));
650 
651  if (focusComponent)
652  focusComponent.GetOnFocusChanged().Remove(GamePadLockedSelectorFocusChanged);
653  }
654  }
655 };
SCR_ChangeableComponentBase
Base class for all widgets that can change their internal state as editbox or spinbox.
Definition: SCR_ChangeableComponentBase.c:4
SCR_BaseAttributeDynamicDescription
Definition: SCR_BaseAttributeDynamicDescription.c:5
m_InputManager
protected InputManager m_InputManager
Definition: SCR_BaseManualCameraComponent.c:15
GetGame
ArmaReforgerScripted GetGame()
Definition: game.c:1424
SCR_OnFocusUIComponent
Definition: SCR_OnFocusUIComponent.c:5
SCR_StringHelper
Definition: SCR_StringHelper.c:1
desc
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
Definition: SCR_RespawnBriefingComponent.c:17
m_UIComponent
protected SCR_AIDebugInfoComponent m_UIComponent
Definition: SCR_AISettingsComponent.c:48
SCR_AttributeButtonUIComponent
Definition: SCR_AttributeButtonUIComponent.c:1
SCR_EditorAttributeUIInfo
UIInfo used by editor attribute system.
Definition: SCR_EditorAttributeUIInfo.c:3
SCR_AttributeTickboxUIComponent
Using a controller will show/hide the Select button hint if the attribute with this script is focused...
Definition: SCR_AttributeTickboxUIComponent.c:4
GetUIInfo
SCR_UIInfo GetUIInfo()
Definition: SCR_EditableEntityCampaignBuildingModeLabelSetting.c:27
SCR_BaseEditorAttributeVar
Definition: SCR_BaseEditorAttributeVar.c:1
Attribute
typedef Attribute
Post-process effect of scripted camera.
SCR_BaseButtonAttributeDynamicDescription
Definition: SCR_BaseButtonAttributeDynamicDescription.c:5
SCR_EditorAttributeEntryOverride
Definition: SCR_BaseEditorAttribute.c:829
SCR_EventHandlerComponent
Definition: SCR_EventHandlerComponent.c:5
SCR_BaseEditorAttribute
Base Attribute Script for other attributes to inherent from to get and set varriables in Editor Attri...
Definition: SCR_BaseEditorAttribute.c:3
SCR_BaseEditorAttributeUIComponent
Definition: SCR_BaseEditorAttributeUIComponent.c:3
index
SCR_DestructionSynchronizationComponentClass ScriptComponentClass int index
Definition: SCR_DestructionSynchronizationComponent.c:17
GetInputManager
protected InputManager GetInputManager()
Definition: SCR_BaseManualCameraComponent.c:65