Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_LayerContextAction.c
Go to the documentation of this file.
3{
4 [Attribute(desc: "Enable to enter the layer, disable to leave the layer")]
5 protected bool m_bToEnter;
6
7 [Attribute(desc: "When enable, it will not move just one layer up, but all the way to root. And the same when moving down.")]
8 protected bool m_bToExtreme;
9
10 [Attribute()]
11 protected bool m_bIsHidden;
12
13 protected bool CanExit(SCR_LayersEditorComponent layersManager)
14 {
15 return layersManager.GetCurrentLayer() //--- Not in root
16 && (!m_bToExtreme || layersManager.GetCurrentLayer().GetParentEntity()); //--- When parent is already in the root, don't show the extreme version
17 }
18
19 override bool CanBeShown(SCR_EditableEntityComponent hoveredEntity, notnull set<SCR_EditableEntityComponent> selectedEntities, vector cursorWorldPosition, int flags)
20 {
21 if (m_bIsHidden)
22 return false;
23
25 if (!layersManager || !layersManager.IsEditingLayersEnabled())
26 return false;
27
28 if (m_bToEnter && !hoveredEntity)
29 return false;
30
31 if (m_bToEnter)
32 return hoveredEntity.CanEnterLayer(layersManager);
33 else
34 return !hoveredEntity && CanExit(layersManager); //--- Context menu action to return is shown only when not hovering over any entity
35 }
36 override bool CanBePerformed(SCR_EditableEntityComponent hoveredEntity, notnull set<SCR_EditableEntityComponent> selectedEntities, vector cursorWorldPosition, int flags)
37 {
39 if (!layersManager || !layersManager.IsEditingLayersEnabled())
40 return false;
41
42 if (m_bToEnter && !hoveredEntity)
43 return false;
44
45 if (m_bToEnter)
46 return hoveredEntity.CanEnterLayer(layersManager);
47 else
48 return CanExit(layersManager);
49 }
50 override void Perform(SCR_EditableEntityComponent hoveredEntity, notnull set<SCR_EditableEntityComponent> selectedEntities, vector cursorWorldPosition,int flags, int param = -1)
51 {
53 if (!layersManager)
54 return;
55
56 if (m_bToEnter)
57 {
58 if (m_bToExtreme)
59 //--- Make entity's parent current layer, so the entity icon is directly visible
60 layersManager.SetCurrentLayer(hoveredEntity.GetParentEntity());
61 else
62 //--- Go one layer down
63 layersManager.ToggleCurrentLayer(hoveredEntity);
64 }
65 else
66 {
67 if (m_bToExtreme)
68 //--- Move to root
69 layersManager.SetCurrentLayer(null);
70 else
71 //--- Go one layer up
72 layersManager.SetCurrentLayerToParent();
73 }
74 }
75 override bool IsServer()
76 {
77 return false;
78 }
79};
SCR_EAIThreatSectorFlags flags
SCR_AIAnimation_Loitering BaseContainerProps
Commanding menu commanding element class.
class SCR_ArsenalGameModeUIDataHolder SCR_BaseContainerCustomTitleUIInfo("m_UIInfo")
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
static Managed GetInstance(typename type, bool showError=false, bool modeFirst=false)
bool CanEnterLayer(SCR_LayersEditorComponent layersManager=null, bool toExtreme=false)
SCR_EditableEntityComponent GetParentEntity()
override bool CanBeShown(SCR_EditableEntityComponent hoveredEntity, notnull set< SCR_EditableEntityComponent > selectedEntities, vector cursorWorldPosition, int flags)
override bool CanBePerformed(SCR_EditableEntityComponent hoveredEntity, notnull set< SCR_EditableEntityComponent > selectedEntities, vector cursorWorldPosition, int flags)
bool CanExit(SCR_LayersEditorComponent layersManager)
override void Perform(SCR_EditableEntityComponent hoveredEntity, notnull set< SCR_EditableEntityComponent > selectedEntities, vector cursorWorldPosition, int flags, int param=-1)
SCR_EditableEntityComponent GetCurrentLayer()
void ToggleCurrentLayer(SCR_EditableEntityComponent entity)
void SetCurrentLayer(SCR_EditableEntityComponent entity)
SCR_FieldOfViewSettings Attribute