Dayz Explorer 1.29.162510
Loading...
Searching...
No Matches
civiliansedan.c
Go to the documentation of this file.
2{
6
8 {
9 //m_dmgContactCoef = 0.065;
10
11 m_EngineStartOK = "CivilianSedan_engine_start_SoundSet";
12 m_EngineStartBattery = "CivilianSedan_engine_failed_start_battery_SoundSet";
13 m_EngineStartPlug = "CivilianSedan_engine_failed_start_sparkplugs_SoundSet";
14 m_EngineStartFuel = "CivilianSedan_engine_failed_start_fuel_SoundSet";
15 m_EngineStop = "CivilianSedan_engine_stop_SoundSet";
16 m_EngineStopFuel = "CivilianSedan_engine_stop_fuel_SoundSet";
17
18 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
19 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
20
21 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
22 m_CarHornLongSoundName = "CivilianSedan_Horn_SoundSet";
23
24 SetEnginePos("0 0.7 1.6");
25 }
26
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.SEDAN;
88 }
89
91 {
92 return 4.5;
93 }
94
95 override int GetSeatAnimationType(int posIdx)
96 {
97 switch (posIdx)
98 {
99 case 0:
100 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
101 case 1:
102 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
103 case 2:
104 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
105 case 3:
106 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
107 }
108
109 return 0;
110 }
111
112 // Override for car-specific light type
114 {
115 return CarLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanFrontLight) );
116 }
117
118 // Override for car-specific light type
120 {
121 return CarRearLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanRearLight) );
122 }
123
124 override bool CanReleaseAttachment( EntityAI attachment )
125 {
126 if( !super.CanReleaseAttachment( attachment ) )
127 return false;
128
129 string attType = attachment.GetType();
130
131 if ( EngineIsOn() || GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED )
132 {
133 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
134 return false;
135 }
136
137 return true;
138 }
139
140 override protected bool CanManipulateSpareWheel(string slotSelectionName)
141 {
142 return GetCarDoorsState("CivSedanTrunk") != CarDoorState.DOORS_CLOSED;
143 }
144
145 override bool CanDisplayAttachmentCategory(string category_name)
146 {
147 //super
148 if (!super.CanDisplayAttachmentCategory(category_name))
149 return false;
150 //
151
152 category_name.ToLower();
153 if (category_name.Contains("engine"))
154 {
155 if (GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED)
156 return false;
157 }
158
159 return true;
160 }
161
162 override bool CanDisplayCargo()
163 {
164 if ( !super.CanDisplayCargo() )
165 return false;
166
167 if ( GetCarDoorsState("CivSedanTrunk") == CarDoorState.DOORS_CLOSED )
168 return false;
169
170 return true;
171 }
172
173 override int GetCarDoorsState( string slotType )
174 {
175 CarDoor carDoor;
176
177 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
178 if (!carDoor)
179 {
180 return CarDoorState.DOORS_MISSING;
181 }
182
183 switch (slotType)
184 {
185 case "CivSedanDriverDoors":
186 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
187 break;
188
189 case "CivSedanCoDriverDoors":
190 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
191 break;
192
193 case "CivSedanCargo1Doors":
194 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
195 break;
196
197 case "CivSedanCargo2Doors":
198 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
199 break;
200
201 case "CivSedanTrunk":
202 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
203 break;
204
205 case "CivSedanHood":
206 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
207 break;
208 }
209
210 return CarDoorState.DOORS_MISSING;
211 }
212
213
214 override bool CrewCanGetThrough( int posIdx )
215 {
216 switch( posIdx )
217 {
218 case 0:
219 if ( GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED )
220 return false;
221
222 return true;
223 break;
224
225 case 1:
226 if ( GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED )
227 return false;
228
229 return true;
230 break;
231
232 case 2:
233 if ( GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED )
234 return false;
235
236 return true;
237 break;
238
239 case 3:
240 if ( GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED )
241 return false;
242
243 return true;
244 break;
245 }
246
247 return false;
248 }
249
250 override string GetDoorSelectionNameFromSeatPos(int posIdx)
251 {
252 switch( posIdx )
253 {
254 case 0:
255 return "doors_driver";
256 break;
257 case 1:
258 return "doors_codriver";
259 break;
260 case 2:
261 return "doors_cargo1";
262 break;
263 case 3:
264 return "doors_cargo2";
265 break;
266 }
267
268 return super.GetDoorSelectionNameFromSeatPos(posIdx);
269 }
270
271 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
272 {
273 switch( posIdx )
274 {
275 case 0:
276 return "CivSedanDriverDoors";
277 break;
278 case 1:
279 return "CivSedanCoDriverDoors";
280 break;
281 case 2:
282 return "CivSedanCargo1Doors";
283 break;
284 case 3:
285 return "CivSedanCargo2Doors";
286 break;
287 }
288
289 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
290 }
291
292 // 0 full ambient and engine sound
293 // 1 zero ambient and engine sound
294 override float OnSound(CarSoundCtrl ctrl, float oldValue)
295 {
296 switch (ctrl)
297 {
298 case CarSoundCtrl.DOORS:
299 float newValue = 0;
300 if (GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED)
301 {
302 newValue += 0.25;
303 }
304
305 if (GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED)
306 {
307 newValue += 0.25;
308 }
309
310 if (GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED)
311 {
312 newValue += 0.25;
313 }
314
315 if (GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED)
316 {
317 newValue += 0.25;
318 }
319
320 if (GetHealthLevel("WindowFront") == GameConstants.STATE_RUINED)
321 {
322 newValue -= 0.6;
323 }
324
325 if (GetHealthLevel("WindowBack") == GameConstants.STATE_RUINED)
326 {
327 newValue -= 0.6;
328 }
329
330 return Math.Clamp(newValue, 0, 1);
331 break;
332 }
333
334 return super.OnSound(ctrl, oldValue);
335 }
336
337 override string GetAnimSourceFromSelection(string selection)
338 {
339 switch (selection)
340 {
341 case "doors_driver":
342 return "DoorsDriver";
343 case "doors_codriver":
344 return "DoorsCoDriver";
345 case "doors_cargo1":
346 return "DoorsCargo1";
347 case "doors_cargo2":
348 return "DoorsCargo2";
349 case "doors_hood":
350 return "DoorsHood";
351 case "doors_trunk":
352 return "DoorsTrunk";
353 }
354
355 return "";
356 }
357
358 override bool IsVitalTruckBattery()
359 {
360 return false;
361 }
362
363 override bool IsVitalGlowPlug()
364 {
365 return false;
366 }
367
368 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
369 {
370 switch (currentSeat)
371 {
372 case 0:
373 return nextSeat == 1;
374
375 case 1:
376 return nextSeat == 0;
377
378 case 2:
379 return nextSeat == 3;
380
381 case 3:
382 return nextSeat == 2;
383 }
384
385 return false;
386 }
387
388 override bool CanReachDoorsFromSeat( string pDoorsSelection, int pCurrentSeat )
389 {
390 switch (pCurrentSeat)
391 {
392 case 0:
393 return pDoorsSelection == "DoorsDriver";
394
395 case 1:
396 return pDoorsSelection == "DoorsCoDriver";
397
398 case 2:
399 return pDoorsSelection == "DoorsCargo1";
400
401 case 3:
402 return pDoorsSelection == "DoorsCargo2";
403 }
404
405 return false;
406 }
407
408 override void OnDebugSpawn()
409 {
410 SpawnUniversalParts();
411 SpawnAdditionalItems();
412 FillUpCarFluids();
413
414 GameInventory inventory = GetInventory();
415 inventory.CreateInInventory("CivSedanWheel");
416 inventory.CreateInInventory("CivSedanWheel");
417 inventory.CreateInInventory("CivSedanWheel");
418 inventory.CreateInInventory("CivSedanWheel");
419
420 inventory.CreateInInventory("CivSedanDoors_Driver");
421 inventory.CreateInInventory("CivSedanDoors_CoDriver");
422 inventory.CreateInInventory("CivSedanDoors_BackLeft");
423 inventory.CreateInInventory("CivSedanDoors_BackRight");
424 inventory.CreateInInventory("CivSedanHood");
425 inventory.CreateInInventory("CivSedanTrunk");
426
427 //-----IN CAR CARGO
428 inventory.CreateInInventory("CivSedanWheel");
429 inventory.CreateInInventory("CivSedanWheel");
430 }
431
433 {
434 return 1.5;
435 }
436}
437
438class CivilianSedan_Wine extends CivilianSedan
439{
440 override void OnDebugSpawn()
442 SpawnUniversalParts();
443 SpawnAdditionalItems();
444 FillUpCarFluids();
446 GameInventory inventory = GetInventory();
447 inventory.CreateInInventory("CivSedanWheel");
448 inventory.CreateInInventory("CivSedanWheel");
449 inventory.CreateInInventory("CivSedanWheel");
450 inventory.CreateInInventory("CivSedanWheel");
451
452 inventory.CreateInInventory("CivSedanDoors_Driver_Wine");
453 inventory.CreateInInventory("CivSedanDoors_CoDriver_Wine");
454 inventory.CreateInInventory("CivSedanDoors_BackLeft_Wine");
455 inventory.CreateInInventory("CivSedanDoors_BackRight_Wine");
456 inventory.CreateInInventory("CivSedanHood_Wine");
457 inventory.CreateInInventory("CivSedanTrunk_Wine");
458
459 //-----IN CAR CARGO
460 inventory.CreateInInventory("CivSedanWheel");
461 inventory.CreateInInventory("CivSedanWheel");
462 }
463}
464
465class CivilianSedan_Black extends CivilianSedan
466{
467 override void OnDebugSpawn()
468 {
469 SpawnUniversalParts();
470 SpawnAdditionalItems();
471 FillUpCarFluids();
473 GameInventory inventory = GetInventory();
474 inventory.CreateInInventory("CivSedanWheel");
475 inventory.CreateInInventory("CivSedanWheel");
476 inventory.CreateInInventory("CivSedanWheel");
477 inventory.CreateInInventory("CivSedanWheel");
478
479 inventory.CreateInInventory("CivSedanDoors_Driver_Black");
480 inventory.CreateInInventory("CivSedanDoors_CoDriver_Black");
481 inventory.CreateInInventory("CivSedanDoors_BackLeft_Black");
482 inventory.CreateInInventory("CivSedanDoors_BackRight_Black");
483 inventory.CreateInInventory("CivSedanHood_Black");
484 inventory.CreateInInventory("CivSedanTrunk_Black");
485
486 //-----IN CAR CARGO
487 inventory.CreateInInventory("CivSedanWheel");
488 inventory.CreateInInventory("CivSedanWheel");
489 }
CarSoundCtrl
Car's sound controller list. (native, do not change or extend).
Definition car.c:4
CarDoorState
Definition carscript.c:2
class CivilianSedan extends CarScript OnDebugSpawn()
override int GetCarDoorsState(string slotType)
override float OnSound(CarSoundCtrl ctrl, float oldValue)
void CivilianSedan()
override float GetTransportCameraDistance()
override string GetDoorSelectionNameFromSeatPos(int posIdx)
override int GetAnimInstance()
override CarRearLightBase CreateRearLight()
override void OnDebugSpawn()
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
override CarLightBase CreateFrontLight()
override bool IsVitalGlowPlug()
override int GetCarDoorsState(string slotType)
override bool IsVitalTruckBattery()
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
override string GetAnimSourceFromSelection(string selection)
override bool CanDisplayCargo()
void ~CivilianSedan()
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
override void EOnPostSimulate(IEntity other, float timeSlice)
override void OnEngineStart()
override bool CanReleaseAttachment(EntityAI attachment)
override void EEInit()
override bool CrewCanGetThrough(int posIdx)
ref UniversalTemperatureSource m_UTSource
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
bool CanManipulateSpareWheel(string slotSelectionName)
override float GetPushForceCoefficientMultiplier()
override void OnEngineStop()
override bool CanDisplayAttachmentCategory(string category_name)
override int GetSeatAnimationType(int posIdx)
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
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances