Dayz Explorer 1.29.162510
Loading...
Searching...
No Matches
hatchback_02.c
Go to the documentation of this file.
2{
6
8 {
9 //m_dmgContactCoef = 0.070;
10
11 m_EngineStartOK = "Hatchback_02_engine_start_SoundSet";
12 m_EngineStartBattery = "Hatchback_02_engine_failed_start_battery_SoundSet";
13 m_EngineStartPlug = "Hatchback_02_engine_failed_start_sparkplugs_SoundSet";
14 m_EngineStartFuel = "Hatchback_02_engine_failed_start_fuel_SoundSet";
15 m_EngineStop = "Hatchback_02_engine_stop_SoundSet";
16 m_EngineStopFuel = "Hatchback_02_engine_stop_fuel_SoundSet";
17
18 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
19 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
20
21 m_CarHornShortSoundName = "Hatchback_02_Horn_Short_SoundSet";
22 m_CarHornLongSoundName = "Hatchback_02_Horn_SoundSet";
23
24 SetEnginePos("0 0.7 1.4");
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.GOLF;
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 CarRearLightBase.Cast(ScriptedLightBase.CreateLight(Hatchback_02RearLight));
111 }
112
113 // Override for car-specific light type
115 {
116 return CarLightBase.Cast(ScriptedLightBase.CreateLight(Hatchback_02FrontLight));
117 }
118
119 override bool CanReleaseAttachment(EntityAI attachment)
120 {
121 if (!super.CanReleaseAttachment(attachment))
122 {
123 return false;
124 }
125
126 if (EngineIsOn() || GetCarDoorsState("Hatchback_02_Hood") == CarDoorState.DOORS_CLOSED)
127 {
128 string attType = attachment.GetType();
129 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
130 {
131 return false;
132 }
133 }
134
135 return true;
136 }
137
138 override protected bool CanManipulateSpareWheel(string slotSelectionName)
139 {
140 return GetCarDoorsState("Hatchback_02_Trunk") != CarDoorState.DOORS_CLOSED;
141 }
142
143 override bool CanDisplayAttachmentCategory( string category_name )
144 {
145 //super
146 if ( !super.CanDisplayAttachmentCategory( category_name ) )
147 return false;
148 //
149
150 category_name.ToLower();
151 if ( category_name.Contains("engine") )
152 {
153 if ( GetCarDoorsState("Hatchback_02_Hood") == CarDoorState.DOORS_CLOSED )
154 return false;
155 }
156
157 return true;
158 }
159
160 override bool CanDisplayCargo()
161 {
162 if ( !super.CanDisplayCargo() )
163 return false;
164
165 if ( GetCarDoorsState("Hatchback_02_Trunk") == CarDoorState.DOORS_CLOSED )
166 return false;
167
168 return true;
169 }
170
171 override int GetCarDoorsState(string slotType)
172 {
173 CarDoor carDoor;
174
175 Class.CastTo(carDoor, FindAttachmentBySlotName(slotType));
176 if (!carDoor)
177 {
178 return CarDoorState.DOORS_MISSING;
179 }
180
181 switch (slotType)
182 {
183 case "Hatchback_02_Door_1_1":
184 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
185
186 case "Hatchback_02_Door_2_1":
187 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
188
189 case "Hatchback_02_Door_1_2":
190 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
191
192 case "Hatchback_02_Door_2_2":
193 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
194
195 case "Hatchback_02_Hood":
196 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
197
198 case "Hatchback_02_Trunk":
199 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
200 }
201
202 return CarDoorState.DOORS_MISSING;
203 }
204
205
206 override bool CrewCanGetThrough(int posIdx)
207 {
208 switch (posIdx)
209 {
210 case 0:
211 if (GetCarDoorsState("Hatchback_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
212 {
213 return false;
214 }
215
216 return true;
217
218 case 1:
219 if (GetCarDoorsState("Hatchback_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
220 {
221 return false;
222 }
223
224 return true;
225
226 case 2:
227 if (GetCarDoorsState("Hatchback_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
228 {
229 return false;
230 }
231
232 return true;
233
234 case 3:
235 if (GetCarDoorsState("Hatchback_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
236 {
237 return false;
238 }
239
240 return true;
241 }
242
243 return false;
244 }
245
246 override string GetDoorSelectionNameFromSeatPos(int posIdx)
247 {
248 switch( posIdx )
249 {
250 case 0:
251 return "doors_driver";
252 break;
253 case 1:
254 return "doors_codriver";
255 break;
256 case 2:
257 return "doors_cargo1";
258 break;
259 case 3:
260 return "doors_cargo2";
261 break;
262 }
263
264 return super.GetDoorSelectionNameFromSeatPos(posIdx);
265 }
266
267 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
268 {
269 switch( posIdx )
270 {
271 case 0:
272 return "Hatchback_02_Door_1_1";
273 break;
274 case 1:
275 return "Hatchback_02_Door_2_1";
276 break;
277 case 2:
278 return "Hatchback_02_Door_1_2";
279 break;
280 case 3:
281 return "Hatchback_02_Door_2_2";
282 break;
283 }
284
285 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
286 }
287
288 override float OnSound(CarSoundCtrl ctrl, float oldValue)
289 {
290 switch (ctrl)
291 {
292 case CarSoundCtrl.DOORS:
293 float newValue = 0;
294 if (GetCarDoorsState("Hatchback_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
295 {
296 newValue += 0.25;
297 }
298
299 if (GetCarDoorsState("Hatchback_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
300 {
301 newValue += 0.25;
302 }
303
304 if (GetCarDoorsState("Hatchback_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
305 {
306 newValue += 0.25;
307 }
308
309 if (GetCarDoorsState("Hatchback_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
310 {
311 newValue += 0.25;
312 }
313
314 return Math.Clamp(newValue, 0, 1);
315 break;
316 }
317
318 return super.OnSound(ctrl, oldValue);
319 }
320
321 override string GetAnimSourceFromSelection( string selection )
322 {
323 switch( selection )
324 {
325 case "doors_driver":
326 return "DoorsDriver";
327 case "doors_codriver":
328 return "DoorsCoDriver";
329 case "doors_cargo1":
330 return "DoorsCargo1";
331 case "doors_cargo2":
332 return "DoorsCargo2";
333 case "doors_hood":
334 return "DoorsHood";
335 case "doors_trunk":
336 return "DoorsTrunk";
337 }
338
339 return "";
340 }
341
342
343 override bool IsVitalTruckBattery()
344 {
345 return false;
346 }
347
348 override bool IsVitalGlowPlug()
349 {
350 return false;
351 }
352
353 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
354 {
355 switch (currentSeat)
356 {
357 case 0:
358 return nextSeat == 1;
359 case 1:
360 return nextSeat == 0;
361 case 2:
362 return nextSeat == 3;
363 case 3:
364 return nextSeat == 2;
365 }
366
367 return false;
368 }
369
370 override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
371 {
372 switch (pCurrentSeat)
373 {
374 case 0:
375 return pDoorsSelection == "DoorsDriver";
376 case 1:
377 return pDoorsSelection == "DoorsCoDriver";
378 case 2:
379 return pDoorsSelection == "DoorsCargo1";
380 case 3:
381 return pDoorsSelection == "DoorsCargo2";
382 }
383
384 return false;
385 }
386
387 override void OnDebugSpawn()
388 {
389 SpawnUniversalParts();
390 SpawnAdditionalItems();
391 FillUpCarFluids();
392
393 GameInventory inventory = GetInventory();
394 inventory.CreateInInventory("Hatchback_02_Wheel");
395 inventory.CreateInInventory("Hatchback_02_Wheel");
396 inventory.CreateInInventory("Hatchback_02_Wheel");
397 inventory.CreateInInventory("Hatchback_02_Wheel");
398
399 inventory.CreateInInventory("Hatchback_02_Door_1_1");
400 inventory.CreateInInventory("Hatchback_02_Door_1_2");
401 inventory.CreateInInventory("Hatchback_02_Door_2_1");
402 inventory.CreateInInventory("Hatchback_02_Door_2_2");
403 inventory.CreateInInventory("Hatchback_02_Hood");
404 inventory.CreateInInventory("Hatchback_02_Trunk");
405
406 //-----IN CAR CARGO
407 inventory.CreateInInventory("Hatchback_02_Wheel");
408 inventory.CreateInInventory("Hatchback_02_Wheel");
409 }
410}
411
412class Hatchback_02_Black extends Hatchback_02
413{
414 override void OnDebugSpawn()
416 SpawnUniversalParts();
417 SpawnAdditionalItems();
418 FillUpCarFluids();
420 GameInventory inventory = GetInventory();
421 inventory.CreateInInventory("Hatchback_02_Wheel");
422 inventory.CreateInInventory("Hatchback_02_Wheel");
423 inventory.CreateInInventory("Hatchback_02_Wheel");
424 inventory.CreateInInventory("Hatchback_02_Wheel");
425
426 inventory.CreateInInventory("Hatchback_02_Door_1_1_Black");
427 inventory.CreateInInventory("Hatchback_02_Door_1_2_Black");
428 inventory.CreateInInventory("Hatchback_02_Door_2_1_Black");
429 inventory.CreateInInventory("Hatchback_02_Door_2_2_Black");
430 inventory.CreateInInventory("Hatchback_02_Hood_Black");
431 inventory.CreateInInventory("Hatchback_02_Trunk_Black");
432
433 //-----IN CAR CARGO
434 inventory.CreateInInventory("Hatchback_02_Wheel");
435 inventory.CreateInInventory("Hatchback_02_Wheel");
436 }
437};
438
439class Hatchback_02_Blue extends Hatchback_02
440{
441 override void OnDebugSpawn()
442 {
443 SpawnUniversalParts();
444 SpawnAdditionalItems();
445 FillUpCarFluids();
447 GameInventory inventory = GetInventory();
448 inventory.CreateInInventory("Hatchback_02_Wheel");
449 inventory.CreateInInventory("Hatchback_02_Wheel");
450 inventory.CreateInInventory("Hatchback_02_Wheel");
451 inventory.CreateInInventory("Hatchback_02_Wheel");
452
453 inventory.CreateInInventory("Hatchback_02_Door_1_1_Blue");
454 inventory.CreateInInventory("Hatchback_02_Door_1_2_Blue");
455 inventory.CreateInInventory("Hatchback_02_Door_2_1_Blue");
456 inventory.CreateInInventory("Hatchback_02_Door_2_2_Blue");
457 inventory.CreateInInventory("Hatchback_02_Hood_Blue");
458 inventory.CreateInInventory("Hatchback_02_Trunk_Blue");
459
460 //-----IN CAR CARGO
461 inventory.CreateInInventory("Hatchback_02_Wheel");
462 inventory.CreateInInventory("Hatchback_02_Wheel");
463 }
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)
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)
void ~Hatchback_02()
override bool CanDisplayCargo()
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)
void Hatchback_02()
Definition hatchback_02.c:7
ref UniversalTemperatureSource m_UTSource
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
bool CanManipulateSpareWheel(string slotSelectionName)
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
ref UniversalTemperatureSourceSettings m_UTSSettings
ref UniversalTemperatureSource m_UTSource
class Hatchback_02_Blue extends Hatchback_02 OnDebugSpawn
override int GetCarDoorsState(string slotType)
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances