601{
605
607 {
608
609
610 m_EngineStartOK = "CivilianSedan_engine_start_SoundSet";
611 m_EngineStartBattery = "CivilianSedan_engine_failed_start_battery_SoundSet";
612 m_EngineStartPlug = "CivilianSedan_engine_failed_start_sparkplugs_SoundSet";
613 m_EngineStartFuel = "CivilianSedan_engine_failed_start_fuel_SoundSet";
614 m_EngineStop = "CivilianSedan_engine_stop_SoundSet";
615 m_EngineStopFuel = "CivilianSedan_engine_stop_fuel_SoundSet";
616
617 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
618 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
619
620 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
621 m_CarHornLongSoundName = "CivilianSedan_Horn_SoundSet";
622
623 SetEnginePos("0 0.7 1.6");
624 }
625
627 {
631 }
632
634 {
635 super.EEInit();
636
638 {
645
648 }
649 }
650
652 {
653 super.OnEngineStart();
654
656 {
659 }
660 }
661
663 {
664 super.OnEngineStop();
665
667 {
670 }
671 }
672
674 {
676 {
678 {
680 }
681 }
682 }
683
685 {
687 }
688
690 {
691 return 4.5;
692 }
693
695 {
696 switch (posIdx)
697 {
698 case 0:
700 case 1:
702 case 2:
704 case 3:
706 }
707
708 return 0;
709 }
710
711
713 {
715 }
716
717
719 {
721 }
722
724 {
725 if( !super.CanReleaseAttachment( attachment ) )
726 return false;
727
728 string attType = attachment.GetType();
729
731 {
732 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
733 return false;
734 }
735
736 return true;
737 }
738
740 {
742 }
743
745 {
746
747 if (!super.CanDisplayAttachmentCategory(category_name))
748 return false;
749
750
752 if (category_name.
Contains(
"engine"))
753 {
755 return false;
756 }
757
758 return true;
759 }
760
762 {
763 if ( !super.CanDisplayCargo() )
764 return false;
765
767 return false;
768
769 return true;
770 }
771
773 {
775
776 Class.
CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
777 if (!carDoor)
778 {
780 }
781
782 switch (slotType)
783 {
784 case "CivSedanDriverDoors":
785 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
786 break;
787
788 case "CivSedanCoDriverDoors":
789 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
790 break;
791
792 case "CivSedanCargo1Doors":
793 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
794 break;
795
796 case "CivSedanCargo2Doors":
797 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
798 break;
799
800 case "CivSedanTrunk":
801 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
802 break;
803
804 case "CivSedanHood":
805 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
806 break;
807 }
808
810 }
811
812
814 {
815 switch( posIdx )
816 {
817 case 0:
819 return false;
820
821 return true;
822 break;
823
824 case 1:
826 return false;
827
828 return true;
829 break;
830
831 case 2:
833 return false;
834
835 return true;
836 break;
837
838 case 3:
840 return false;
841
842 return true;
843 break;
844 }
845
846 return false;
847 }
848
850 {
851 switch( posIdx )
852 {
853 case 0:
854 return "doors_driver";
855 break;
856 case 1:
857 return "doors_codriver";
858 break;
859 case 2:
860 return "doors_cargo1";
861 break;
862 case 3:
863 return "doors_cargo2";
864 break;
865 }
866
867 return super.GetDoorSelectionNameFromSeatPos(posIdx);
868 }
869
871 {
872 switch( posIdx )
873 {
874 case 0:
875 return "CivSedanDriverDoors";
876 break;
877 case 1:
878 return "CivSedanCoDriverDoors";
879 break;
880 case 2:
881 return "CivSedanCargo1Doors";
882 break;
883 case 3:
884 return "CivSedanCargo2Doors";
885 break;
886 }
887
888 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
889 }
890
891
892
894 {
895 switch (ctrl)
896 {
898 float newValue = 0;
900 {
901 newValue += 0.25;
902 }
903
905 {
906 newValue += 0.25;
907 }
908
910 {
911 newValue += 0.25;
912 }
913
915 {
916 newValue += 0.25;
917 }
918
920 {
921 newValue -= 0.6;
922 }
923
925 {
926 newValue -= 0.6;
927 }
928
930 break;
931 }
932
933 return super.OnSound(ctrl, oldValue);
934 }
935
937 {
938 switch (selection)
939 {
940 case "doors_driver":
941 return "DoorsDriver";
942 case "doors_codriver":
943 return "DoorsCoDriver";
944 case "doors_cargo1":
945 return "DoorsCargo1";
946 case "doors_cargo2":
947 return "DoorsCargo2";
948 case "doors_hood":
949 return "DoorsHood";
950 case "doors_trunk":
951 return "DoorsTrunk";
952 }
953
954 return "";
955 }
956
958 {
959 return false;
960 }
961
963 {
964 return false;
965 }
966
968 {
969 switch (currentSeat)
970 {
971 case 0:
972 return nextSeat == 1;
973
974 case 1:
975 return nextSeat == 0;
976
977 case 2:
978 return nextSeat == 3;
979
980 case 3:
981 return nextSeat == 2;
982 }
983
984 return false;
985 }
986
988 {
989 switch (pCurrentSeat)
990 {
991 case 0:
992 return pDoorsSelection == "DoorsDriver";
993
994 case 1:
995 return pDoorsSelection == "DoorsCoDriver";
996
997 case 2:
998 return pDoorsSelection == "DoorsCargo1";
999
1000 case 3:
1001 return pDoorsSelection == "DoorsCargo2";
1002 }
1003
1004 return false;
1005 }
1006
1008 {
1009 SpawnUniversalParts();
1010 SpawnAdditionalItems();
1011 FillUpCarFluids();
1012
1018
1025
1026
1029 }
1030
1032 {
1033 return 1.5;
1034 }
1035}
1036
1038{
1040 {
1041 SpawnUniversalParts();
1042 SpawnAdditionalItems();
1043 FillUpCarFluids();
1044
1045 GameInventory inventory = GetInventory();
1050
1057
1058
1061 }
1062}
1063
1065{
1067 {
1068 SpawnUniversalParts();
1069 SpawnAdditionalItems();
1070 FillUpCarFluids();
1071
1072 GameInventory inventory = GetInventory();
1077
1084
1085
1088 }
1089}
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.