646{
650
652 {
653 m_dmgContactCoef = 0.0790;
654
661
662 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
663 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
664
667
670
672
674 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
675 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
676 }
677
679 {
683 }
684
686 {
687 super.EEInit();
688
690 {
697
700 }
701 }
702
704 {
705 return true;
706 }
707
709 {
710 super.GetElectricitySourceDevice();
711
713 }
714
716 {
717 return "CarBattery";
718 }
719
721 {
722 super.OnEngineStart();
723
725 {
728 }
729 }
730
732 {
733 super.OnEngineStop();
734
736 {
739 }
740 }
741
743 {
745 {
747 {
749 }
750 }
751 }
752
754 {
756 }
757
759 {
760 switch (posIdx)
761 {
762 case 0:
764 case 1:
766 case 2:
768 case 3:
770 }
771
772 return 0;
773 }
774
776 {
777 if (!super.CanReleaseAttachment(attachment))
778 {
779 return false;
780 }
781
782 string attType = attachment.GetType();
783 switch (attType)
784 {
785 case "CarBattery":
787 {
788 return false;
789 }
790 break;
791
792 case "SparkPlug":
794 {
795 return false;
796 }
797 break;
798
799 case "CarRadiator":
801 {
802 return false;
803 }
804 break;
805 }
806
807 return true;
808 }
809
811 {
813 }
814
816 {
817 if ( !super.CanDisplayAttachmentCategory(category_name))
818 {
819 return false;
820 }
821
823 if (category_name.
Contains(
"engine"))
824 {
826 {
827 return false;
828 }
829 }
830
831 if (category_name.
Contains(
"trunk"))
832 {
834 {
835 return false;
836 }
837 }
838
839 return true;
840 }
841
843 {
844 if ( !super.CanDisplayCargo() )
845 return false;
846
848 return false;
849
850 return true;
851 }
852
854 {
856
857 Class.
CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
858 if (!carDoor)
859 {
861 }
862
863 switch (slotType)
864 {
865 case "Sedan_02_Door_1_1":
866 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
867
868 case "Sedan_02_Door_2_1":
869 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
870
871 case "Sedan_02_Door_1_2":
872 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
873
874 case "Sedan_02_Door_2_2":
875 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
876
877 case "Sedan_02_Hood":
878 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
879
880 case "Sedan_02_Trunk":
881 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
882 }
883
885 }
886
887
889 {
890 switch( posIdx )
891 {
892 case 0:
894 return false;
895
896 return true;
897 break;
898
899 case 1:
901 return false;
902
903 return true;
904 break;
905
906 case 2:
908 return false;
909
910 return true;
911 break;
912
913 case 3:
915 return false;
916
917 return true;
918 break;
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 "Sedan_02_Door_1_1";
951 break;
952 case 1:
953 return "Sedan_02_Door_2_1";
954 break;
955 case 2:
956 return "Sedan_02_Door_1_2";
957 break;
958 case 3:
959 return "Sedan_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
1021 {
1022 return false;
1023 }
1024
1026 {
1027 switch (currentSeat)
1028 {
1029 case 0:
1030 return nextSeat == 1;
1031
1032 case 1:
1033 return nextSeat == 0;
1034
1035 case 2:
1036 return nextSeat == 3;
1037
1038 case 3:
1039 return nextSeat == 2;
1040 }
1041
1042 return false;
1043 }
1044
1046 {
1047 switch (pCurrentSeat)
1048 {
1049 case 0:
1050 return pDoorsSelection == "DoorsDriver";
1051
1052 case 1:
1053 return pDoorsSelection == "DoorsCoDriver";
1054
1055 case 2:
1056 return pDoorsSelection == "DoorsCargo1";
1057
1058 case 3:
1059 return pDoorsSelection == "DoorsCargo2";
1060 }
1061
1062 return false;
1063 }
1064
1066 {
1068 SpawnAdditionalItems();
1069 FillUpCarFluids();
1070
1077
1084
1085
1088 }
1089}
1090
1092{
1094 {
1096 SpawnAdditionalItems();
1097 FillUpCarFluids();
1098
1099 GameInventory inventory = GetInventory();
1104
1111
1112
1115 }
1116}
1117
1119{
1121 {
1123 SpawnAdditionalItems();
1124 FillUpCarFluids();
1125
1126 GameInventory inventory = GetInventory();
1131
1138
1139
1142 }
1143}
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.