Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_EditableEffectModuleComponent.c
Go to the documentation of this file.
1[ComponentEditorProps(category: "GameScripted/Editor (Editables)", description: "", icon: "WBData/ComponentEditorProps/componentEditor.png")]
5
8
12class SCR_EditableEffectsModuleComponent: SCR_EditableSystemComponent
13{
14 //------------------------------------------------------------------------------------------------
15 override bool IsDestroyed()
16 {
17 return !CanDestroy();
18 }
19
20 //------------------------------------------------------------------------------------------------
21 override bool CanDestroy()
22 {
24 while (child)
25 {
26 if (child.FindComponent(SCR_PressureTriggerComponent) && child.FindComponent(SCR_EffectsModuleChildComponent))
27 return true;
28
29 child = GenericEntity.Cast(child.GetSibling());
30 }
31
32 return false;
33 }
34
35 //------------------------------------------------------------------------------------------------
36 //~ Destroys one entity. Will return true if all entities are destroyed
37 override bool Destroy(int editorPlayerID)
38 {
39 SCR_PressureTriggerComponent pressureTriggerComponent;
40
42 while (child)
43 {
45 {
46 child = GenericEntity.Cast(child.GetSibling());
47 continue;
48 }
49
50 pressureTriggerComponent = SCR_PressureTriggerComponent.Cast(child.FindComponent(SCR_PressureTriggerComponent));
51 if (!pressureTriggerComponent)
52 {
53 child = GenericEntity.Cast(child.GetSibling());
54 continue;
55 }
56
57 pressureTriggerComponent.SetInstigator(Instigator.CreateInstigatorGM(editorPlayerID));
58 pressureTriggerComponent.TriggerManuallyServer();
59 break;
60 }
61
62 return IsDestroyed();
63 }
64
65 //------------------------------------------------------------------------------------------------
66 override bool SetTransform(vector transform[4], bool changedByUser = false)
67 {
68 if (!super.SetTransform(transform, changedByUser))
69 return false;
70
71 if (!IsServer() || !m_Owner)
72 return false;
73
75 if (!effectModuleComponent)
76 return false;
77
78 //~ Snaps non-editable children to terrain again if need be
79 effectModuleComponent.OnTransformChanged();
80 return true;
81 }
82
83 //------------------------------------------------------------------------------------------------
84 override void RemoveParentEntity()
85 {
88
89 super.RemoveParentEntity();
90 }
91
92 //------------------------------------------------------------------------------------------------
93 [RplRpc(RplChannel.Reliable, RplRcver.Broadcast)]
95 {
97 if (effectModuleComponent)
98 effectModuleComponent.EditorOnRemovedFromParent();
99 }
100
101 //------------------------------------------------------------------------------------------------
102 override bool Delete(bool changedByUser = false, bool updateNavmesh = true)
103 {
105 if (!effectModuleComponent || effectModuleComponent.EditorInstantDelete())
106 return super.Delete(changedByUser, updateNavmesh);
107
108 RemoveParentEntity();
109 return true;
110 }
111}
enum EAIGroupCombatMode ComponentEditorProps(category:"GameScripted/AI", description:"Component for utility AI system for groups")
override bool CanDestroy()
override bool IsDestroyed()
override bool IsServer()
void GetChildren(out array< SCR_ScenarioFrameworkLayerBase > children)
proto external Managed FindComponent(typename typeName)
proto external IEntity GetSibling()
override bool Delete(bool changedByUser=false, bool updateNavmesh=true)
IEntity GetOwner()
Owner entity of the fuel tank.
void RplRpc(RplChannel channel, RplRcver rcver, RplCondition condition=RplCondition.None, string customConditionName="")
Definition EnNetwork.c:95
RplRcver
Definition RplRcver.c:59
RplChannel
Communication channel. Reliable is guaranteed to be delivered. Unreliable not.
Definition RplChannel.c:14