Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_UserContextAction.c
Go to the documentation of this file.
3{
5
6 override bool CanBeShown(SCR_EditableEntityComponent hoveredEntity, notnull set<SCR_EditableEntityComponent> selectedEntities, vector cursorWorldPosition, int flags)
7 {
8 if (!hoveredEntity)
9 return false;
10
11 //--- DIRTY HACK - get the entity itself, not the composition the entity is in. ToDo: CLEANER!
12 if (!IsServer())
13 {
15 m_HoveredEntity = hoveredEntity;
16
17 //~ Tried to set new hovered entity but it was null
18 if (!hoveredEntity)
19 return false;
20 }
21
23 if (!actionsManager || actionsManager.GetActionsCount() != 1)
24 return false;
25
26 ScriptedUserAction action = ScriptedUserAction.Cast(actionsManager.GetFirstAction());
27 if (!action || !action.CanBePerformed(SCR_EditorManagerEntity.GetInstance()))
28 return false;
29
30 //--- Update info with action name
32 if (info)
33 info.SetName(action.GetActionName());
34
35 return true;
36 }
37 override bool CanBePerformed(SCR_EditableEntityComponent hoveredEntity, notnull set<SCR_EditableEntityComponent> selectedEntities, vector cursorWorldPosition, int flags)
38 {
39 return CanBeShown(hoveredEntity, selectedEntities, cursorWorldPosition, flags);
40 }
41 override void Perform(SCR_EditableEntityComponent hoveredEntity, notnull set<SCR_EditableEntityComponent> selectedEntities, vector cursorWorldPosition, int flags, int param = -1)
42 {
43 if (!hoveredEntity)
44 return;
45
46 //--- DIRTY HACK - use cached entity from CanBeShown (at this moment entity under cursor may differ). ToDo: CLEANER!
47 if (!IsServer() && hoveredEntity)
48 {
49 hoveredEntity = m_HoveredEntity;
50
51 //~ Tried to set new hovered entity but it was null
52 if (!hoveredEntity)
53 return;
54 }
55
56 IEntity owner = hoveredEntity.GetOwnerScripted();
57 if (!owner)
58 return;
59
61 if (!actionsManager || actionsManager.GetActionsCount() != 1)
62 return;
63
64 ScriptedUserAction action = ScriptedUserAction.Cast(actionsManager.GetFirstAction());
65 if (!action || !action.CanBePerformed(SCR_EditorManagerEntity.GetInstance()))
66 return;
67
69 if (manager)
70 manager.PerformFirstAction(owner);
71 }
72};
SCR_EAIThreatSectorFlags flags
SCR_AIAnimation_Loitering BaseContainerProps
Commanding menu commanding element class.
class SCR_ArsenalGameModeUIDataHolder SCR_BaseContainerCustomTitleUIInfo("m_UIInfo")
void SCR_EditorManagerEntity(IEntitySource src, IEntity parent)
proto external string GetActionName()
proto external bool CanBePerformed(IEntity user)
Can this action be performed by the user?
proto external Managed FindComponent(typename typeName)
static SCR_EditableEntityComponent GetFirstEntity(EEditableEntityState state)
override bool CanBePerformed(SCR_EditableEntityComponent hoveredEntity, notnull set< SCR_EditableEntityComponent > selectedEntities, vector cursorWorldPosition, int flags)
override void Perform(SCR_EditableEntityComponent hoveredEntity, notnull set< SCR_EditableEntityComponent > selectedEntities, vector cursorWorldPosition, int flags, int param=-1)
override bool CanBeShown(SCR_EditableEntityComponent hoveredEntity, notnull set< SCR_EditableEntityComponent > selectedEntities, vector cursorWorldPosition, int flags)
SCR_EditableEntityComponent m_HoveredEntity
EEditableEntityState