701{
705
707 {
708
709
710 m_EngineStartOK = "Hatchback_02_engine_start_SoundSet";
711 m_EngineStartBattery = "Hatchback_02_engine_failed_start_battery_SoundSet";
712 m_EngineStartPlug = "Hatchback_02_engine_failed_start_sparkplugs_SoundSet";
713 m_EngineStartFuel = "Hatchback_02_engine_failed_start_fuel_SoundSet";
714 m_EngineStop = "Hatchback_02_engine_stop_SoundSet";
715 m_EngineStopFuel = "Hatchback_02_engine_stop_fuel_SoundSet";
716
717 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
718 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
719
720 m_CarHornShortSoundName = "Hatchback_02_Horn_Short_SoundSet";
721 m_CarHornLongSoundName = "Hatchback_02_Horn_SoundSet";
722
723 SetEnginePos("0 0.7 1.4");
724 }
725
727 {
731 }
732
734 {
735 super.EEInit();
736
738 {
745
748 }
749 }
750
752 {
753 super.OnEngineStart();
754
756 {
759 }
760 }
761
763 {
764 super.OnEngineStop();
765
767 {
770 }
771 }
772
774 {
776 {
778 {
780 }
781 }
782 }
783
785 {
787 }
788
790 {
791 switch (posIdx)
792 {
793 case 0:
795 case 1:
797 case 2:
799 case 3:
801 }
802
803 return 0;
804 }
805
806
808 {
810 }
811
812
814 {
816 }
817
819 {
820 if (!super.CanReleaseAttachment(attachment))
821 {
822 return false;
823 }
824
826 {
827 string attType = attachment.GetType();
828 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
829 {
830 return false;
831 }
832 }
833
834 return true;
835 }
836
838 {
840 }
841
843 {
844
845 if ( !super.CanDisplayAttachmentCategory( category_name ) )
846 return false;
847
848
850 if ( category_name.
Contains(
"engine") )
851 {
853 return false;
854 }
855
856 return true;
857 }
858
860 {
861 if ( !super.CanDisplayCargo() )
862 return false;
863
865 return false;
866
867 return true;
868 }
869
871 {
873
874 Class.
CastTo(carDoor, FindAttachmentBySlotName(slotType));
875 if (!carDoor)
876 {
878 }
879
880 switch (slotType)
881 {
882 case "Hatchback_02_Door_1_1":
883 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
884
885 case "Hatchback_02_Door_2_1":
886 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
887
888 case "Hatchback_02_Door_1_2":
889 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
890
891 case "Hatchback_02_Door_2_2":
892 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
893
894 case "Hatchback_02_Hood":
895 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
896
897 case "Hatchback_02_Trunk":
898 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
899 }
900
902 }
903
904
906 {
907 switch (posIdx)
908 {
909 case 0:
911 {
912 return false;
913 }
914
915 return true;
916
917 case 1:
919 {
920 return false;
921 }
922
923 return true;
924
925 case 2:
927 {
928 return false;
929 }
930
931 return true;
932
933 case 3:
935 {
936 return false;
937 }
938
939 return true;
940 }
941
942 return false;
943 }
944
946 {
947 switch( posIdx )
948 {
949 case 0:
950 return "doors_driver";
951 break;
952 case 1:
953 return "doors_codriver";
954 break;
955 case 2:
956 return "doors_cargo1";
957 break;
958 case 3:
959 return "doors_cargo2";
960 break;
961 }
962
963 return super.GetDoorSelectionNameFromSeatPos(posIdx);
964 }
965
967 {
968 switch( posIdx )
969 {
970 case 0:
971 return "Hatchback_02_Door_1_1";
972 break;
973 case 1:
974 return "Hatchback_02_Door_2_1";
975 break;
976 case 2:
977 return "Hatchback_02_Door_1_2";
978 break;
979 case 3:
980 return "Hatchback_02_Door_2_2";
981 break;
982 }
983
984 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
985 }
986
988 {
989 switch (ctrl)
990 {
992 float newValue = 0;
994 {
995 newValue += 0.25;
996 }
997
999 {
1000 newValue += 0.25;
1001 }
1002
1004 {
1005 newValue += 0.25;
1006 }
1007
1009 {
1010 newValue += 0.25;
1011 }
1012
1014 break;
1015 }
1016
1017 return super.OnSound(ctrl, oldValue);
1018 }
1019
1021 {
1022 switch( selection )
1023 {
1024 case "doors_driver":
1025 return "DoorsDriver";
1026 case "doors_codriver":
1027 return "DoorsCoDriver";
1028 case "doors_cargo1":
1029 return "DoorsCargo1";
1030 case "doors_cargo2":
1031 return "DoorsCargo2";
1032 case "doors_hood":
1033 return "DoorsHood";
1034 case "doors_trunk":
1035 return "DoorsTrunk";
1036 }
1037
1038 return "";
1039 }
1040
1041
1043 {
1044 return false;
1045 }
1046
1048 {
1049 return false;
1050 }
1051
1053 {
1054 switch (currentSeat)
1055 {
1056 case 0:
1057 return nextSeat == 1;
1058 case 1:
1059 return nextSeat == 0;
1060 case 2:
1061 return nextSeat == 3;
1062 case 3:
1063 return nextSeat == 2;
1064 }
1065
1066 return false;
1067 }
1068
1070 {
1071 switch (pCurrentSeat)
1072 {
1073 case 0:
1074 return pDoorsSelection == "DoorsDriver";
1075 case 1:
1076 return pDoorsSelection == "DoorsCoDriver";
1077 case 2:
1078 return pDoorsSelection == "DoorsCargo1";
1079 case 3:
1080 return pDoorsSelection == "DoorsCargo2";
1081 }
1082
1083 return false;
1084 }
1085
1087 {
1088 SpawnUniversalParts();
1089 SpawnAdditionalItems();
1090 FillUpCarFluids();
1091
1097
1104
1105
1108 }
1109}
1110
1112{
1114 {
1115 SpawnUniversalParts();
1116 SpawnAdditionalItems();
1117 FillUpCarFluids();
1118
1119 GameInventory inventory = GetInventory();
1124
1131
1132
1135 }
1136};
1137
1139{
1141 {
1142 SpawnUniversalParts();
1143 SpawnAdditionalItems();
1144 FillUpCarFluids();
1145
1146 GameInventory inventory = GetInventory();
1151
1158
1159
1162 }
1163}
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.