872{
876
878 {
879
880
881 m_EngineStartOK = "offroad_engine_start_SoundSet";
882 m_EngineStartBattery = "offroad_engine_failed_start_battery_SoundSet";
883 m_EngineStartPlug = "offroad_engine_failed_start_sparkplugs_SoundSet";
884 m_EngineStartFuel = "offroad_engine_failed_start_fuel_SoundSet";
885 m_EngineStop = "offroad_engine_stop_SoundSet";
886 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
887
888 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
889 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
890 m_CarSeatShiftInSound = "Offroad_SeatShiftIn_SoundSet";
891 m_CarSeatShiftOutSound = "Offroad_SeatShiftOut_SoundSet";
892
893 m_CarHornShortSoundName = "Offroad_Horn_Short_SoundSet";
894 m_CarHornLongSoundName = "Offroad_Horn_SoundSet";
895
896 SetEnginePos("0 0.7 1.2");
897 }
898
900 {
904 }
905
907 {
908 super.EEInit();
909
911 {
918
921 }
922 }
923
925 {
926 super.OnEngineStart();
927
929 {
932 }
933 }
934
936 {
937 super.OnEngineStop();
938
940 {
943 }
944 }
945
947 {
949 {
951 {
953 }
954 }
955 }
956
958 {
960 }
961
963 {
964 return 3.5;
965 }
966
968 {
969 switch (posIdx)
970 {
971 case 0:
973 case 1:
975 case 2:
977 case 3:
979 }
980
981 return 0;
982
983 }
984
985
987 {
989 }
990
992 {
994 }
995
997 {
998 if (!super.CanReleaseAttachment(attachment))
999 {
1000 return false;
1001 }
1002
1004 {
1005 string attType = attachment.GetType();
1006 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
1007 {
1008 return false;
1009 }
1010 }
1011
1012 return true;
1013 }
1014
1016 {
1018 }
1019
1021 {
1022 if (!super.CanDisplayAttachmentCategory(category_name))
1023 {
1024 return false;
1025 }
1026
1028 if (category_name.
Contains(
"engine"))
1029 {
1031 {
1032 return false;
1033 }
1034 }
1035
1036 return true;
1037 }
1038
1040 {
1041 if (!super.CanDisplayCargo())
1042 {
1043 return false;
1044 }
1045
1047 {
1048 return false;
1049 }
1050
1051 return true;
1052 }
1053
1055 {
1057
1058 Class.
CastTo(carDoor, FindAttachmentBySlotName(slotType));
1059 if (!carDoor)
1060 {
1062 }
1063
1064 switch (slotType)
1065 {
1066 case "NivaDriverDoors":
1067 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
1068
1069 case "NivaCoDriverDoors":
1070 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
1071
1072 case "NivaHood":
1073 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
1074
1075 case "NivaTrunk":
1076 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
1077 }
1078
1080 }
1081
1083 {
1085 switch (posIdx)
1086 {
1087 case 0:
1089 return false;
1090 else if (GetAnimationPhase("SeatDriver") > 0.5)
1091 return false;
1092
1093 return true;
1094
1095 case 1:
1097 return false;
1098 else if (GetAnimationPhase("SeatCoDriver") > 0.5)
1099 return false;
1100
1101 return true;
1102
1103 case 2:
1105 return false;
1106 else if (GetAnimationPhase("SeatDriver") <= 0.5)
1107 return false;
1108
1109 return true;
1110
1111 case 3:
1113 return false;
1114 else if (GetAnimationPhase("SeatCoDriver") <= 0.5)
1115 return false;
1116
1117 return true;
1118 }
1119
1120 return false;
1121 }
1122
1124 {
1125 switch (posIdx)
1126 {
1127 case 0:
1128 case 2:
1129 return "doors_driver";
1130 case 1:
1131 case 3:
1132 return "doors_codriver";
1133 }
1134
1135 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1136 }
1137
1139 {
1140 switch (posIdx)
1141 {
1142 case 0:
1143 case 2:
1144 return "NivaDriverDoors";
1145 case 1:
1146 case 3:
1147 return "NivaCoDriverDoors";
1148 }
1149
1150 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1151 }
1152
1153
1154
1156 {
1157 float tempCap = 0.0;
1158
1159 switch (ctrl)
1160 {
1162 float newValue = 0;
1164 {
1165 newValue += 0.5;
1166 }
1167
1169 {
1170 newValue += 0.5;
1171 }
1172
1174 {
1175 newValue += 0.3;
1176 }
1177
1179 {
1180 newValue -= 0.6;
1181 }
1182
1184 {
1185 newValue -= 0.2;
1186 }
1187
1189 {
1190 newValue -= 0.2;
1191 }
1192
1194 break;
1195 }
1196
1197 return super.OnSound(ctrl, oldValue);
1198 }
1199
1201 {
1202 switch (selection)
1203 {
1204 case "doors_driver":
1205 return "DoorsDriver";
1206 case "doors_codriver":
1207 return "DoorsCoDriver";
1208 case "doors_hood":
1209 return "DoorsHood";
1210 case "doors_trunk":
1211 return "DoorsTrunk";
1212 case "seatback_driver":
1213 return "SeatDriver";
1214 case "seatback_codriver":
1215 return "SeatCoDriver";
1216 }
1217
1218 return "";
1219 }
1220
1222 {
1223 switch (selection)
1224 {
1225 case "seat_driver":
1226 case "seatback_driver":
1227 case "seat_cargo1":
1228 return "seat_con_1_1";
1229 case "seat_codriver":
1230 case "seatback_codriver":
1231 case "seat_cargo2":
1232 return "seat_con_2_1";
1233 }
1234
1235 return "";
1236 }
1237
1239 {
1240 switch (selection)
1241 {
1242 case "seatback_driver":
1243 return 0;
1244 case "seatback_codriver":
1245 return 1;
1246 }
1247
1248 return -1;
1249 }
1250
1252 {
1253 return false;
1254 }
1255
1257 {
1258 return false;
1259 }
1260
1262 {
1263 if (nextSeat == 0 && GetAnimationPhase("SeatDriver") > 0.5)
1264 return false;
1265
1266 if (nextSeat == 1 && GetAnimationPhase("SeatCoDriver") > 0.5)
1267 return false;
1268
1269 switch (currentSeat)
1270 {
1271 case 0:
1272 return nextSeat == 1;
1273
1274 case 1:
1275 return nextSeat == 0;
1276
1277 case 2:
1278 return nextSeat == 3;
1279
1280 case 3:
1281 return nextSeat == 2;
1282 }
1283
1284 return false;
1285 }
1286
1288 {
1289 switch (pCurrentSeat)
1290 {
1291 case 0:
1292 return pDoorsSelection == "DoorsDriver";
1293
1294 case 1:
1295 return pDoorsSelection == "DoorsCoDriver";
1296
1297 case 2:
1298 return pDoorsSelection == "DoorsDriver";
1299
1300 case 3:
1301 return pDoorsSelection == "DoorsCoDriver";
1302 }
1303
1304 return false;
1305 }
1306
1308 {
1309 switch (pDoorSelection)
1310 {
1311 case "DoorsDriver":
1312 return 0;
1313 case "DoorsCoDriver":
1314 return 1;
1315 }
1316
1317 return -1;
1318 }
1319
1321 {
1322 super.SetActions();
1323
1325 }
1326
1328 {
1329 SpawnUniversalParts();
1330 SpawnAdditionalItems();
1331 FillUpCarFluids();
1332
1338
1343
1344
1347 }
1348}
1349
1351{
1353 {
1354 SpawnUniversalParts();
1355 SpawnAdditionalItems();
1356 FillUpCarFluids();
1357
1358 GameInventory inventory = GetInventory();
1363
1368
1369
1372 }
1373}
1374
1376{
1378 {
1379 SpawnUniversalParts();
1380 SpawnAdditionalItems();
1381 FillUpCarFluids();
1382
1383 GameInventory inventory = GetInventory();
1388
1393
1394
1397 }
1398}
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.