639{
643
645 {
646 m_dmgContactCoef = 0.0790;
647
648 m_EngineStartOK = "Sedan_02_engine_start_SoundSet";
649 m_EngineStartBattery = "Sedan_02_engine_failed_start_battery_SoundSet";
650 m_EngineStartPlug = "Sedan_02_engine_failed_start_sparkplugs_SoundSet";
651 m_EngineStartFuel = "Sedan_02_engine_failed_start_fuel_SoundSet";
652 m_EngineStop = "Sedan_02_engine_stop_SoundSet";
653 m_EngineStopFuel = "Sedan_02_engine_stop_fuel_SoundSet";
654
655 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
656 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
657
658 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
659 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
660
661 SetEnginePos("0 0.7 -1.7");
662 }
663
665 {
669 }
670
672 {
673 super.EEInit();
674
676 {
683
686 }
687 }
688
690 {
691 super.OnEngineStart();
692
694 {
697 }
698 }
699
701 {
702 super.OnEngineStop();
703
705 {
708 }
709 }
710
712 {
714 {
716 {
718 }
719 }
720 }
721
723 {
725 }
726
728 {
729 switch (posIdx)
730 {
731 case 0:
733 case 1:
735 case 2:
737 case 3:
739 }
740
741 return 0;
742 }
743
744
746 {
748 }
749
750
752 {
754 }
755
757 {
758 if (!super.CanReleaseAttachment(attachment))
759 {
760 return false;
761 }
762
763 string attType = attachment.GetType();
764 switch (attType)
765 {
766 case "CarBattery":
768 {
769 return false;
770 }
771 break;
772
773 case "SparkPlug":
775 {
776 return false;
777 }
778 break;
779
780 case "CarRadiator":
782 {
783 return false;
784 }
785 break;
786 }
787
788 return true;
789 }
790
792 {
794 }
795
797 {
798 if ( !super.CanDisplayAttachmentCategory(category_name))
799 {
800 return false;
801 }
802
804 if (category_name.
Contains(
"engine"))
805 {
807 {
808 return false;
809 }
810 }
811
812 if (category_name.
Contains(
"trunk"))
813 {
815 {
816 return false;
817 }
818 }
819
820 return true;
821 }
822
824 {
825 if ( !super.CanDisplayCargo() )
826 return false;
827
829 return false;
830
831 return true;
832 }
833
835 {
837
838 Class.
CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
839 if (!carDoor)
840 {
842 }
843
844 switch (slotType)
845 {
846 case "Sedan_02_Door_1_1":
847 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
848
849 case "Sedan_02_Door_2_1":
850 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
851
852 case "Sedan_02_Door_1_2":
853 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
854
855 case "Sedan_02_Door_2_2":
856 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
857
858 case "Sedan_02_Hood":
859 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
860
861 case "Sedan_02_Trunk":
862 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
863 }
864
866 }
867
868
870 {
871 switch( posIdx )
872 {
873 case 0:
875 return false;
876
877 return true;
878 break;
879
880 case 1:
882 return false;
883
884 return true;
885 break;
886
887 case 2:
889 return false;
890
891 return true;
892 break;
893
894 case 3:
896 return false;
897
898 return true;
899 break;
900 }
901
902 return false;
903 }
904
906 {
907 switch( posIdx )
908 {
909 case 0:
910 return "doors_driver";
911 break;
912 case 1:
913 return "doors_codriver";
914 break;
915 case 2:
916 return "doors_cargo1";
917 break;
918 case 3:
919 return "doors_cargo2";
920 break;
921 }
922
923 return super.GetDoorSelectionNameFromSeatPos(posIdx);
924 }
925
927 {
928 switch( posIdx )
929 {
930 case 0:
931 return "Sedan_02_Door_1_1";
932 break;
933 case 1:
934 return "Sedan_02_Door_2_1";
935 break;
936 case 2:
937 return "Sedan_02_Door_1_2";
938 break;
939 case 3:
940 return "Sedan_02_Door_2_2";
941 break;
942 }
943
944 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
945 }
946
948 {
949 switch ( ctrl )
950 {
952 float newValue = 0;
954 {
955 newValue += 0.25;
956 }
957
959 {
960 newValue += 0.25;
961 }
962
964 {
965 newValue += 0.25;
966 }
967
969 {
970 newValue += 0.25;
971 }
972
974 break;
975 }
976
977 return super.OnSound(ctrl, oldValue);
978 }
979
981 {
982 switch( selection )
983 {
984 case "doors_driver":
985 return "DoorsDriver";
986 case "doors_codriver":
987 return "DoorsCoDriver";
988 case "doors_cargo1":
989 return "DoorsCargo1";
990 case "doors_cargo2":
991 return "DoorsCargo2";
992 case "doors_hood":
993 return "DoorsHood";
994 case "doors_trunk":
995 return "DoorsTrunk";
996 }
997
998 return "";
999 }
1000
1001
1003 {
1004 return false;
1005 }
1006
1008 {
1009 return false;
1010 }
1011
1013 {
1014 switch (currentSeat)
1015 {
1016 case 0:
1017 return nextSeat == 1;
1018
1019 case 1:
1020 return nextSeat == 0;
1021
1022 case 2:
1023 return nextSeat == 3;
1024
1025 case 3:
1026 return nextSeat == 2;
1027 }
1028
1029 return false;
1030 }
1031
1033 {
1034 switch (pCurrentSeat)
1035 {
1036 case 0:
1037 return pDoorsSelection == "DoorsDriver";
1038
1039 case 1:
1040 return pDoorsSelection == "DoorsCoDriver";
1041
1042 case 2:
1043 return pDoorsSelection == "DoorsCargo1";
1044
1045 case 3:
1046 return pDoorsSelection == "DoorsCargo2";
1047 }
1048
1049 return false;
1050 }
1051
1053 {
1054 SpawnUniversalParts();
1055 SpawnAdditionalItems();
1056 FillUpCarFluids();
1057
1064
1071
1072
1075 }
1076}
1077
1079{
1081 {
1082 SpawnUniversalParts();
1083 SpawnAdditionalItems();
1084 FillUpCarFluids();
1085
1086 GameInventory inventory = GetInventory();
1091
1098
1099
1102 }
1103}
1104
1105class Sedan_02_Grey
extends Sedan_02
1106{
1108 {
1109 SpawnUniversalParts();
1110 SpawnAdditionalItems();
1111 FillUpCarFluids();
1112
1113 GameInventory inventory = GetInventory();
1118
1125
1126
1129 }
1130}
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.