Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_EditableEntityInteraction.c
Go to the documentation of this file.
3{
4 protected bool m_bCanRefParent; //++ This can be set in inherited classes' constructor
5
6 static const int ROOT = -1;
7
14 sealed bool CanSetParent(SCR_EditableEntityComponent parentEntity, EEditableEntityInteractionFlag interactionFlags = int.MAX)
15 {
16 if (parentEntity)
17 {
19 return CanSetParent(parentEntity, parentEntity.GetEntityType(), parentEntity.GetEntityFlags(), interactionFlags);
20
21 return CanSetParent(parentEntity.GetEntityType(), parentEntity.GetEntityFlags(), interactionFlags);
22 }
23 else
24 {
26 return CanSetParent(null, ROOT, 0, interactionFlags);
27
28 return CanSetParent(ROOT, 0, interactionFlags);
29 }
30 }
31
38 bool CanSetParent(EEditableEntityType parentType, EEditableEntityFlag parentFlags, EEditableEntityInteractionFlag interactionFlags = int.MAX)
39 {
40 if (!SCR_Enum.HasFlag(interactionFlags, EEditableEntityInteractionFlag.DELEGATE) || !SCR_Enum.HasFlag(interactionFlags, EEditableEntityInteractionFlag.LAYER_EDITING))
41 return false;
42
43 if (parentType == ROOT)
44 return true;
45
46 if (!SCR_Enum.HasFlag(interactionFlags, EEditableEntityInteractionFlag.DELEGATE))
47 return false;
48
49 if ((parentFlags & EEditableEntityFlag.LAYER) != EEditableEntityFlag.LAYER)
50 return false;
51
52 return parentType == EEditableEntityType.GENERIC;
53 }
54
63 {
64 //++ Do something with parent
65 return CanSetParent(parentType, parentFlags, interactionFlags);
66 }
67
76 bool CanCreateParentFor(EEditableEntityType newLayerType, EEditableEntityFlag newLayerFlags, SCR_EditableEntityComponent parentEntity, bool CheckParentEntity = true)
77 {
78 if (CheckParentEntity && parentEntity)
79 {
81
82 if (core)
83 {
85 if (!interaction.CanSetParent(parentEntity))
86 return false;
87 }
88 }
89
90 return CanSetParent(newLayerType, newLayerFlags);
91 }
92};
SCR_AIAnimation_Loitering BaseContainerProps
Commanding menu commanding element class.
EEditableEntityType GetEntityType(IEntity owner=null)
SCR_EditableEntityInteraction GetEntityInteraction(EEditableEntityType type)
bool CanCreateParentFor(EEditableEntityType newLayerType, EEditableEntityFlag newLayerFlags, SCR_EditableEntityComponent parentEntity, bool CheckParentEntity=true)
sealed bool CanSetParent(SCR_EditableEntityComponent parentEntity, EEditableEntityInteractionFlag interactionFlags=int.MAX)
bool CanSetParent(EEditableEntityType parentType, EEditableEntityFlag parentFlags, EEditableEntityInteractionFlag interactionFlags=int.MAX)
bool CanSetParent(SCR_EditableEntityComponent parentEntity, EEditableEntityType parentType, EEditableEntityFlag parentFlags, EEditableEntityInteractionFlag interactionFlags=int.MAX)
EEditableEntityType
Defines type of SCR_EditableEntityComponent. Assigned automatically based on IEntity inheritance.
EEditableEntityFlag
Unique flags of the entity.
EEditableEntityInteractionFlag
Details of entity interaction.
@ MAX