552{
556
558 {
559
560
561 m_EngineStartOK = "CivilianSedan_engine_start_SoundSet";
562 m_EngineStartBattery = "CivilianSedan_engine_failed_start_battery_SoundSet";
563 m_EngineStartPlug = "CivilianSedan_engine_failed_start_sparkplugs_SoundSet";
564 m_EngineStartFuel = "CivilianSedan_engine_failed_start_fuel_SoundSet";
565 m_EngineStop = "CivilianSedan_engine_stop_SoundSet";
566 m_EngineStopFuel = "CivilianSedan_engine_stop_fuel_SoundSet";
567
568 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
569 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
570
571 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
572 m_CarHornLongSoundName = "CivilianSedan_Horn_SoundSet";
573
574 SetEnginePos("0 0.7 1.6");
575 }
576
578 {
582 }
583
585 {
586 super.EEInit();
587
589 {
596
599 }
600 }
601
603 {
604 super.OnEngineStart();
605
607 {
610 }
611 }
612
614 {
615 super.OnEngineStop();
616
618 {
621 }
622 }
623
625 {
627 {
629 {
631 }
632 }
633 }
634
636 {
638 }
639
641 {
642 return 4.5;
643 }
644
646 {
647 switch (posIdx)
648 {
649 case 0:
651 case 1:
653 case 2:
655 case 3:
657 }
658
659 return 0;
660 }
661
662
664 {
666 }
667
668
670 {
672 }
673
675 {
676 if( !super.CanReleaseAttachment( attachment ) )
677 return false;
678
679 string attType = attachment.GetType();
680
682 {
683 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
684 return false;
685 }
686
687 return true;
688 }
689
691 {
693 }
694
696 {
697
698 if (!super.CanDisplayAttachmentCategory(category_name))
699 return false;
700
701
703 if (category_name.
Contains(
"engine"))
704 {
706 return false;
707 }
708
709 return true;
710 }
711
713 {
714 if ( !super.CanDisplayCargo() )
715 return false;
716
718 return false;
719
720 return true;
721 }
722
724 {
726
727 Class.
CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
728 if (!carDoor)
729 {
731 }
732
733 switch (slotType)
734 {
735 case "CivSedanDriverDoors":
736 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
737 break;
738
739 case "CivSedanCoDriverDoors":
740 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
741 break;
742
743 case "CivSedanCargo1Doors":
744 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
745 break;
746
747 case "CivSedanCargo2Doors":
748 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
749 break;
750
751 case "CivSedanTrunk":
752 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
753 break;
754
755 case "CivSedanHood":
756 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
757 break;
758 }
759
761 }
762
763
765 {
766 switch( posIdx )
767 {
768 case 0:
770 return false;
771
772 return true;
773 break;
774
775 case 1:
777 return false;
778
779 return true;
780 break;
781
782 case 2:
784 return false;
785
786 return true;
787 break;
788
789 case 3:
791 return false;
792
793 return true;
794 break;
795 }
796
797 return false;
798 }
799
801 {
802 switch( posIdx )
803 {
804 case 0:
805 return "doors_driver";
806 break;
807 case 1:
808 return "doors_codriver";
809 break;
810 case 2:
811 return "doors_cargo1";
812 break;
813 case 3:
814 return "doors_cargo2";
815 break;
816 }
817
818 return super.GetDoorSelectionNameFromSeatPos(posIdx);
819 }
820
822 {
823 switch( posIdx )
824 {
825 case 0:
826 return "CivSedanDriverDoors";
827 break;
828 case 1:
829 return "CivSedanCoDriverDoors";
830 break;
831 case 2:
832 return "CivSedanCargo1Doors";
833 break;
834 case 3:
835 return "CivSedanCargo2Doors";
836 break;
837 }
838
839 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
840 }
841
842
843
845 {
846 switch (ctrl)
847 {
849 float newValue = 0;
851 {
852 newValue += 0.25;
853 }
854
856 {
857 newValue += 0.25;
858 }
859
861 {
862 newValue += 0.25;
863 }
864
866 {
867 newValue += 0.25;
868 }
869
871 {
872 newValue -= 0.6;
873 }
874
876 {
877 newValue -= 0.6;
878 }
879
881 break;
882 }
883
884 return super.OnSound(ctrl, oldValue);
885 }
886
888 {
889 switch (selection)
890 {
891 case "doors_driver":
892 return "DoorsDriver";
893 case "doors_codriver":
894 return "DoorsCoDriver";
895 case "doors_cargo1":
896 return "DoorsCargo1";
897 case "doors_cargo2":
898 return "DoorsCargo2";
899 case "doors_hood":
900 return "DoorsHood";
901 case "doors_trunk":
902 return "DoorsTrunk";
903 }
904
905 return "";
906 }
907
909 {
910 return false;
911 }
912
914 {
915 return false;
916 }
917
919 {
920 switch (currentSeat)
921 {
922 case 0:
923 return nextSeat == 1;
924
925 case 1:
926 return nextSeat == 0;
927
928 case 2:
929 return nextSeat == 3;
930
931 case 3:
932 return nextSeat == 2;
933 }
934
935 return false;
936 }
937
939 {
940 switch (pCurrentSeat)
941 {
942 case 0:
943 return pDoorsSelection == "DoorsDriver";
944
945 case 1:
946 return pDoorsSelection == "DoorsCoDriver";
947
948 case 2:
949 return pDoorsSelection == "DoorsCargo1";
950
951 case 3:
952 return pDoorsSelection == "DoorsCargo2";
953 }
954
955 return false;
956 }
957
959 {
960 SpawnUniversalParts();
961 SpawnAdditionalItems();
962 FillUpCarFluids();
963
969
976
977
980 }
981
983 {
984 return 1.5;
985 }
986}
987
989{
991 {
992 SpawnUniversalParts();
993 SpawnAdditionalItems();
994 FillUpCarFluids();
995
996 GameInventory inventory = GetInventory();
1001
1008
1009
1012 }
1013}
1014
1016{
1018 {
1019 SpawnUniversalParts();
1020 SpawnAdditionalItems();
1021 FillUpCarFluids();
1022
1023 GameInventory inventory = GetInventory();
1028
1035
1036
1039 }
1040}
CarSoundCtrl
Car's sound controller list. (native, do not change or extend)
override float GetPushForceCoefficientMultiplier()
class CivilianSedan extends CarScript OnDebugSpawn()
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()
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
override float GetTransportCameraDistance()
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)
ref UniversalTemperatureSourceSettings m_UTSSettings
ref UniversalTemperatureSource m_UTSource
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
override void OnDebugSpawn()
Super root of all classes in Enforce script.
EntityAI CreateInInventory(string type)
creates entity somewhere in inventory
script counterpart to engine's class Inventory
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.