734{
738
740 {
741
742
743 m_EngineStartOK = "offroad_engine_start_SoundSet";
744 m_EngineStartBattery = "offroad_engine_failed_start_battery_SoundSet";
745 m_EngineStartPlug = "offroad_engine_failed_start_sparkplugs_SoundSet";
746 m_EngineStartFuel = "offroad_engine_failed_start_fuel_SoundSet";
747 m_EngineStop = "offroad_engine_stop_SoundSet";
748 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
749
750 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
751 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
752 m_CarSeatShiftInSound = "Offroad_SeatShiftIn_SoundSet";
753 m_CarSeatShiftOutSound = "Offroad_SeatShiftOut_SoundSet";
754
755 m_CarHornShortSoundName = "Offroad_Horn_Short_SoundSet";
756 m_CarHornLongSoundName = "Offroad_Horn_SoundSet";
757
758 SetEnginePos("0 0.7 1.2");
759 }
760
762 {
766 }
767
769 {
770 super.EEInit();
771
773 {
780
783 }
784 }
785
787 {
788 super.OnEngineStart();
789
791 {
794 }
795 }
796
798 {
799 super.OnEngineStop();
800
802 {
805 }
806 }
807
809 {
811 {
813 {
815 }
816 }
817 }
818
820 {
822 }
823
825 {
826 return 3.5;
827 }
828
830 {
831 switch (posIdx)
832 {
833 case 0:
835 case 1:
837 case 2:
839 case 3:
841 }
842
843 return 0;
844
845 }
846
847
849 {
851 }
852
854 {
856 }
857
859 {
860 if (!super.CanReleaseAttachment(attachment))
861 {
862 return false;
863 }
864
866 {
867 string attType = attachment.GetType();
868 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
869 {
870 return false;
871 }
872 }
873
874 return true;
875 }
876
878 {
880 }
881
883 {
884 if (!super.CanDisplayAttachmentCategory(category_name))
885 {
886 return false;
887 }
888
890 if (category_name.
Contains(
"engine"))
891 {
893 {
894 return false;
895 }
896 }
897
898 return true;
899 }
900
902 {
903 if (!super.CanDisplayCargo())
904 {
905 return false;
906 }
907
909 {
910 return false;
911 }
912
913 return true;
914 }
915
917 {
919
920 Class.
CastTo(carDoor, FindAttachmentBySlotName(slotType));
921 if (!carDoor)
922 {
924 }
925
926 switch (slotType)
927 {
928 case "NivaDriverDoors":
929 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
930
931 case "NivaCoDriverDoors":
932 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
933
934 case "NivaHood":
935 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
936
937 case "NivaTrunk":
938 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
939 }
940
942 }
943
945 {
947 switch (posIdx)
948 {
949 case 0:
951 return false;
952 else if (GetAnimationPhase("SeatDriver") > 0.5)
953 return false;
954
955 return true;
956
957 case 1:
959 return false;
960 else if (GetAnimationPhase("SeatCoDriver") > 0.5)
961 return false;
962
963 return true;
964
965 case 2:
967 return false;
968 else if (GetAnimationPhase("SeatDriver") <= 0.5)
969 return false;
970
971 return true;
972
973 case 3:
975 return false;
976 else if (GetAnimationPhase("SeatCoDriver") <= 0.5)
977 return false;
978
979 return true;
980 }
981
982 return false;
983 }
984
986 {
987 switch (posIdx)
988 {
989 case 0:
990 case 2:
991 return "doors_driver";
992 case 1:
993 case 3:
994 return "doors_codriver";
995 }
996
997 return super.GetDoorSelectionNameFromSeatPos(posIdx);
998 }
999
1001 {
1002 switch (posIdx)
1003 {
1004 case 0:
1005 case 2:
1006 return "NivaDriverDoors";
1007 case 1:
1008 case 3:
1009 return "NivaCoDriverDoors";
1010 }
1011
1012 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1013 }
1014
1015
1016
1018 {
1019 float tempCap = 0.0;
1020
1021 switch (ctrl)
1022 {
1024 float newValue = 0;
1026 {
1027 newValue += 0.5;
1028 }
1029
1031 {
1032 newValue += 0.5;
1033 }
1034
1036 {
1037 newValue += 0.3;
1038 }
1039
1041 {
1042 newValue -= 0.6;
1043 }
1044
1046 {
1047 newValue -= 0.2;
1048 }
1049
1051 {
1052 newValue -= 0.2;
1053 }
1054
1056 break;
1057 }
1058
1059 return super.OnSound(ctrl, oldValue);
1060 }
1061
1063 {
1064 switch (selection)
1065 {
1066 case "doors_driver":
1067 return "DoorsDriver";
1068 case "doors_codriver":
1069 return "DoorsCoDriver";
1070 case "doors_hood":
1071 return "DoorsHood";
1072 case "doors_trunk":
1073 return "DoorsTrunk";
1074 case "seatback_driver":
1075 return "SeatDriver";
1076 case "seatback_codriver":
1077 return "SeatCoDriver";
1078 }
1079
1080 return "";
1081 }
1082
1084 {
1085 switch (selection)
1086 {
1087 case "seat_driver":
1088 case "seatback_driver":
1089 case "seat_cargo1":
1090 return "seat_con_1_1";
1091 case "seat_codriver":
1092 case "seatback_codriver":
1093 case "seat_cargo2":
1094 return "seat_con_2_1";
1095 }
1096
1097 return "";
1098 }
1099
1101 {
1102 switch (selection)
1103 {
1104 case "seatback_driver":
1105 return 0;
1106 case "seatback_codriver":
1107 return 1;
1108 }
1109
1110 return -1;
1111 }
1112
1114 {
1115 return false;
1116 }
1117
1119 {
1120 return false;
1121 }
1122
1124 {
1125 if (nextSeat == 0 && GetAnimationPhase("SeatDriver") > 0.5)
1126 return false;
1127
1128 if (nextSeat == 1 && GetAnimationPhase("SeatCoDriver") > 0.5)
1129 return false;
1130
1131 switch (currentSeat)
1132 {
1133 case 0:
1134 return nextSeat == 1;
1135
1136 case 1:
1137 return nextSeat == 0;
1138
1139 case 2:
1140 return nextSeat == 3;
1141
1142 case 3:
1143 return nextSeat == 2;
1144 }
1145
1146 return false;
1147 }
1148
1150 {
1151 switch (pCurrentSeat)
1152 {
1153 case 0:
1154 return pDoorsSelection == "DoorsDriver";
1155
1156 case 1:
1157 return pDoorsSelection == "DoorsCoDriver";
1158
1159 case 2:
1160 return pDoorsSelection == "DoorsDriver";
1161
1162 case 3:
1163 return pDoorsSelection == "DoorsCoDriver";
1164 }
1165
1166 return false;
1167 }
1168
1170 {
1171 switch (pDoorSelection)
1172 {
1173 case "DoorsDriver":
1174 return 0;
1175 case "DoorsCoDriver":
1176 return 1;
1177 }
1178
1179 return -1;
1180 }
1181
1183 {
1184 super.SetActions();
1185
1187 }
1188
1190 {
1191 SpawnUniversalParts();
1192 SpawnAdditionalItems();
1193 FillUpCarFluids();
1194
1200
1205
1206
1209 }
1210}
1211
1213{
1215 {
1216 SpawnUniversalParts();
1217 SpawnAdditionalItems();
1218 FillUpCarFluids();
1219
1220 GameInventory inventory = GetInventory();
1225
1230
1231
1234 }
1235}
1236
1238{
1240 {
1241 SpawnUniversalParts();
1242 SpawnAdditionalItems();
1243 FillUpCarFluids();
1244
1245 GameInventory inventory = GetInventory();
1250
1255
1256
1259 }
1260}
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.