535{
539
541 {
542 m_dmgContactCoef = 0.0790;
543
550
551 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
552 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
553
556
559
561
563 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
564 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
565 }
566
568 {
572 }
573
575 {
576 super.EEInit();
577
579 {
586
589 }
590 }
591
593 {
594 return true;
595 }
596
598 {
599 super.GetElectricitySourceDevice();
600
602 }
603
605 {
606 return "CarBattery";
607 }
608
610 {
611 super.OnEngineStart();
612
614 {
617 }
618 }
619
621 {
622 super.OnEngineStop();
623
625 {
628 }
629 }
630
632 {
634 {
636 {
638 }
639 }
640 }
641
643 {
645 }
646
648 {
649 switch (posIdx)
650 {
651 case 0:
653 case 1:
655 case 2:
657 case 3:
659 }
660
661 return 0;
662 }
663
665 {
666 if (!super.CanReleaseAttachment(attachment))
667 {
668 return false;
669 }
670
671 string attType = attachment.GetType();
672 switch (attType)
673 {
674 case "CarBattery":
676 {
677 return false;
678 }
679 break;
680
681 case "SparkPlug":
683 {
684 return false;
685 }
686 break;
687
688 case "CarRadiator":
690 {
691 return false;
692 }
693 break;
694 }
695
696 return true;
697 }
698
700 {
702 }
703
705 {
706 if ( !super.CanDisplayAttachmentCategory(category_name))
707 {
708 return false;
709 }
710
712 if (category_name.
Contains(
"engine"))
713 {
715 {
716 return false;
717 }
718 }
719
720 if (category_name.
Contains(
"trunk"))
721 {
723 {
724 return false;
725 }
726 }
727
728 return true;
729 }
730
732 {
733 if ( !super.CanDisplayCargo() )
734 return false;
735
737 return false;
738
739 return true;
740 }
741
743 {
745
746 Class.
CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
747 if (!carDoor)
748 {
750 }
751
752 switch (slotType)
753 {
754 case "Sedan_02_Door_1_1":
755 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
756
757 case "Sedan_02_Door_2_1":
758 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
759
760 case "Sedan_02_Door_1_2":
761 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
762
763 case "Sedan_02_Door_2_2":
764 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
765
766 case "Sedan_02_Hood":
767 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
768
769 case "Sedan_02_Trunk":
770 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
771 }
772
774 }
775
776
778 {
779 switch( posIdx )
780 {
781 case 0:
783 return false;
784
785 return true;
786 break;
787
788 case 1:
790 return false;
791
792 return true;
793 break;
794
795 case 2:
797 return false;
798
799 return true;
800 break;
801
802 case 3:
804 return false;
805
806 return true;
807 break;
808 }
809
810 return false;
811 }
812
814 {
815 switch( posIdx )
816 {
817 case 0:
818 return "doors_driver";
819 break;
820 case 1:
821 return "doors_codriver";
822 break;
823 case 2:
824 return "doors_cargo1";
825 break;
826 case 3:
827 return "doors_cargo2";
828 break;
829 }
830
831 return super.GetDoorSelectionNameFromSeatPos(posIdx);
832 }
833
835 {
836 switch( posIdx )
837 {
838 case 0:
839 return "Sedan_02_Door_1_1";
840 break;
841 case 1:
842 return "Sedan_02_Door_2_1";
843 break;
844 case 2:
845 return "Sedan_02_Door_1_2";
846 break;
847 case 3:
848 return "Sedan_02_Door_2_2";
849 break;
850 }
851
852 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
853 }
854
856 {
857 switch ( ctrl )
858 {
860 float newValue = 0;
862 {
863 newValue += 0.25;
864 }
865
867 {
868 newValue += 0.25;
869 }
870
872 {
873 newValue += 0.25;
874 }
875
877 {
878 newValue += 0.25;
879 }
880
882 break;
883 }
884
885 return super.OnSound(ctrl, oldValue);
886 }
887
889 {
890 switch( selection )
891 {
892 case "doors_driver":
893 return "DoorsDriver";
894 case "doors_codriver":
895 return "DoorsCoDriver";
896 case "doors_cargo1":
897 return "DoorsCargo1";
898 case "doors_cargo2":
899 return "DoorsCargo2";
900 case "doors_hood":
901 return "DoorsHood";
902 case "doors_trunk":
903 return "DoorsTrunk";
904 }
905
906 return "";
907 }
908
910 {
911 return false;
912 }
913
915 {
916 switch (currentSeat)
917 {
918 case 0:
919 return nextSeat == 1;
920
921 case 1:
922 return nextSeat == 0;
923
924 case 2:
925 return nextSeat == 3;
926
927 case 3:
928 return nextSeat == 2;
929 }
930
931 return false;
932 }
933
935 {
936 switch (pCurrentSeat)
937 {
938 case 0:
939 return pDoorsSelection == "DoorsDriver";
940
941 case 1:
942 return pDoorsSelection == "DoorsCoDriver";
943
944 case 2:
945 return pDoorsSelection == "DoorsCargo1";
946
947 case 3:
948 return pDoorsSelection == "DoorsCargo2";
949 }
950
951 return false;
952 }
953
955 {
957 SpawnAdditionalItems();
958 FillUpCarFluids();
959
966
973
974
977 }
978}
979
981{
983 {
985 SpawnAdditionalItems();
986 FillUpCarFluids();
987
988 GameInventory inventory = GetInventory();
993
1000
1001
1004 }
1005}
1006
1008{
1010 {
1012 SpawnAdditionalItems();
1013 FillUpCarFluids();
1014
1015 GameInventory inventory = GetInventory();
1020
1027
1028
1031 }
1032}
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.