Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
FireDamageSystem.c
Go to the documentation of this file.
2{
3 override static void InitInfo(WorldSystemInfo outInfo)
4 {
5 outInfo
6 .SetAbstract(false)
7 .AddPoint(ESystemPoint.FixedFrame);
8 }
9
10 protected ref array<SCR_DamageManagerComponent> m_aDamageManagers = {};
11
12 //------------------------------------------------------------------------------------------------
13 override bool ShouldBePaused()
14 {
15 return true;
16 }
17
18 //------------------------------------------------------------------------------------------------
19 protected override void OnUpdatePoint(WorldUpdatePointArgs args)
20 {
21 float timeSlice = args.GetTimeSliceSeconds();
22
23 foreach (SCR_DamageManagerComponent component : m_aDamageManagers)
24 {
25 if (component)
26 component.UpdateFireDamage(timeSlice);
27 }
28 }
29
30 //------------------------------------------------------------------------------------------------
31 override void OnDiag(float timeSlice)
32 {
33 DbgUI.Begin("FireDamageSystem");
34
35 DbgUI.Text("Damage managers: " + m_aDamageManagers.Count());
36
37 if (DbgUI.Button("Dump active fire damage manager components"))
38 {
39 foreach (SCR_DamageManagerComponent component : m_aDamageManagers)
40 {
41 Print(component.GetOwner(), LogLevel.ERROR);
42 }
43 }
44
45 DbgUI.End();
46 }
47
48 //------------------------------------------------------------------------------------------------
50 void Register(SCR_DamageManagerComponent component)
51 {
52 //About to be deleted
53 if (component.GetOwner().IsDeleted() || (component.GetOwner().GetFlags() & EntityFlags.USER5))
54 return;
55
56 if (!m_aDamageManagers.Contains(component))
57 m_aDamageManagers.Insert(component);
58 }
59
60 //------------------------------------------------------------------------------------------------
61 void Unregister(SCR_DamageManagerComponent component)
62 {
63 m_aDamageManagers.RemoveItem(component);
64
65 // Final update
66 if (component)
67 component.UpdateFireDamage(GetWorld().GetFixedTimeSlice());
68 }
69}
Definition DbgUI.c:66
void Unregister(SCR_DamageManagerComponent component)
ref array< SCR_DamageManagerComponent > m_aDamageManagers
void Register(SCR_DamageManagerComponent component)
override bool ShouldBePaused()
override void OnUpdatePoint(WorldUpdatePointArgs args)
override void OnDiag(float timeSlice)
Structure holding world system meta-information required by the engine.
Structure holding extra data of WorldSystem update point.
WorldSystemPoint ESystemPoint
Definition gameLib.c:7
proto void Print(void var, LogLevel level=LogLevel.NORMAL)
Prints content of variable to console/log.
LogLevel
Enum with severity of the logging message.
Definition LogLevel.c:14
EntityFlags
Various entity flags.
Definition EntityFlags.c:14