827{
831
833 {
834
835
836 m_EngineStartOK = "CivilianSedan_engine_start_SoundSet";
837 m_EngineStartBattery = "CivilianSedan_engine_failed_start_battery_SoundSet";
838 m_EngineStartPlug = "CivilianSedan_engine_failed_start_sparkplugs_SoundSet";
839 m_EngineStartFuel = "CivilianSedan_engine_failed_start_fuel_SoundSet";
840 m_EngineStop = "CivilianSedan_engine_stop_SoundSet";
841 m_EngineStopFuel = "CivilianSedan_engine_stop_fuel_SoundSet";
842
843 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
844 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
845
846 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
847 m_CarHornLongSoundName = "CivilianSedan_Horn_SoundSet";
848
849 SetEnginePos("0 0.7 1.6");
850 }
851
853 {
857 }
858
860 {
861 super.EEInit();
862
864 {
871
874 }
875 }
876
878 {
879 super.OnEngineStart();
880
882 {
885 }
886 }
887
889 {
890 super.OnEngineStop();
891
893 {
896 }
897 }
898
900 {
902 {
904 {
906 }
907 }
908 }
909
911 {
913 }
914
916 {
917 return 4.5;
918 }
919
921 {
922 switch (posIdx)
923 {
924 case 0:
926 case 1:
928 case 2:
930 case 3:
932 }
933
934 return 0;
935 }
936
937
939 {
941 }
942
943
945 {
947 }
948
950 {
951 if( !super.CanReleaseAttachment( attachment ) )
952 return false;
953
954 string attType = attachment.GetType();
955
957 {
958 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
959 return false;
960 }
961
962 return true;
963 }
964
966 {
968 }
969
971 {
972
973 if (!super.CanDisplayAttachmentCategory(category_name))
974 return false;
975
976
978 if (category_name.
Contains(
"engine"))
979 {
981 return false;
982 }
983
984 return true;
985 }
986
988 {
989 if ( !super.CanDisplayCargo() )
990 return false;
991
993 return false;
994
995 return true;
996 }
997
999 {
1001
1002 Class.
CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
1003 if (!carDoor)
1004 {
1006 }
1007
1008 switch (slotType)
1009 {
1010 case "CivSedanDriverDoors":
1011 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
1012 break;
1013
1014 case "CivSedanCoDriverDoors":
1015 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
1016 break;
1017
1018 case "CivSedanCargo1Doors":
1019 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
1020 break;
1021
1022 case "CivSedanCargo2Doors":
1023 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
1024 break;
1025
1026 case "CivSedanTrunk":
1027 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
1028 break;
1029
1030 case "CivSedanHood":
1031 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
1032 break;
1033 }
1034
1036 }
1037
1038
1040 {
1041 switch( posIdx )
1042 {
1043 case 0:
1045 return false;
1046
1047 return true;
1048 break;
1049
1050 case 1:
1052 return false;
1053
1054 return true;
1055 break;
1056
1057 case 2:
1059 return false;
1060
1061 return true;
1062 break;
1063
1064 case 3:
1066 return false;
1067
1068 return true;
1069 break;
1070 }
1071
1072 return false;
1073 }
1074
1076 {
1077 switch( posIdx )
1078 {
1079 case 0:
1080 return "doors_driver";
1081 break;
1082 case 1:
1083 return "doors_codriver";
1084 break;
1085 case 2:
1086 return "doors_cargo1";
1087 break;
1088 case 3:
1089 return "doors_cargo2";
1090 break;
1091 }
1092
1093 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1094 }
1095
1097 {
1098 switch( posIdx )
1099 {
1100 case 0:
1101 return "CivSedanDriverDoors";
1102 break;
1103 case 1:
1104 return "CivSedanCoDriverDoors";
1105 break;
1106 case 2:
1107 return "CivSedanCargo1Doors";
1108 break;
1109 case 3:
1110 return "CivSedanCargo2Doors";
1111 break;
1112 }
1113
1114 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1115 }
1116
1117
1118
1120 {
1121 switch (ctrl)
1122 {
1124 float newValue = 0;
1126 {
1127 newValue += 0.25;
1128 }
1129
1131 {
1132 newValue += 0.25;
1133 }
1134
1136 {
1137 newValue += 0.25;
1138 }
1139
1141 {
1142 newValue += 0.25;
1143 }
1144
1146 {
1147 newValue -= 0.6;
1148 }
1149
1151 {
1152 newValue -= 0.6;
1153 }
1154
1156 break;
1157 }
1158
1159 return super.OnSound(ctrl, oldValue);
1160 }
1161
1163 {
1164 switch (selection)
1165 {
1166 case "doors_driver":
1167 return "DoorsDriver";
1168 case "doors_codriver":
1169 return "DoorsCoDriver";
1170 case "doors_cargo1":
1171 return "DoorsCargo1";
1172 case "doors_cargo2":
1173 return "DoorsCargo2";
1174 case "doors_hood":
1175 return "DoorsHood";
1176 case "doors_trunk":
1177 return "DoorsTrunk";
1178 }
1179
1180 return "";
1181 }
1182
1184 {
1185 return false;
1186 }
1187
1189 {
1190 return false;
1191 }
1192
1194 {
1195 switch (currentSeat)
1196 {
1197 case 0:
1198 return nextSeat == 1;
1199
1200 case 1:
1201 return nextSeat == 0;
1202
1203 case 2:
1204 return nextSeat == 3;
1205
1206 case 3:
1207 return nextSeat == 2;
1208 }
1209
1210 return false;
1211 }
1212
1214 {
1215 switch (pCurrentSeat)
1216 {
1217 case 0:
1218 return pDoorsSelection == "DoorsDriver";
1219
1220 case 1:
1221 return pDoorsSelection == "DoorsCoDriver";
1222
1223 case 2:
1224 return pDoorsSelection == "DoorsCargo1";
1225
1226 case 3:
1227 return pDoorsSelection == "DoorsCargo2";
1228 }
1229
1230 return false;
1231 }
1232
1234 {
1235 SpawnUniversalParts();
1236 SpawnAdditionalItems();
1237 FillUpCarFluids();
1238
1244
1251
1252
1255 }
1256
1258 {
1259 return 1.5;
1260 }
1261}
1262
1264{
1266 {
1267 SpawnUniversalParts();
1268 SpawnAdditionalItems();
1269 FillUpCarFluids();
1270
1271 GameInventory inventory = GetInventory();
1276
1283
1284
1287 }
1288}
1289
1291{
1293 {
1294 SpawnUniversalParts();
1295 SpawnAdditionalItems();
1296 FillUpCarFluids();
1297
1298 GameInventory inventory = GetInventory();
1303
1310
1311
1314 }
1315}
CarSoundCtrl
Car's sound controller list. (native, do not change or extend)
override float GetPushForceCoefficientMultiplier()
class CivilianSedan extends CarScript OnDebugSpawn()
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
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()
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
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()
override bool IsVitalTruckBattery()
override string GetDoorSelectionNameFromSeatPos(int posIdx)
override int GetCarDoorsState(string slotType)
override bool CanDisplayAttachmentCategory(string category_name)
ref UniversalTemperatureSourceSettings m_UTSSettings
ref UniversalTemperatureSource m_UTSource
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
override void OnDebugSpawn()
Super root of all classes in Enforce script.
EntityAI CreateInInventory(string type)
creates entity somewhere in inventory
script counterpart to engine's class Inventory
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.