811{
815
817 {
818
819
820 m_EngineStartOK = "offroad_engine_start_SoundSet";
821 m_EngineStartBattery = "offroad_engine_failed_start_battery_SoundSet";
822 m_EngineStartPlug = "offroad_engine_failed_start_sparkplugs_SoundSet";
823 m_EngineStartFuel = "offroad_engine_failed_start_fuel_SoundSet";
824 m_EngineStop = "offroad_engine_stop_SoundSet";
825 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
826
827 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
828 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
829 m_CarSeatShiftInSound = "Offroad_SeatShiftIn_SoundSet";
830 m_CarSeatShiftOutSound = "Offroad_SeatShiftOut_SoundSet";
831
832 m_CarHornShortSoundName = "Offroad_Horn_Short_SoundSet";
833 m_CarHornLongSoundName = "Offroad_Horn_SoundSet";
834
835 SetEnginePos("0 0.7 1.2");
836 }
837
839 {
843 }
844
846 {
847 super.EEInit();
848
850 {
857
860 }
861 }
862
864 {
865 super.OnEngineStart();
866
868 {
871 }
872 }
873
875 {
876 super.OnEngineStop();
877
879 {
882 }
883 }
884
886 {
888 {
890 {
892 }
893 }
894 }
895
897 {
899 }
900
902 {
903 return 3.5;
904 }
905
907 {
908 switch (posIdx)
909 {
910 case 0:
912 case 1:
914 case 2:
916 case 3:
918 }
919
920 return 0;
921
922 }
923
924
926 {
928 }
929
931 {
933 }
934
936 {
937 if (!super.CanReleaseAttachment(attachment))
938 {
939 return false;
940 }
941
943 {
944 string attType = attachment.GetType();
945 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
946 {
947 return false;
948 }
949 }
950
951 return true;
952 }
953
955 {
957 }
958
960 {
961 if (!super.CanDisplayAttachmentCategory(category_name))
962 {
963 return false;
964 }
965
967 if (category_name.
Contains(
"engine"))
968 {
970 {
971 return false;
972 }
973 }
974
975 return true;
976 }
977
979 {
980 if (!super.CanDisplayCargo())
981 {
982 return false;
983 }
984
986 {
987 return false;
988 }
989
990 return true;
991 }
992
994 {
996
997 Class.
CastTo(carDoor, FindAttachmentBySlotName(slotType));
998 if (!carDoor)
999 {
1001 }
1002
1003 switch (slotType)
1004 {
1005 case "NivaDriverDoors":
1006 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
1007
1008 case "NivaCoDriverDoors":
1009 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
1010
1011 case "NivaHood":
1012 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
1013
1014 case "NivaTrunk":
1015 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
1016 }
1017
1019 }
1020
1022 {
1024 switch (posIdx)
1025 {
1026 case 0:
1028 return false;
1029 else if (GetAnimationPhase("SeatDriver") > 0.5)
1030 return false;
1031
1032 return true;
1033
1034 case 1:
1036 return false;
1037 else if (GetAnimationPhase("SeatCoDriver") > 0.5)
1038 return false;
1039
1040 return true;
1041
1042 case 2:
1044 return false;
1045 else if (GetAnimationPhase("SeatDriver") <= 0.5)
1046 return false;
1047
1048 return true;
1049
1050 case 3:
1052 return false;
1053 else if (GetAnimationPhase("SeatCoDriver") <= 0.5)
1054 return false;
1055
1056 return true;
1057 }
1058
1059 return false;
1060 }
1061
1063 {
1064 switch (posIdx)
1065 {
1066 case 0:
1067 case 2:
1068 return "doors_driver";
1069 case 1:
1070 case 3:
1071 return "doors_codriver";
1072 }
1073
1074 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1075 }
1076
1078 {
1079 switch (posIdx)
1080 {
1081 case 0:
1082 case 2:
1083 return "NivaDriverDoors";
1084 case 1:
1085 case 3:
1086 return "NivaCoDriverDoors";
1087 }
1088
1089 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1090 }
1091
1092
1093
1095 {
1096 float tempCap = 0.0;
1097
1098 switch (ctrl)
1099 {
1101 float newValue = 0;
1103 {
1104 newValue += 0.5;
1105 }
1106
1108 {
1109 newValue += 0.5;
1110 }
1111
1113 {
1114 newValue += 0.3;
1115 }
1116
1118 {
1119 newValue -= 0.6;
1120 }
1121
1123 {
1124 newValue -= 0.2;
1125 }
1126
1128 {
1129 newValue -= 0.2;
1130 }
1131
1133 break;
1134 }
1135
1136 return super.OnSound(ctrl, oldValue);
1137 }
1138
1140 {
1141 switch (selection)
1142 {
1143 case "doors_driver":
1144 return "DoorsDriver";
1145 case "doors_codriver":
1146 return "DoorsCoDriver";
1147 case "doors_hood":
1148 return "DoorsHood";
1149 case "doors_trunk":
1150 return "DoorsTrunk";
1151 case "seatback_driver":
1152 return "SeatDriver";
1153 case "seatback_codriver":
1154 return "SeatCoDriver";
1155 }
1156
1157 return "";
1158 }
1159
1161 {
1162 switch (selection)
1163 {
1164 case "seat_driver":
1165 case "seatback_driver":
1166 case "seat_cargo1":
1167 return "seat_con_1_1";
1168 case "seat_codriver":
1169 case "seatback_codriver":
1170 case "seat_cargo2":
1171 return "seat_con_2_1";
1172 }
1173
1174 return "";
1175 }
1176
1178 {
1179 switch (selection)
1180 {
1181 case "seatback_driver":
1182 return 0;
1183 case "seatback_codriver":
1184 return 1;
1185 }
1186
1187 return -1;
1188 }
1189
1191 {
1192 return false;
1193 }
1194
1196 {
1197 return false;
1198 }
1199
1201 {
1202 if (nextSeat == 0 && GetAnimationPhase("SeatDriver") > 0.5)
1203 return false;
1204
1205 if (nextSeat == 1 && GetAnimationPhase("SeatCoDriver") > 0.5)
1206 return false;
1207
1208 switch (currentSeat)
1209 {
1210 case 0:
1211 return nextSeat == 1;
1212
1213 case 1:
1214 return nextSeat == 0;
1215
1216 case 2:
1217 return nextSeat == 3;
1218
1219 case 3:
1220 return nextSeat == 2;
1221 }
1222
1223 return false;
1224 }
1225
1227 {
1228 switch (pCurrentSeat)
1229 {
1230 case 0:
1231 return pDoorsSelection == "DoorsDriver";
1232
1233 case 1:
1234 return pDoorsSelection == "DoorsCoDriver";
1235
1236 case 2:
1237 return pDoorsSelection == "DoorsDriver";
1238
1239 case 3:
1240 return pDoorsSelection == "DoorsCoDriver";
1241 }
1242
1243 return false;
1244 }
1245
1247 {
1248 switch (pDoorSelection)
1249 {
1250 case "DoorsDriver":
1251 return 0;
1252 case "DoorsCoDriver":
1253 return 1;
1254 }
1255
1256 return -1;
1257 }
1258
1260 {
1261 super.SetActions();
1262
1264 }
1265
1267 {
1268 SpawnUniversalParts();
1269 SpawnAdditionalItems();
1270 FillUpCarFluids();
1271
1277
1282
1283
1286 }
1287}
1288
1290{
1292 {
1293 SpawnUniversalParts();
1294 SpawnAdditionalItems();
1295 FillUpCarFluids();
1296
1297 GameInventory inventory = GetInventory();
1302
1307
1308
1311 }
1312}
1313
1315{
1317 {
1318 SpawnUniversalParts();
1319 SpawnAdditionalItems();
1320 FillUpCarFluids();
1321
1322 GameInventory inventory = GetInventory();
1327
1332
1333
1336 }
1337}
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.