776{
780
782 {
783
784
785 m_EngineStartOK = "CivilianSedan_engine_start_SoundSet";
786 m_EngineStartBattery = "CivilianSedan_engine_failed_start_battery_SoundSet";
787 m_EngineStartPlug = "CivilianSedan_engine_failed_start_sparkplugs_SoundSet";
788 m_EngineStartFuel = "CivilianSedan_engine_failed_start_fuel_SoundSet";
789 m_EngineStop = "CivilianSedan_engine_stop_SoundSet";
790 m_EngineStopFuel = "CivilianSedan_engine_stop_fuel_SoundSet";
791
792 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
793 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
794
795 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
796 m_CarHornLongSoundName = "CivilianSedan_Horn_SoundSet";
797
798 SetEnginePos("0 0.7 1.6");
799 }
800
802 {
806 }
807
809 {
810 super.EEInit();
811
813 {
820
823 }
824 }
825
827 {
828 super.OnEngineStart();
829
831 {
834 }
835 }
836
838 {
839 super.OnEngineStop();
840
842 {
845 }
846 }
847
849 {
851 {
853 {
855 }
856 }
857 }
858
860 {
862 }
863
865 {
866 return 4.5;
867 }
868
870 {
871 switch (posIdx)
872 {
873 case 0:
875 case 1:
877 case 2:
879 case 3:
881 }
882
883 return 0;
884 }
885
886
888 {
890 }
891
892
894 {
896 }
897
899 {
900 if( !super.CanReleaseAttachment( attachment ) )
901 return false;
902
903 string attType = attachment.GetType();
904
906 {
907 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
908 return false;
909 }
910
911 return true;
912 }
913
915 {
917 }
918
920 {
921
922 if (!super.CanDisplayAttachmentCategory(category_name))
923 return false;
924
925
927 if (category_name.
Contains(
"engine"))
928 {
930 return false;
931 }
932
933 return true;
934 }
935
937 {
938 if ( !super.CanDisplayCargo() )
939 return false;
940
942 return false;
943
944 return true;
945 }
946
948 {
950
951 Class.
CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
952 if (!carDoor)
953 {
955 }
956
957 switch (slotType)
958 {
959 case "CivSedanDriverDoors":
960 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
961 break;
962
963 case "CivSedanCoDriverDoors":
964 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
965 break;
966
967 case "CivSedanCargo1Doors":
968 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
969 break;
970
971 case "CivSedanCargo2Doors":
972 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
973 break;
974
975 case "CivSedanTrunk":
976 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
977 break;
978
979 case "CivSedanHood":
980 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
981 break;
982 }
983
985 }
986
987
989 {
990 switch( posIdx )
991 {
992 case 0:
994 return false;
995
996 return true;
997 break;
998
999 case 1:
1001 return false;
1002
1003 return true;
1004 break;
1005
1006 case 2:
1008 return false;
1009
1010 return true;
1011 break;
1012
1013 case 3:
1015 return false;
1016
1017 return true;
1018 break;
1019 }
1020
1021 return false;
1022 }
1023
1025 {
1026 switch( posIdx )
1027 {
1028 case 0:
1029 return "doors_driver";
1030 break;
1031 case 1:
1032 return "doors_codriver";
1033 break;
1034 case 2:
1035 return "doors_cargo1";
1036 break;
1037 case 3:
1038 return "doors_cargo2";
1039 break;
1040 }
1041
1042 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1043 }
1044
1046 {
1047 switch( posIdx )
1048 {
1049 case 0:
1050 return "CivSedanDriverDoors";
1051 break;
1052 case 1:
1053 return "CivSedanCoDriverDoors";
1054 break;
1055 case 2:
1056 return "CivSedanCargo1Doors";
1057 break;
1058 case 3:
1059 return "CivSedanCargo2Doors";
1060 break;
1061 }
1062
1063 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1064 }
1065
1066
1067
1069 {
1070 switch (ctrl)
1071 {
1073 float newValue = 0;
1075 {
1076 newValue += 0.25;
1077 }
1078
1080 {
1081 newValue += 0.25;
1082 }
1083
1085 {
1086 newValue += 0.25;
1087 }
1088
1090 {
1091 newValue += 0.25;
1092 }
1093
1095 {
1096 newValue -= 0.6;
1097 }
1098
1100 {
1101 newValue -= 0.6;
1102 }
1103
1105 break;
1106 }
1107
1108 return super.OnSound(ctrl, oldValue);
1109 }
1110
1112 {
1113 switch (selection)
1114 {
1115 case "doors_driver":
1116 return "DoorsDriver";
1117 case "doors_codriver":
1118 return "DoorsCoDriver";
1119 case "doors_cargo1":
1120 return "DoorsCargo1";
1121 case "doors_cargo2":
1122 return "DoorsCargo2";
1123 case "doors_hood":
1124 return "DoorsHood";
1125 case "doors_trunk":
1126 return "DoorsTrunk";
1127 }
1128
1129 return "";
1130 }
1131
1133 {
1134 return false;
1135 }
1136
1138 {
1139 return false;
1140 }
1141
1143 {
1144 switch (currentSeat)
1145 {
1146 case 0:
1147 return nextSeat == 1;
1148
1149 case 1:
1150 return nextSeat == 0;
1151
1152 case 2:
1153 return nextSeat == 3;
1154
1155 case 3:
1156 return nextSeat == 2;
1157 }
1158
1159 return false;
1160 }
1161
1163 {
1164 switch (pCurrentSeat)
1165 {
1166 case 0:
1167 return pDoorsSelection == "DoorsDriver";
1168
1169 case 1:
1170 return pDoorsSelection == "DoorsCoDriver";
1171
1172 case 2:
1173 return pDoorsSelection == "DoorsCargo1";
1174
1175 case 3:
1176 return pDoorsSelection == "DoorsCargo2";
1177 }
1178
1179 return false;
1180 }
1181
1183 {
1184 SpawnUniversalParts();
1185 SpawnAdditionalItems();
1186 FillUpCarFluids();
1187
1193
1200
1201
1204 }
1205
1207 {
1208 return 1.5;
1209 }
1210}
1211
1213{
1215 {
1216 SpawnUniversalParts();
1217 SpawnAdditionalItems();
1218 FillUpCarFluids();
1219
1220 GameInventory inventory = GetInventory();
1225
1232
1233
1236 }
1237}
1238
1240{
1242 {
1243 SpawnUniversalParts();
1244 SpawnAdditionalItems();
1245 FillUpCarFluids();
1246
1247 GameInventory inventory = GetInventory();
1252
1259
1260
1263 }
1264}
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.