Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_RippleFireIntervalAction.c
Go to the documentation of this file.
2{
3 protected SCR_FireModeManagerComponent fireModeManager;
4
5 //------------------------------------------------------------------------------------------------
6 override void Init(IEntity pOwnerEntity, GenericComponent pManagerComponent)
7 {
8 super.Init(pOwnerEntity, pManagerComponent);
9
10 fireModeManager = SCR_FireModeManagerComponent.Cast(GetOwner().FindComponent(SCR_FireModeManagerComponent));
11
12 if (pOwnerEntity.GetParent())
14 }
15
16 //------------------------------------------------------------------------------------------------
17 override bool CanBeShownScript(IEntity user)
18 {
19 if (fireModeManager && fireModeManager.GetFireMode() == EWeaponGroupFireMode.RIPPLE)
20 return true;
21
22 return false;
23 }
24
25 //------------------------------------------------------------------------------------------------
28 override protected bool OnSaveActionData(ScriptBitWriter writer)
29 {
30 bool saved = super.OnSaveActionData(writer);
31 bool noChanges = float.AlmostEqual(m_fTargetValue, fireModeManager.GetRippleInterval());
32 writer.WriteBool(noChanges);
33 if (noChanges)
34 return saved;
35
36 writer.WriteFloat(m_fTargetValue);
38 fireModeManager.SetRippleInterval(m_fTargetValue);
39
40 return saved;
41 }
42
43 //------------------------------------------------------------------------------------------------
47 override protected bool OnLoadActionData(ScriptBitReader reader)
48 {
49 bool loaded = super.OnLoadActionData(reader);
50 bool noChanges;
51 reader.ReadBool(noChanges);
52 if (noChanges)
53 return loaded;
54
55 float value;
56 reader.ReadFloat(value);
57 if (m_bIsAdjustedByPlayer || float.AlmostEqual(value, fireModeManager.GetRippleInterval()))
58 return loaded;
59
60 m_fTargetValue = value;
62 fireModeManager.SetRippleInterval(m_fTargetValue);
63
64 return loaded;
65 }
66
67 //------------------------------------------------------------------------------------------------
68 override bool GetActionNameScript(out string outName)
69 {
70 if (!fireModeManager)
71 return false;
72
73 UIInfo info = GetUIInfo();
74 if (!info)
75 return false;
76
77 outName = info.GetName() + " " + fireModeManager.GetRippleInterval();
78
79 return true;
80 }
81}
proto external Managed FindComponent(typename typeName)
proto external IEntity GetParent()
float m_fTargetValue
Normalized current value.
bool m_bIsAdjustedByPlayer
Interacted with by main entity. Allows reading input actions.
SoundComponent m_SoundComponent
Sound component on owner entity.
SCR_FireModeManagerComponent fireModeManager
override bool CanBeShownScript(IEntity user)
override bool GetActionNameScript(out string outName)
override void Init(IEntity pOwnerEntity, GenericComponent pManagerComponent)
bool OnLoadActionData(ScriptBitReader reader)
bool OnSaveActionData(ScriptBitWriter writer)
UIInfo - allows to define UI elements.
Definition UIInfo.c:14
IEntity GetOwner()
Owner entity of the fuel tank.
EWeaponGroupFireMode