674{
678
680 {
681 m_dmgContactCoef = 0.0790;
682
683 m_EngineStartOK = "Sedan_02_engine_start_SoundSet";
684 m_EngineStartBattery = "Sedan_02_engine_failed_start_battery_SoundSet";
685 m_EngineStartPlug = "Sedan_02_engine_failed_start_sparkplugs_SoundSet";
686 m_EngineStartFuel = "Sedan_02_engine_failed_start_fuel_SoundSet";
687 m_EngineStop = "Sedan_02_engine_stop_SoundSet";
688 m_EngineStopFuel = "Sedan_02_engine_stop_fuel_SoundSet";
689
690 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
691 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
692
693 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
694 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
695
696 SetEnginePos("0 0.7 -1.7");
697 }
698
700 {
704 }
705
707 {
708 super.EEInit();
709
711 {
718
721 }
722 }
723
725 {
726 super.OnEngineStart();
727
729 {
732 }
733 }
734
736 {
737 super.OnEngineStop();
738
740 {
743 }
744 }
745
747 {
749 {
751 {
753 }
754 }
755 }
756
758 {
760 }
761
763 {
764 switch (posIdx)
765 {
766 case 0:
768 case 1:
770 case 2:
772 case 3:
774 }
775
776 return 0;
777 }
778
779
781 {
783 }
784
785
787 {
789 }
790
792 {
793 if (!super.CanReleaseAttachment(attachment))
794 {
795 return false;
796 }
797
798 string attType = attachment.GetType();
799 switch (attType)
800 {
801 case "CarBattery":
803 {
804 return false;
805 }
806 break;
807
808 case "SparkPlug":
810 {
811 return false;
812 }
813 break;
814
815 case "CarRadiator":
817 {
818 return false;
819 }
820 break;
821 }
822
823 return true;
824 }
825
827 {
829 }
830
832 {
833 if ( !super.CanDisplayAttachmentCategory(category_name))
834 {
835 return false;
836 }
837
839 if (category_name.
Contains(
"engine"))
840 {
842 {
843 return false;
844 }
845 }
846
847 if (category_name.
Contains(
"trunk"))
848 {
850 {
851 return false;
852 }
853 }
854
855 return true;
856 }
857
859 {
860 if ( !super.CanDisplayCargo() )
861 return false;
862
864 return false;
865
866 return true;
867 }
868
870 {
872
873 Class.
CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
874 if (!carDoor)
875 {
877 }
878
879 switch (slotType)
880 {
881 case "Sedan_02_Door_1_1":
882 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
883
884 case "Sedan_02_Door_2_1":
885 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
886
887 case "Sedan_02_Door_1_2":
888 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
889
890 case "Sedan_02_Door_2_2":
891 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
892
893 case "Sedan_02_Hood":
894 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
895
896 case "Sedan_02_Trunk":
897 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
898 }
899
901 }
902
903
905 {
906 switch( posIdx )
907 {
908 case 0:
910 return false;
911
912 return true;
913 break;
914
915 case 1:
917 return false;
918
919 return true;
920 break;
921
922 case 2:
924 return false;
925
926 return true;
927 break;
928
929 case 3:
931 return false;
932
933 return true;
934 break;
935 }
936
937 return false;
938 }
939
941 {
942 switch( posIdx )
943 {
944 case 0:
945 return "doors_driver";
946 break;
947 case 1:
948 return "doors_codriver";
949 break;
950 case 2:
951 return "doors_cargo1";
952 break;
953 case 3:
954 return "doors_cargo2";
955 break;
956 }
957
958 return super.GetDoorSelectionNameFromSeatPos(posIdx);
959 }
960
962 {
963 switch( posIdx )
964 {
965 case 0:
966 return "Sedan_02_Door_1_1";
967 break;
968 case 1:
969 return "Sedan_02_Door_2_1";
970 break;
971 case 2:
972 return "Sedan_02_Door_1_2";
973 break;
974 case 3:
975 return "Sedan_02_Door_2_2";
976 break;
977 }
978
979 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
980 }
981
983 {
984 switch ( ctrl )
985 {
987 float newValue = 0;
989 {
990 newValue += 0.25;
991 }
992
994 {
995 newValue += 0.25;
996 }
997
999 {
1000 newValue += 0.25;
1001 }
1002
1004 {
1005 newValue += 0.25;
1006 }
1007
1009 break;
1010 }
1011
1012 return super.OnSound(ctrl, oldValue);
1013 }
1014
1016 {
1017 switch( selection )
1018 {
1019 case "doors_driver":
1020 return "DoorsDriver";
1021 case "doors_codriver":
1022 return "DoorsCoDriver";
1023 case "doors_cargo1":
1024 return "DoorsCargo1";
1025 case "doors_cargo2":
1026 return "DoorsCargo2";
1027 case "doors_hood":
1028 return "DoorsHood";
1029 case "doors_trunk":
1030 return "DoorsTrunk";
1031 }
1032
1033 return "";
1034 }
1035
1036
1038 {
1039 return false;
1040 }
1041
1043 {
1044 return false;
1045 }
1046
1048 {
1049 switch (currentSeat)
1050 {
1051 case 0:
1052 return nextSeat == 1;
1053
1054 case 1:
1055 return nextSeat == 0;
1056
1057 case 2:
1058 return nextSeat == 3;
1059
1060 case 3:
1061 return nextSeat == 2;
1062 }
1063
1064 return false;
1065 }
1066
1068 {
1069 switch (pCurrentSeat)
1070 {
1071 case 0:
1072 return pDoorsSelection == "DoorsDriver";
1073
1074 case 1:
1075 return pDoorsSelection == "DoorsCoDriver";
1076
1077 case 2:
1078 return pDoorsSelection == "DoorsCargo1";
1079
1080 case 3:
1081 return pDoorsSelection == "DoorsCargo2";
1082 }
1083
1084 return false;
1085 }
1086
1088 {
1089 SpawnUniversalParts();
1090 SpawnAdditionalItems();
1091 FillUpCarFluids();
1092
1099
1106
1107
1110 }
1111}
1112
1114{
1116 {
1117 SpawnUniversalParts();
1118 SpawnAdditionalItems();
1119 FillUpCarFluids();
1120
1121 GameInventory inventory = GetInventory();
1126
1133
1134
1137 }
1138}
1139
1140class Sedan_02_Grey
extends Sedan_02
1141{
1143 {
1144 SpawnUniversalParts();
1145 SpawnAdditionalItems();
1146 FillUpCarFluids();
1147
1148 GameInventory inventory = GetInventory();
1153
1160
1161
1164 }
1165}
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.