Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
nvgoggles.c
Go to the documentation of this file.
1
class
NVGoggles
extends
PoweredOptic_Base
2
{
3
bool
m_IsLowered
;
4
Clothing
m_Strap
;
5
6
void
NVGoggles
()
7
{
8
RotateGoggles
(
true
);
9
}
10
11
override
ECachedEquipmentItemCategory
GetCachedEquipmentCategory
()
12
{
13
return
ECachedEquipmentItemCategory
.NVG;
14
}
15
16
override
void
SetActions
()
17
{
18
super.SetActions();
19
20
RemoveAction
(
ActionViewOptics
);
21
AddAction
(
ActionViewBinoculars
);
22
}
23
24
override
void
EEItemAttached
(
EntityAI
item,
string
slot_name)
25
{
26
super.EEItemAttached(item, slot_name);
27
28
if
(GetCompEM().CanWork() &&
m_IsLowered
)
29
GetCompEM().SwitchOn();
30
}
31
32
override
void
EEItemDetached
(
EntityAI
item,
string
slot_name)
33
{
34
super.EEItemDetached(item, slot_name);
35
36
RotateGoggles
(
true
);
37
38
PlayerBase
player;
39
if
(
m_Strap
&&
PlayerBase
.CastTo(player, GetHierarchyRootPlayer()))
40
m_Strap
.UpdateNVGStatus(player,
false
,
true
);
41
}
42
43
override
void
OnWasAttached
(
EntityAI
parent,
int
slot_id)
44
{
45
super.OnWasAttached(parent, slot_id);
46
47
RotateGoggles
(
true
);
48
m_Strap
=
Clothing
.Cast(parent);
49
}
50
51
override
void
OnWasDetached
(
EntityAI
parent,
int
slot_id)
52
{
53
super.OnWasDetached(parent, slot_id);
54
55
RotateGoggles
(
true
);
56
SetPlayer
(null);
57
58
PlayerBase
player;
59
if
(
m_Strap
== parent &&
PlayerBase
.CastTo(player, parent.GetHierarchyRootPlayer()))
60
{
61
if
(parent &&
Clothing
.Cast(parent))
62
Clothing
.Cast(parent).UpdateNVGStatus(player,
false
,
true
);
63
}
64
65
m_Strap
= null;
66
}
67
68
override
void
OnWorkStart
()
69
{
70
super.OnWorkStart();
71
72
PlayerBase
player;
73
EntityAI
headgear;
74
EntityAI
glasses;
75
if
(
m_Strap
&&
PlayerBase
.CastTo(player,
m_Strap
.GetHierarchyParent()))
76
{
77
headgear = player.FindAttachmentBySlotName(
"Headgear"
);
78
glasses = player.FindAttachmentBySlotName(
"Eyewear"
);
79
80
//adjust on load - ComponentEnergyManager stores the 'working' state independently
81
if
(!
m_IsLowered
)
82
RotateGoggles
(
false
);
83
84
if
(!
g_Game
.IsServer() || !
g_Game
.IsMultiplayer())
85
{
86
if
((headgear ==
m_Strap
|| glasses ==
m_Strap
))
87
m_Strap
.UpdateNVGStatus(player);
88
}
89
}
90
}
91
92
override
void
OnWorkStop
()
93
{
94
super.OnWorkStop();
95
96
PlayerBase
player;
97
EntityAI
headgear;
98
EntityAI
glasses;
99
if
(
m_Strap
&&
PlayerBase
.CastTo(player,
m_Strap
.GetHierarchyParent()))
100
{
101
headgear = player.FindAttachmentBySlotName(
"Headgear"
);
102
glasses = player.FindAttachmentBySlotName(
"Eyewear"
);
103
104
if
(!
g_Game
.IsServer() || !
g_Game
.IsMultiplayer())
105
{
106
if
((headgear ==
m_Strap
|| glasses ==
m_Strap
))
107
m_Strap
.UpdateNVGStatus(player);
108
}
109
}
110
}
111
112
override
void
OnWork
(
float
consumed_energy)
113
{
114
//adjust on load - ComponentEnergyManager stores the 'working' state independently
115
if
(!
m_IsLowered
)
116
RotateGoggles
(
false
);
117
118
PlayerBase
player;
119
EntityAI
headgear;
120
EntityAI
glasses;
121
if
(
m_Strap
&&
PlayerBase
.CastTo(player,
m_Strap
.GetHierarchyParent()))
122
{
123
headgear = player.FindAttachmentBySlotName(
"Headgear"
);
124
glasses = player.FindAttachmentBySlotName(
"Eyewear"
);
125
126
if
(!
g_Game
.IsServer() || !
g_Game
.IsMultiplayer())
// Client side
127
{
128
if
((headgear ==
m_Strap
|| glasses ==
m_Strap
) && player.IsControlledPlayer())
129
player.AddActiveNV(
GetCurrentNVType
());
130
}
131
}
132
}
133
134
void
RotateGoggles
(
bool
state)
135
{
136
if
(!
m_Strap
&& !state)
// disable non default rotation while not strapped
137
return
;
138
139
SetAnimationPhase(
"rotate"
, !state);
140
m_IsLowered
= !state;
141
142
PlayerBase
player;
143
int
slotId;
144
string
slotName
;
145
if
(
m_Strap
&&
m_Strap
.GetInventory().GetCurrentAttachmentSlotInfo(slotId,
slotName
) &&
PlayerBase
.CastTo(player,
m_Strap
.GetHierarchyParent()))
146
m_Strap
.UpdateNVGStatus(player);
147
148
if
(GetCompEM())
149
{
150
if
(!state && GetCompEM().CanWork())
151
GetCompEM().SwitchOn();
152
else
153
GetCompEM().SwitchOff();
154
}
155
}
156
157
override
int
GetCurrentNVType
()
158
{
159
if
(IsWorking())
160
{
161
if
(IsUsingOptics2DModel())
162
return
NVTypes
.NV_GOGGLES_2D;
163
164
return
NVTypes
.NV_GOGGLES;
//omits the widget occluder
165
}
166
else
167
{
168
return
NVTypes
.NV_GOGGLES_OFF;
169
}
170
}
171
172
override
bool
IsNVG
()
173
{
174
return
true
;
175
}
176
180
181
ref
Timer
m_WorkCheckTimer
=
new
Timer
();
182
184
void
LoweredCheck
()
185
{
186
if
(GetAnimationPhase(
"rotate"
) !=
m_IsLowered
)
187
{
188
m_IsLowered
= GetAnimationPhase(
"rotate"
);
189
}
190
}
191
192
void
SwitchOnNVGCheck
()
193
{
194
GetCompEM().SwitchOn();
195
if
(GetCompEM().IsSwitchedOn())
196
m_WorkCheckTimer
.Stop();
197
}
198
}
AddAction
void AddAction(typename actionName)
Definition
advancedcommunication.c:220
RemoveAction
void RemoveAction(typename actionName)
Definition
advancedcommunication.c:252
slotName
PlayerSpawnPreset slotName
ActionViewBinoculars
Definition
actionviewbinoculars.c:2
ActionViewOptics
Definition
actionviewoptics.c:2
Clothing
Definition
armband_colorbase.c:2
EntityAI
Definition
inventoryitem.c:2
PlayerBase
Definition
playerbaseclient.c:2
PoweredOptic_Base
Definition
nvgoggles.c:2
PoweredOptic_Base::m_IsLowered
bool m_IsLowered
Definition
nvgoggles.c:3
PoweredOptic_Base::LoweredCheck
void LoweredCheck()
check for animation state, if another player lowered them first (or solve by synced variable)
Definition
nvgoggles.c:184
PoweredOptic_Base::m_WorkCheckTimer
ref Timer m_WorkCheckTimer
DEPRECATED.
Definition
nvgoggles.c:181
PoweredOptic_Base::SwitchOnNVGCheck
void SwitchOnNVGCheck()
Definition
nvgoggles.c:192
PoweredOptic_Base::OnWorkStop
override void OnWorkStop()
Definition
nvgoggles.c:92
PoweredOptic_Base::NVGoggles
void NVGoggles()
Definition
nvgoggles.c:6
PoweredOptic_Base::m_Strap
Clothing m_Strap
Definition
nvgoggles.c:4
PoweredOptic_Base::EEItemDetached
override void EEItemDetached(EntityAI item, string slot_name)
Definition
nvgoggles.c:32
PoweredOptic_Base::OnWork
override void OnWork(float consumed_energy)
Definition
nvgoggles.c:112
PoweredOptic_Base::OnWasDetached
override void OnWasDetached(EntityAI parent, int slot_id)
Definition
nvgoggles.c:51
PoweredOptic_Base::GetCachedEquipmentCategory
override ECachedEquipmentItemCategory GetCachedEquipmentCategory()
Definition
nvgoggles.c:11
PoweredOptic_Base::OnWorkStart
override void OnWorkStart()
Definition
nvgoggles.c:68
PoweredOptic_Base::EEItemAttached
override void EEItemAttached(EntityAI item, string slot_name)
Definition
nvgoggles.c:24
PoweredOptic_Base::GetCurrentNVType
override int GetCurrentNVType()
Definition
nvgoggles.c:157
PoweredOptic_Base::OnWasAttached
override void OnWasAttached(EntityAI parent, int slot_id)
Definition
nvgoggles.c:43
PoweredOptic_Base::RotateGoggles
void RotateGoggles(bool state)
Definition
nvgoggles.c:134
PoweredOptic_Base::IsNVG
override bool IsNVG()
Definition
nvgoggles.c:172
PoweredOptic_Base::SetActions
override void SetActions()
Definition
nvgoggles.c:16
Timer
Definition
dayzplayerimplement.c:39
g_Game
DayZGame g_Game
Definition
dayzgame.c:3942
NVTypes
NVTypes
Definition
dayzplayercamera_base.c:55
ECachedEquipmentItemCategory
ECachedEquipmentItemCategory
Definition
ecachedequipmentitemcategory.c:2
SetPlayer
void SetPlayer(Man player)
Definition
playerstatspco.c:67
Games
Dayz
scripts
4_world
entities
itembase
nvgoggles.c
Generated by
1.17.0