619{
623
625 {
626 m_dmgContactCoef = 0.0790;
627
634
635 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
636 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
637
640
643
645
647 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
648 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
649 }
650
652 {
656 }
657
659 {
660 super.EEInit();
661
663 {
670
673 }
674 }
675
677 {
678 return true;
679 }
680
682 {
683 super.GetElectricitySourceDevice();
684
686 }
687
689 {
690 return "CarBattery";
691 }
692
694 {
695 super.OnEngineStart();
696
698 {
701 }
702 }
703
705 {
706 super.OnEngineStop();
707
709 {
712 }
713 }
714
716 {
718 {
720 {
722 }
723 }
724 }
725
727 {
729 }
730
732 {
733 switch (posIdx)
734 {
735 case 0:
737 case 1:
739 case 2:
741 case 3:
743 }
744
745 return 0;
746 }
747
749 {
750 if (!super.CanReleaseAttachment(attachment))
751 {
752 return false;
753 }
754
755 string attType = attachment.GetType();
756 switch (attType)
757 {
758 case "CarBattery":
760 {
761 return false;
762 }
763 break;
764
765 case "SparkPlug":
767 {
768 return false;
769 }
770 break;
771
772 case "CarRadiator":
774 {
775 return false;
776 }
777 break;
778 }
779
780 return true;
781 }
782
784 {
786 }
787
789 {
790 if ( !super.CanDisplayAttachmentCategory(category_name))
791 {
792 return false;
793 }
794
796 if (category_name.
Contains(
"engine"))
797 {
799 {
800 return false;
801 }
802 }
803
804 if (category_name.
Contains(
"trunk"))
805 {
807 {
808 return false;
809 }
810 }
811
812 return true;
813 }
814
816 {
817 if ( !super.CanDisplayCargo() )
818 return false;
819
821 return false;
822
823 return true;
824 }
825
827 {
829
830 Class.
CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
831 if (!carDoor)
832 {
834 }
835
836 switch (slotType)
837 {
838 case "Sedan_02_Door_1_1":
839 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
840
841 case "Sedan_02_Door_2_1":
842 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
843
844 case "Sedan_02_Door_1_2":
845 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
846
847 case "Sedan_02_Door_2_2":
848 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
849
850 case "Sedan_02_Hood":
851 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
852
853 case "Sedan_02_Trunk":
854 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
855 }
856
858 }
859
860
862 {
863 switch( posIdx )
864 {
865 case 0:
867 return false;
868
869 return true;
870 break;
871
872 case 1:
874 return false;
875
876 return true;
877 break;
878
879 case 2:
881 return false;
882
883 return true;
884 break;
885
886 case 3:
888 return false;
889
890 return true;
891 break;
892 }
893
894 return false;
895 }
896
898 {
899 switch( posIdx )
900 {
901 case 0:
902 return "doors_driver";
903 break;
904 case 1:
905 return "doors_codriver";
906 break;
907 case 2:
908 return "doors_cargo1";
909 break;
910 case 3:
911 return "doors_cargo2";
912 break;
913 }
914
915 return super.GetDoorSelectionNameFromSeatPos(posIdx);
916 }
917
919 {
920 switch( posIdx )
921 {
922 case 0:
923 return "Sedan_02_Door_1_1";
924 break;
925 case 1:
926 return "Sedan_02_Door_2_1";
927 break;
928 case 2:
929 return "Sedan_02_Door_1_2";
930 break;
931 case 3:
932 return "Sedan_02_Door_2_2";
933 break;
934 }
935
936 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
937 }
938
940 {
941 switch ( ctrl )
942 {
944 float newValue = 0;
946 {
947 newValue += 0.25;
948 }
949
951 {
952 newValue += 0.25;
953 }
954
956 {
957 newValue += 0.25;
958 }
959
961 {
962 newValue += 0.25;
963 }
964
966 break;
967 }
968
969 return super.OnSound(ctrl, oldValue);
970 }
971
973 {
974 switch( selection )
975 {
976 case "doors_driver":
977 return "DoorsDriver";
978 case "doors_codriver":
979 return "DoorsCoDriver";
980 case "doors_cargo1":
981 return "DoorsCargo1";
982 case "doors_cargo2":
983 return "DoorsCargo2";
984 case "doors_hood":
985 return "DoorsHood";
986 case "doors_trunk":
987 return "DoorsTrunk";
988 }
989
990 return "";
991 }
992
994 {
995 return false;
996 }
997
999 {
1000 switch (currentSeat)
1001 {
1002 case 0:
1003 return nextSeat == 1;
1004
1005 case 1:
1006 return nextSeat == 0;
1007
1008 case 2:
1009 return nextSeat == 3;
1010
1011 case 3:
1012 return nextSeat == 2;
1013 }
1014
1015 return false;
1016 }
1017
1019 {
1020 switch (pCurrentSeat)
1021 {
1022 case 0:
1023 return pDoorsSelection == "DoorsDriver";
1024
1025 case 1:
1026 return pDoorsSelection == "DoorsCoDriver";
1027
1028 case 2:
1029 return pDoorsSelection == "DoorsCargo1";
1030
1031 case 3:
1032 return pDoorsSelection == "DoorsCargo2";
1033 }
1034
1035 return false;
1036 }
1037
1039 {
1041 SpawnAdditionalItems();
1042 FillUpCarFluids();
1043
1050
1057
1058
1061 }
1062}
1063
1065{
1067 {
1069 SpawnAdditionalItems();
1070 FillUpCarFluids();
1071
1072 GameInventory inventory = GetInventory();
1077
1084
1085
1088 }
1089}
1090
1092{
1094 {
1096 SpawnAdditionalItems();
1097 FillUpCarFluids();
1098
1099 GameInventory inventory = GetInventory();
1104
1111
1112
1115 }
1116}
CarSoundCtrl
Car's sound controller list. (native, do not change or extend)
ref UniversalTemperatureSourceSettings m_UTSSettings
ref UniversalTemperatureSource m_UTSource
proto native void SetEnginePos(vector pos)
Override the position of engine (model space)
proto native bool EngineIsOn()
Returns true when engine is running, false otherwise.
void SpawnUniversalParts()
string m_EngineStartBattery
ref VehicleHornComponent m_HornComponent
ref VehicleLightsComponent m_LightsComponent
void Sedan_02LightProfileFront()
Sedan_02LightProfileFront VehicleLightProfileFront Sedan_02LightProfileRear()
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
void VehicleLightData(VehicleLightProfileBase profile)
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
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 EntityAI GetElectricitySourceDevice()
Sedan_02 CarScript OnDebugSpawn()
override void OnEngineStart()
override int GetAnimInstance()
override bool CrewCanGetThrough(int posIdx)
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
bool CanManipulateSpareWheel(string slotSelectionName)
override bool IsVitalGlowPlug()
override bool NeedElectricitySourceDevice()
override string GetElectricitySourceDeviceType()
override string GetDoorSelectionNameFromSeatPos(int posIdx)
override int GetCarDoorsState(string slotType)
override bool CanDisplayAttachmentCategory(string category_name)
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()
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.