807{
811
813 {
814 m_dmgContactCoef = 0.0790;
815
816 m_EngineStartOK = "Sedan_02_engine_start_SoundSet";
817 m_EngineStartBattery = "Sedan_02_engine_failed_start_battery_SoundSet";
818 m_EngineStartPlug = "Sedan_02_engine_failed_start_sparkplugs_SoundSet";
819 m_EngineStartFuel = "Sedan_02_engine_failed_start_fuel_SoundSet";
820 m_EngineStop = "Sedan_02_engine_stop_SoundSet";
821 m_EngineStopFuel = "Sedan_02_engine_stop_fuel_SoundSet";
822
823 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
824 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
825
826 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
827 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
828
829 SetEnginePos("0 0.7 -1.7");
830 }
831
833 {
837 }
838
840 {
841 super.EEInit();
842
844 {
851
854 }
855 }
856
858 {
859 super.OnEngineStart();
860
862 {
865 }
866 }
867
869 {
870 super.OnEngineStop();
871
873 {
876 }
877 }
878
880 {
882 {
884 {
886 }
887 }
888 }
889
891 {
893 }
894
896 {
897 switch (posIdx)
898 {
899 case 0:
901 case 1:
903 case 2:
905 case 3:
907 }
908
909 return 0;
910 }
911
912
914 {
916 }
917
918
920 {
922 }
923
925 {
926 if (!super.CanReleaseAttachment(attachment))
927 {
928 return false;
929 }
930
931 string attType = attachment.GetType();
932 switch (attType)
933 {
934 case "CarBattery":
936 {
937 return false;
938 }
939 break;
940
941 case "SparkPlug":
943 {
944 return false;
945 }
946 break;
947
948 case "CarRadiator":
950 {
951 return false;
952 }
953 break;
954 }
955
956 return true;
957 }
958
960 {
962 }
963
965 {
966 if ( !super.CanDisplayAttachmentCategory(category_name))
967 {
968 return false;
969 }
970
972 if (category_name.
Contains(
"engine"))
973 {
975 {
976 return false;
977 }
978 }
979
980 if (category_name.
Contains(
"trunk"))
981 {
983 {
984 return false;
985 }
986 }
987
988 return true;
989 }
990
992 {
993 if ( !super.CanDisplayCargo() )
994 return false;
995
997 return false;
998
999 return true;
1000 }
1001
1003 {
1005
1006 Class.
CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
1007 if (!carDoor)
1008 {
1010 }
1011
1012 switch (slotType)
1013 {
1014 case "Sedan_02_Door_1_1":
1015 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
1016
1017 case "Sedan_02_Door_2_1":
1018 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
1019
1020 case "Sedan_02_Door_1_2":
1021 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
1022
1023 case "Sedan_02_Door_2_2":
1024 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
1025
1026 case "Sedan_02_Hood":
1027 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
1028
1029 case "Sedan_02_Trunk":
1030 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
1031 }
1032
1034 }
1035
1036
1038 {
1039 switch( posIdx )
1040 {
1041 case 0:
1043 return false;
1044
1045 return true;
1046 break;
1047
1048 case 1:
1050 return false;
1051
1052 return true;
1053 break;
1054
1055 case 2:
1057 return false;
1058
1059 return true;
1060 break;
1061
1062 case 3:
1064 return false;
1065
1066 return true;
1067 break;
1068 }
1069
1070 return false;
1071 }
1072
1074 {
1075 switch( posIdx )
1076 {
1077 case 0:
1078 return "doors_driver";
1079 break;
1080 case 1:
1081 return "doors_codriver";
1082 break;
1083 case 2:
1084 return "doors_cargo1";
1085 break;
1086 case 3:
1087 return "doors_cargo2";
1088 break;
1089 }
1090
1091 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1092 }
1093
1095 {
1096 switch( posIdx )
1097 {
1098 case 0:
1099 return "Sedan_02_Door_1_1";
1100 break;
1101 case 1:
1102 return "Sedan_02_Door_2_1";
1103 break;
1104 case 2:
1105 return "Sedan_02_Door_1_2";
1106 break;
1107 case 3:
1108 return "Sedan_02_Door_2_2";
1109 break;
1110 }
1111
1112 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1113 }
1114
1116 {
1117 switch ( ctrl )
1118 {
1120 float newValue = 0;
1122 {
1123 newValue += 0.25;
1124 }
1125
1127 {
1128 newValue += 0.25;
1129 }
1130
1132 {
1133 newValue += 0.25;
1134 }
1135
1137 {
1138 newValue += 0.25;
1139 }
1140
1142 break;
1143 }
1144
1145 return super.OnSound(ctrl, oldValue);
1146 }
1147
1149 {
1150 switch( selection )
1151 {
1152 case "doors_driver":
1153 return "DoorsDriver";
1154 case "doors_codriver":
1155 return "DoorsCoDriver";
1156 case "doors_cargo1":
1157 return "DoorsCargo1";
1158 case "doors_cargo2":
1159 return "DoorsCargo2";
1160 case "doors_hood":
1161 return "DoorsHood";
1162 case "doors_trunk":
1163 return "DoorsTrunk";
1164 }
1165
1166 return "";
1167 }
1168
1169
1171 {
1172 return false;
1173 }
1174
1176 {
1177 return false;
1178 }
1179
1181 {
1182 switch (currentSeat)
1183 {
1184 case 0:
1185 return nextSeat == 1;
1186
1187 case 1:
1188 return nextSeat == 0;
1189
1190 case 2:
1191 return nextSeat == 3;
1192
1193 case 3:
1194 return nextSeat == 2;
1195 }
1196
1197 return false;
1198 }
1199
1201 {
1202 switch (pCurrentSeat)
1203 {
1204 case 0:
1205 return pDoorsSelection == "DoorsDriver";
1206
1207 case 1:
1208 return pDoorsSelection == "DoorsCoDriver";
1209
1210 case 2:
1211 return pDoorsSelection == "DoorsCargo1";
1212
1213 case 3:
1214 return pDoorsSelection == "DoorsCargo2";
1215 }
1216
1217 return false;
1218 }
1219
1221 {
1222 SpawnUniversalParts();
1223 SpawnAdditionalItems();
1224 FillUpCarFluids();
1225
1232
1239
1240
1243 }
1244}
1245
1247{
1249 {
1250 SpawnUniversalParts();
1251 SpawnAdditionalItems();
1252 FillUpCarFluids();
1253
1254 GameInventory inventory = GetInventory();
1259
1266
1267
1270 }
1271}
1272
1273class Sedan_02_Grey
extends Sedan_02
1274{
1276 {
1277 SpawnUniversalParts();
1278 SpawnAdditionalItems();
1279 FillUpCarFluids();
1280
1281 GameInventory inventory = GetInventory();
1286
1293
1294
1297 }
1298}
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.