596{
600
602 {
603 m_dmgContactCoef = 0.0790;
604
605 m_EngineStartOK = "Sedan_02_engine_start_SoundSet";
606 m_EngineStartBattery = "Sedan_02_engine_failed_start_battery_SoundSet";
607 m_EngineStartPlug = "Sedan_02_engine_failed_start_sparkplugs_SoundSet";
608 m_EngineStartFuel = "Sedan_02_engine_failed_start_fuel_SoundSet";
609 m_EngineStop = "Sedan_02_engine_stop_SoundSet";
610 m_EngineStopFuel = "Sedan_02_engine_stop_fuel_SoundSet";
611
612 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
613 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
614
615 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
616 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
617
618 SetEnginePos("0 0.7 -1.7");
619 }
620
622 {
626 }
627
629 {
630 super.EEInit();
631
633 {
640
643 }
644 }
645
647 {
648 super.OnEngineStart();
649
651 {
654 }
655 }
656
658 {
659 super.OnEngineStop();
660
662 {
665 }
666 }
667
669 {
671 {
673 {
675 }
676 }
677 }
678
680 {
682 }
683
685 {
686 switch (posIdx)
687 {
688 case 0:
690 case 1:
692 case 2:
694 case 3:
696 }
697
698 return 0;
699 }
700
701
703 {
705 }
706
707
709 {
711 }
712
714 {
715 if (!super.CanReleaseAttachment(attachment))
716 {
717 return false;
718 }
719
720 string attType = attachment.GetType();
721 switch (attType)
722 {
723 case "CarBattery":
725 {
726 return false;
727 }
728 break;
729
730 case "SparkPlug":
732 {
733 return false;
734 }
735 break;
736
737 case "CarRadiator":
739 {
740 return false;
741 }
742 break;
743 }
744
745 return true;
746 }
747
749 {
751 }
752
754 {
755 if ( !super.CanDisplayAttachmentCategory(category_name))
756 {
757 return false;
758 }
759
761 if (category_name.
Contains(
"engine"))
762 {
764 {
765 return false;
766 }
767 }
768
769 if (category_name.
Contains(
"trunk"))
770 {
772 {
773 return false;
774 }
775 }
776
777 return true;
778 }
779
781 {
782 if ( !super.CanDisplayCargo() )
783 return false;
784
786 return false;
787
788 return true;
789 }
790
792 {
794
795 Class.
CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
796 if (!carDoor)
797 {
799 }
800
801 switch (slotType)
802 {
803 case "Sedan_02_Door_1_1":
804 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
805
806 case "Sedan_02_Door_2_1":
807 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
808
809 case "Sedan_02_Door_1_2":
810 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
811
812 case "Sedan_02_Door_2_2":
813 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
814
815 case "Sedan_02_Hood":
816 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
817
818 case "Sedan_02_Trunk":
819 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
820 }
821
823 }
824
825
827 {
828 switch( posIdx )
829 {
830 case 0:
832 return false;
833
834 return true;
835 break;
836
837 case 1:
839 return false;
840
841 return true;
842 break;
843
844 case 2:
846 return false;
847
848 return true;
849 break;
850
851 case 3:
853 return false;
854
855 return true;
856 break;
857 }
858
859 return false;
860 }
861
863 {
864 switch( posIdx )
865 {
866 case 0:
867 return "doors_driver";
868 break;
869 case 1:
870 return "doors_codriver";
871 break;
872 case 2:
873 return "doors_cargo1";
874 break;
875 case 3:
876 return "doors_cargo2";
877 break;
878 }
879
880 return super.GetDoorSelectionNameFromSeatPos(posIdx);
881 }
882
884 {
885 switch( posIdx )
886 {
887 case 0:
888 return "Sedan_02_Door_1_1";
889 break;
890 case 1:
891 return "Sedan_02_Door_2_1";
892 break;
893 case 2:
894 return "Sedan_02_Door_1_2";
895 break;
896 case 3:
897 return "Sedan_02_Door_2_2";
898 break;
899 }
900
901 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
902 }
903
905 {
906 switch ( ctrl )
907 {
909 float newValue = 0;
911 {
912 newValue += 0.25;
913 }
914
916 {
917 newValue += 0.25;
918 }
919
921 {
922 newValue += 0.25;
923 }
924
926 {
927 newValue += 0.25;
928 }
929
931 break;
932 }
933
934 return super.OnSound(ctrl, oldValue);
935 }
936
938 {
939 switch( selection )
940 {
941 case "doors_driver":
942 return "DoorsDriver";
943 case "doors_codriver":
944 return "DoorsCoDriver";
945 case "doors_cargo1":
946 return "DoorsCargo1";
947 case "doors_cargo2":
948 return "DoorsCargo2";
949 case "doors_hood":
950 return "DoorsHood";
951 case "doors_trunk":
952 return "DoorsTrunk";
953 }
954
955 return "";
956 }
957
958
960 {
961 return false;
962 }
963
965 {
966 return false;
967 }
968
970 {
971 switch (currentSeat)
972 {
973 case 0:
974 return nextSeat == 1;
975
976 case 1:
977 return nextSeat == 0;
978
979 case 2:
980 return nextSeat == 3;
981
982 case 3:
983 return nextSeat == 2;
984 }
985
986 return false;
987 }
988
990 {
991 switch (pCurrentSeat)
992 {
993 case 0:
994 return pDoorsSelection == "DoorsDriver";
995
996 case 1:
997 return pDoorsSelection == "DoorsCoDriver";
998
999 case 2:
1000 return pDoorsSelection == "DoorsCargo1";
1001
1002 case 3:
1003 return pDoorsSelection == "DoorsCargo2";
1004 }
1005
1006 return false;
1007 }
1008
1010 {
1011 SpawnUniversalParts();
1012 SpawnAdditionalItems();
1013 FillUpCarFluids();
1014
1021
1028
1029
1032 }
1033}
1034
1036{
1038 {
1039 SpawnUniversalParts();
1040 SpawnAdditionalItems();
1041 FillUpCarFluids();
1042
1043 GameInventory inventory = GetInventory();
1048
1055
1056
1059 }
1060}
1061
1062class Sedan_02_Grey
extends Sedan_02
1063{
1065 {
1066 SpawnUniversalParts();
1067 SpawnAdditionalItems();
1068 FillUpCarFluids();
1069
1070 GameInventory inventory = GetInventory();
1075
1082
1083
1086 }
1087}
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.