Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
powergeneratorstatic.c
Go to the documentation of this file.
1
class
PowerGeneratorStatic
: PowerGeneratorBase
2
{
3
const
int
SWITCH_COUNT
= 6;
4
const
int
LOW_ENERGY_PERCENT
= 5;
5
6
protected
static
ref set<PowerGeneratorStatic>
m_PowerGenerators
=
new
set<PowerGeneratorStatic>();
7
protected
Land_WarheadStorage_PowerStation
m_Parent
;
8
9
protected
int
m_ParentID1
;
10
protected
int
m_ParentID2
;
11
protected
int
m_ParentID3
;
12
protected
int
m_ParentID4
;
13
14
protected
int
m_LeverStatesBits
;
15
16
void
PowerGeneratorStatic
()
17
{
18
RegisterPersistentObject
(
this
);
19
}
20
21
void
~PowerGeneratorStatic
()
22
{
23
UnregisterPersistentObject
(
this
);
24
}
25
26
static
void
RegisterPersistentObject
(
PowerGeneratorStatic
obj)
27
{
28
m_PowerGenerators
.Insert(obj);
29
}
30
31
static
void
UnregisterPersistentObject
(
PowerGeneratorStatic
obj)
32
{
33
if
(!
m_PowerGenerators
)
34
return
;
35
int
index =
m_PowerGenerators
.Find(obj);
36
if
(index != -1)
37
{
38
m_PowerGenerators
.Remove(index);
39
}
40
}
41
42
static
PowerGeneratorStatic
GetClosestGenerator
(
vector
position,
float
tolerance)
43
{
44
float
toleranceSq = tolerance * tolerance;
45
float
smallestDist =
float
.
MAX
;
46
PowerGeneratorStatic
closest;
47
48
foreach
(
PowerGeneratorStatic
obj:
m_PowerGenerators
)
49
{
50
float
distSq =
vector
.
DistanceSq
(position,obj.GetPosition());
51
if
(distSq < toleranceSq)
52
{
53
return
obj;
54
}
55
}
56
return
null;
57
}
58
59
void
SetParent
(
Land_WarheadStorage_PowerStation
parent)
60
{
61
m_Parent
= parent;
62
}
63
64
// States saved thorugh the generator entity since it doesnt work when done building side
65
void
StoreLeverStates
(
int
leverStateBits)
66
{
67
m_LeverStatesBits
= leverStateBits;
68
}
69
70
int
GetStoredLeverBits
()
71
{
72
return
m_LeverStatesBits
;
73
}
74
75
// Generator is working
76
override
void
OnWorkStart
()
77
{
78
super.OnWorkStart();
79
if
(
m_Parent
)
80
{
81
m_Parent
.OnGeneratorStart();
82
}
83
84
if
(!
g_Game
.IsServer())
85
return
;
86
87
for
(
int
i = 1; i <=
SWITCH_COUNT
; i++)
88
{
89
SetAnimationPhase(
"Switch"
+ i.ToString(), 1);
90
}
91
}
92
93
// Turn off when this runs out of fuel
94
override
void
OnWorkStop
()
95
{
96
super.OnWorkStop();
97
if
(
m_Parent
)
98
{
99
m_Parent
.OnGeneratorStop();
100
}
101
102
if
(!
g_Game
.IsServer())
103
return
;
104
105
for
(
int
i = 1; i <=
SWITCH_COUNT
; i++)
106
{
107
SetAnimationPhase(
"Switch"
+ i.ToString(), 0);
108
}
109
}
110
111
override
void
SetLowEnergyState
(
bool
state)
112
{
113
super.SetLowEnergyState(state);
114
115
if
(
g_Game
.IsServer() &&
m_Parent
)
116
{
117
Land_WarheadStorage_Main
bunker =
m_Parent
.GetClosestBunker();
118
if
(bunker)
119
bunker.
SetLowEnergyStateServer
(state);
120
}
121
}
122
123
override
vector
GetSmokeParticlePosition
()
124
{
125
return
"1.1 1.1 -1.1"
;
126
}
127
128
override
vector
GetSmokeParticleOrientation
()
129
{
130
return
"90 0 23"
;
131
}
132
133
// Checks sparkplug
134
override
bool
HasSparkplug
()
135
{
136
int
slot =
InventorySlots
.
GetSlotIdFromString
(
"GlowPlug"
);
137
EntityAI
ent = GetInventory().FindAttachment(slot);
138
139
return
ent && !ent.IsRuined();
140
}
141
142
// Taking item into inventory
143
override
bool
CanPutInCargo
(
EntityAI
parent )
144
{
145
return
false
;
146
}
147
148
// Taking item into inventory
149
override
bool
CanPutIntoHands
(
EntityAI
parent)
150
{
151
return
false
;
152
}
153
154
override
void
OnStoreSave
(
ParamsWriteContext
ctx)
155
{
156
super.OnStoreSave(ctx);
157
158
if
(
m_Parent
)
159
m_Parent
.GetPersistentID(
m_ParentID1
,
m_ParentID2
,
m_ParentID3
,
m_ParentID4
);
160
161
ctx.
Write
(
m_ParentID1
);
162
ctx.
Write
(
m_ParentID2
);
163
ctx.
Write
(
m_ParentID3
);
164
ctx.
Write
(
m_ParentID4
);
165
166
ctx.
Write
(
m_LeverStatesBits
);
167
}
168
169
override
bool
OnStoreLoad
(
ParamsReadContext
ctx,
int
version )
170
{
171
if
( !super.OnStoreLoad( ctx, version ) )
172
return
false
;
173
174
if
( !ctx.
Read
(
m_ParentID1
))
175
{
176
return
false
;
177
}
178
if
( !ctx.
Read
(
m_ParentID2
))
179
{
180
return
false
;
181
}
182
if
( !ctx.
Read
(
m_ParentID3
))
183
{
184
return
false
;
185
}
186
if
( !ctx.
Read
(
m_ParentID4
))
187
{
188
return
false
;
189
}
190
191
if
(version >= 141 && !ctx.
Read
(
m_LeverStatesBits
) )
192
return
false
;
193
194
return
true
;
195
}
196
197
override
void
EEOnAfterLoad
()
198
{
199
// Does this part actually do anything?
200
Land_WarheadStorage_PowerStation
powerStation =
Land_WarheadStorage_PowerStation
.Cast(
g_Game
.GetEntityByPersitentID(
m_ParentID1
,
m_ParentID2
,
m_ParentID3
,
m_ParentID4
));
201
if
(powerStation)
202
{
203
PowerGeneratorStatic
otherGenerator = powerStation.
GetPowerGenerator
();
204
if
(otherGenerator)
205
{
206
otherGenerator.SetFuel(GetFuel());
207
Delete();
208
}
209
}
210
}
211
212
override
bool
CanReleaseAttachment
(
EntityAI
attachment)
213
{
214
if
(!super.CanReleaseAttachment(attachment))
215
return
false
;
216
return
!GetCompEM().IsWorking();
217
}
218
219
override
bool
IsTakeable
()
220
{
221
return
false
;
222
}
223
224
override
bool
IsActionTargetVisible
()
225
{
226
return
true
;
227
}
228
229
override
bool
DisableVicinityIcon
()
230
{
231
return
true
;
232
}
233
234
// DEPRECATED
235
236
void
SetLowEnergyStateServer
(
bool
state);
237
}
EntityAI
Definition
inventoryitem.c:2
InventorySlots
provides access to slot configuration
Definition
inventoryslots.c:6
InventorySlots::GetSlotIdFromString
static proto native int GetSlotIdFromString(string slot_name)
Land_WarheadStorage_Main
Definition
land_warheadstorage_main.c:2
Land_WarheadStorage_Main::SetLowEnergyStateServer
void SetLowEnergyStateServer(bool state)
Definition
land_warheadstorage_main.c:90
Land_WarheadStorage_PowerStation
Definition
land_warheadstorage_powerstation.c:2
Land_WarheadStorage_PowerStation::GetPowerGenerator
PowerGeneratorStatic GetPowerGenerator()
Definition
land_warheadstorage_powerstation.c:83
PowerGeneratorStatic::DisableVicinityIcon
override bool DisableVicinityIcon()
Definition
powergeneratorstatic.c:229
PowerGeneratorStatic::m_PowerGenerators
static ref set< PowerGeneratorStatic > m_PowerGenerators
Definition
powergeneratorstatic.c:6
PowerGeneratorStatic::RegisterPersistentObject
static void RegisterPersistentObject(PowerGeneratorStatic obj)
Definition
powergeneratorstatic.c:26
PowerGeneratorStatic::SetLowEnergyState
override void SetLowEnergyState(bool state)
Definition
powergeneratorstatic.c:111
PowerGeneratorStatic::OnStoreSave
override void OnStoreSave(ParamsWriteContext ctx)
Definition
powergeneratorstatic.c:154
PowerGeneratorStatic::GetStoredLeverBits
int GetStoredLeverBits()
Definition
powergeneratorstatic.c:70
PowerGeneratorStatic::SWITCH_COUNT
const int SWITCH_COUNT
Definition
powergeneratorstatic.c:3
PowerGeneratorStatic::PowerGeneratorStatic
void PowerGeneratorStatic()
Definition
powergeneratorstatic.c:16
PowerGeneratorStatic::~PowerGeneratorStatic
void ~PowerGeneratorStatic()
Definition
powergeneratorstatic.c:21
PowerGeneratorStatic::CanPutInCargo
override bool CanPutInCargo(EntityAI parent)
Definition
powergeneratorstatic.c:143
PowerGeneratorStatic::m_ParentID1
int m_ParentID1
Definition
powergeneratorstatic.c:9
PowerGeneratorStatic::OnWorkStop
override void OnWorkStop()
Definition
powergeneratorstatic.c:94
PowerGeneratorStatic::m_ParentID4
int m_ParentID4
Definition
powergeneratorstatic.c:12
PowerGeneratorStatic::m_ParentID2
int m_ParentID2
Definition
powergeneratorstatic.c:10
PowerGeneratorStatic::CanReleaseAttachment
override bool CanReleaseAttachment(EntityAI attachment)
Definition
powergeneratorstatic.c:212
PowerGeneratorStatic::GetSmokeParticlePosition
override vector GetSmokeParticlePosition()
Definition
powergeneratorstatic.c:123
PowerGeneratorStatic::StoreLeverStates
void StoreLeverStates(int leverStateBits)
Definition
powergeneratorstatic.c:65
PowerGeneratorStatic::GetClosestGenerator
static PowerGeneratorStatic GetClosestGenerator(vector position, float tolerance)
Definition
powergeneratorstatic.c:42
PowerGeneratorStatic::IsActionTargetVisible
override bool IsActionTargetVisible()
Definition
powergeneratorstatic.c:224
PowerGeneratorStatic::m_LeverStatesBits
int m_LeverStatesBits
Definition
powergeneratorstatic.c:14
PowerGeneratorStatic::EEOnAfterLoad
override void EEOnAfterLoad()
Definition
powergeneratorstatic.c:197
PowerGeneratorStatic::CanPutIntoHands
override bool CanPutIntoHands(EntityAI parent)
Definition
powergeneratorstatic.c:149
PowerGeneratorStatic::GetSmokeParticleOrientation
override vector GetSmokeParticleOrientation()
Definition
powergeneratorstatic.c:128
PowerGeneratorStatic::OnStoreLoad
override bool OnStoreLoad(ParamsReadContext ctx, int version)
Definition
powergeneratorstatic.c:169
PowerGeneratorStatic::HasSparkplug
override bool HasSparkplug()
Definition
powergeneratorstatic.c:134
PowerGeneratorStatic::LOW_ENERGY_PERCENT
const int LOW_ENERGY_PERCENT
Definition
powergeneratorstatic.c:4
PowerGeneratorStatic::OnWorkStart
override void OnWorkStart()
Definition
powergeneratorstatic.c:76
PowerGeneratorStatic::IsTakeable
override bool IsTakeable()
Definition
powergeneratorstatic.c:219
PowerGeneratorStatic::UnregisterPersistentObject
static void UnregisterPersistentObject(PowerGeneratorStatic obj)
Definition
powergeneratorstatic.c:31
PowerGeneratorStatic::SetLowEnergyStateServer
void SetLowEnergyStateServer(bool state)
PowerGeneratorStatic::m_ParentID3
int m_ParentID3
Definition
powergeneratorstatic.c:11
PowerGeneratorStatic::SetParent
void SetParent(Land_WarheadStorage_PowerStation parent)
Definition
powergeneratorstatic.c:59
PowerGeneratorStatic::m_Parent
Land_WarheadStorage_PowerStation m_Parent
Definition
powergeneratorstatic.c:7
Serializer::Write
proto bool Write(void value_out)
Serializer::Read
proto bool Read(void value_in)
float::MAX
const float MAX
Definition
enconvert.c:112
vector
Definition
enconvert.c:119
vector::DistanceSq
static proto native float DistanceSq(vector v1, vector v2)
Returns the square distance between tips of two 3D vectors.
g_Game
DayZGame g_Game
Definition
dayzgame.c:3942
ParamsReadContext
Serializer ParamsReadContext
Definition
gameplay.c:15
ParamsWriteContext
Serializer ParamsWriteContext
Definition
gameplay.c:16
Games
Dayz
scripts
4_world
entities
building
underground
powergeneratorstatic.c
Generated by
1.17.0