783{
787
789 {
790
791
792 m_EngineStartOK = "Hatchback_02_engine_start_SoundSet";
793 m_EngineStartBattery = "Hatchback_02_engine_failed_start_battery_SoundSet";
794 m_EngineStartPlug = "Hatchback_02_engine_failed_start_sparkplugs_SoundSet";
795 m_EngineStartFuel = "Hatchback_02_engine_failed_start_fuel_SoundSet";
796 m_EngineStop = "Hatchback_02_engine_stop_SoundSet";
797 m_EngineStopFuel = "Hatchback_02_engine_stop_fuel_SoundSet";
798
799 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
800 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
801
802 m_CarHornShortSoundName = "Hatchback_02_Horn_Short_SoundSet";
803 m_CarHornLongSoundName = "Hatchback_02_Horn_SoundSet";
804
805 SetEnginePos("0 0.7 1.4");
806 }
807
809 {
813 }
814
816 {
817 super.EEInit();
818
820 {
827
830 }
831 }
832
834 {
835 super.OnEngineStart();
836
838 {
841 }
842 }
843
845 {
846 super.OnEngineStop();
847
849 {
852 }
853 }
854
856 {
858 {
860 {
862 }
863 }
864 }
865
867 {
869 }
870
872 {
873 switch (posIdx)
874 {
875 case 0:
877 case 1:
879 case 2:
881 case 3:
883 }
884
885 return 0;
886 }
887
888
890 {
892 }
893
894
896 {
898 }
899
901 {
902 if (!super.CanReleaseAttachment(attachment))
903 {
904 return false;
905 }
906
908 {
909 string attType = attachment.GetType();
910 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
911 {
912 return false;
913 }
914 }
915
916 return true;
917 }
918
920 {
922 }
923
925 {
926
927 if ( !super.CanDisplayAttachmentCategory( category_name ) )
928 return false;
929
930
932 if ( category_name.
Contains(
"engine") )
933 {
935 return false;
936 }
937
938 return true;
939 }
940
942 {
943 if ( !super.CanDisplayCargo() )
944 return false;
945
947 return false;
948
949 return true;
950 }
951
953 {
955
956 Class.
CastTo(carDoor, FindAttachmentBySlotName(slotType));
957 if (!carDoor)
958 {
960 }
961
962 switch (slotType)
963 {
964 case "Hatchback_02_Door_1_1":
965 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
966
967 case "Hatchback_02_Door_2_1":
968 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
969
970 case "Hatchback_02_Door_1_2":
971 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
972
973 case "Hatchback_02_Door_2_2":
974 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
975
976 case "Hatchback_02_Hood":
977 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
978
979 case "Hatchback_02_Trunk":
980 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
981 }
982
984 }
985
986
988 {
989 switch (posIdx)
990 {
991 case 0:
993 {
994 return false;
995 }
996
997 return true;
998
999 case 1:
1001 {
1002 return false;
1003 }
1004
1005 return true;
1006
1007 case 2:
1009 {
1010 return false;
1011 }
1012
1013 return true;
1014
1015 case 3:
1017 {
1018 return false;
1019 }
1020
1021 return true;
1022 }
1023
1024 return false;
1025 }
1026
1028 {
1029 switch( posIdx )
1030 {
1031 case 0:
1032 return "doors_driver";
1033 break;
1034 case 1:
1035 return "doors_codriver";
1036 break;
1037 case 2:
1038 return "doors_cargo1";
1039 break;
1040 case 3:
1041 return "doors_cargo2";
1042 break;
1043 }
1044
1045 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1046 }
1047
1049 {
1050 switch( posIdx )
1051 {
1052 case 0:
1053 return "Hatchback_02_Door_1_1";
1054 break;
1055 case 1:
1056 return "Hatchback_02_Door_2_1";
1057 break;
1058 case 2:
1059 return "Hatchback_02_Door_1_2";
1060 break;
1061 case 3:
1062 return "Hatchback_02_Door_2_2";
1063 break;
1064 }
1065
1066 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1067 }
1068
1070 {
1071 switch (ctrl)
1072 {
1074 float newValue = 0;
1076 {
1077 newValue += 0.25;
1078 }
1079
1081 {
1082 newValue += 0.25;
1083 }
1084
1086 {
1087 newValue += 0.25;
1088 }
1089
1091 {
1092 newValue += 0.25;
1093 }
1094
1096 break;
1097 }
1098
1099 return super.OnSound(ctrl, oldValue);
1100 }
1101
1103 {
1104 switch( selection )
1105 {
1106 case "doors_driver":
1107 return "DoorsDriver";
1108 case "doors_codriver":
1109 return "DoorsCoDriver";
1110 case "doors_cargo1":
1111 return "DoorsCargo1";
1112 case "doors_cargo2":
1113 return "DoorsCargo2";
1114 case "doors_hood":
1115 return "DoorsHood";
1116 case "doors_trunk":
1117 return "DoorsTrunk";
1118 }
1119
1120 return "";
1121 }
1122
1123
1125 {
1126 return false;
1127 }
1128
1130 {
1131 return false;
1132 }
1133
1135 {
1136 switch (currentSeat)
1137 {
1138 case 0:
1139 return nextSeat == 1;
1140 case 1:
1141 return nextSeat == 0;
1142 case 2:
1143 return nextSeat == 3;
1144 case 3:
1145 return nextSeat == 2;
1146 }
1147
1148 return false;
1149 }
1150
1152 {
1153 switch (pCurrentSeat)
1154 {
1155 case 0:
1156 return pDoorsSelection == "DoorsDriver";
1157 case 1:
1158 return pDoorsSelection == "DoorsCoDriver";
1159 case 2:
1160 return pDoorsSelection == "DoorsCargo1";
1161 case 3:
1162 return pDoorsSelection == "DoorsCargo2";
1163 }
1164
1165 return false;
1166 }
1167
1169 {
1170 SpawnUniversalParts();
1171 SpawnAdditionalItems();
1172 FillUpCarFluids();
1173
1179
1186
1187
1190 }
1191}
1192
1194{
1196 {
1197 SpawnUniversalParts();
1198 SpawnAdditionalItems();
1199 FillUpCarFluids();
1200
1201 GameInventory inventory = GetInventory();
1206
1213
1214
1217 }
1218};
1219
1221{
1223 {
1224 SpawnUniversalParts();
1225 SpawnAdditionalItems();
1226 FillUpCarFluids();
1227
1228 GameInventory inventory = GetInventory();
1233
1240
1241
1244 }
1245}
CarSoundCtrl
Car's sound controller list. (native, do not change or extend)
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
ref UniversalTemperatureSourceSettings m_UTSSettings
ref UniversalTemperatureSource m_UTSource
class Hatchback_02_Blue extends Hatchback_02 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()
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.