561{
565
567 {
568 m_dmgContactCoef = 0.0790;
569
570 m_EngineStartOK = "Sedan_02_engine_start_SoundSet";
571 m_EngineStartBattery = "Sedan_02_engine_failed_start_battery_SoundSet";
572 m_EngineStartPlug = "Sedan_02_engine_failed_start_sparkplugs_SoundSet";
573 m_EngineStartFuel = "Sedan_02_engine_failed_start_fuel_SoundSet";
574 m_EngineStop = "Sedan_02_engine_stop_SoundSet";
575 m_EngineStopFuel = "Sedan_02_engine_stop_fuel_SoundSet";
576
577 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
578 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
579
580 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
581 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
582
583 SetEnginePos("0 0.7 -1.7");
584 }
585
587 {
591 }
592
594 {
595 super.EEInit();
596
598 {
605
608 }
609 }
610
612 {
613 super.OnEngineStart();
614
616 {
619 }
620 }
621
623 {
624 super.OnEngineStop();
625
627 {
630 }
631 }
632
634 {
636 {
638 {
640 }
641 }
642 }
643
645 {
647 }
648
650 {
651 switch (posIdx)
652 {
653 case 0:
655 case 1:
657 case 2:
659 case 3:
661 }
662
663 return 0;
664 }
665
666
668 {
670 }
671
672
674 {
676 }
677
679 {
680 if (!super.CanReleaseAttachment(attachment))
681 {
682 return false;
683 }
684
685 string attType = attachment.GetType();
686 switch (attType)
687 {
688 case "CarBattery":
690 {
691 return false;
692 }
693 break;
694
695 case "SparkPlug":
697 {
698 return false;
699 }
700 break;
701
702 case "CarRadiator":
704 {
705 return false;
706 }
707 break;
708 }
709
710 return true;
711 }
712
714 {
716 }
717
719 {
720 if ( !super.CanDisplayAttachmentCategory(category_name))
721 {
722 return false;
723 }
724
726 if (category_name.
Contains(
"engine"))
727 {
729 {
730 return false;
731 }
732 }
733
734 if (category_name.
Contains(
"trunk"))
735 {
737 {
738 return false;
739 }
740 }
741
742 return true;
743 }
744
746 {
747 if ( !super.CanDisplayCargo() )
748 return false;
749
751 return false;
752
753 return true;
754 }
755
757 {
759
760 Class.
CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
761 if (!carDoor)
762 {
764 }
765
766 switch (slotType)
767 {
768 case "Sedan_02_Door_1_1":
769 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
770
771 case "Sedan_02_Door_2_1":
772 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
773
774 case "Sedan_02_Door_1_2":
775 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
776
777 case "Sedan_02_Door_2_2":
778 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
779
780 case "Sedan_02_Hood":
781 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
782
783 case "Sedan_02_Trunk":
784 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
785 }
786
788 }
789
790
792 {
793 switch( posIdx )
794 {
795 case 0:
797 return false;
798
799 return true;
800 break;
801
802 case 1:
804 return false;
805
806 return true;
807 break;
808
809 case 2:
811 return false;
812
813 return true;
814 break;
815
816 case 3:
818 return false;
819
820 return true;
821 break;
822 }
823
824 return false;
825 }
826
828 {
829 switch( posIdx )
830 {
831 case 0:
832 return "doors_driver";
833 break;
834 case 1:
835 return "doors_codriver";
836 break;
837 case 2:
838 return "doors_cargo1";
839 break;
840 case 3:
841 return "doors_cargo2";
842 break;
843 }
844
845 return super.GetDoorSelectionNameFromSeatPos(posIdx);
846 }
847
849 {
850 switch( posIdx )
851 {
852 case 0:
853 return "Sedan_02_Door_1_1";
854 break;
855 case 1:
856 return "Sedan_02_Door_2_1";
857 break;
858 case 2:
859 return "Sedan_02_Door_1_2";
860 break;
861 case 3:
862 return "Sedan_02_Door_2_2";
863 break;
864 }
865
866 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
867 }
868
870 {
871 switch ( ctrl )
872 {
874 float newValue = 0;
876 {
877 newValue += 0.25;
878 }
879
881 {
882 newValue += 0.25;
883 }
884
886 {
887 newValue += 0.25;
888 }
889
891 {
892 newValue += 0.25;
893 }
894
896 break;
897 }
898
899 return super.OnSound(ctrl, oldValue);
900 }
901
903 {
904 switch( selection )
905 {
906 case "doors_driver":
907 return "DoorsDriver";
908 case "doors_codriver":
909 return "DoorsCoDriver";
910 case "doors_cargo1":
911 return "DoorsCargo1";
912 case "doors_cargo2":
913 return "DoorsCargo2";
914 case "doors_hood":
915 return "DoorsHood";
916 case "doors_trunk":
917 return "DoorsTrunk";
918 }
919
920 return "";
921 }
922
923
925 {
926 return false;
927 }
928
930 {
931 return false;
932 }
933
935 {
936 switch (currentSeat)
937 {
938 case 0:
939 return nextSeat == 1;
940
941 case 1:
942 return nextSeat == 0;
943
944 case 2:
945 return nextSeat == 3;
946
947 case 3:
948 return nextSeat == 2;
949 }
950
951 return false;
952 }
953
955 {
956 switch (pCurrentSeat)
957 {
958 case 0:
959 return pDoorsSelection == "DoorsDriver";
960
961 case 1:
962 return pDoorsSelection == "DoorsCoDriver";
963
964 case 2:
965 return pDoorsSelection == "DoorsCargo1";
966
967 case 3:
968 return pDoorsSelection == "DoorsCargo2";
969 }
970
971 return false;
972 }
973
975 {
976 SpawnUniversalParts();
977 SpawnAdditionalItems();
978 FillUpCarFluids();
979
986
993
994
997 }
998}
999
1001{
1003 {
1004 SpawnUniversalParts();
1005 SpawnAdditionalItems();
1006 FillUpCarFluids();
1007
1008 GameInventory inventory = GetInventory();
1013
1020
1021
1024 }
1025}
1026
1027class Sedan_02_Grey
extends Sedan_02
1028{
1030 {
1031 SpawnUniversalParts();
1032 SpawnAdditionalItems();
1033 FillUpCarFluids();
1034
1035 GameInventory inventory = GetInventory();
1040
1047
1048
1051 }
1052}
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.