862{
866
868 {
869
870
871 m_EngineStartOK = "offroad_engine_start_SoundSet";
872 m_EngineStartBattery = "offroad_engine_failed_start_battery_SoundSet";
873 m_EngineStartPlug = "offroad_engine_failed_start_sparkplugs_SoundSet";
874 m_EngineStartFuel = "offroad_engine_failed_start_fuel_SoundSet";
875 m_EngineStop = "offroad_engine_stop_SoundSet";
876 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
877
878 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
879 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
880 m_CarSeatShiftInSound = "Offroad_SeatShiftIn_SoundSet";
881 m_CarSeatShiftOutSound = "Offroad_SeatShiftOut_SoundSet";
882
883 m_CarHornShortSoundName = "Offroad_Horn_Short_SoundSet";
884 m_CarHornLongSoundName = "Offroad_Horn_SoundSet";
885
886 SetEnginePos("0 0.7 1.2");
887 }
888
890 {
894 }
895
897 {
898 super.EEInit();
899
901 {
908
911 }
912 }
913
915 {
916 super.OnEngineStart();
917
919 {
922 }
923 }
924
926 {
927 super.OnEngineStop();
928
930 {
933 }
934 }
935
937 {
939 {
941 {
943 }
944 }
945 }
946
948 {
950 }
951
953 {
954 return 3.5;
955 }
956
958 {
959 switch (posIdx)
960 {
961 case 0:
963 case 1:
965 case 2:
967 case 3:
969 }
970
971 return 0;
972
973 }
974
975
977 {
979 }
980
982 {
984 }
985
987 {
988 if (!super.CanReleaseAttachment(attachment))
989 {
990 return false;
991 }
992
994 {
995 string attType = attachment.GetType();
996 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
997 {
998 return false;
999 }
1000 }
1001
1002 return true;
1003 }
1004
1006 {
1008 }
1009
1011 {
1012 if (!super.CanDisplayAttachmentCategory(category_name))
1013 {
1014 return false;
1015 }
1016
1018 if (category_name.
Contains(
"engine"))
1019 {
1021 {
1022 return false;
1023 }
1024 }
1025
1026 return true;
1027 }
1028
1030 {
1031 if (!super.CanDisplayCargo())
1032 {
1033 return false;
1034 }
1035
1037 {
1038 return false;
1039 }
1040
1041 return true;
1042 }
1043
1045 {
1047
1048 Class.
CastTo(carDoor, FindAttachmentBySlotName(slotType));
1049 if (!carDoor)
1050 {
1052 }
1053
1054 switch (slotType)
1055 {
1056 case "NivaDriverDoors":
1057 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
1058
1059 case "NivaCoDriverDoors":
1060 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
1061
1062 case "NivaHood":
1063 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
1064
1065 case "NivaTrunk":
1066 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
1067 }
1068
1070 }
1071
1073 {
1075 switch (posIdx)
1076 {
1077 case 0:
1079 return false;
1080 else if (GetAnimationPhase("SeatDriver") > 0.5)
1081 return false;
1082
1083 return true;
1084
1085 case 1:
1087 return false;
1088 else if (GetAnimationPhase("SeatCoDriver") > 0.5)
1089 return false;
1090
1091 return true;
1092
1093 case 2:
1095 return false;
1096 else if (GetAnimationPhase("SeatDriver") <= 0.5)
1097 return false;
1098
1099 return true;
1100
1101 case 3:
1103 return false;
1104 else if (GetAnimationPhase("SeatCoDriver") <= 0.5)
1105 return false;
1106
1107 return true;
1108 }
1109
1110 return false;
1111 }
1112
1114 {
1115 switch (posIdx)
1116 {
1117 case 0:
1118 case 2:
1119 return "doors_driver";
1120 case 1:
1121 case 3:
1122 return "doors_codriver";
1123 }
1124
1125 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1126 }
1127
1129 {
1130 switch (posIdx)
1131 {
1132 case 0:
1133 case 2:
1134 return "NivaDriverDoors";
1135 case 1:
1136 case 3:
1137 return "NivaCoDriverDoors";
1138 }
1139
1140 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1141 }
1142
1143
1144
1146 {
1147 float tempCap = 0.0;
1148
1149 switch (ctrl)
1150 {
1152 float newValue = 0;
1154 {
1155 newValue += 0.5;
1156 }
1157
1159 {
1160 newValue += 0.5;
1161 }
1162
1164 {
1165 newValue += 0.3;
1166 }
1167
1169 {
1170 newValue -= 0.6;
1171 }
1172
1174 {
1175 newValue -= 0.2;
1176 }
1177
1179 {
1180 newValue -= 0.2;
1181 }
1182
1184 break;
1185 }
1186
1187 return super.OnSound(ctrl, oldValue);
1188 }
1189
1191 {
1192 switch (selection)
1193 {
1194 case "doors_driver":
1195 return "DoorsDriver";
1196 case "doors_codriver":
1197 return "DoorsCoDriver";
1198 case "doors_hood":
1199 return "DoorsHood";
1200 case "doors_trunk":
1201 return "DoorsTrunk";
1202 case "seatback_driver":
1203 return "SeatDriver";
1204 case "seatback_codriver":
1205 return "SeatCoDriver";
1206 }
1207
1208 return "";
1209 }
1210
1212 {
1213 switch (selection)
1214 {
1215 case "seat_driver":
1216 case "seatback_driver":
1217 case "seat_cargo1":
1218 return "seat_con_1_1";
1219 case "seat_codriver":
1220 case "seatback_codriver":
1221 case "seat_cargo2":
1222 return "seat_con_2_1";
1223 }
1224
1225 return "";
1226 }
1227
1229 {
1230 switch (selection)
1231 {
1232 case "seatback_driver":
1233 return 0;
1234 case "seatback_codriver":
1235 return 1;
1236 }
1237
1238 return -1;
1239 }
1240
1242 {
1243 return false;
1244 }
1245
1247 {
1248 return false;
1249 }
1250
1252 {
1253 if (nextSeat == 0 && GetAnimationPhase("SeatDriver") > 0.5)
1254 return false;
1255
1256 if (nextSeat == 1 && GetAnimationPhase("SeatCoDriver") > 0.5)
1257 return false;
1258
1259 switch (currentSeat)
1260 {
1261 case 0:
1262 return nextSeat == 1;
1263
1264 case 1:
1265 return nextSeat == 0;
1266
1267 case 2:
1268 return nextSeat == 3;
1269
1270 case 3:
1271 return nextSeat == 2;
1272 }
1273
1274 return false;
1275 }
1276
1278 {
1279 switch (pCurrentSeat)
1280 {
1281 case 0:
1282 return pDoorsSelection == "DoorsDriver";
1283
1284 case 1:
1285 return pDoorsSelection == "DoorsCoDriver";
1286
1287 case 2:
1288 return pDoorsSelection == "DoorsDriver";
1289
1290 case 3:
1291 return pDoorsSelection == "DoorsCoDriver";
1292 }
1293
1294 return false;
1295 }
1296
1298 {
1299 switch (pDoorSelection)
1300 {
1301 case "DoorsDriver":
1302 return 0;
1303 case "DoorsCoDriver":
1304 return 1;
1305 }
1306
1307 return -1;
1308 }
1309
1311 {
1312 super.SetActions();
1313
1315 }
1316
1318 {
1319 SpawnUniversalParts();
1320 SpawnAdditionalItems();
1321 FillUpCarFluids();
1322
1328
1333
1334
1337 }
1338}
1339
1341{
1343 {
1344 SpawnUniversalParts();
1345 SpawnAdditionalItems();
1346 FillUpCarFluids();
1347
1348 GameInventory inventory = GetInventory();
1353
1358
1359
1362 }
1363}
1364
1366{
1368 {
1369 SpawnUniversalParts();
1370 SpawnAdditionalItems();
1371 FillUpCarFluids();
1372
1373 GameInventory inventory = GetInventory();
1378
1383
1384
1387 }
1388}
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.