766{
770
772 {
773
774
775 m_EngineStartOK = "offroad_engine_start_SoundSet";
776 m_EngineStartBattery = "offroad_engine_failed_start_battery_SoundSet";
777 m_EngineStartPlug = "offroad_engine_failed_start_sparkplugs_SoundSet";
778 m_EngineStartFuel = "offroad_engine_failed_start_fuel_SoundSet";
779 m_EngineStop = "offroad_engine_stop_SoundSet";
780 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
781
782 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
783 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
784 m_CarSeatShiftInSound = "Offroad_SeatShiftIn_SoundSet";
785 m_CarSeatShiftOutSound = "Offroad_SeatShiftOut_SoundSet";
786
787 m_CarHornShortSoundName = "Offroad_Horn_Short_SoundSet";
788 m_CarHornLongSoundName = "Offroad_Horn_SoundSet";
789
790 SetEnginePos("0 0.7 1.2");
791 }
792
794 {
798 }
799
801 {
802 super.EEInit();
803
805 {
812
815 }
816 }
817
819 {
820 super.OnEngineStart();
821
823 {
826 }
827 }
828
830 {
831 super.OnEngineStop();
832
834 {
837 }
838 }
839
841 {
843 {
845 {
847 }
848 }
849 }
850
852 {
854 }
855
857 {
858 return 3.5;
859 }
860
862 {
863 switch (posIdx)
864 {
865 case 0:
867 case 1:
869 case 2:
871 case 3:
873 }
874
875 return 0;
876
877 }
878
879
881 {
883 }
884
886 {
888 }
889
891 {
892 if (!super.CanReleaseAttachment(attachment))
893 {
894 return false;
895 }
896
898 {
899 string attType = attachment.GetType();
900 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
901 {
902 return false;
903 }
904 }
905
906 return true;
907 }
908
910 {
912 }
913
915 {
916 if (!super.CanDisplayAttachmentCategory(category_name))
917 {
918 return false;
919 }
920
922 if (category_name.
Contains(
"engine"))
923 {
925 {
926 return false;
927 }
928 }
929
930 return true;
931 }
932
934 {
935 if (!super.CanDisplayCargo())
936 {
937 return false;
938 }
939
941 {
942 return false;
943 }
944
945 return true;
946 }
947
949 {
951
952 Class.
CastTo(carDoor, FindAttachmentBySlotName(slotType));
953 if (!carDoor)
954 {
956 }
957
958 switch (slotType)
959 {
960 case "NivaDriverDoors":
961 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
962
963 case "NivaCoDriverDoors":
964 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
965
966 case "NivaHood":
967 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
968
969 case "NivaTrunk":
970 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
971 }
972
974 }
975
977 {
979 switch (posIdx)
980 {
981 case 0:
983 return false;
984 else if (GetAnimationPhase("SeatDriver") > 0.5)
985 return false;
986
987 return true;
988
989 case 1:
991 return false;
992 else if (GetAnimationPhase("SeatCoDriver") > 0.5)
993 return false;
994
995 return true;
996
997 case 2:
999 return false;
1000 else if (GetAnimationPhase("SeatDriver") <= 0.5)
1001 return false;
1002
1003 return true;
1004
1005 case 3:
1007 return false;
1008 else if (GetAnimationPhase("SeatCoDriver") <= 0.5)
1009 return false;
1010
1011 return true;
1012 }
1013
1014 return false;
1015 }
1016
1018 {
1019 switch (posIdx)
1020 {
1021 case 0:
1022 case 2:
1023 return "doors_driver";
1024 case 1:
1025 case 3:
1026 return "doors_codriver";
1027 }
1028
1029 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1030 }
1031
1033 {
1034 switch (posIdx)
1035 {
1036 case 0:
1037 case 2:
1038 return "NivaDriverDoors";
1039 case 1:
1040 case 3:
1041 return "NivaCoDriverDoors";
1042 }
1043
1044 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1045 }
1046
1047
1048
1050 {
1051 float tempCap = 0.0;
1052
1053 switch (ctrl)
1054 {
1056 float newValue = 0;
1058 {
1059 newValue += 0.5;
1060 }
1061
1063 {
1064 newValue += 0.5;
1065 }
1066
1068 {
1069 newValue += 0.3;
1070 }
1071
1073 {
1074 newValue -= 0.6;
1075 }
1076
1078 {
1079 newValue -= 0.2;
1080 }
1081
1083 {
1084 newValue -= 0.2;
1085 }
1086
1088 break;
1089 }
1090
1091 return super.OnSound(ctrl, oldValue);
1092 }
1093
1095 {
1096 switch (selection)
1097 {
1098 case "doors_driver":
1099 return "DoorsDriver";
1100 case "doors_codriver":
1101 return "DoorsCoDriver";
1102 case "doors_hood":
1103 return "DoorsHood";
1104 case "doors_trunk":
1105 return "DoorsTrunk";
1106 case "seatback_driver":
1107 return "SeatDriver";
1108 case "seatback_codriver":
1109 return "SeatCoDriver";
1110 }
1111
1112 return "";
1113 }
1114
1116 {
1117 switch (selection)
1118 {
1119 case "seat_driver":
1120 case "seatback_driver":
1121 case "seat_cargo1":
1122 return "seat_con_1_1";
1123 case "seat_codriver":
1124 case "seatback_codriver":
1125 case "seat_cargo2":
1126 return "seat_con_2_1";
1127 }
1128
1129 return "";
1130 }
1131
1133 {
1134 switch (selection)
1135 {
1136 case "seatback_driver":
1137 return 0;
1138 case "seatback_codriver":
1139 return 1;
1140 }
1141
1142 return -1;
1143 }
1144
1146 {
1147 return false;
1148 }
1149
1151 {
1152 return false;
1153 }
1154
1156 {
1157 if (nextSeat == 0 && GetAnimationPhase("SeatDriver") > 0.5)
1158 return false;
1159
1160 if (nextSeat == 1 && GetAnimationPhase("SeatCoDriver") > 0.5)
1161 return false;
1162
1163 switch (currentSeat)
1164 {
1165 case 0:
1166 return nextSeat == 1;
1167
1168 case 1:
1169 return nextSeat == 0;
1170
1171 case 2:
1172 return nextSeat == 3;
1173
1174 case 3:
1175 return nextSeat == 2;
1176 }
1177
1178 return false;
1179 }
1180
1182 {
1183 switch (pCurrentSeat)
1184 {
1185 case 0:
1186 return pDoorsSelection == "DoorsDriver";
1187
1188 case 1:
1189 return pDoorsSelection == "DoorsCoDriver";
1190
1191 case 2:
1192 return pDoorsSelection == "DoorsDriver";
1193
1194 case 3:
1195 return pDoorsSelection == "DoorsCoDriver";
1196 }
1197
1198 return false;
1199 }
1200
1202 {
1203 switch (pDoorSelection)
1204 {
1205 case "DoorsDriver":
1206 return 0;
1207 case "DoorsCoDriver":
1208 return 1;
1209 }
1210
1211 return -1;
1212 }
1213
1215 {
1216 super.SetActions();
1217
1219 }
1220
1222 {
1223 SpawnUniversalParts();
1224 SpawnAdditionalItems();
1225 FillUpCarFluids();
1226
1232
1237
1238
1241 }
1242}
1243
1245{
1247 {
1248 SpawnUniversalParts();
1249 SpawnAdditionalItems();
1250 FillUpCarFluids();
1251
1252 GameInventory inventory = GetInventory();
1257
1262
1263
1266 }
1267}
1268
1270{
1272 {
1273 SpawnUniversalParts();
1274 SpawnAdditionalItems();
1275 FillUpCarFluids();
1276
1277 GameInventory inventory = GetInventory();
1282
1287
1288
1291 }
1292}
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.