519{
523
525 {
526 m_dmgContactCoef = 0.0790;
527
534
535 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
536 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
537
540
543
545
547 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
548 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
549 }
550
552 {
556 }
557
559 {
560 super.EEInit();
561
563 {
570
573 }
574 }
575
577 {
578 return true;
579 }
580
582 {
583 super.GetElectricitySourceDevice();
584
586 }
587
589 {
590 return "CarBattery";
591 }
592
594 {
595 super.OnEngineStart();
596
598 {
601 }
602 }
603
605 {
606 super.OnEngineStop();
607
609 {
612 }
613 }
614
616 {
618 {
620 {
622 }
623 }
624 }
625
627 {
629 }
630
632 {
633 switch (posIdx)
634 {
635 case 0:
637 case 1:
639 case 2:
641 case 3:
643 }
644
645 return 0;
646 }
647
649 {
650 if (!super.CanReleaseAttachment(attachment))
651 {
652 return false;
653 }
654
655 string attType = attachment.GetType();
656 switch (attType)
657 {
658 case "CarBattery":
660 {
661 return false;
662 }
663 break;
664
665 case "SparkPlug":
667 {
668 return false;
669 }
670 break;
671
672 case "CarRadiator":
674 {
675 return false;
676 }
677 break;
678 }
679
680 return true;
681 }
682
684 {
686 }
687
689 {
690 if ( !super.CanDisplayAttachmentCategory(category_name))
691 {
692 return false;
693 }
694
696 if (category_name.
Contains(
"engine"))
697 {
699 {
700 return false;
701 }
702 }
703
704 if (category_name.
Contains(
"trunk"))
705 {
707 {
708 return false;
709 }
710 }
711
712 return true;
713 }
714
716 {
717 if ( !super.CanDisplayCargo() )
718 return false;
719
721 return false;
722
723 return true;
724 }
725
727 {
729
730 Class.
CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
731 if (!carDoor)
732 {
734 }
735
736 switch (slotType)
737 {
738 case "Sedan_02_Door_1_1":
739 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
740
741 case "Sedan_02_Door_2_1":
742 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
743
744 case "Sedan_02_Door_1_2":
745 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
746
747 case "Sedan_02_Door_2_2":
748 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
749
750 case "Sedan_02_Hood":
751 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
752
753 case "Sedan_02_Trunk":
754 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
755 }
756
758 }
759
760
762 {
763 switch( posIdx )
764 {
765 case 0:
767 return false;
768
769 return true;
770 break;
771
772 case 1:
774 return false;
775
776 return true;
777 break;
778
779 case 2:
781 return false;
782
783 return true;
784 break;
785
786 case 3:
788 return false;
789
790 return true;
791 break;
792 }
793
794 return false;
795 }
796
798 {
799 switch( posIdx )
800 {
801 case 0:
802 return "doors_driver";
803 break;
804 case 1:
805 return "doors_codriver";
806 break;
807 case 2:
808 return "doors_cargo1";
809 break;
810 case 3:
811 return "doors_cargo2";
812 break;
813 }
814
815 return super.GetDoorSelectionNameFromSeatPos(posIdx);
816 }
817
819 {
820 switch( posIdx )
821 {
822 case 0:
823 return "Sedan_02_Door_1_1";
824 break;
825 case 1:
826 return "Sedan_02_Door_2_1";
827 break;
828 case 2:
829 return "Sedan_02_Door_1_2";
830 break;
831 case 3:
832 return "Sedan_02_Door_2_2";
833 break;
834 }
835
836 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
837 }
838
840 {
841 switch ( ctrl )
842 {
844 float newValue = 0;
846 {
847 newValue += 0.25;
848 }
849
851 {
852 newValue += 0.25;
853 }
854
856 {
857 newValue += 0.25;
858 }
859
861 {
862 newValue += 0.25;
863 }
864
866 break;
867 }
868
869 return super.OnSound(ctrl, oldValue);
870 }
871
873 {
874 switch( selection )
875 {
876 case "doors_driver":
877 return "DoorsDriver";
878 case "doors_codriver":
879 return "DoorsCoDriver";
880 case "doors_cargo1":
881 return "DoorsCargo1";
882 case "doors_cargo2":
883 return "DoorsCargo2";
884 case "doors_hood":
885 return "DoorsHood";
886 case "doors_trunk":
887 return "DoorsTrunk";
888 }
889
890 return "";
891 }
892
894 {
895 return false;
896 }
897
899 {
900 switch (currentSeat)
901 {
902 case 0:
903 return nextSeat == 1;
904
905 case 1:
906 return nextSeat == 0;
907
908 case 2:
909 return nextSeat == 3;
910
911 case 3:
912 return nextSeat == 2;
913 }
914
915 return false;
916 }
917
919 {
920 switch (pCurrentSeat)
921 {
922 case 0:
923 return pDoorsSelection == "DoorsDriver";
924
925 case 1:
926 return pDoorsSelection == "DoorsCoDriver";
927
928 case 2:
929 return pDoorsSelection == "DoorsCargo1";
930
931 case 3:
932 return pDoorsSelection == "DoorsCargo2";
933 }
934
935 return false;
936 }
937
939 {
941 SpawnAdditionalItems();
942 FillUpCarFluids();
943
950
957
958
961 }
962}
963
965{
967 {
969 SpawnAdditionalItems();
970 FillUpCarFluids();
971
972 GameInventory inventory = GetInventory();
977
984
985
988 }
989}
990
992{
994 {
996 SpawnAdditionalItems();
997 FillUpCarFluids();
998
999 GameInventory inventory = GetInventory();
1004
1011
1012
1015 }
1016}
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.