756{
760
762 {
763
764
765 m_EngineStartOK = "Hatchback_02_engine_start_SoundSet";
766 m_EngineStartBattery = "Hatchback_02_engine_failed_start_battery_SoundSet";
767 m_EngineStartPlug = "Hatchback_02_engine_failed_start_sparkplugs_SoundSet";
768 m_EngineStartFuel = "Hatchback_02_engine_failed_start_fuel_SoundSet";
769 m_EngineStop = "Hatchback_02_engine_stop_SoundSet";
770 m_EngineStopFuel = "Hatchback_02_engine_stop_fuel_SoundSet";
771
772 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
773 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
774
775 m_CarHornShortSoundName = "Hatchback_02_Horn_Short_SoundSet";
776 m_CarHornLongSoundName = "Hatchback_02_Horn_SoundSet";
777
778 SetEnginePos("0 0.7 1.4");
779 }
780
782 {
786 }
787
789 {
790 super.EEInit();
791
793 {
800
803 }
804 }
805
807 {
808 super.OnEngineStart();
809
811 {
814 }
815 }
816
818 {
819 super.OnEngineStop();
820
822 {
825 }
826 }
827
829 {
831 {
833 {
835 }
836 }
837 }
838
840 {
842 }
843
845 {
846 switch (posIdx)
847 {
848 case 0:
850 case 1:
852 case 2:
854 case 3:
856 }
857
858 return 0;
859 }
860
861
863 {
865 }
866
867
869 {
871 }
872
874 {
875 if (!super.CanReleaseAttachment(attachment))
876 {
877 return false;
878 }
879
881 {
882 string attType = attachment.GetType();
883 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
884 {
885 return false;
886 }
887 }
888
889 return true;
890 }
891
893 {
895 }
896
898 {
899
900 if ( !super.CanDisplayAttachmentCategory( category_name ) )
901 return false;
902
903
905 if ( category_name.
Contains(
"engine") )
906 {
908 return false;
909 }
910
911 return true;
912 }
913
915 {
916 if ( !super.CanDisplayCargo() )
917 return false;
918
920 return false;
921
922 return true;
923 }
924
926 {
928
929 Class.
CastTo(carDoor, FindAttachmentBySlotName(slotType));
930 if (!carDoor)
931 {
933 }
934
935 switch (slotType)
936 {
937 case "Hatchback_02_Door_1_1":
938 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
939
940 case "Hatchback_02_Door_2_1":
941 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
942
943 case "Hatchback_02_Door_1_2":
944 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
945
946 case "Hatchback_02_Door_2_2":
947 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
948
949 case "Hatchback_02_Hood":
950 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
951
952 case "Hatchback_02_Trunk":
953 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
954 }
955
957 }
958
959
961 {
962 switch (posIdx)
963 {
964 case 0:
966 {
967 return false;
968 }
969
970 return true;
971
972 case 1:
974 {
975 return false;
976 }
977
978 return true;
979
980 case 2:
982 {
983 return false;
984 }
985
986 return true;
987
988 case 3:
990 {
991 return false;
992 }
993
994 return true;
995 }
996
997 return false;
998 }
999
1001 {
1002 switch( posIdx )
1003 {
1004 case 0:
1005 return "doors_driver";
1006 break;
1007 case 1:
1008 return "doors_codriver";
1009 break;
1010 case 2:
1011 return "doors_cargo1";
1012 break;
1013 case 3:
1014 return "doors_cargo2";
1015 break;
1016 }
1017
1018 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1019 }
1020
1022 {
1023 switch( posIdx )
1024 {
1025 case 0:
1026 return "Hatchback_02_Door_1_1";
1027 break;
1028 case 1:
1029 return "Hatchback_02_Door_2_1";
1030 break;
1031 case 2:
1032 return "Hatchback_02_Door_1_2";
1033 break;
1034 case 3:
1035 return "Hatchback_02_Door_2_2";
1036 break;
1037 }
1038
1039 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1040 }
1041
1043 {
1044 switch (ctrl)
1045 {
1047 float newValue = 0;
1049 {
1050 newValue += 0.25;
1051 }
1052
1054 {
1055 newValue += 0.25;
1056 }
1057
1059 {
1060 newValue += 0.25;
1061 }
1062
1064 {
1065 newValue += 0.25;
1066 }
1067
1069 break;
1070 }
1071
1072 return super.OnSound(ctrl, oldValue);
1073 }
1074
1076 {
1077 switch( selection )
1078 {
1079 case "doors_driver":
1080 return "DoorsDriver";
1081 case "doors_codriver":
1082 return "DoorsCoDriver";
1083 case "doors_cargo1":
1084 return "DoorsCargo1";
1085 case "doors_cargo2":
1086 return "DoorsCargo2";
1087 case "doors_hood":
1088 return "DoorsHood";
1089 case "doors_trunk":
1090 return "DoorsTrunk";
1091 }
1092
1093 return "";
1094 }
1095
1096
1098 {
1099 return false;
1100 }
1101
1103 {
1104 return false;
1105 }
1106
1108 {
1109 switch (currentSeat)
1110 {
1111 case 0:
1112 return nextSeat == 1;
1113 case 1:
1114 return nextSeat == 0;
1115 case 2:
1116 return nextSeat == 3;
1117 case 3:
1118 return nextSeat == 2;
1119 }
1120
1121 return false;
1122 }
1123
1125 {
1126 switch (pCurrentSeat)
1127 {
1128 case 0:
1129 return pDoorsSelection == "DoorsDriver";
1130 case 1:
1131 return pDoorsSelection == "DoorsCoDriver";
1132 case 2:
1133 return pDoorsSelection == "DoorsCargo1";
1134 case 3:
1135 return pDoorsSelection == "DoorsCargo2";
1136 }
1137
1138 return false;
1139 }
1140
1142 {
1143 SpawnUniversalParts();
1144 SpawnAdditionalItems();
1145 FillUpCarFluids();
1146
1152
1159
1160
1163 }
1164}
1165
1167{
1169 {
1170 SpawnUniversalParts();
1171 SpawnAdditionalItems();
1172 FillUpCarFluids();
1173
1174 GameInventory inventory = GetInventory();
1179
1186
1187
1190 }
1191};
1192
1194{
1196 {
1197 SpawnUniversalParts();
1198 SpawnAdditionalItems();
1199 FillUpCarFluids();
1200
1201 GameInventory inventory = GetInventory();
1206
1213
1214
1217 }
1218}
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.