Dayz Explorer 1.29.162510
Loading...
Searching...
No Matches
sedan_02.c
Go to the documentation of this file.
1class Sedan_02 extends CarScript
2{
6
7 void Sedan_02()
8 {
9 m_dmgContactCoef = 0.0790;
10
11 m_EngineStartOK = "Sedan_02_engine_start_SoundSet";
12 m_EngineStartBattery = "Sedan_02_engine_failed_start_battery_SoundSet";
13 m_EngineStartPlug = "Sedan_02_engine_failed_start_sparkplugs_SoundSet";
14 m_EngineStartFuel = "Sedan_02_engine_failed_start_fuel_SoundSet";
15 m_EngineStop = "Sedan_02_engine_stop_SoundSet";
16 m_EngineStopFuel = "Sedan_02_engine_stop_fuel_SoundSet";
17
18 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
19 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
20
21 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
22 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
23
24 SetEnginePos("0 0.7 -1.7");
25 }
26
27 void ~Sedan_02()
28 {
29 m_UTSource = null;
30 m_UTSSettings = null;
31 m_UTSLEngine = null;
32 }
33
34 override void EEInit()
35 {
36 super.EEInit();
37
38 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
39 {
41 m_UTSSettings.m_ManualUpdate = true;
42 m_UTSSettings.m_TemperatureItemCap = GameConstants.ITEM_TEMPERATURE_NEUTRAL_ZONE_MIDDLE;
43 m_UTSSettings.m_TemperatureCap = 0;
44 m_UTSSettings.m_RangeFull = 0.5;
45 m_UTSSettings.m_RangeMax = 2;
46
49 }
50 }
51
52 override void OnEngineStart()
53 {
54 super.OnEngineStart();
55
56 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
57 {
58 if (m_UTSource)
59 m_UTSource.SetDefferedActive(true, 20.0);
60 }
61 }
62
63 override void OnEngineStop()
64 {
65 super.OnEngineStop();
66
67 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
68 {
69 if (m_UTSource)
70 m_UTSource.SetDefferedActive(false, 10.0);
71 }
72 }
73
74 override void EOnPostSimulate(IEntity other, float timeSlice)
75 {
76 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
77 {
78 if (m_UTSource && m_UTSource.IsActive())
79 {
81 }
82 }
83 }
84
85 override int GetAnimInstance()
86 {
87 return VehicleAnimInstances.S120;
88 }
89
90 override int GetSeatAnimationType(int posIdx)
91 {
92 switch (posIdx)
93 {
94 case 0:
95 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
96 case 1:
97 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
98 case 2:
99 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
100 case 3:
101 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
102 }
103
104 return 0;
105 }
106
107 // Override for car-specific light type
109 {
110 return CarLightBase.Cast(ScriptedLightBase.CreateLight(Sedan_02FrontLight));
111 }
112
113 // Override for car-specific light type
115 {
116 return CarRearLightBase.Cast(ScriptedLightBase.CreateLight(Sedan_02RearLight));
117 }
118
119 override bool CanReleaseAttachment( EntityAI attachment )
120 {
121 if (!super.CanReleaseAttachment(attachment))
122 {
123 return false;
124 }
125
126 string attType = attachment.GetType();
127 switch (attType)
128 {
129 case "CarBattery":
130 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED || EngineIsOn())
131 {
132 return false;
133 }
134 break;
135
136 case "SparkPlug":
137 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED || EngineIsOn())
138 {
139 return false;
140 }
141 break;
142
143 case "CarRadiator":
144 if (GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED || EngineIsOn())
145 {
146 return false;
147 }
148 break;
149 }
150
151 return true;
152 }
153
154 override protected bool CanManipulateSpareWheel(string slotSelectionName)
155 {
156 return GetCarDoorsState("Sedan_02_Hood") != CarDoorState.DOORS_CLOSED;
157 }
158
159 override bool CanDisplayAttachmentCategory(string category_name)
160 {
161 if ( !super.CanDisplayAttachmentCategory(category_name))
162 {
163 return false;
164 }
165
166 category_name.ToLower();
167 if (category_name.Contains("engine"))
168 {
169 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED)
170 {
171 return false;
172 }
173 }
174
175 if (category_name.Contains("trunk"))
176 {
177 if (GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED)
178 {
179 return false;
180 }
181 }
182
183 return true;
184 }
185
186 override bool CanDisplayCargo()
187 {
188 if ( !super.CanDisplayCargo() )
189 return false;
190
191 if ( GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED )
192 return false;
193
194 return true;
195 }
196
197 override int GetCarDoorsState(string slotType)
198 {
199 CarDoor carDoor;
200
201 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
202 if (!carDoor)
203 {
204 return CarDoorState.DOORS_MISSING;
205 }
206
207 switch (slotType)
208 {
209 case "Sedan_02_Door_1_1":
210 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
211
212 case "Sedan_02_Door_2_1":
213 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
214
215 case "Sedan_02_Door_1_2":
216 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
217
218 case "Sedan_02_Door_2_2":
219 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
220
221 case "Sedan_02_Hood":
222 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
223
224 case "Sedan_02_Trunk":
225 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
226 }
227
228 return CarDoorState.DOORS_MISSING;
229 }
230
231
232 override bool CrewCanGetThrough( int posIdx )
233 {
234 switch( posIdx )
235 {
236 case 0:
237 if ( GetCarDoorsState("Sedan_02_Door_1_1") == CarDoorState.DOORS_CLOSED )
238 return false;
239
240 return true;
241 break;
242
243 case 1:
244 if ( GetCarDoorsState("Sedan_02_Door_2_1") == CarDoorState.DOORS_CLOSED )
245 return false;
246
247 return true;
248 break;
249
250 case 2:
251 if ( GetCarDoorsState("Sedan_02_Door_1_2") == CarDoorState.DOORS_CLOSED )
252 return false;
253
254 return true;
255 break;
256
257 case 3:
258 if ( GetCarDoorsState("Sedan_02_Door_2_2") == CarDoorState.DOORS_CLOSED )
259 return false;
260
261 return true;
262 break;
263 }
264
265 return false;
266 }
267
268 override string GetDoorSelectionNameFromSeatPos(int posIdx)
269 {
270 switch( posIdx )
271 {
272 case 0:
273 return "doors_driver";
274 break;
275 case 1:
276 return "doors_codriver";
277 break;
278 case 2:
279 return "doors_cargo1";
280 break;
281 case 3:
282 return "doors_cargo2";
283 break;
284 }
285
286 return super.GetDoorSelectionNameFromSeatPos(posIdx);
287 }
288
289 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
290 {
291 switch( posIdx )
292 {
293 case 0:
294 return "Sedan_02_Door_1_1";
295 break;
296 case 1:
297 return "Sedan_02_Door_2_1";
298 break;
299 case 2:
300 return "Sedan_02_Door_1_2";
301 break;
302 case 3:
303 return "Sedan_02_Door_2_2";
304 break;
305 }
306
307 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
308 }
309
310 override float OnSound(CarSoundCtrl ctrl, float oldValue)
311 {
312 switch ( ctrl )
313 {
314 case CarSoundCtrl.DOORS:
315 float newValue = 0;
316 if (GetCarDoorsState("Sedan_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
317 {
318 newValue += 0.25;
319 }
320
321 if (GetCarDoorsState("Sedan_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
322 {
323 newValue += 0.25;
324 }
325
326 if (GetCarDoorsState("Sedan_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
327 {
328 newValue += 0.25;
329 }
330
331 if (GetCarDoorsState("Sedan_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
332 {
333 newValue += 0.25;
334 }
335
336 return Math.Clamp(newValue, 0, 1);
337 break;
338 }
339
340 return super.OnSound(ctrl, oldValue);
341 }
342
343 override string GetAnimSourceFromSelection( string selection )
344 {
345 switch( selection )
346 {
347 case "doors_driver":
348 return "DoorsDriver";
349 case "doors_codriver":
350 return "DoorsCoDriver";
351 case "doors_cargo1":
352 return "DoorsCargo1";
353 case "doors_cargo2":
354 return "DoorsCargo2";
355 case "doors_hood":
356 return "DoorsHood";
357 case "doors_trunk":
358 return "DoorsTrunk";
359 }
360
361 return "";
362 }
363
364
365 override bool IsVitalTruckBattery()
366 {
367 return false;
368 }
369
370 override bool IsVitalGlowPlug()
371 {
372 return false;
373 }
374
375 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
376 {
377 switch (currentSeat)
378 {
379 case 0:
380 return nextSeat == 1;
381
382 case 1:
383 return nextSeat == 0;
384
385 case 2:
386 return nextSeat == 3;
387
388 case 3:
389 return nextSeat == 2;
390 }
391
392 return false;
393 }
394
395 override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
396 {
397 switch (pCurrentSeat)
398 {
399 case 0:
400 return pDoorsSelection == "DoorsDriver";
401
402 case 1:
403 return pDoorsSelection == "DoorsCoDriver";
404
405 case 2:
406 return pDoorsSelection == "DoorsCargo1";
407
408 case 3:
409 return pDoorsSelection == "DoorsCargo2";
410 }
411
412 return false;
413 }
414
415 override void OnDebugSpawn()
416 {
417 SpawnUniversalParts();
418 SpawnAdditionalItems();
419 FillUpCarFluids();
420
421 GameInventory inventory = GetInventory();
422 inventory.CreateInInventory("Sedan_02_Wheel");
423 inventory.CreateInInventory("Sedan_02_Wheel");
424 inventory.CreateInInventory("Sedan_02_Wheel");
425 inventory.CreateInInventory("Sedan_02_Wheel");
426 inventory.CreateInInventory("Sedan_02_Wheel");
427
428 inventory.CreateInInventory("Sedan_02_Door_1_1");
429 inventory.CreateInInventory("Sedan_02_Door_1_2");
430 inventory.CreateInInventory("Sedan_02_Door_2_1");
431 inventory.CreateInInventory("Sedan_02_Door_2_2");
432 inventory.CreateInInventory("Sedan_02_Hood");
433 inventory.CreateInInventory("Sedan_02_Trunk");
434
435 //-----IN CAR CARGO
436 inventory.CreateInInventory("Sedan_02_Wheel");
437 inventory.CreateInInventory("Sedan_02_Wheel");
438 }
439}
440
441class Sedan_02_Red extends Sedan_02
442{
443 override void OnDebugSpawn()
445 SpawnUniversalParts();
446 SpawnAdditionalItems();
447 FillUpCarFluids();
449 GameInventory inventory = GetInventory();
450 inventory.CreateInInventory("Sedan_02_Wheel");
451 inventory.CreateInInventory("Sedan_02_Wheel");
452 inventory.CreateInInventory("Sedan_02_Wheel");
453 inventory.CreateInInventory("Sedan_02_Wheel");
454
455 inventory.CreateInInventory("Sedan_02_Door_1_1_Red");
456 inventory.CreateInInventory("Sedan_02_Door_1_2_Red");
457 inventory.CreateInInventory("Sedan_02_Door_2_1_Red");
458 inventory.CreateInInventory("Sedan_02_Door_2_2_Red");
459 inventory.CreateInInventory("Sedan_02_Hood_Red");
460 inventory.CreateInInventory("Sedan_02_Trunk_Red");
461
462 //-----IN CAR CARGO
463 inventory.CreateInInventory("Sedan_02_Wheel");
464 inventory.CreateInInventory("Sedan_02_Wheel");
465 }
466}
467
468class Sedan_02_Grey extends Sedan_02
469{
470 override void OnDebugSpawn()
471 {
472 SpawnUniversalParts();
473 SpawnAdditionalItems();
474 FillUpCarFluids();
476 GameInventory inventory = GetInventory();
477 inventory.CreateInInventory("Sedan_02_Wheel");
478 inventory.CreateInInventory("Sedan_02_Wheel");
479 inventory.CreateInInventory("Sedan_02_Wheel");
480 inventory.CreateInInventory("Sedan_02_Wheel");
481
482 inventory.CreateInInventory("Sedan_02_Door_1_1_Grey");
483 inventory.CreateInInventory("Sedan_02_Door_1_2_Grey");
484 inventory.CreateInInventory("Sedan_02_Door_2_1_Grey");
485 inventory.CreateInInventory("Sedan_02_Door_2_2_Grey");
486 inventory.CreateInInventory("Sedan_02_Hood_Grey");
487 inventory.CreateInInventory("Sedan_02_Trunk_Grey");
488
489 //-----IN CAR CARGO
490 inventory.CreateInInventory("Sedan_02_Wheel");
491 inventory.CreateInInventory("Sedan_02_Wheel");
492 }
CarSoundCtrl
Car's sound controller list. (native, do not change or extend).
Definition car.c:4
CarDoorState
Definition carscript.c:2
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
override float OnSound(CarSoundCtrl ctrl, float oldValue)
Definition sedan_02.c:310
override string GetDoorSelectionNameFromSeatPos(int posIdx)
Definition sedan_02.c:268
override int GetAnimInstance()
Definition sedan_02.c:85
void ~Sedan_02()
Definition sedan_02.c:27
override CarRearLightBase CreateRearLight()
Definition sedan_02.c:114
override void OnDebugSpawn()
Definition sedan_02.c:415
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
Definition sedan_02.c:289
override CarLightBase CreateFrontLight()
Definition sedan_02.c:108
override bool IsVitalGlowPlug()
Definition sedan_02.c:370
override int GetCarDoorsState(string slotType)
Definition sedan_02.c:197
override bool IsVitalTruckBattery()
Definition sedan_02.c:365
void Sedan_02()
Definition sedan_02.c:7
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
override string GetAnimSourceFromSelection(string selection)
Definition sedan_02.c:343
override bool CanDisplayCargo()
Definition sedan_02.c:186
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
Definition sedan_02.c:395
override void EOnPostSimulate(IEntity other, float timeSlice)
Definition sedan_02.c:74
override void OnEngineStart()
Definition sedan_02.c:52
override bool CanReleaseAttachment(EntityAI attachment)
Definition sedan_02.c:119
override void EEInit()
Definition sedan_02.c:34
override bool CrewCanGetThrough(int posIdx)
Definition sedan_02.c:232
ref UniversalTemperatureSource m_UTSource
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
Definition sedan_02.c:375
bool CanManipulateSpareWheel(string slotSelectionName)
Definition sedan_02.c:154
override void OnEngineStop()
Definition sedan_02.c:63
override bool CanDisplayAttachmentCategory(string category_name)
Definition sedan_02.c:159
override int GetSeatAnimationType(int posIdx)
Definition sedan_02.c:90
ref UniversalTemperatureSourceSettings m_UTSSettings
Super root of all classes in Enforce script.
Definition enscript.c:11
script counterpart to engine's class Inventory
Definition inventory.c:81
EntityAI CreateInInventory(string type)
creates entity somewhere in inventory
Definition inventory.c:876
Definition enmath.c:7
original Timer deletes m_params which is unwanted
DayZGame g_Game
Definition dayzgame.c:3942
DayZPlayerConstants
defined in C++
Definition dayzplayer.c:602
ref UniversalTemperatureSourceSettings m_UTSSettings
ref UniversalTemperatureSource m_UTSource
class Sedan_02 extends CarScript OnDebugSpawn()
Definition sedan_02.c:443
override int GetCarDoorsState(string slotType)
Definition sedan_02.c:638
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances