918{
922
924 {
925
926
927 m_EngineStartOK = "offroad_engine_start_SoundSet";
928 m_EngineStartBattery = "offroad_engine_failed_start_battery_SoundSet";
929 m_EngineStartPlug = "offroad_engine_failed_start_sparkplugs_SoundSet";
930 m_EngineStartFuel = "offroad_engine_failed_start_fuel_SoundSet";
931 m_EngineStop = "offroad_engine_stop_SoundSet";
932 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
933
934 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
935 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
936 m_CarSeatShiftInSound = "Offroad_SeatShiftIn_SoundSet";
937 m_CarSeatShiftOutSound = "Offroad_SeatShiftOut_SoundSet";
938
939 m_CarHornShortSoundName = "Offroad_Horn_Short_SoundSet";
940 m_CarHornLongSoundName = "Offroad_Horn_SoundSet";
941
942 SetEnginePos("0 0.7 1.2");
943 }
944
946 {
950 }
951
953 {
954 super.EEInit();
955
957 {
964
967 }
968 }
969
971 {
972 super.OnEngineStart();
973
975 {
978 }
979 }
980
982 {
983 super.OnEngineStop();
984
986 {
989 }
990 }
991
993 {
995 {
997 {
999 }
1000 }
1001 }
1002
1004 {
1006 }
1007
1009 {
1010 return 3.5;
1011 }
1012
1014 {
1015 switch (posIdx)
1016 {
1017 case 0:
1019 case 1:
1021 case 2:
1023 case 3:
1025 }
1026
1027 return 0;
1028
1029 }
1030
1031
1033 {
1035 }
1036
1038 {
1040 }
1041
1043 {
1044 if (!super.CanReleaseAttachment(attachment))
1045 {
1046 return false;
1047 }
1048
1050 {
1051 string attType = attachment.GetType();
1052 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
1053 {
1054 return false;
1055 }
1056 }
1057
1058 return true;
1059 }
1060
1062 {
1064 }
1065
1067 {
1068 if (!super.CanDisplayAttachmentCategory(category_name))
1069 {
1070 return false;
1071 }
1072
1074 if (category_name.
Contains(
"engine"))
1075 {
1077 {
1078 return false;
1079 }
1080 }
1081
1082 return true;
1083 }
1084
1086 {
1087 if (!super.CanDisplayCargo())
1088 {
1089 return false;
1090 }
1091
1093 {
1094 return false;
1095 }
1096
1097 return true;
1098 }
1099
1101 {
1103
1104 Class.
CastTo(carDoor, FindAttachmentBySlotName(slotType));
1105 if (!carDoor)
1106 {
1108 }
1109
1110 switch (slotType)
1111 {
1112 case "NivaDriverDoors":
1113 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
1114
1115 case "NivaCoDriverDoors":
1116 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
1117
1118 case "NivaHood":
1119 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
1120
1121 case "NivaTrunk":
1122 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
1123 }
1124
1126 }
1127
1129 {
1131 switch (posIdx)
1132 {
1133 case 0:
1135 return false;
1136 else if (GetAnimationPhase("SeatDriver") > 0.5)
1137 return false;
1138
1139 return true;
1140
1141 case 1:
1143 return false;
1144 else if (GetAnimationPhase("SeatCoDriver") > 0.5)
1145 return false;
1146
1147 return true;
1148
1149 case 2:
1151 return false;
1152 else if (GetAnimationPhase("SeatDriver") <= 0.5)
1153 return false;
1154
1155 return true;
1156
1157 case 3:
1159 return false;
1160 else if (GetAnimationPhase("SeatCoDriver") <= 0.5)
1161 return false;
1162
1163 return true;
1164 }
1165
1166 return false;
1167 }
1168
1170 {
1171 switch (posIdx)
1172 {
1173 case 0:
1174 case 2:
1175 return "doors_driver";
1176 case 1:
1177 case 3:
1178 return "doors_codriver";
1179 }
1180
1181 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1182 }
1183
1185 {
1186 switch (posIdx)
1187 {
1188 case 0:
1189 case 2:
1190 return "NivaDriverDoors";
1191 case 1:
1192 case 3:
1193 return "NivaCoDriverDoors";
1194 }
1195
1196 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1197 }
1198
1199
1200
1202 {
1203 float tempCap = 0.0;
1204
1205 switch (ctrl)
1206 {
1208 float newValue = 0;
1210 {
1211 newValue += 0.5;
1212 }
1213
1215 {
1216 newValue += 0.5;
1217 }
1218
1220 {
1221 newValue += 0.3;
1222 }
1223
1225 {
1226 newValue -= 0.6;
1227 }
1228
1230 {
1231 newValue -= 0.2;
1232 }
1233
1235 {
1236 newValue -= 0.2;
1237 }
1238
1240 break;
1241 }
1242
1243 return super.OnSound(ctrl, oldValue);
1244 }
1245
1247 {
1248 switch (selection)
1249 {
1250 case "doors_driver":
1251 return "DoorsDriver";
1252 case "doors_codriver":
1253 return "DoorsCoDriver";
1254 case "doors_hood":
1255 return "DoorsHood";
1256 case "doors_trunk":
1257 return "DoorsTrunk";
1258 case "seatback_driver":
1259 return "SeatDriver";
1260 case "seatback_codriver":
1261 return "SeatCoDriver";
1262 }
1263
1264 return "";
1265 }
1266
1268 {
1269 switch (selection)
1270 {
1271 case "seat_driver":
1272 case "seatback_driver":
1273 case "seat_cargo1":
1274 return "seat_con_1_1";
1275 case "seat_codriver":
1276 case "seatback_codriver":
1277 case "seat_cargo2":
1278 return "seat_con_2_1";
1279 }
1280
1281 return "";
1282 }
1283
1285 {
1286 switch (selection)
1287 {
1288 case "seatback_driver":
1289 return 0;
1290 case "seatback_codriver":
1291 return 1;
1292 }
1293
1294 return -1;
1295 }
1296
1298 {
1299 return false;
1300 }
1301
1303 {
1304 return false;
1305 }
1306
1308 {
1309 if (nextSeat == 0 && GetAnimationPhase("SeatDriver") > 0.5)
1310 return false;
1311
1312 if (nextSeat == 1 && GetAnimationPhase("SeatCoDriver") > 0.5)
1313 return false;
1314
1315 switch (currentSeat)
1316 {
1317 case 0:
1318 return nextSeat == 1;
1319
1320 case 1:
1321 return nextSeat == 0;
1322
1323 case 2:
1324 return nextSeat == 3;
1325
1326 case 3:
1327 return nextSeat == 2;
1328 }
1329
1330 return false;
1331 }
1332
1334 {
1335 switch (pCurrentSeat)
1336 {
1337 case 0:
1338 return pDoorsSelection == "DoorsDriver";
1339
1340 case 1:
1341 return pDoorsSelection == "DoorsCoDriver";
1342
1343 case 2:
1344 return pDoorsSelection == "DoorsDriver";
1345
1346 case 3:
1347 return pDoorsSelection == "DoorsCoDriver";
1348 }
1349
1350 return false;
1351 }
1352
1354 {
1355 switch (pDoorSelection)
1356 {
1357 case "DoorsDriver":
1358 return 0;
1359 case "DoorsCoDriver":
1360 return 1;
1361 }
1362
1363 return -1;
1364 }
1365
1367 {
1368 super.SetActions();
1369
1371 }
1372
1374 {
1375 SpawnUniversalParts();
1376 SpawnAdditionalItems();
1377 FillUpCarFluids();
1378
1384
1389
1390
1393 }
1394}
1395
1397{
1399 {
1400 SpawnUniversalParts();
1401 SpawnAdditionalItems();
1402 FillUpCarFluids();
1403
1404 GameInventory inventory = GetInventory();
1409
1414
1415
1418 }
1419}
1420
1422{
1424 {
1425 SpawnUniversalParts();
1426 SpawnAdditionalItems();
1427 FillUpCarFluids();
1428
1429 GameInventory inventory = GetInventory();
1434
1439
1440
1443 }
1444}
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.