807{
811
813 {
814
815
816 m_EngineStartOK = "CivilianSedan_engine_start_SoundSet";
817 m_EngineStartBattery = "CivilianSedan_engine_failed_start_battery_SoundSet";
818 m_EngineStartPlug = "CivilianSedan_engine_failed_start_sparkplugs_SoundSet";
819 m_EngineStartFuel = "CivilianSedan_engine_failed_start_fuel_SoundSet";
820 m_EngineStop = "CivilianSedan_engine_stop_SoundSet";
821 m_EngineStopFuel = "CivilianSedan_engine_stop_fuel_SoundSet";
822
823 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
824 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
825
826 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
827 m_CarHornLongSoundName = "CivilianSedan_Horn_SoundSet";
828
829 SetEnginePos("0 0.7 1.6");
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 return 4.5;
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 return false;
933
934 string attType = attachment.GetType();
935
937 {
938 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
939 return false;
940 }
941
942 return true;
943 }
944
946 {
948 }
949
951 {
952
953 if (!super.CanDisplayAttachmentCategory(category_name))
954 return false;
955
956
958 if (category_name.
Contains(
"engine"))
959 {
961 return false;
962 }
963
964 return true;
965 }
966
968 {
969 if ( !super.CanDisplayCargo() )
970 return false;
971
973 return false;
974
975 return true;
976 }
977
979 {
981
982 Class.
CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
983 if (!carDoor)
984 {
986 }
987
988 switch (slotType)
989 {
990 case "CivSedanDriverDoors":
991 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
992 break;
993
994 case "CivSedanCoDriverDoors":
995 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
996 break;
997
998 case "CivSedanCargo1Doors":
999 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
1000 break;
1001
1002 case "CivSedanCargo2Doors":
1003 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
1004 break;
1005
1006 case "CivSedanTrunk":
1007 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
1008 break;
1009
1010 case "CivSedanHood":
1011 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
1012 break;
1013 }
1014
1016 }
1017
1018
1020 {
1021 switch( posIdx )
1022 {
1023 case 0:
1025 return false;
1026
1027 return true;
1028 break;
1029
1030 case 1:
1032 return false;
1033
1034 return true;
1035 break;
1036
1037 case 2:
1039 return false;
1040
1041 return true;
1042 break;
1043
1044 case 3:
1046 return false;
1047
1048 return true;
1049 break;
1050 }
1051
1052 return false;
1053 }
1054
1056 {
1057 switch( posIdx )
1058 {
1059 case 0:
1060 return "doors_driver";
1061 break;
1062 case 1:
1063 return "doors_codriver";
1064 break;
1065 case 2:
1066 return "doors_cargo1";
1067 break;
1068 case 3:
1069 return "doors_cargo2";
1070 break;
1071 }
1072
1073 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1074 }
1075
1077 {
1078 switch( posIdx )
1079 {
1080 case 0:
1081 return "CivSedanDriverDoors";
1082 break;
1083 case 1:
1084 return "CivSedanCoDriverDoors";
1085 break;
1086 case 2:
1087 return "CivSedanCargo1Doors";
1088 break;
1089 case 3:
1090 return "CivSedanCargo2Doors";
1091 break;
1092 }
1093
1094 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1095 }
1096
1097
1098
1100 {
1101 switch (ctrl)
1102 {
1104 float newValue = 0;
1106 {
1107 newValue += 0.25;
1108 }
1109
1111 {
1112 newValue += 0.25;
1113 }
1114
1116 {
1117 newValue += 0.25;
1118 }
1119
1121 {
1122 newValue += 0.25;
1123 }
1124
1126 {
1127 newValue -= 0.6;
1128 }
1129
1131 {
1132 newValue -= 0.6;
1133 }
1134
1136 break;
1137 }
1138
1139 return super.OnSound(ctrl, oldValue);
1140 }
1141
1143 {
1144 switch (selection)
1145 {
1146 case "doors_driver":
1147 return "DoorsDriver";
1148 case "doors_codriver":
1149 return "DoorsCoDriver";
1150 case "doors_cargo1":
1151 return "DoorsCargo1";
1152 case "doors_cargo2":
1153 return "DoorsCargo2";
1154 case "doors_hood":
1155 return "DoorsHood";
1156 case "doors_trunk":
1157 return "DoorsTrunk";
1158 }
1159
1160 return "";
1161 }
1162
1164 {
1165 return false;
1166 }
1167
1169 {
1170 return false;
1171 }
1172
1174 {
1175 switch (currentSeat)
1176 {
1177 case 0:
1178 return nextSeat == 1;
1179
1180 case 1:
1181 return nextSeat == 0;
1182
1183 case 2:
1184 return nextSeat == 3;
1185
1186 case 3:
1187 return nextSeat == 2;
1188 }
1189
1190 return false;
1191 }
1192
1194 {
1195 switch (pCurrentSeat)
1196 {
1197 case 0:
1198 return pDoorsSelection == "DoorsDriver";
1199
1200 case 1:
1201 return pDoorsSelection == "DoorsCoDriver";
1202
1203 case 2:
1204 return pDoorsSelection == "DoorsCargo1";
1205
1206 case 3:
1207 return pDoorsSelection == "DoorsCargo2";
1208 }
1209
1210 return false;
1211 }
1212
1214 {
1215 SpawnUniversalParts();
1216 SpawnAdditionalItems();
1217 FillUpCarFluids();
1218
1224
1231
1232
1235 }
1236
1238 {
1239 return 1.5;
1240 }
1241}
1242
1244{
1246 {
1247 SpawnUniversalParts();
1248 SpawnAdditionalItems();
1249 FillUpCarFluids();
1250
1251 GameInventory inventory = GetInventory();
1256
1263
1264
1267 }
1268}
1269
1271{
1273 {
1274 SpawnUniversalParts();
1275 SpawnAdditionalItems();
1276 FillUpCarFluids();
1277
1278 GameInventory inventory = GetInventory();
1283
1290
1291
1294 }
1295}
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.