802{
806
808 {
809
810
811 m_EngineStartOK = "CivilianSedan_engine_start_SoundSet";
812 m_EngineStartBattery = "CivilianSedan_engine_failed_start_battery_SoundSet";
813 m_EngineStartPlug = "CivilianSedan_engine_failed_start_sparkplugs_SoundSet";
814 m_EngineStartFuel = "CivilianSedan_engine_failed_start_fuel_SoundSet";
815 m_EngineStop = "CivilianSedan_engine_stop_SoundSet";
816 m_EngineStopFuel = "CivilianSedan_engine_stop_fuel_SoundSet";
817
818 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
819 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
820
821 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
822 m_CarHornLongSoundName = "CivilianSedan_Horn_SoundSet";
823
824 SetEnginePos("0 0.7 1.6");
825 }
826
828 {
832 }
833
835 {
836 super.EEInit();
837
839 {
846
849 }
850 }
851
853 {
854 super.OnEngineStart();
855
857 {
860 }
861 }
862
864 {
865 super.OnEngineStop();
866
868 {
871 }
872 }
873
875 {
877 {
879 {
881 }
882 }
883 }
884
886 {
888 }
889
891 {
892 return 4.5;
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 return false;
928
929 string attType = attachment.GetType();
930
932 {
933 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
934 return false;
935 }
936
937 return true;
938 }
939
941 {
943 }
944
946 {
947
948 if (!super.CanDisplayAttachmentCategory(category_name))
949 return false;
950
951
953 if (category_name.
Contains(
"engine"))
954 {
956 return false;
957 }
958
959 return true;
960 }
961
963 {
964 if ( !super.CanDisplayCargo() )
965 return false;
966
968 return false;
969
970 return true;
971 }
972
974 {
976
977 Class.
CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
978 if (!carDoor)
979 {
981 }
982
983 switch (slotType)
984 {
985 case "CivSedanDriverDoors":
986 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
987 break;
988
989 case "CivSedanCoDriverDoors":
990 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
991 break;
992
993 case "CivSedanCargo1Doors":
994 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
995 break;
996
997 case "CivSedanCargo2Doors":
998 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
999 break;
1000
1001 case "CivSedanTrunk":
1002 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
1003 break;
1004
1005 case "CivSedanHood":
1006 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
1007 break;
1008 }
1009
1011 }
1012
1013
1015 {
1016 switch( posIdx )
1017 {
1018 case 0:
1020 return false;
1021
1022 return true;
1023 break;
1024
1025 case 1:
1027 return false;
1028
1029 return true;
1030 break;
1031
1032 case 2:
1034 return false;
1035
1036 return true;
1037 break;
1038
1039 case 3:
1041 return false;
1042
1043 return true;
1044 break;
1045 }
1046
1047 return false;
1048 }
1049
1051 {
1052 switch( posIdx )
1053 {
1054 case 0:
1055 return "doors_driver";
1056 break;
1057 case 1:
1058 return "doors_codriver";
1059 break;
1060 case 2:
1061 return "doors_cargo1";
1062 break;
1063 case 3:
1064 return "doors_cargo2";
1065 break;
1066 }
1067
1068 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1069 }
1070
1072 {
1073 switch( posIdx )
1074 {
1075 case 0:
1076 return "CivSedanDriverDoors";
1077 break;
1078 case 1:
1079 return "CivSedanCoDriverDoors";
1080 break;
1081 case 2:
1082 return "CivSedanCargo1Doors";
1083 break;
1084 case 3:
1085 return "CivSedanCargo2Doors";
1086 break;
1087 }
1088
1089 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1090 }
1091
1092
1093
1095 {
1096 switch (ctrl)
1097 {
1099 float newValue = 0;
1101 {
1102 newValue += 0.25;
1103 }
1104
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.6;
1123 }
1124
1126 {
1127 newValue -= 0.6;
1128 }
1129
1131 break;
1132 }
1133
1134 return super.OnSound(ctrl, oldValue);
1135 }
1136
1138 {
1139 switch (selection)
1140 {
1141 case "doors_driver":
1142 return "DoorsDriver";
1143 case "doors_codriver":
1144 return "DoorsCoDriver";
1145 case "doors_cargo1":
1146 return "DoorsCargo1";
1147 case "doors_cargo2":
1148 return "DoorsCargo2";
1149 case "doors_hood":
1150 return "DoorsHood";
1151 case "doors_trunk":
1152 return "DoorsTrunk";
1153 }
1154
1155 return "";
1156 }
1157
1159 {
1160 return false;
1161 }
1162
1164 {
1165 return false;
1166 }
1167
1169 {
1170 switch (currentSeat)
1171 {
1172 case 0:
1173 return nextSeat == 1;
1174
1175 case 1:
1176 return nextSeat == 0;
1177
1178 case 2:
1179 return nextSeat == 3;
1180
1181 case 3:
1182 return nextSeat == 2;
1183 }
1184
1185 return false;
1186 }
1187
1189 {
1190 switch (pCurrentSeat)
1191 {
1192 case 0:
1193 return pDoorsSelection == "DoorsDriver";
1194
1195 case 1:
1196 return pDoorsSelection == "DoorsCoDriver";
1197
1198 case 2:
1199 return pDoorsSelection == "DoorsCargo1";
1200
1201 case 3:
1202 return pDoorsSelection == "DoorsCargo2";
1203 }
1204
1205 return false;
1206 }
1207
1209 {
1210 SpawnUniversalParts();
1211 SpawnAdditionalItems();
1212 FillUpCarFluids();
1213
1219
1226
1227
1230 }
1231
1233 {
1234 return 1.5;
1235 }
1236}
1237
1239{
1241 {
1242 SpawnUniversalParts();
1243 SpawnAdditionalItems();
1244 FillUpCarFluids();
1245
1246 GameInventory inventory = GetInventory();
1251
1258
1259
1262 }
1263}
1264
1266{
1268 {
1269 SpawnUniversalParts();
1270 SpawnAdditionalItems();
1271 FillUpCarFluids();
1272
1273 GameInventory inventory = GetInventory();
1278
1285
1286
1289 }
1290}
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.