766{
770
772 {
773
774
775 m_EngineStartOK = "Hatchback_02_engine_start_SoundSet";
776 m_EngineStartBattery = "Hatchback_02_engine_failed_start_battery_SoundSet";
777 m_EngineStartPlug = "Hatchback_02_engine_failed_start_sparkplugs_SoundSet";
778 m_EngineStartFuel = "Hatchback_02_engine_failed_start_fuel_SoundSet";
779 m_EngineStop = "Hatchback_02_engine_stop_SoundSet";
780 m_EngineStopFuel = "Hatchback_02_engine_stop_fuel_SoundSet";
781
782 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
783 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
784
785 m_CarHornShortSoundName = "Hatchback_02_Horn_Short_SoundSet";
786 m_CarHornLongSoundName = "Hatchback_02_Horn_SoundSet";
787
788 SetEnginePos("0 0.7 1.4");
789 }
790
792 {
796 }
797
799 {
800 super.EEInit();
801
803 {
810
813 }
814 }
815
817 {
818 super.OnEngineStart();
819
821 {
824 }
825 }
826
828 {
829 super.OnEngineStop();
830
832 {
835 }
836 }
837
839 {
841 {
843 {
845 }
846 }
847 }
848
850 {
852 }
853
855 {
856 switch (posIdx)
857 {
858 case 0:
860 case 1:
862 case 2:
864 case 3:
866 }
867
868 return 0;
869 }
870
871
873 {
875 }
876
877
879 {
881 }
882
884 {
885 if (!super.CanReleaseAttachment(attachment))
886 {
887 return false;
888 }
889
891 {
892 string attType = attachment.GetType();
893 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
894 {
895 return false;
896 }
897 }
898
899 return true;
900 }
901
903 {
905 }
906
908 {
909
910 if ( !super.CanDisplayAttachmentCategory( category_name ) )
911 return false;
912
913
915 if ( category_name.
Contains(
"engine") )
916 {
918 return false;
919 }
920
921 return true;
922 }
923
925 {
926 if ( !super.CanDisplayCargo() )
927 return false;
928
930 return false;
931
932 return true;
933 }
934
936 {
938
939 Class.
CastTo(carDoor, FindAttachmentBySlotName(slotType));
940 if (!carDoor)
941 {
943 }
944
945 switch (slotType)
946 {
947 case "Hatchback_02_Door_1_1":
948 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
949
950 case "Hatchback_02_Door_2_1":
951 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
952
953 case "Hatchback_02_Door_1_2":
954 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
955
956 case "Hatchback_02_Door_2_2":
957 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
958
959 case "Hatchback_02_Hood":
960 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
961
962 case "Hatchback_02_Trunk":
963 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
964 }
965
967 }
968
969
971 {
972 switch (posIdx)
973 {
974 case 0:
976 {
977 return false;
978 }
979
980 return true;
981
982 case 1:
984 {
985 return false;
986 }
987
988 return true;
989
990 case 2:
992 {
993 return false;
994 }
995
996 return true;
997
998 case 3:
1000 {
1001 return false;
1002 }
1003
1004 return true;
1005 }
1006
1007 return false;
1008 }
1009
1011 {
1012 switch( posIdx )
1013 {
1014 case 0:
1015 return "doors_driver";
1016 break;
1017 case 1:
1018 return "doors_codriver";
1019 break;
1020 case 2:
1021 return "doors_cargo1";
1022 break;
1023 case 3:
1024 return "doors_cargo2";
1025 break;
1026 }
1027
1028 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1029 }
1030
1032 {
1033 switch( posIdx )
1034 {
1035 case 0:
1036 return "Hatchback_02_Door_1_1";
1037 break;
1038 case 1:
1039 return "Hatchback_02_Door_2_1";
1040 break;
1041 case 2:
1042 return "Hatchback_02_Door_1_2";
1043 break;
1044 case 3:
1045 return "Hatchback_02_Door_2_2";
1046 break;
1047 }
1048
1049 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1050 }
1051
1053 {
1054 switch (ctrl)
1055 {
1057 float newValue = 0;
1059 {
1060 newValue += 0.25;
1061 }
1062
1064 {
1065 newValue += 0.25;
1066 }
1067
1069 {
1070 newValue += 0.25;
1071 }
1072
1074 {
1075 newValue += 0.25;
1076 }
1077
1079 break;
1080 }
1081
1082 return super.OnSound(ctrl, oldValue);
1083 }
1084
1086 {
1087 switch( selection )
1088 {
1089 case "doors_driver":
1090 return "DoorsDriver";
1091 case "doors_codriver":
1092 return "DoorsCoDriver";
1093 case "doors_cargo1":
1094 return "DoorsCargo1";
1095 case "doors_cargo2":
1096 return "DoorsCargo2";
1097 case "doors_hood":
1098 return "DoorsHood";
1099 case "doors_trunk":
1100 return "DoorsTrunk";
1101 }
1102
1103 return "";
1104 }
1105
1106
1108 {
1109 return false;
1110 }
1111
1113 {
1114 return false;
1115 }
1116
1118 {
1119 switch (currentSeat)
1120 {
1121 case 0:
1122 return nextSeat == 1;
1123 case 1:
1124 return nextSeat == 0;
1125 case 2:
1126 return nextSeat == 3;
1127 case 3:
1128 return nextSeat == 2;
1129 }
1130
1131 return false;
1132 }
1133
1135 {
1136 switch (pCurrentSeat)
1137 {
1138 case 0:
1139 return pDoorsSelection == "DoorsDriver";
1140 case 1:
1141 return pDoorsSelection == "DoorsCoDriver";
1142 case 2:
1143 return pDoorsSelection == "DoorsCargo1";
1144 case 3:
1145 return pDoorsSelection == "DoorsCargo2";
1146 }
1147
1148 return false;
1149 }
1150
1152 {
1153 SpawnUniversalParts();
1154 SpawnAdditionalItems();
1155 FillUpCarFluids();
1156
1162
1169
1170
1173 }
1174}
1175
1177{
1179 {
1180 SpawnUniversalParts();
1181 SpawnAdditionalItems();
1182 FillUpCarFluids();
1183
1184 GameInventory inventory = GetInventory();
1189
1196
1197
1200 }
1201};
1202
1204{
1206 {
1207 SpawnUniversalParts();
1208 SpawnAdditionalItems();
1209 FillUpCarFluids();
1210
1211 GameInventory inventory = GetInventory();
1216
1223
1224
1227 }
1228}
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.