849{
853
855 {
856
857
858 m_EngineStartOK = "offroad_engine_start_SoundSet";
859 m_EngineStartBattery = "offroad_engine_failed_start_battery_SoundSet";
860 m_EngineStartPlug = "offroad_engine_failed_start_sparkplugs_SoundSet";
861 m_EngineStartFuel = "offroad_engine_failed_start_fuel_SoundSet";
862 m_EngineStop = "offroad_engine_stop_SoundSet";
863 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
864
865 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
866 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
867 m_CarSeatShiftInSound = "Offroad_SeatShiftIn_SoundSet";
868 m_CarSeatShiftOutSound = "Offroad_SeatShiftOut_SoundSet";
869
870 m_CarHornShortSoundName = "Offroad_Horn_Short_SoundSet";
871 m_CarHornLongSoundName = "Offroad_Horn_SoundSet";
872
873 SetEnginePos("0 0.7 1.2");
874 }
875
877 {
881 }
882
884 {
885 super.EEInit();
886
888 {
895
898 }
899 }
900
902 {
903 super.OnEngineStart();
904
906 {
909 }
910 }
911
913 {
914 super.OnEngineStop();
915
917 {
920 }
921 }
922
924 {
926 {
928 {
930 }
931 }
932 }
933
935 {
937 }
938
940 {
941 return 3.5;
942 }
943
945 {
946 switch (posIdx)
947 {
948 case 0:
950 case 1:
952 case 2:
954 case 3:
956 }
957
958 return 0;
959
960 }
961
962
964 {
966 }
967
969 {
971 }
972
974 {
975 if (!super.CanReleaseAttachment(attachment))
976 {
977 return false;
978 }
979
981 {
982 string attType = attachment.GetType();
983 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
984 {
985 return false;
986 }
987 }
988
989 return true;
990 }
991
993 {
995 }
996
998 {
999 if (!super.CanDisplayAttachmentCategory(category_name))
1000 {
1001 return false;
1002 }
1003
1005 if (category_name.
Contains(
"engine"))
1006 {
1008 {
1009 return false;
1010 }
1011 }
1012
1013 return true;
1014 }
1015
1017 {
1018 if (!super.CanDisplayCargo())
1019 {
1020 return false;
1021 }
1022
1024 {
1025 return false;
1026 }
1027
1028 return true;
1029 }
1030
1032 {
1034
1035 Class.
CastTo(carDoor, FindAttachmentBySlotName(slotType));
1036 if (!carDoor)
1037 {
1039 }
1040
1041 switch (slotType)
1042 {
1043 case "NivaDriverDoors":
1044 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
1045
1046 case "NivaCoDriverDoors":
1047 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
1048
1049 case "NivaHood":
1050 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
1051
1052 case "NivaTrunk":
1053 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
1054 }
1055
1057 }
1058
1060 {
1062 switch (posIdx)
1063 {
1064 case 0:
1066 return false;
1067 else if (GetAnimationPhase("SeatDriver") > 0.5)
1068 return false;
1069
1070 return true;
1071
1072 case 1:
1074 return false;
1075 else if (GetAnimationPhase("SeatCoDriver") > 0.5)
1076 return false;
1077
1078 return true;
1079
1080 case 2:
1082 return false;
1083 else if (GetAnimationPhase("SeatDriver") <= 0.5)
1084 return false;
1085
1086 return true;
1087
1088 case 3:
1090 return false;
1091 else if (GetAnimationPhase("SeatCoDriver") <= 0.5)
1092 return false;
1093
1094 return true;
1095 }
1096
1097 return false;
1098 }
1099
1101 {
1102 switch (posIdx)
1103 {
1104 case 0:
1105 case 2:
1106 return "doors_driver";
1107 case 1:
1108 case 3:
1109 return "doors_codriver";
1110 }
1111
1112 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1113 }
1114
1116 {
1117 switch (posIdx)
1118 {
1119 case 0:
1120 case 2:
1121 return "NivaDriverDoors";
1122 case 1:
1123 case 3:
1124 return "NivaCoDriverDoors";
1125 }
1126
1127 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1128 }
1129
1130
1131
1133 {
1134 float tempCap = 0.0;
1135
1136 switch (ctrl)
1137 {
1139 float newValue = 0;
1141 {
1142 newValue += 0.5;
1143 }
1144
1146 {
1147 newValue += 0.5;
1148 }
1149
1151 {
1152 newValue += 0.3;
1153 }
1154
1156 {
1157 newValue -= 0.6;
1158 }
1159
1161 {
1162 newValue -= 0.2;
1163 }
1164
1166 {
1167 newValue -= 0.2;
1168 }
1169
1171 break;
1172 }
1173
1174 return super.OnSound(ctrl, oldValue);
1175 }
1176
1178 {
1179 switch (selection)
1180 {
1181 case "doors_driver":
1182 return "DoorsDriver";
1183 case "doors_codriver":
1184 return "DoorsCoDriver";
1185 case "doors_hood":
1186 return "DoorsHood";
1187 case "doors_trunk":
1188 return "DoorsTrunk";
1189 case "seatback_driver":
1190 return "SeatDriver";
1191 case "seatback_codriver":
1192 return "SeatCoDriver";
1193 }
1194
1195 return "";
1196 }
1197
1199 {
1200 switch (selection)
1201 {
1202 case "seat_driver":
1203 case "seatback_driver":
1204 case "seat_cargo1":
1205 return "seat_con_1_1";
1206 case "seat_codriver":
1207 case "seatback_codriver":
1208 case "seat_cargo2":
1209 return "seat_con_2_1";
1210 }
1211
1212 return "";
1213 }
1214
1216 {
1217 switch (selection)
1218 {
1219 case "seatback_driver":
1220 return 0;
1221 case "seatback_codriver":
1222 return 1;
1223 }
1224
1225 return -1;
1226 }
1227
1229 {
1230 return false;
1231 }
1232
1234 {
1235 return false;
1236 }
1237
1239 {
1240 if (nextSeat == 0 && GetAnimationPhase("SeatDriver") > 0.5)
1241 return false;
1242
1243 if (nextSeat == 1 && GetAnimationPhase("SeatCoDriver") > 0.5)
1244 return false;
1245
1246 switch (currentSeat)
1247 {
1248 case 0:
1249 return nextSeat == 1;
1250
1251 case 1:
1252 return nextSeat == 0;
1253
1254 case 2:
1255 return nextSeat == 3;
1256
1257 case 3:
1258 return nextSeat == 2;
1259 }
1260
1261 return false;
1262 }
1263
1265 {
1266 switch (pCurrentSeat)
1267 {
1268 case 0:
1269 return pDoorsSelection == "DoorsDriver";
1270
1271 case 1:
1272 return pDoorsSelection == "DoorsCoDriver";
1273
1274 case 2:
1275 return pDoorsSelection == "DoorsDriver";
1276
1277 case 3:
1278 return pDoorsSelection == "DoorsCoDriver";
1279 }
1280
1281 return false;
1282 }
1283
1285 {
1286 switch (pDoorSelection)
1287 {
1288 case "DoorsDriver":
1289 return 0;
1290 case "DoorsCoDriver":
1291 return 1;
1292 }
1293
1294 return -1;
1295 }
1296
1298 {
1299 super.SetActions();
1300
1302 }
1303
1305 {
1306 SpawnUniversalParts();
1307 SpawnAdditionalItems();
1308 FillUpCarFluids();
1309
1315
1320
1321
1324 }
1325}
1326
1328{
1330 {
1331 SpawnUniversalParts();
1332 SpawnAdditionalItems();
1333 FillUpCarFluids();
1334
1335 GameInventory inventory = GetInventory();
1340
1345
1346
1349 }
1350}
1351
1353{
1355 {
1356 SpawnUniversalParts();
1357 SpawnAdditionalItems();
1358 FillUpCarFluids();
1359
1360 GameInventory inventory = GetInventory();
1365
1370
1371
1374 }
1375}
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.