817{
821
823 {
824 m_dmgContactCoef = 0.0790;
825
826 m_EngineStartOK = "Sedan_02_engine_start_SoundSet";
827 m_EngineStartBattery = "Sedan_02_engine_failed_start_battery_SoundSet";
828 m_EngineStartPlug = "Sedan_02_engine_failed_start_sparkplugs_SoundSet";
829 m_EngineStartFuel = "Sedan_02_engine_failed_start_fuel_SoundSet";
830 m_EngineStop = "Sedan_02_engine_stop_SoundSet";
831 m_EngineStopFuel = "Sedan_02_engine_stop_fuel_SoundSet";
832
833 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
834 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
835
836 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
837 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
838
839 SetEnginePos("0 0.7 -1.7");
840 }
841
843 {
847 }
848
850 {
851 super.EEInit();
852
854 {
861
864 }
865 }
866
868 {
869 super.OnEngineStart();
870
872 {
875 }
876 }
877
879 {
880 super.OnEngineStop();
881
883 {
886 }
887 }
888
890 {
892 {
894 {
896 }
897 }
898 }
899
901 {
903 }
904
906 {
907 switch (posIdx)
908 {
909 case 0:
911 case 1:
913 case 2:
915 case 3:
917 }
918
919 return 0;
920 }
921
922
924 {
926 }
927
928
930 {
932 }
933
935 {
936 if (!super.CanReleaseAttachment(attachment))
937 {
938 return false;
939 }
940
941 string attType = attachment.GetType();
942 switch (attType)
943 {
944 case "CarBattery":
946 {
947 return false;
948 }
949 break;
950
951 case "SparkPlug":
953 {
954 return false;
955 }
956 break;
957
958 case "CarRadiator":
960 {
961 return false;
962 }
963 break;
964 }
965
966 return true;
967 }
968
970 {
972 }
973
975 {
976 if ( !super.CanDisplayAttachmentCategory(category_name))
977 {
978 return false;
979 }
980
982 if (category_name.
Contains(
"engine"))
983 {
985 {
986 return false;
987 }
988 }
989
990 if (category_name.
Contains(
"trunk"))
991 {
993 {
994 return false;
995 }
996 }
997
998 return true;
999 }
1000
1002 {
1003 if ( !super.CanDisplayCargo() )
1004 return false;
1005
1007 return false;
1008
1009 return true;
1010 }
1011
1013 {
1015
1016 Class.
CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
1017 if (!carDoor)
1018 {
1020 }
1021
1022 switch (slotType)
1023 {
1024 case "Sedan_02_Door_1_1":
1025 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
1026
1027 case "Sedan_02_Door_2_1":
1028 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
1029
1030 case "Sedan_02_Door_1_2":
1031 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
1032
1033 case "Sedan_02_Door_2_2":
1034 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
1035
1036 case "Sedan_02_Hood":
1037 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
1038
1039 case "Sedan_02_Trunk":
1040 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
1041 }
1042
1044 }
1045
1046
1048 {
1049 switch( posIdx )
1050 {
1051 case 0:
1053 return false;
1054
1055 return true;
1056 break;
1057
1058 case 1:
1060 return false;
1061
1062 return true;
1063 break;
1064
1065 case 2:
1067 return false;
1068
1069 return true;
1070 break;
1071
1072 case 3:
1074 return false;
1075
1076 return true;
1077 break;
1078 }
1079
1080 return false;
1081 }
1082
1084 {
1085 switch( posIdx )
1086 {
1087 case 0:
1088 return "doors_driver";
1089 break;
1090 case 1:
1091 return "doors_codriver";
1092 break;
1093 case 2:
1094 return "doors_cargo1";
1095 break;
1096 case 3:
1097 return "doors_cargo2";
1098 break;
1099 }
1100
1101 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1102 }
1103
1105 {
1106 switch( posIdx )
1107 {
1108 case 0:
1109 return "Sedan_02_Door_1_1";
1110 break;
1111 case 1:
1112 return "Sedan_02_Door_2_1";
1113 break;
1114 case 2:
1115 return "Sedan_02_Door_1_2";
1116 break;
1117 case 3:
1118 return "Sedan_02_Door_2_2";
1119 break;
1120 }
1121
1122 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1123 }
1124
1126 {
1127 switch ( ctrl )
1128 {
1130 float newValue = 0;
1132 {
1133 newValue += 0.25;
1134 }
1135
1137 {
1138 newValue += 0.25;
1139 }
1140
1142 {
1143 newValue += 0.25;
1144 }
1145
1147 {
1148 newValue += 0.25;
1149 }
1150
1152 break;
1153 }
1154
1155 return super.OnSound(ctrl, oldValue);
1156 }
1157
1159 {
1160 switch( selection )
1161 {
1162 case "doors_driver":
1163 return "DoorsDriver";
1164 case "doors_codriver":
1165 return "DoorsCoDriver";
1166 case "doors_cargo1":
1167 return "DoorsCargo1";
1168 case "doors_cargo2":
1169 return "DoorsCargo2";
1170 case "doors_hood":
1171 return "DoorsHood";
1172 case "doors_trunk":
1173 return "DoorsTrunk";
1174 }
1175
1176 return "";
1177 }
1178
1179
1181 {
1182 return false;
1183 }
1184
1186 {
1187 return false;
1188 }
1189
1191 {
1192 switch (currentSeat)
1193 {
1194 case 0:
1195 return nextSeat == 1;
1196
1197 case 1:
1198 return nextSeat == 0;
1199
1200 case 2:
1201 return nextSeat == 3;
1202
1203 case 3:
1204 return nextSeat == 2;
1205 }
1206
1207 return false;
1208 }
1209
1211 {
1212 switch (pCurrentSeat)
1213 {
1214 case 0:
1215 return pDoorsSelection == "DoorsDriver";
1216
1217 case 1:
1218 return pDoorsSelection == "DoorsCoDriver";
1219
1220 case 2:
1221 return pDoorsSelection == "DoorsCargo1";
1222
1223 case 3:
1224 return pDoorsSelection == "DoorsCargo2";
1225 }
1226
1227 return false;
1228 }
1229
1231 {
1232 SpawnUniversalParts();
1233 SpawnAdditionalItems();
1234 FillUpCarFluids();
1235
1242
1249
1250
1253 }
1254}
1255
1257{
1259 {
1260 SpawnUniversalParts();
1261 SpawnAdditionalItems();
1262 FillUpCarFluids();
1263
1264 GameInventory inventory = GetInventory();
1269
1276
1277
1280 }
1281}
1282
1283class Sedan_02_Grey
extends Sedan_02
1284{
1286 {
1287 SpawnUniversalParts();
1288 SpawnAdditionalItems();
1289 FillUpCarFluids();
1290
1291 GameInventory inventory = GetInventory();
1296
1303
1304
1307 }
1308}
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.