734{
738
740 {
741
742
743 m_EngineStartOK = "Hatchback_02_engine_start_SoundSet";
744 m_EngineStartBattery = "Hatchback_02_engine_failed_start_battery_SoundSet";
745 m_EngineStartPlug = "Hatchback_02_engine_failed_start_sparkplugs_SoundSet";
746 m_EngineStartFuel = "Hatchback_02_engine_failed_start_fuel_SoundSet";
747 m_EngineStop = "Hatchback_02_engine_stop_SoundSet";
748 m_EngineStopFuel = "Hatchback_02_engine_stop_fuel_SoundSet";
749
750 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
751 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
752
753 m_CarHornShortSoundName = "Hatchback_02_Horn_Short_SoundSet";
754 m_CarHornLongSoundName = "Hatchback_02_Horn_SoundSet";
755
756 SetEnginePos("0 0.7 1.4");
757 }
758
760 {
764 }
765
767 {
768 super.EEInit();
769
771 {
778
781 }
782 }
783
785 {
786 super.OnEngineStart();
787
789 {
792 }
793 }
794
796 {
797 super.OnEngineStop();
798
800 {
803 }
804 }
805
807 {
809 {
811 {
813 }
814 }
815 }
816
818 {
820 }
821
823 {
824 switch (posIdx)
825 {
826 case 0:
828 case 1:
830 case 2:
832 case 3:
834 }
835
836 return 0;
837 }
838
839
841 {
843 }
844
845
847 {
849 }
850
852 {
853 if (!super.CanReleaseAttachment(attachment))
854 {
855 return false;
856 }
857
859 {
860 string attType = attachment.GetType();
861 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
862 {
863 return false;
864 }
865 }
866
867 return true;
868 }
869
871 {
873 }
874
876 {
877
878 if ( !super.CanDisplayAttachmentCategory( category_name ) )
879 return false;
880
881
883 if ( category_name.
Contains(
"engine") )
884 {
886 return false;
887 }
888
889 return true;
890 }
891
893 {
894 if ( !super.CanDisplayCargo() )
895 return false;
896
898 return false;
899
900 return true;
901 }
902
904 {
906
907 Class.
CastTo(carDoor, FindAttachmentBySlotName(slotType));
908 if (!carDoor)
909 {
911 }
912
913 switch (slotType)
914 {
915 case "Hatchback_02_Door_1_1":
916 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
917
918 case "Hatchback_02_Door_2_1":
919 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
920
921 case "Hatchback_02_Door_1_2":
922 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
923
924 case "Hatchback_02_Door_2_2":
925 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
926
927 case "Hatchback_02_Hood":
928 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
929
930 case "Hatchback_02_Trunk":
931 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
932 }
933
935 }
936
937
939 {
940 switch (posIdx)
941 {
942 case 0:
944 {
945 return false;
946 }
947
948 return true;
949
950 case 1:
952 {
953 return false;
954 }
955
956 return true;
957
958 case 2:
960 {
961 return false;
962 }
963
964 return true;
965
966 case 3:
968 {
969 return false;
970 }
971
972 return true;
973 }
974
975 return false;
976 }
977
979 {
980 switch( posIdx )
981 {
982 case 0:
983 return "doors_driver";
984 break;
985 case 1:
986 return "doors_codriver";
987 break;
988 case 2:
989 return "doors_cargo1";
990 break;
991 case 3:
992 return "doors_cargo2";
993 break;
994 }
995
996 return super.GetDoorSelectionNameFromSeatPos(posIdx);
997 }
998
1000 {
1001 switch( posIdx )
1002 {
1003 case 0:
1004 return "Hatchback_02_Door_1_1";
1005 break;
1006 case 1:
1007 return "Hatchback_02_Door_2_1";
1008 break;
1009 case 2:
1010 return "Hatchback_02_Door_1_2";
1011 break;
1012 case 3:
1013 return "Hatchback_02_Door_2_2";
1014 break;
1015 }
1016
1017 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1018 }
1019
1021 {
1022 switch (ctrl)
1023 {
1025 float newValue = 0;
1027 {
1028 newValue += 0.25;
1029 }
1030
1032 {
1033 newValue += 0.25;
1034 }
1035
1037 {
1038 newValue += 0.25;
1039 }
1040
1042 {
1043 newValue += 0.25;
1044 }
1045
1047 break;
1048 }
1049
1050 return super.OnSound(ctrl, oldValue);
1051 }
1052
1054 {
1055 switch( selection )
1056 {
1057 case "doors_driver":
1058 return "DoorsDriver";
1059 case "doors_codriver":
1060 return "DoorsCoDriver";
1061 case "doors_cargo1":
1062 return "DoorsCargo1";
1063 case "doors_cargo2":
1064 return "DoorsCargo2";
1065 case "doors_hood":
1066 return "DoorsHood";
1067 case "doors_trunk":
1068 return "DoorsTrunk";
1069 }
1070
1071 return "";
1072 }
1073
1074
1076 {
1077 return false;
1078 }
1079
1081 {
1082 return false;
1083 }
1084
1086 {
1087 switch (currentSeat)
1088 {
1089 case 0:
1090 return nextSeat == 1;
1091 case 1:
1092 return nextSeat == 0;
1093 case 2:
1094 return nextSeat == 3;
1095 case 3:
1096 return nextSeat == 2;
1097 }
1098
1099 return false;
1100 }
1101
1103 {
1104 switch (pCurrentSeat)
1105 {
1106 case 0:
1107 return pDoorsSelection == "DoorsDriver";
1108 case 1:
1109 return pDoorsSelection == "DoorsCoDriver";
1110 case 2:
1111 return pDoorsSelection == "DoorsCargo1";
1112 case 3:
1113 return pDoorsSelection == "DoorsCargo2";
1114 }
1115
1116 return false;
1117 }
1118
1120 {
1121 SpawnUniversalParts();
1122 SpawnAdditionalItems();
1123 FillUpCarFluids();
1124
1130
1137
1138
1141 }
1142}
1143
1145{
1147 {
1148 SpawnUniversalParts();
1149 SpawnAdditionalItems();
1150 FillUpCarFluids();
1151
1152 GameInventory inventory = GetInventory();
1157
1164
1165
1168 }
1169};
1170
1172{
1174 {
1175 SpawnUniversalParts();
1176 SpawnAdditionalItems();
1177 FillUpCarFluids();
1178
1179 GameInventory inventory = GetInventory();
1184
1191
1192
1195 }
1196}
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.