812{
816
818 {
819 m_dmgContactCoef = 0.0790;
820
821 m_EngineStartOK = "Sedan_02_engine_start_SoundSet";
822 m_EngineStartBattery = "Sedan_02_engine_failed_start_battery_SoundSet";
823 m_EngineStartPlug = "Sedan_02_engine_failed_start_sparkplugs_SoundSet";
824 m_EngineStartFuel = "Sedan_02_engine_failed_start_fuel_SoundSet";
825 m_EngineStop = "Sedan_02_engine_stop_SoundSet";
826 m_EngineStopFuel = "Sedan_02_engine_stop_fuel_SoundSet";
827
828 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
829 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
830
831 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
832 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
833
834 SetEnginePos("0 0.7 -1.7");
835 }
836
838 {
842 }
843
845 {
846 super.EEInit();
847
849 {
856
859 }
860 }
861
863 {
864 super.OnEngineStart();
865
867 {
870 }
871 }
872
874 {
875 super.OnEngineStop();
876
878 {
881 }
882 }
883
885 {
887 {
889 {
891 }
892 }
893 }
894
896 {
898 }
899
901 {
902 switch (posIdx)
903 {
904 case 0:
906 case 1:
908 case 2:
910 case 3:
912 }
913
914 return 0;
915 }
916
917
919 {
921 }
922
923
925 {
927 }
928
930 {
931 if (!super.CanReleaseAttachment(attachment))
932 {
933 return false;
934 }
935
936 string attType = attachment.GetType();
937 switch (attType)
938 {
939 case "CarBattery":
941 {
942 return false;
943 }
944 break;
945
946 case "SparkPlug":
948 {
949 return false;
950 }
951 break;
952
953 case "CarRadiator":
955 {
956 return false;
957 }
958 break;
959 }
960
961 return true;
962 }
963
965 {
967 }
968
970 {
971 if ( !super.CanDisplayAttachmentCategory(category_name))
972 {
973 return false;
974 }
975
977 if (category_name.
Contains(
"engine"))
978 {
980 {
981 return false;
982 }
983 }
984
985 if (category_name.
Contains(
"trunk"))
986 {
988 {
989 return false;
990 }
991 }
992
993 return true;
994 }
995
997 {
998 if ( !super.CanDisplayCargo() )
999 return false;
1000
1002 return false;
1003
1004 return true;
1005 }
1006
1008 {
1010
1011 Class.
CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
1012 if (!carDoor)
1013 {
1015 }
1016
1017 switch (slotType)
1018 {
1019 case "Sedan_02_Door_1_1":
1020 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
1021
1022 case "Sedan_02_Door_2_1":
1023 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
1024
1025 case "Sedan_02_Door_1_2":
1026 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
1027
1028 case "Sedan_02_Door_2_2":
1029 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
1030
1031 case "Sedan_02_Hood":
1032 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
1033
1034 case "Sedan_02_Trunk":
1035 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
1036 }
1037
1039 }
1040
1041
1043 {
1044 switch( posIdx )
1045 {
1046 case 0:
1048 return false;
1049
1050 return true;
1051 break;
1052
1053 case 1:
1055 return false;
1056
1057 return true;
1058 break;
1059
1060 case 2:
1062 return false;
1063
1064 return true;
1065 break;
1066
1067 case 3:
1069 return false;
1070
1071 return true;
1072 break;
1073 }
1074
1075 return false;
1076 }
1077
1079 {
1080 switch( posIdx )
1081 {
1082 case 0:
1083 return "doors_driver";
1084 break;
1085 case 1:
1086 return "doors_codriver";
1087 break;
1088 case 2:
1089 return "doors_cargo1";
1090 break;
1091 case 3:
1092 return "doors_cargo2";
1093 break;
1094 }
1095
1096 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1097 }
1098
1100 {
1101 switch( posIdx )
1102 {
1103 case 0:
1104 return "Sedan_02_Door_1_1";
1105 break;
1106 case 1:
1107 return "Sedan_02_Door_2_1";
1108 break;
1109 case 2:
1110 return "Sedan_02_Door_1_2";
1111 break;
1112 case 3:
1113 return "Sedan_02_Door_2_2";
1114 break;
1115 }
1116
1117 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1118 }
1119
1121 {
1122 switch ( ctrl )
1123 {
1125 float newValue = 0;
1127 {
1128 newValue += 0.25;
1129 }
1130
1132 {
1133 newValue += 0.25;
1134 }
1135
1137 {
1138 newValue += 0.25;
1139 }
1140
1142 {
1143 newValue += 0.25;
1144 }
1145
1147 break;
1148 }
1149
1150 return super.OnSound(ctrl, oldValue);
1151 }
1152
1154 {
1155 switch( selection )
1156 {
1157 case "doors_driver":
1158 return "DoorsDriver";
1159 case "doors_codriver":
1160 return "DoorsCoDriver";
1161 case "doors_cargo1":
1162 return "DoorsCargo1";
1163 case "doors_cargo2":
1164 return "DoorsCargo2";
1165 case "doors_hood":
1166 return "DoorsHood";
1167 case "doors_trunk":
1168 return "DoorsTrunk";
1169 }
1170
1171 return "";
1172 }
1173
1174
1176 {
1177 return false;
1178 }
1179
1181 {
1182 return false;
1183 }
1184
1186 {
1187 switch (currentSeat)
1188 {
1189 case 0:
1190 return nextSeat == 1;
1191
1192 case 1:
1193 return nextSeat == 0;
1194
1195 case 2:
1196 return nextSeat == 3;
1197
1198 case 3:
1199 return nextSeat == 2;
1200 }
1201
1202 return false;
1203 }
1204
1206 {
1207 switch (pCurrentSeat)
1208 {
1209 case 0:
1210 return pDoorsSelection == "DoorsDriver";
1211
1212 case 1:
1213 return pDoorsSelection == "DoorsCoDriver";
1214
1215 case 2:
1216 return pDoorsSelection == "DoorsCargo1";
1217
1218 case 3:
1219 return pDoorsSelection == "DoorsCargo2";
1220 }
1221
1222 return false;
1223 }
1224
1226 {
1227 SpawnUniversalParts();
1228 SpawnAdditionalItems();
1229 FillUpCarFluids();
1230
1237
1244
1245
1248 }
1249}
1250
1252{
1254 {
1255 SpawnUniversalParts();
1256 SpawnAdditionalItems();
1257 FillUpCarFluids();
1258
1259 GameInventory inventory = GetInventory();
1264
1271
1272
1275 }
1276}
1277
1278class Sedan_02_Grey
extends Sedan_02
1279{
1281 {
1282 SpawnUniversalParts();
1283 SpawnAdditionalItems();
1284 FillUpCarFluids();
1285
1286 GameInventory inventory = GetInventory();
1291
1298
1299
1302 }
1303}
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 bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
class Sedan_02 extends CarScript OnDebugSpawn()
override string GetAnimSourceFromSelection(string selection)
override int GetSeatAnimationType(int posIdx)
override float OnSound(CarSoundCtrl ctrl, float oldValue)
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
override void EOnPostSimulate(IEntity other, float timeSlice)
override void OnEngineStop()
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()
override bool IsVitalTruckBattery()
override string GetDoorSelectionNameFromSeatPos(int posIdx)
override int GetCarDoorsState(string slotType)
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.