898{
902
904 {
905
906
907 m_EngineStartOK = "offroad_engine_start_SoundSet";
908 m_EngineStartBattery = "offroad_engine_failed_start_battery_SoundSet";
909 m_EngineStartPlug = "offroad_engine_failed_start_sparkplugs_SoundSet";
910 m_EngineStartFuel = "offroad_engine_failed_start_fuel_SoundSet";
911 m_EngineStop = "offroad_engine_stop_SoundSet";
912 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
913
914 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
915 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
916 m_CarSeatShiftInSound = "Offroad_SeatShiftIn_SoundSet";
917 m_CarSeatShiftOutSound = "Offroad_SeatShiftOut_SoundSet";
918
919 m_CarHornShortSoundName = "Offroad_Horn_Short_SoundSet";
920 m_CarHornLongSoundName = "Offroad_Horn_SoundSet";
921
922 SetEnginePos("0 0.7 1.2");
923 }
924
926 {
930 }
931
933 {
934 super.EEInit();
935
937 {
944
947 }
948 }
949
951 {
952 super.OnEngineStart();
953
955 {
958 }
959 }
960
962 {
963 super.OnEngineStop();
964
966 {
969 }
970 }
971
973 {
975 {
977 {
979 }
980 }
981 }
982
984 {
986 }
987
989 {
990 return 3.5;
991 }
992
994 {
995 switch (posIdx)
996 {
997 case 0:
999 case 1:
1001 case 2:
1003 case 3:
1005 }
1006
1007 return 0;
1008
1009 }
1010
1011
1013 {
1015 }
1016
1018 {
1020 }
1021
1023 {
1024 if (!super.CanReleaseAttachment(attachment))
1025 {
1026 return false;
1027 }
1028
1030 {
1031 string attType = attachment.GetType();
1032 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
1033 {
1034 return false;
1035 }
1036 }
1037
1038 return true;
1039 }
1040
1042 {
1044 }
1045
1047 {
1048 if (!super.CanDisplayAttachmentCategory(category_name))
1049 {
1050 return false;
1051 }
1052
1054 if (category_name.
Contains(
"engine"))
1055 {
1057 {
1058 return false;
1059 }
1060 }
1061
1062 return true;
1063 }
1064
1066 {
1067 if (!super.CanDisplayCargo())
1068 {
1069 return false;
1070 }
1071
1073 {
1074 return false;
1075 }
1076
1077 return true;
1078 }
1079
1081 {
1083
1084 Class.
CastTo(carDoor, FindAttachmentBySlotName(slotType));
1085 if (!carDoor)
1086 {
1088 }
1089
1090 switch (slotType)
1091 {
1092 case "NivaDriverDoors":
1093 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
1094
1095 case "NivaCoDriverDoors":
1096 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
1097
1098 case "NivaHood":
1099 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
1100
1101 case "NivaTrunk":
1102 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
1103 }
1104
1106 }
1107
1109 {
1111 switch (posIdx)
1112 {
1113 case 0:
1115 return false;
1116 else if (GetAnimationPhase("SeatDriver") > 0.5)
1117 return false;
1118
1119 return true;
1120
1121 case 1:
1123 return false;
1124 else if (GetAnimationPhase("SeatCoDriver") > 0.5)
1125 return false;
1126
1127 return true;
1128
1129 case 2:
1131 return false;
1132 else if (GetAnimationPhase("SeatDriver") <= 0.5)
1133 return false;
1134
1135 return true;
1136
1137 case 3:
1139 return false;
1140 else if (GetAnimationPhase("SeatCoDriver") <= 0.5)
1141 return false;
1142
1143 return true;
1144 }
1145
1146 return false;
1147 }
1148
1150 {
1151 switch (posIdx)
1152 {
1153 case 0:
1154 case 2:
1155 return "doors_driver";
1156 case 1:
1157 case 3:
1158 return "doors_codriver";
1159 }
1160
1161 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1162 }
1163
1165 {
1166 switch (posIdx)
1167 {
1168 case 0:
1169 case 2:
1170 return "NivaDriverDoors";
1171 case 1:
1172 case 3:
1173 return "NivaCoDriverDoors";
1174 }
1175
1176 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1177 }
1178
1179
1180
1182 {
1183 float tempCap = 0.0;
1184
1185 switch (ctrl)
1186 {
1188 float newValue = 0;
1190 {
1191 newValue += 0.5;
1192 }
1193
1195 {
1196 newValue += 0.5;
1197 }
1198
1200 {
1201 newValue += 0.3;
1202 }
1203
1205 {
1206 newValue -= 0.6;
1207 }
1208
1210 {
1211 newValue -= 0.2;
1212 }
1213
1215 {
1216 newValue -= 0.2;
1217 }
1218
1220 break;
1221 }
1222
1223 return super.OnSound(ctrl, oldValue);
1224 }
1225
1227 {
1228 switch (selection)
1229 {
1230 case "doors_driver":
1231 return "DoorsDriver";
1232 case "doors_codriver":
1233 return "DoorsCoDriver";
1234 case "doors_hood":
1235 return "DoorsHood";
1236 case "doors_trunk":
1237 return "DoorsTrunk";
1238 case "seatback_driver":
1239 return "SeatDriver";
1240 case "seatback_codriver":
1241 return "SeatCoDriver";
1242 }
1243
1244 return "";
1245 }
1246
1248 {
1249 switch (selection)
1250 {
1251 case "seat_driver":
1252 case "seatback_driver":
1253 case "seat_cargo1":
1254 return "seat_con_1_1";
1255 case "seat_codriver":
1256 case "seatback_codriver":
1257 case "seat_cargo2":
1258 return "seat_con_2_1";
1259 }
1260
1261 return "";
1262 }
1263
1265 {
1266 switch (selection)
1267 {
1268 case "seatback_driver":
1269 return 0;
1270 case "seatback_codriver":
1271 return 1;
1272 }
1273
1274 return -1;
1275 }
1276
1278 {
1279 return false;
1280 }
1281
1283 {
1284 return false;
1285 }
1286
1288 {
1289 if (nextSeat == 0 && GetAnimationPhase("SeatDriver") > 0.5)
1290 return false;
1291
1292 if (nextSeat == 1 && GetAnimationPhase("SeatCoDriver") > 0.5)
1293 return false;
1294
1295 switch (currentSeat)
1296 {
1297 case 0:
1298 return nextSeat == 1;
1299
1300 case 1:
1301 return nextSeat == 0;
1302
1303 case 2:
1304 return nextSeat == 3;
1305
1306 case 3:
1307 return nextSeat == 2;
1308 }
1309
1310 return false;
1311 }
1312
1314 {
1315 switch (pCurrentSeat)
1316 {
1317 case 0:
1318 return pDoorsSelection == "DoorsDriver";
1319
1320 case 1:
1321 return pDoorsSelection == "DoorsCoDriver";
1322
1323 case 2:
1324 return pDoorsSelection == "DoorsDriver";
1325
1326 case 3:
1327 return pDoorsSelection == "DoorsCoDriver";
1328 }
1329
1330 return false;
1331 }
1332
1334 {
1335 switch (pDoorSelection)
1336 {
1337 case "DoorsDriver":
1338 return 0;
1339 case "DoorsCoDriver":
1340 return 1;
1341 }
1342
1343 return -1;
1344 }
1345
1347 {
1348 super.SetActions();
1349
1351 }
1352
1354 {
1355 SpawnUniversalParts();
1356 SpawnAdditionalItems();
1357 FillUpCarFluids();
1358
1364
1369
1370
1373 }
1374}
1375
1377{
1379 {
1380 SpawnUniversalParts();
1381 SpawnAdditionalItems();
1382 FillUpCarFluids();
1383
1384 GameInventory inventory = GetInventory();
1389
1394
1395
1398 }
1399}
1400
1402{
1404 {
1405 SpawnUniversalParts();
1406 SpawnAdditionalItems();
1407 FillUpCarFluids();
1408
1409 GameInventory inventory = GetInventory();
1414
1419
1420
1423 }
1424}
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.