931{
935
937 {
938
939
940 m_EngineStartOK = "offroad_engine_start_SoundSet";
941 m_EngineStartBattery = "offroad_engine_failed_start_battery_SoundSet";
942 m_EngineStartPlug = "offroad_engine_failed_start_sparkplugs_SoundSet";
943 m_EngineStartFuel = "offroad_engine_failed_start_fuel_SoundSet";
944 m_EngineStop = "offroad_engine_stop_SoundSet";
945 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
946
947 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
948 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
949 m_CarSeatShiftInSound = "Offroad_SeatShiftIn_SoundSet";
950 m_CarSeatShiftOutSound = "Offroad_SeatShiftOut_SoundSet";
951
952 m_CarHornShortSoundName = "Offroad_Horn_Short_SoundSet";
953 m_CarHornLongSoundName = "Offroad_Horn_SoundSet";
954
955 SetEnginePos("0 0.7 1.2");
956 }
957
959 {
963 }
964
966 {
967 super.EEInit();
968
970 {
977
980 }
981 }
982
984 {
985 super.OnEngineStart();
986
988 {
991 }
992 }
993
995 {
996 super.OnEngineStop();
997
999 {
1002 }
1003 }
1004
1006 {
1008 {
1010 {
1012 }
1013 }
1014 }
1015
1017 {
1019 }
1020
1022 {
1023 return 3.5;
1024 }
1025
1027 {
1028 switch (posIdx)
1029 {
1030 case 0:
1032 case 1:
1034 case 2:
1036 case 3:
1038 }
1039
1040 return 0;
1041
1042 }
1043
1044
1046 {
1048 }
1049
1051 {
1053 }
1054
1056 {
1057 if (!super.CanReleaseAttachment(attachment))
1058 {
1059 return false;
1060 }
1061
1063 {
1064 string attType = attachment.GetType();
1065 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
1066 {
1067 return false;
1068 }
1069 }
1070
1071 return true;
1072 }
1073
1075 {
1077 }
1078
1080 {
1081 if (!super.CanDisplayAttachmentCategory(category_name))
1082 {
1083 return false;
1084 }
1085
1087 if (category_name.
Contains(
"engine"))
1088 {
1090 {
1091 return false;
1092 }
1093 }
1094
1095 return true;
1096 }
1097
1099 {
1100 if (!super.CanDisplayCargo())
1101 {
1102 return false;
1103 }
1104
1106 {
1107 return false;
1108 }
1109
1110 return true;
1111 }
1112
1114 {
1116
1117 Class.
CastTo(carDoor, FindAttachmentBySlotName(slotType));
1118 if (!carDoor)
1119 {
1121 }
1122
1123 switch (slotType)
1124 {
1125 case "NivaDriverDoors":
1126 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
1127
1128 case "NivaCoDriverDoors":
1129 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
1130
1131 case "NivaHood":
1132 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
1133
1134 case "NivaTrunk":
1135 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
1136 }
1137
1139 }
1140
1142 {
1144 switch (posIdx)
1145 {
1146 case 0:
1148 return false;
1149 else if (GetAnimationPhase("SeatDriver") > 0.5)
1150 return false;
1151
1152 return true;
1153
1154 case 1:
1156 return false;
1157 else if (GetAnimationPhase("SeatCoDriver") > 0.5)
1158 return false;
1159
1160 return true;
1161
1162 case 2:
1164 return false;
1165 else if (GetAnimationPhase("SeatDriver") <= 0.5)
1166 return false;
1167
1168 return true;
1169
1170 case 3:
1172 return false;
1173 else if (GetAnimationPhase("SeatCoDriver") <= 0.5)
1174 return false;
1175
1176 return true;
1177 }
1178
1179 return false;
1180 }
1181
1183 {
1184 switch (posIdx)
1185 {
1186 case 0:
1187 case 2:
1188 return "doors_driver";
1189 case 1:
1190 case 3:
1191 return "doors_codriver";
1192 }
1193
1194 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1195 }
1196
1198 {
1199 switch (posIdx)
1200 {
1201 case 0:
1202 case 2:
1203 return "NivaDriverDoors";
1204 case 1:
1205 case 3:
1206 return "NivaCoDriverDoors";
1207 }
1208
1209 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1210 }
1211
1212
1213
1215 {
1216 float tempCap = 0.0;
1217
1218 switch (ctrl)
1219 {
1221 float newValue = 0;
1223 {
1224 newValue += 0.5;
1225 }
1226
1228 {
1229 newValue += 0.5;
1230 }
1231
1233 {
1234 newValue += 0.3;
1235 }
1236
1238 {
1239 newValue -= 0.6;
1240 }
1241
1243 {
1244 newValue -= 0.2;
1245 }
1246
1248 {
1249 newValue -= 0.2;
1250 }
1251
1253 break;
1254 }
1255
1256 return super.OnSound(ctrl, oldValue);
1257 }
1258
1260 {
1261 switch (selection)
1262 {
1263 case "doors_driver":
1264 return "DoorsDriver";
1265 case "doors_codriver":
1266 return "DoorsCoDriver";
1267 case "doors_hood":
1268 return "DoorsHood";
1269 case "doors_trunk":
1270 return "DoorsTrunk";
1271 case "seatback_driver":
1272 return "SeatDriver";
1273 case "seatback_codriver":
1274 return "SeatCoDriver";
1275 }
1276
1277 return "";
1278 }
1279
1281 {
1282 switch (selection)
1283 {
1284 case "seat_driver":
1285 case "seatback_driver":
1286 case "seat_cargo1":
1287 return "seat_con_1_1";
1288 case "seat_codriver":
1289 case "seatback_codriver":
1290 case "seat_cargo2":
1291 return "seat_con_2_1";
1292 }
1293
1294 return "";
1295 }
1296
1298 {
1299 switch (selection)
1300 {
1301 case "seatback_driver":
1302 return 0;
1303 case "seatback_codriver":
1304 return 1;
1305 }
1306
1307 return -1;
1308 }
1309
1311 {
1312 return false;
1313 }
1314
1316 {
1317 return false;
1318 }
1319
1321 {
1322 if (nextSeat == 0 && GetAnimationPhase("SeatDriver") > 0.5)
1323 return false;
1324
1325 if (nextSeat == 1 && GetAnimationPhase("SeatCoDriver") > 0.5)
1326 return false;
1327
1328 switch (currentSeat)
1329 {
1330 case 0:
1331 return nextSeat == 1;
1332
1333 case 1:
1334 return nextSeat == 0;
1335
1336 case 2:
1337 return nextSeat == 3;
1338
1339 case 3:
1340 return nextSeat == 2;
1341 }
1342
1343 return false;
1344 }
1345
1347 {
1348 switch (pCurrentSeat)
1349 {
1350 case 0:
1351 return pDoorsSelection == "DoorsDriver";
1352
1353 case 1:
1354 return pDoorsSelection == "DoorsCoDriver";
1355
1356 case 2:
1357 return pDoorsSelection == "DoorsDriver";
1358
1359 case 3:
1360 return pDoorsSelection == "DoorsCoDriver";
1361 }
1362
1363 return false;
1364 }
1365
1367 {
1368 switch (pDoorSelection)
1369 {
1370 case "DoorsDriver":
1371 return 0;
1372 case "DoorsCoDriver":
1373 return 1;
1374 }
1375
1376 return -1;
1377 }
1378
1380 {
1381 super.SetActions();
1382
1384 }
1385
1387 {
1388 SpawnUniversalParts();
1389 SpawnAdditionalItems();
1390 FillUpCarFluids();
1391
1397
1402
1403
1406 }
1407}
1408
1410{
1412 {
1413 SpawnUniversalParts();
1414 SpawnAdditionalItems();
1415 FillUpCarFluids();
1416
1417 GameInventory inventory = GetInventory();
1422
1427
1428
1431 }
1432}
1433
1435{
1437 {
1438 SpawnUniversalParts();
1439 SpawnAdditionalItems();
1440 FillUpCarFluids();
1441
1442 GameInventory inventory = GetInventory();
1447
1452
1453
1456 }
1457}
void AddAction(typename actionName)
CarSoundCtrl
Car's sound controller list. (native, do not change or extend)
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
ref UniversalTemperatureSourceSettings m_UTSSettings
ref UniversalTemperatureSource m_UTSource
override void SetActions()
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
override string GetAnimSourceFromSelection(string selection)
override int GetSeatAnimationType(int posIdx)
override string GetDoorConditionPointFromSelection(string selection)
override float OnSound(CarSoundCtrl ctrl, float oldValue)
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
override void EOnPostSimulate(IEntity other, float timeSlice)
override void OnEngineStop()
override float GetTransportCameraDistance()
override bool CanReleaseAttachment(EntityAI attachment)
override bool CanDisplayCargo()
override void OnEngineStart()
override CarLightBase CreateFrontLight()
override int GetAnimInstance()
override bool CrewCanGetThrough(int posIdx)
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
bool CanManipulateSpareWheel(string slotSelectionName)
override bool IsVitalGlowPlug()
override CarRearLightBase CreateRearLight()
class OffroadHatchback extends CarScript OnDebugSpawn()
override int GetSeatIndexFromDoor(string pDoorSelection)
override bool IsVitalTruckBattery()
override string GetDoorSelectionNameFromSeatPos(int posIdx)
override int GetCarDoorsState(string slotType)
override int GetCrewIndex(string selection)
override bool CanDisplayAttachmentCategory(string category_name)
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
Super root of all classes in Enforce script.
EntityAI CreateInInventory(string type)
creates entity somewhere in inventory
script counterpart to engine's class Inventory
override void OnDebugSpawn()
original Timer deletes m_params which is unwanted
DayZPlayerConstants
defined in C++
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
static const float ITEM_TEMPERATURE_NEUTRAL_ZONE_MIDDLE
static proto float Clamp(float value, float min, float max)
Clamps 'value' to 'min' if it is lower than 'min', or to 'max' if it is higher than 'max'.
bool Contains(string sample)
Returns true if sample is substring of string.
proto int ToLower()
Changes string to lowercase. Returns length.