659{
663
665 {
666
667
668 m_EngineStartOK = "Hatchback_02_engine_start_SoundSet";
669 m_EngineStartBattery = "Hatchback_02_engine_failed_start_battery_SoundSet";
670 m_EngineStartPlug = "Hatchback_02_engine_failed_start_sparkplugs_SoundSet";
671 m_EngineStartFuel = "Hatchback_02_engine_failed_start_fuel_SoundSet";
672 m_EngineStop = "Hatchback_02_engine_stop_SoundSet";
673 m_EngineStopFuel = "Hatchback_02_engine_stop_fuel_SoundSet";
674
675 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
676 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
677
678 m_CarHornShortSoundName = "Hatchback_02_Horn_Short_SoundSet";
679 m_CarHornLongSoundName = "Hatchback_02_Horn_SoundSet";
680
681 SetEnginePos("0 0.7 1.4");
682 }
683
685 {
689 }
690
692 {
693 super.EEInit();
694
696 {
703
706 }
707 }
708
710 {
711 super.OnEngineStart();
712
714 {
717 }
718 }
719
721 {
722 super.OnEngineStop();
723
725 {
728 }
729 }
730
732 {
734 {
736 {
738 }
739 }
740 }
741
743 {
745 }
746
748 {
749 switch (posIdx)
750 {
751 case 0:
753 case 1:
755 case 2:
757 case 3:
759 }
760
761 return 0;
762 }
763
764
766 {
768 }
769
770
772 {
774 }
775
777 {
778 if (!super.CanReleaseAttachment(attachment))
779 {
780 return false;
781 }
782
784 {
785 string attType = attachment.GetType();
786 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
787 {
788 return false;
789 }
790 }
791
792 return true;
793 }
794
796 {
798 }
799
801 {
802
803 if ( !super.CanDisplayAttachmentCategory( category_name ) )
804 return false;
805
806
808 if ( category_name.
Contains(
"engine") )
809 {
811 return false;
812 }
813
814 return true;
815 }
816
818 {
819 if ( !super.CanDisplayCargo() )
820 return false;
821
823 return false;
824
825 return true;
826 }
827
829 {
831
832 Class.
CastTo(carDoor, FindAttachmentBySlotName(slotType));
833 if (!carDoor)
834 {
836 }
837
838 switch (slotType)
839 {
840 case "Hatchback_02_Door_1_1":
841 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
842
843 case "Hatchback_02_Door_2_1":
844 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
845
846 case "Hatchback_02_Door_1_2":
847 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
848
849 case "Hatchback_02_Door_2_2":
850 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
851
852 case "Hatchback_02_Hood":
853 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
854
855 case "Hatchback_02_Trunk":
856 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
857 }
858
860 }
861
862
864 {
865 switch (posIdx)
866 {
867 case 0:
869 {
870 return false;
871 }
872
873 return true;
874
875 case 1:
877 {
878 return false;
879 }
880
881 return true;
882
883 case 2:
885 {
886 return false;
887 }
888
889 return true;
890
891 case 3:
893 {
894 return false;
895 }
896
897 return true;
898 }
899
900 return false;
901 }
902
904 {
905 switch( posIdx )
906 {
907 case 0:
908 return "doors_driver";
909 break;
910 case 1:
911 return "doors_codriver";
912 break;
913 case 2:
914 return "doors_cargo1";
915 break;
916 case 3:
917 return "doors_cargo2";
918 break;
919 }
920
921 return super.GetDoorSelectionNameFromSeatPos(posIdx);
922 }
923
925 {
926 switch( posIdx )
927 {
928 case 0:
929 return "Hatchback_02_Door_1_1";
930 break;
931 case 1:
932 return "Hatchback_02_Door_2_1";
933 break;
934 case 2:
935 return "Hatchback_02_Door_1_2";
936 break;
937 case 3:
938 return "Hatchback_02_Door_2_2";
939 break;
940 }
941
942 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
943 }
944
946 {
947 switch (ctrl)
948 {
950 float newValue = 0;
952 {
953 newValue += 0.25;
954 }
955
957 {
958 newValue += 0.25;
959 }
960
962 {
963 newValue += 0.25;
964 }
965
967 {
968 newValue += 0.25;
969 }
970
972 break;
973 }
974
975 return super.OnSound(ctrl, oldValue);
976 }
977
979 {
980 switch( selection )
981 {
982 case "doors_driver":
983 return "DoorsDriver";
984 case "doors_codriver":
985 return "DoorsCoDriver";
986 case "doors_cargo1":
987 return "DoorsCargo1";
988 case "doors_cargo2":
989 return "DoorsCargo2";
990 case "doors_hood":
991 return "DoorsHood";
992 case "doors_trunk":
993 return "DoorsTrunk";
994 }
995
996 return "";
997 }
998
999
1001 {
1002 return false;
1003 }
1004
1006 {
1007 return false;
1008 }
1009
1011 {
1012 switch (currentSeat)
1013 {
1014 case 0:
1015 return nextSeat == 1;
1016 case 1:
1017 return nextSeat == 0;
1018 case 2:
1019 return nextSeat == 3;
1020 case 3:
1021 return nextSeat == 2;
1022 }
1023
1024 return false;
1025 }
1026
1028 {
1029 switch (pCurrentSeat)
1030 {
1031 case 0:
1032 return pDoorsSelection == "DoorsDriver";
1033 case 1:
1034 return pDoorsSelection == "DoorsCoDriver";
1035 case 2:
1036 return pDoorsSelection == "DoorsCargo1";
1037 case 3:
1038 return pDoorsSelection == "DoorsCargo2";
1039 }
1040
1041 return false;
1042 }
1043
1045 {
1046 SpawnUniversalParts();
1047 SpawnAdditionalItems();
1048 FillUpCarFluids();
1049
1055
1062
1063
1066 }
1067}
1068
1070{
1072 {
1073 SpawnUniversalParts();
1074 SpawnAdditionalItems();
1075 FillUpCarFluids();
1076
1077 GameInventory inventory = GetInventory();
1082
1089
1090
1093 }
1094};
1095
1097{
1099 {
1100 SpawnUniversalParts();
1101 SpawnAdditionalItems();
1102 FillUpCarFluids();
1103
1104 GameInventory inventory = GetInventory();
1109
1116
1117
1120 }
1121}
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.