749{
753
755 {
756
757
758 m_EngineStartOK = "offroad_engine_start_SoundSet";
759 m_EngineStartBattery = "offroad_engine_failed_start_battery_SoundSet";
760 m_EngineStartPlug = "offroad_engine_failed_start_sparkplugs_SoundSet";
761 m_EngineStartFuel = "offroad_engine_failed_start_fuel_SoundSet";
762 m_EngineStop = "offroad_engine_stop_SoundSet";
763 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
764
765 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
766 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
767 m_CarSeatShiftInSound = "Offroad_SeatShiftIn_SoundSet";
768 m_CarSeatShiftOutSound = "Offroad_SeatShiftOut_SoundSet";
769
770 m_CarHornShortSoundName = "Offroad_Horn_Short_SoundSet";
771 m_CarHornLongSoundName = "Offroad_Horn_SoundSet";
772
773 SetEnginePos("0 0.7 1.2");
774 }
775
777 {
781 }
782
784 {
785 super.EEInit();
786
788 {
795
798 }
799 }
800
802 {
803 super.OnEngineStart();
804
806 {
809 }
810 }
811
813 {
814 super.OnEngineStop();
815
817 {
820 }
821 }
822
824 {
826 {
828 {
830 }
831 }
832 }
833
835 {
837 }
838
840 {
841 return 3.5;
842 }
843
845 {
846 switch (posIdx)
847 {
848 case 0:
850 case 1:
852 case 2:
854 case 3:
856 }
857
858 return 0;
859
860 }
861
862
864 {
866 }
867
869 {
871 }
872
874 {
875 if (!super.CanReleaseAttachment(attachment))
876 {
877 return false;
878 }
879
881 {
882 string attType = attachment.GetType();
883 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
884 {
885 return false;
886 }
887 }
888
889 return true;
890 }
891
893 {
895 }
896
898 {
899 if (!super.CanDisplayAttachmentCategory(category_name))
900 {
901 return false;
902 }
903
905 if (category_name.
Contains(
"engine"))
906 {
908 {
909 return false;
910 }
911 }
912
913 return true;
914 }
915
917 {
918 if (!super.CanDisplayCargo())
919 {
920 return false;
921 }
922
924 {
925 return false;
926 }
927
928 return true;
929 }
930
932 {
934
935 Class.
CastTo(carDoor, FindAttachmentBySlotName(slotType));
936 if (!carDoor)
937 {
939 }
940
941 switch (slotType)
942 {
943 case "NivaDriverDoors":
944 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
945
946 case "NivaCoDriverDoors":
947 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
948
949 case "NivaHood":
950 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
951
952 case "NivaTrunk":
953 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
954 }
955
957 }
958
960 {
962 switch (posIdx)
963 {
964 case 0:
966 return false;
967 else if (GetAnimationPhase("SeatDriver") > 0.5)
968 return false;
969
970 return true;
971
972 case 1:
974 return false;
975 else if (GetAnimationPhase("SeatCoDriver") > 0.5)
976 return false;
977
978 return true;
979
980 case 2:
982 return false;
983 else if (GetAnimationPhase("SeatDriver") <= 0.5)
984 return false;
985
986 return true;
987
988 case 3:
990 return false;
991 else if (GetAnimationPhase("SeatCoDriver") <= 0.5)
992 return false;
993
994 return true;
995 }
996
997 return false;
998 }
999
1001 {
1002 switch (posIdx)
1003 {
1004 case 0:
1005 case 2:
1006 return "doors_driver";
1007 case 1:
1008 case 3:
1009 return "doors_codriver";
1010 }
1011
1012 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1013 }
1014
1016 {
1017 switch (posIdx)
1018 {
1019 case 0:
1020 case 2:
1021 return "NivaDriverDoors";
1022 case 1:
1023 case 3:
1024 return "NivaCoDriverDoors";
1025 }
1026
1027 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1028 }
1029
1030
1031
1033 {
1034 float tempCap = 0.0;
1035
1036 switch (ctrl)
1037 {
1039 float newValue = 0;
1041 {
1042 newValue += 0.5;
1043 }
1044
1046 {
1047 newValue += 0.5;
1048 }
1049
1051 {
1052 newValue += 0.3;
1053 }
1054
1056 {
1057 newValue -= 0.6;
1058 }
1059
1061 {
1062 newValue -= 0.2;
1063 }
1064
1066 {
1067 newValue -= 0.2;
1068 }
1069
1071 break;
1072 }
1073
1074 return super.OnSound(ctrl, oldValue);
1075 }
1076
1078 {
1079 switch (selection)
1080 {
1081 case "doors_driver":
1082 return "DoorsDriver";
1083 case "doors_codriver":
1084 return "DoorsCoDriver";
1085 case "doors_hood":
1086 return "DoorsHood";
1087 case "doors_trunk":
1088 return "DoorsTrunk";
1089 case "seatback_driver":
1090 return "SeatDriver";
1091 case "seatback_codriver":
1092 return "SeatCoDriver";
1093 }
1094
1095 return "";
1096 }
1097
1099 {
1100 switch (selection)
1101 {
1102 case "seat_driver":
1103 case "seatback_driver":
1104 case "seat_cargo1":
1105 return "seat_con_1_1";
1106 case "seat_codriver":
1107 case "seatback_codriver":
1108 case "seat_cargo2":
1109 return "seat_con_2_1";
1110 }
1111
1112 return "";
1113 }
1114
1116 {
1117 switch (selection)
1118 {
1119 case "seatback_driver":
1120 return 0;
1121 case "seatback_codriver":
1122 return 1;
1123 }
1124
1125 return -1;
1126 }
1127
1129 {
1130 return false;
1131 }
1132
1134 {
1135 return false;
1136 }
1137
1139 {
1140 if (nextSeat == 0 && GetAnimationPhase("SeatDriver") > 0.5)
1141 return false;
1142
1143 if (nextSeat == 1 && GetAnimationPhase("SeatCoDriver") > 0.5)
1144 return false;
1145
1146 switch (currentSeat)
1147 {
1148 case 0:
1149 return nextSeat == 1;
1150
1151 case 1:
1152 return nextSeat == 0;
1153
1154 case 2:
1155 return nextSeat == 3;
1156
1157 case 3:
1158 return nextSeat == 2;
1159 }
1160
1161 return false;
1162 }
1163
1165 {
1166 switch (pCurrentSeat)
1167 {
1168 case 0:
1169 return pDoorsSelection == "DoorsDriver";
1170
1171 case 1:
1172 return pDoorsSelection == "DoorsCoDriver";
1173
1174 case 2:
1175 return pDoorsSelection == "DoorsDriver";
1176
1177 case 3:
1178 return pDoorsSelection == "DoorsCoDriver";
1179 }
1180
1181 return false;
1182 }
1183
1185 {
1186 switch (pDoorSelection)
1187 {
1188 case "DoorsDriver":
1189 return 0;
1190 case "DoorsCoDriver":
1191 return 1;
1192 }
1193
1194 return -1;
1195 }
1196
1198 {
1199 super.SetActions();
1200
1202 }
1203
1205 {
1206 SpawnUniversalParts();
1207 SpawnAdditionalItems();
1208 FillUpCarFluids();
1209
1215
1220
1221
1224 }
1225}
1226
1228{
1230 {
1231 SpawnUniversalParts();
1232 SpawnAdditionalItems();
1233 FillUpCarFluids();
1234
1235 GameInventory inventory = GetInventory();
1240
1245
1246
1249 }
1250}
1251
1253{
1255 {
1256 SpawnUniversalParts();
1257 SpawnAdditionalItems();
1258 FillUpCarFluids();
1259
1260 GameInventory inventory = GetInventory();
1265
1270
1271
1274 }
1275}
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.