532{
536
538 {
539 m_dmgContactCoef = 0.0790;
540
541 m_EngineStartOK = "Sedan_02_engine_start_SoundSet";
542 m_EngineStartBattery = "Sedan_02_engine_failed_start_battery_SoundSet";
543 m_EngineStartPlug = "Sedan_02_engine_failed_start_sparkplugs_SoundSet";
544 m_EngineStartFuel = "Sedan_02_engine_failed_start_fuel_SoundSet";
545 m_EngineStop = "Sedan_02_engine_stop_SoundSet";
546 m_EngineStopFuel = "Sedan_02_engine_stop_fuel_SoundSet";
547
548 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
549 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
550
551 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
552 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
553
554 SetEnginePos("0 0.7 -1.7");
555 }
556
558 {
562 }
563
565 {
566 super.EEInit();
567
569 {
576
579 }
580 }
581
583 {
584 super.OnEngineStart();
585
587 {
590 }
591 }
592
594 {
595 super.OnEngineStop();
596
598 {
601 }
602 }
603
605 {
607 {
609 {
611 }
612 }
613 }
614
616 {
618 }
619
621 {
622 switch (posIdx)
623 {
624 case 0:
626 case 1:
628 case 2:
630 case 3:
632 }
633
634 return 0;
635 }
636
637
639 {
641 }
642
643
645 {
647 }
648
650 {
651 if (!super.CanReleaseAttachment(attachment))
652 {
653 return false;
654 }
655
656 string attType = attachment.GetType();
657 switch (attType)
658 {
659 case "CarBattery":
661 {
662 return false;
663 }
664 break;
665
666 case "SparkPlug":
668 {
669 return false;
670 }
671 break;
672
673 case "CarRadiator":
675 {
676 return false;
677 }
678 break;
679 }
680
681 return true;
682 }
683
685 {
687 }
688
690 {
691 if ( !super.CanDisplayAttachmentCategory(category_name))
692 {
693 return false;
694 }
695
697 if (category_name.
Contains(
"engine"))
698 {
700 {
701 return false;
702 }
703 }
704
705 if (category_name.
Contains(
"trunk"))
706 {
708 {
709 return false;
710 }
711 }
712
713 return true;
714 }
715
717 {
718 if ( !super.CanDisplayCargo() )
719 return false;
720
722 return false;
723
724 return true;
725 }
726
728 {
730
731 Class.
CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
732 if (!carDoor)
733 {
735 }
736
737 switch (slotType)
738 {
739 case "Sedan_02_Door_1_1":
740 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
741
742 case "Sedan_02_Door_2_1":
743 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
744
745 case "Sedan_02_Door_1_2":
746 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
747
748 case "Sedan_02_Door_2_2":
749 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
750
751 case "Sedan_02_Hood":
752 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
753
754 case "Sedan_02_Trunk":
755 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
756 }
757
759 }
760
761
763 {
764 switch( posIdx )
765 {
766 case 0:
768 return false;
769
770 return true;
771 break;
772
773 case 1:
775 return false;
776
777 return true;
778 break;
779
780 case 2:
782 return false;
783
784 return true;
785 break;
786
787 case 3:
789 return false;
790
791 return true;
792 break;
793 }
794
795 return false;
796 }
797
799 {
800 switch( posIdx )
801 {
802 case 0:
803 return "doors_driver";
804 break;
805 case 1:
806 return "doors_codriver";
807 break;
808 case 2:
809 return "doors_cargo1";
810 break;
811 case 3:
812 return "doors_cargo2";
813 break;
814 }
815
816 return super.GetDoorSelectionNameFromSeatPos(posIdx);
817 }
818
820 {
821 switch( posIdx )
822 {
823 case 0:
824 return "Sedan_02_Door_1_1";
825 break;
826 case 1:
827 return "Sedan_02_Door_2_1";
828 break;
829 case 2:
830 return "Sedan_02_Door_1_2";
831 break;
832 case 3:
833 return "Sedan_02_Door_2_2";
834 break;
835 }
836
837 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
838 }
839
841 {
842 switch ( ctrl )
843 {
845 float newValue = 0;
847 {
848 newValue += 0.25;
849 }
850
852 {
853 newValue += 0.25;
854 }
855
857 {
858 newValue += 0.25;
859 }
860
862 {
863 newValue += 0.25;
864 }
865
867 break;
868 }
869
870 return super.OnSound(ctrl, oldValue);
871 }
872
874 {
875 switch( selection )
876 {
877 case "doors_driver":
878 return "DoorsDriver";
879 case "doors_codriver":
880 return "DoorsCoDriver";
881 case "doors_cargo1":
882 return "DoorsCargo1";
883 case "doors_cargo2":
884 return "DoorsCargo2";
885 case "doors_hood":
886 return "DoorsHood";
887 case "doors_trunk":
888 return "DoorsTrunk";
889 }
890
891 return "";
892 }
893
894
896 {
897 return false;
898 }
899
901 {
902 return false;
903 }
904
906 {
907 switch (currentSeat)
908 {
909 case 0:
910 return nextSeat == 1;
911
912 case 1:
913 return nextSeat == 0;
914
915 case 2:
916 return nextSeat == 3;
917
918 case 3:
919 return nextSeat == 2;
920 }
921
922 return false;
923 }
924
926 {
927 switch (pCurrentSeat)
928 {
929 case 0:
930 return pDoorsSelection == "DoorsDriver";
931
932 case 1:
933 return pDoorsSelection == "DoorsCoDriver";
934
935 case 2:
936 return pDoorsSelection == "DoorsCargo1";
937
938 case 3:
939 return pDoorsSelection == "DoorsCargo2";
940 }
941
942 return false;
943 }
944
946 {
947 SpawnUniversalParts();
948 SpawnAdditionalItems();
949 FillUpCarFluids();
950
957
964
965
968 }
969}
970
972{
974 {
975 SpawnUniversalParts();
976 SpawnAdditionalItems();
977 FillUpCarFluids();
978
979 GameInventory inventory = GetInventory();
984
991
992
995 }
996}
997
999{
1001 {
1002 SpawnUniversalParts();
1003 SpawnAdditionalItems();
1004 FillUpCarFluids();
1005
1006 GameInventory inventory = GetInventory();
1011
1018
1019
1022 }
1023}
CarSoundCtrl
Car's sound controller list. (native, do not change or extend)
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
ref UniversalTemperatureSourceSettings m_UTSSettings
ref UniversalTemperatureSource m_UTSource
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
class Sedan_02 extends CarScript OnDebugSpawn()
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.