680{
684
686 {
687
688
689 m_EngineStartOK = "Hatchback_02_engine_start_SoundSet";
690 m_EngineStartBattery = "Hatchback_02_engine_failed_start_battery_SoundSet";
691 m_EngineStartPlug = "Hatchback_02_engine_failed_start_sparkplugs_SoundSet";
692 m_EngineStartFuel = "Hatchback_02_engine_failed_start_fuel_SoundSet";
693 m_EngineStop = "Hatchback_02_engine_stop_SoundSet";
694 m_EngineStopFuel = "Hatchback_02_engine_stop_fuel_SoundSet";
695
696 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
697 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
698
699 m_CarHornShortSoundName = "Hatchback_02_Horn_Short_SoundSet";
700 m_CarHornLongSoundName = "Hatchback_02_Horn_SoundSet";
701
702 SetEnginePos("0 0.7 1.4");
703 }
704
706 {
710 }
711
713 {
714 super.EEInit();
715
717 {
724
727 }
728 }
729
731 {
732 super.OnEngineStart();
733
735 {
738 }
739 }
740
742 {
743 super.OnEngineStop();
744
746 {
749 }
750 }
751
753 {
755 {
757 {
759 }
760 }
761 }
762
764 {
766 }
767
769 {
770 switch (posIdx)
771 {
772 case 0:
774 case 1:
776 case 2:
778 case 3:
780 }
781
782 return 0;
783 }
784
785
787 {
789 }
790
791
793 {
795 }
796
798 {
799 if (!super.CanReleaseAttachment(attachment))
800 {
801 return false;
802 }
803
805 {
806 string attType = attachment.GetType();
807 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
808 {
809 return false;
810 }
811 }
812
813 return true;
814 }
815
817 {
819 }
820
822 {
823
824 if ( !super.CanDisplayAttachmentCategory( category_name ) )
825 return false;
826
827
829 if ( category_name.
Contains(
"engine") )
830 {
832 return false;
833 }
834
835 return true;
836 }
837
839 {
840 if ( !super.CanDisplayCargo() )
841 return false;
842
844 return false;
845
846 return true;
847 }
848
850 {
852
853 Class.
CastTo(carDoor, FindAttachmentBySlotName(slotType));
854 if (!carDoor)
855 {
857 }
858
859 switch (slotType)
860 {
861 case "Hatchback_02_Door_1_1":
862 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
863
864 case "Hatchback_02_Door_2_1":
865 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
866
867 case "Hatchback_02_Door_1_2":
868 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
869
870 case "Hatchback_02_Door_2_2":
871 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
872
873 case "Hatchback_02_Hood":
874 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
875
876 case "Hatchback_02_Trunk":
877 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
878 }
879
881 }
882
883
885 {
886 switch (posIdx)
887 {
888 case 0:
890 {
891 return false;
892 }
893
894 return true;
895
896 case 1:
898 {
899 return false;
900 }
901
902 return true;
903
904 case 2:
906 {
907 return false;
908 }
909
910 return true;
911
912 case 3:
914 {
915 return false;
916 }
917
918 return true;
919 }
920
921 return false;
922 }
923
925 {
926 switch( posIdx )
927 {
928 case 0:
929 return "doors_driver";
930 break;
931 case 1:
932 return "doors_codriver";
933 break;
934 case 2:
935 return "doors_cargo1";
936 break;
937 case 3:
938 return "doors_cargo2";
939 break;
940 }
941
942 return super.GetDoorSelectionNameFromSeatPos(posIdx);
943 }
944
946 {
947 switch( posIdx )
948 {
949 case 0:
950 return "Hatchback_02_Door_1_1";
951 break;
952 case 1:
953 return "Hatchback_02_Door_2_1";
954 break;
955 case 2:
956 return "Hatchback_02_Door_1_2";
957 break;
958 case 3:
959 return "Hatchback_02_Door_2_2";
960 break;
961 }
962
963 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
964 }
965
967 {
968 switch (ctrl)
969 {
971 float newValue = 0;
973 {
974 newValue += 0.25;
975 }
976
978 {
979 newValue += 0.25;
980 }
981
983 {
984 newValue += 0.25;
985 }
986
988 {
989 newValue += 0.25;
990 }
991
993 break;
994 }
995
996 return super.OnSound(ctrl, oldValue);
997 }
998
1000 {
1001 switch( selection )
1002 {
1003 case "doors_driver":
1004 return "DoorsDriver";
1005 case "doors_codriver":
1006 return "DoorsCoDriver";
1007 case "doors_cargo1":
1008 return "DoorsCargo1";
1009 case "doors_cargo2":
1010 return "DoorsCargo2";
1011 case "doors_hood":
1012 return "DoorsHood";
1013 case "doors_trunk":
1014 return "DoorsTrunk";
1015 }
1016
1017 return "";
1018 }
1019
1020
1022 {
1023 return false;
1024 }
1025
1027 {
1028 return false;
1029 }
1030
1032 {
1033 switch (currentSeat)
1034 {
1035 case 0:
1036 return nextSeat == 1;
1037 case 1:
1038 return nextSeat == 0;
1039 case 2:
1040 return nextSeat == 3;
1041 case 3:
1042 return nextSeat == 2;
1043 }
1044
1045 return false;
1046 }
1047
1049 {
1050 switch (pCurrentSeat)
1051 {
1052 case 0:
1053 return pDoorsSelection == "DoorsDriver";
1054 case 1:
1055 return pDoorsSelection == "DoorsCoDriver";
1056 case 2:
1057 return pDoorsSelection == "DoorsCargo1";
1058 case 3:
1059 return pDoorsSelection == "DoorsCargo2";
1060 }
1061
1062 return false;
1063 }
1064
1066 {
1067 SpawnUniversalParts();
1068 SpawnAdditionalItems();
1069 FillUpCarFluids();
1070
1076
1083
1084
1087 }
1088}
1089
1091{
1093 {
1094 SpawnUniversalParts();
1095 SpawnAdditionalItems();
1096 FillUpCarFluids();
1097
1098 GameInventory inventory = GetInventory();
1103
1110
1111
1114 }
1115};
1116
1118{
1120 {
1121 SpawnUniversalParts();
1122 SpawnAdditionalItems();
1123 FillUpCarFluids();
1124
1125 GameInventory inventory = GetInventory();
1130
1137
1138
1141 }
1142}
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.