832{
836
838 {
839
840
841 m_EngineStartOK = "offroad_engine_start_SoundSet";
842 m_EngineStartBattery = "offroad_engine_failed_start_battery_SoundSet";
843 m_EngineStartPlug = "offroad_engine_failed_start_sparkplugs_SoundSet";
844 m_EngineStartFuel = "offroad_engine_failed_start_fuel_SoundSet";
845 m_EngineStop = "offroad_engine_stop_SoundSet";
846 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
847
848 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
849 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
850 m_CarSeatShiftInSound = "Offroad_SeatShiftIn_SoundSet";
851 m_CarSeatShiftOutSound = "Offroad_SeatShiftOut_SoundSet";
852
853 m_CarHornShortSoundName = "Offroad_Horn_Short_SoundSet";
854 m_CarHornLongSoundName = "Offroad_Horn_SoundSet";
855
856 SetEnginePos("0 0.7 1.2");
857 }
858
860 {
864 }
865
867 {
868 super.EEInit();
869
871 {
878
881 }
882 }
883
885 {
886 super.OnEngineStart();
887
889 {
892 }
893 }
894
896 {
897 super.OnEngineStop();
898
900 {
903 }
904 }
905
907 {
909 {
911 {
913 }
914 }
915 }
916
918 {
920 }
921
923 {
924 return 3.5;
925 }
926
928 {
929 switch (posIdx)
930 {
931 case 0:
933 case 1:
935 case 2:
937 case 3:
939 }
940
941 return 0;
942
943 }
944
945
947 {
949 }
950
952 {
954 }
955
957 {
958 if (!super.CanReleaseAttachment(attachment))
959 {
960 return false;
961 }
962
964 {
965 string attType = attachment.GetType();
966 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
967 {
968 return false;
969 }
970 }
971
972 return true;
973 }
974
976 {
978 }
979
981 {
982 if (!super.CanDisplayAttachmentCategory(category_name))
983 {
984 return false;
985 }
986
988 if (category_name.
Contains(
"engine"))
989 {
991 {
992 return false;
993 }
994 }
995
996 return true;
997 }
998
1000 {
1001 if (!super.CanDisplayCargo())
1002 {
1003 return false;
1004 }
1005
1007 {
1008 return false;
1009 }
1010
1011 return true;
1012 }
1013
1015 {
1017
1018 Class.
CastTo(carDoor, FindAttachmentBySlotName(slotType));
1019 if (!carDoor)
1020 {
1022 }
1023
1024 switch (slotType)
1025 {
1026 case "NivaDriverDoors":
1027 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
1028
1029 case "NivaCoDriverDoors":
1030 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
1031
1032 case "NivaHood":
1033 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
1034
1035 case "NivaTrunk":
1036 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
1037 }
1038
1040 }
1041
1043 {
1045 switch (posIdx)
1046 {
1047 case 0:
1049 return false;
1050 else if (GetAnimationPhase("SeatDriver") > 0.5)
1051 return false;
1052
1053 return true;
1054
1055 case 1:
1057 return false;
1058 else if (GetAnimationPhase("SeatCoDriver") > 0.5)
1059 return false;
1060
1061 return true;
1062
1063 case 2:
1065 return false;
1066 else if (GetAnimationPhase("SeatDriver") <= 0.5)
1067 return false;
1068
1069 return true;
1070
1071 case 3:
1073 return false;
1074 else if (GetAnimationPhase("SeatCoDriver") <= 0.5)
1075 return false;
1076
1077 return true;
1078 }
1079
1080 return false;
1081 }
1082
1084 {
1085 switch (posIdx)
1086 {
1087 case 0:
1088 case 2:
1089 return "doors_driver";
1090 case 1:
1091 case 3:
1092 return "doors_codriver";
1093 }
1094
1095 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1096 }
1097
1099 {
1100 switch (posIdx)
1101 {
1102 case 0:
1103 case 2:
1104 return "NivaDriverDoors";
1105 case 1:
1106 case 3:
1107 return "NivaCoDriverDoors";
1108 }
1109
1110 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1111 }
1112
1113
1114
1116 {
1117 float tempCap = 0.0;
1118
1119 switch (ctrl)
1120 {
1122 float newValue = 0;
1124 {
1125 newValue += 0.5;
1126 }
1127
1129 {
1130 newValue += 0.5;
1131 }
1132
1134 {
1135 newValue += 0.3;
1136 }
1137
1139 {
1140 newValue -= 0.6;
1141 }
1142
1144 {
1145 newValue -= 0.2;
1146 }
1147
1149 {
1150 newValue -= 0.2;
1151 }
1152
1154 break;
1155 }
1156
1157 return super.OnSound(ctrl, oldValue);
1158 }
1159
1161 {
1162 switch (selection)
1163 {
1164 case "doors_driver":
1165 return "DoorsDriver";
1166 case "doors_codriver":
1167 return "DoorsCoDriver";
1168 case "doors_hood":
1169 return "DoorsHood";
1170 case "doors_trunk":
1171 return "DoorsTrunk";
1172 case "seatback_driver":
1173 return "SeatDriver";
1174 case "seatback_codriver":
1175 return "SeatCoDriver";
1176 }
1177
1178 return "";
1179 }
1180
1182 {
1183 switch (selection)
1184 {
1185 case "seat_driver":
1186 case "seatback_driver":
1187 case "seat_cargo1":
1188 return "seat_con_1_1";
1189 case "seat_codriver":
1190 case "seatback_codriver":
1191 case "seat_cargo2":
1192 return "seat_con_2_1";
1193 }
1194
1195 return "";
1196 }
1197
1199 {
1200 switch (selection)
1201 {
1202 case "seatback_driver":
1203 return 0;
1204 case "seatback_codriver":
1205 return 1;
1206 }
1207
1208 return -1;
1209 }
1210
1212 {
1213 return false;
1214 }
1215
1217 {
1218 return false;
1219 }
1220
1222 {
1223 if (nextSeat == 0 && GetAnimationPhase("SeatDriver") > 0.5)
1224 return false;
1225
1226 if (nextSeat == 1 && GetAnimationPhase("SeatCoDriver") > 0.5)
1227 return false;
1228
1229 switch (currentSeat)
1230 {
1231 case 0:
1232 return nextSeat == 1;
1233
1234 case 1:
1235 return nextSeat == 0;
1236
1237 case 2:
1238 return nextSeat == 3;
1239
1240 case 3:
1241 return nextSeat == 2;
1242 }
1243
1244 return false;
1245 }
1246
1248 {
1249 switch (pCurrentSeat)
1250 {
1251 case 0:
1252 return pDoorsSelection == "DoorsDriver";
1253
1254 case 1:
1255 return pDoorsSelection == "DoorsCoDriver";
1256
1257 case 2:
1258 return pDoorsSelection == "DoorsDriver";
1259
1260 case 3:
1261 return pDoorsSelection == "DoorsCoDriver";
1262 }
1263
1264 return false;
1265 }
1266
1268 {
1269 switch (pDoorSelection)
1270 {
1271 case "DoorsDriver":
1272 return 0;
1273 case "DoorsCoDriver":
1274 return 1;
1275 }
1276
1277 return -1;
1278 }
1279
1281 {
1282 super.SetActions();
1283
1285 }
1286
1288 {
1289 SpawnUniversalParts();
1290 SpawnAdditionalItems();
1291 FillUpCarFluids();
1292
1298
1303
1304
1307 }
1308}
1309
1311{
1313 {
1314 SpawnUniversalParts();
1315 SpawnAdditionalItems();
1316 FillUpCarFluids();
1317
1318 GameInventory inventory = GetInventory();
1323
1328
1329
1332 }
1333}
1334
1336{
1338 {
1339 SpawnUniversalParts();
1340 SpawnAdditionalItems();
1341 FillUpCarFluids();
1342
1343 GameInventory inventory = GetInventory();
1348
1353
1354
1357 }
1358}
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.