628{
632
634 {
635 m_dmgContactCoef = 0.0790;
636
637 m_EngineStartOK = "Sedan_02_engine_start_SoundSet";
638 m_EngineStartBattery = "Sedan_02_engine_failed_start_battery_SoundSet";
639 m_EngineStartPlug = "Sedan_02_engine_failed_start_sparkplugs_SoundSet";
640 m_EngineStartFuel = "Sedan_02_engine_failed_start_fuel_SoundSet";
641 m_EngineStop = "Sedan_02_engine_stop_SoundSet";
642 m_EngineStopFuel = "Sedan_02_engine_stop_fuel_SoundSet";
643
644 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
645 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
646
647 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
648 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
649
650 SetEnginePos("0 0.7 -1.7");
651 }
652
654 {
658 }
659
661 {
662 super.EEInit();
663
665 {
672
675 }
676 }
677
679 {
680 super.OnEngineStart();
681
683 {
686 }
687 }
688
690 {
691 super.OnEngineStop();
692
694 {
697 }
698 }
699
701 {
703 {
705 {
707 }
708 }
709 }
710
712 {
714 }
715
717 {
718 switch (posIdx)
719 {
720 case 0:
722 case 1:
724 case 2:
726 case 3:
728 }
729
730 return 0;
731 }
732
733
735 {
737 }
738
739
741 {
743 }
744
746 {
747 if (!super.CanReleaseAttachment(attachment))
748 {
749 return false;
750 }
751
752 string attType = attachment.GetType();
753 switch (attType)
754 {
755 case "CarBattery":
757 {
758 return false;
759 }
760 break;
761
762 case "SparkPlug":
764 {
765 return false;
766 }
767 break;
768
769 case "CarRadiator":
771 {
772 return false;
773 }
774 break;
775 }
776
777 return true;
778 }
779
781 {
783 }
784
786 {
787 if ( !super.CanDisplayAttachmentCategory(category_name))
788 {
789 return false;
790 }
791
793 if (category_name.
Contains(
"engine"))
794 {
796 {
797 return false;
798 }
799 }
800
801 if (category_name.
Contains(
"trunk"))
802 {
804 {
805 return false;
806 }
807 }
808
809 return true;
810 }
811
813 {
814 if ( !super.CanDisplayCargo() )
815 return false;
816
818 return false;
819
820 return true;
821 }
822
824 {
826
827 Class.
CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
828 if (!carDoor)
829 {
831 }
832
833 switch (slotType)
834 {
835 case "Sedan_02_Door_1_1":
836 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
837
838 case "Sedan_02_Door_2_1":
839 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
840
841 case "Sedan_02_Door_1_2":
842 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
843
844 case "Sedan_02_Door_2_2":
845 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
846
847 case "Sedan_02_Hood":
848 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
849
850 case "Sedan_02_Trunk":
851 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
852 }
853
855 }
856
857
859 {
860 switch( posIdx )
861 {
862 case 0:
864 return false;
865
866 return true;
867 break;
868
869 case 1:
871 return false;
872
873 return true;
874 break;
875
876 case 2:
878 return false;
879
880 return true;
881 break;
882
883 case 3:
885 return false;
886
887 return true;
888 break;
889 }
890
891 return false;
892 }
893
895 {
896 switch( posIdx )
897 {
898 case 0:
899 return "doors_driver";
900 break;
901 case 1:
902 return "doors_codriver";
903 break;
904 case 2:
905 return "doors_cargo1";
906 break;
907 case 3:
908 return "doors_cargo2";
909 break;
910 }
911
912 return super.GetDoorSelectionNameFromSeatPos(posIdx);
913 }
914
916 {
917 switch( posIdx )
918 {
919 case 0:
920 return "Sedan_02_Door_1_1";
921 break;
922 case 1:
923 return "Sedan_02_Door_2_1";
924 break;
925 case 2:
926 return "Sedan_02_Door_1_2";
927 break;
928 case 3:
929 return "Sedan_02_Door_2_2";
930 break;
931 }
932
933 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
934 }
935
937 {
938 switch ( ctrl )
939 {
941 float newValue = 0;
943 {
944 newValue += 0.25;
945 }
946
948 {
949 newValue += 0.25;
950 }
951
953 {
954 newValue += 0.25;
955 }
956
958 {
959 newValue += 0.25;
960 }
961
963 break;
964 }
965
966 return super.OnSound(ctrl, oldValue);
967 }
968
970 {
971 switch( selection )
972 {
973 case "doors_driver":
974 return "DoorsDriver";
975 case "doors_codriver":
976 return "DoorsCoDriver";
977 case "doors_cargo1":
978 return "DoorsCargo1";
979 case "doors_cargo2":
980 return "DoorsCargo2";
981 case "doors_hood":
982 return "DoorsHood";
983 case "doors_trunk":
984 return "DoorsTrunk";
985 }
986
987 return "";
988 }
989
990
992 {
993 return false;
994 }
995
997 {
998 return false;
999 }
1000
1002 {
1003 switch (currentSeat)
1004 {
1005 case 0:
1006 return nextSeat == 1;
1007
1008 case 1:
1009 return nextSeat == 0;
1010
1011 case 2:
1012 return nextSeat == 3;
1013
1014 case 3:
1015 return nextSeat == 2;
1016 }
1017
1018 return false;
1019 }
1020
1022 {
1023 switch (pCurrentSeat)
1024 {
1025 case 0:
1026 return pDoorsSelection == "DoorsDriver";
1027
1028 case 1:
1029 return pDoorsSelection == "DoorsCoDriver";
1030
1031 case 2:
1032 return pDoorsSelection == "DoorsCargo1";
1033
1034 case 3:
1035 return pDoorsSelection == "DoorsCargo2";
1036 }
1037
1038 return false;
1039 }
1040
1042 {
1043 SpawnUniversalParts();
1044 SpawnAdditionalItems();
1045 FillUpCarFluids();
1046
1053
1060
1061
1064 }
1065}
1066
1068{
1070 {
1071 SpawnUniversalParts();
1072 SpawnAdditionalItems();
1073 FillUpCarFluids();
1074
1075 GameInventory inventory = GetInventory();
1080
1087
1088
1091 }
1092}
1093
1094class Sedan_02_Grey
extends Sedan_02
1095{
1097 {
1098 SpawnUniversalParts();
1099 SpawnAdditionalItems();
1100 FillUpCarFluids();
1101
1102 GameInventory inventory = GetInventory();
1107
1114
1115
1118 }
1119}
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.