597{
601
603 {
604
605
606 m_EngineStartOK = "offroad_engine_start_SoundSet";
607 m_EngineStartBattery = "offroad_engine_failed_start_battery_SoundSet";
608 m_EngineStartPlug = "offroad_engine_failed_start_sparkplugs_SoundSet";
609 m_EngineStartFuel = "offroad_engine_failed_start_fuel_SoundSet";
610 m_EngineStop = "offroad_engine_stop_SoundSet";
611 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
612
613 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
614 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
615 m_CarSeatShiftInSound = "Offroad_SeatShiftIn_SoundSet";
616 m_CarSeatShiftOutSound = "Offroad_SeatShiftOut_SoundSet";
617
618 m_CarHornShortSoundName = "Offroad_Horn_Short_SoundSet";
619 m_CarHornLongSoundName = "Offroad_Horn_SoundSet";
620
621 SetEnginePos("0 0.7 1.2");
622 }
623
625 {
629 }
630
632 {
633 super.EEInit();
634
636 {
643
646 }
647 }
648
650 {
651 super.OnEngineStart();
652
654 {
657 }
658 }
659
661 {
662 super.OnEngineStop();
663
665 {
668 }
669 }
670
672 {
674 {
676 {
678 }
679 }
680 }
681
683 {
685 }
686
688 {
689 return 3.5;
690 }
691
693 {
694 switch (posIdx)
695 {
696 case 0:
698 case 1:
700 case 2:
702 case 3:
704 }
705
706 return 0;
707
708 }
709
710
712 {
714 }
715
717 {
719 }
720
722 {
723 if (!super.CanReleaseAttachment(attachment))
724 {
725 return false;
726 }
727
729 {
730 string attType = attachment.GetType();
731 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
732 {
733 return false;
734 }
735 }
736
737 return true;
738 }
739
741 {
743 }
744
746 {
747 if (!super.CanDisplayAttachmentCategory(category_name))
748 {
749 return false;
750 }
751
753 if (category_name.
Contains(
"engine"))
754 {
756 {
757 return false;
758 }
759 }
760
761 return true;
762 }
763
765 {
766 if (!super.CanDisplayCargo())
767 {
768 return false;
769 }
770
772 {
773 return false;
774 }
775
776 return true;
777 }
778
780 {
782
783 Class.
CastTo(carDoor, FindAttachmentBySlotName(slotType));
784 if (!carDoor)
785 {
787 }
788
789 switch (slotType)
790 {
791 case "NivaDriverDoors":
792 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
793
794 case "NivaCoDriverDoors":
795 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
796
797 case "NivaHood":
798 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
799
800 case "NivaTrunk":
801 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
802 }
803
805 }
806
808 {
810 switch (posIdx)
811 {
812 case 0:
814 return false;
815 else if (GetAnimationPhase("SeatDriver") > 0.5)
816 return false;
817
818 return true;
819
820 case 1:
822 return false;
823 else if (GetAnimationPhase("SeatCoDriver") > 0.5)
824 return false;
825
826 return true;
827
828 case 2:
830 return false;
831 else if (GetAnimationPhase("SeatDriver") <= 0.5)
832 return false;
833
834 return true;
835
836 case 3:
838 return false;
839 else if (GetAnimationPhase("SeatCoDriver") <= 0.5)
840 return false;
841
842 return true;
843 }
844
845 return false;
846 }
847
849 {
850 switch (posIdx)
851 {
852 case 0:
853 case 2:
854 return "doors_driver";
855 case 1:
856 case 3:
857 return "doors_codriver";
858 }
859
860 return super.GetDoorSelectionNameFromSeatPos(posIdx);
861 }
862
864 {
865 switch (posIdx)
866 {
867 case 0:
868 case 2:
869 return "NivaDriverDoors";
870 case 1:
871 case 3:
872 return "NivaCoDriverDoors";
873 }
874
875 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
876 }
877
878
879
881 {
882 float tempCap = 0.0;
883
884 switch (ctrl)
885 {
887 float newValue = 0;
889 {
890 newValue += 0.5;
891 }
892
894 {
895 newValue += 0.5;
896 }
897
899 {
900 newValue += 0.3;
901 }
902
904 {
905 newValue -= 0.6;
906 }
907
909 {
910 newValue -= 0.2;
911 }
912
914 {
915 newValue -= 0.2;
916 }
917
919 break;
920 }
921
922 return super.OnSound(ctrl, oldValue);
923 }
924
926 {
927 switch (selection)
928 {
929 case "doors_driver":
930 return "DoorsDriver";
931 case "doors_codriver":
932 return "DoorsCoDriver";
933 case "doors_hood":
934 return "DoorsHood";
935 case "doors_trunk":
936 return "DoorsTrunk";
937 case "seatback_driver":
938 return "SeatDriver";
939 case "seatback_codriver":
940 return "SeatCoDriver";
941 }
942
943 return "";
944 }
945
947 {
948 switch (selection)
949 {
950 case "seat_driver":
951 case "seatback_driver":
952 case "seat_cargo1":
953 return "seat_con_1_1";
954 case "seat_codriver":
955 case "seatback_codriver":
956 case "seat_cargo2":
957 return "seat_con_2_1";
958 }
959
960 return "";
961 }
962
964 {
965 switch (selection)
966 {
967 case "seatback_driver":
968 return 0;
969 case "seatback_codriver":
970 return 1;
971 }
972
973 return -1;
974 }
975
977 {
978 return false;
979 }
980
982 {
983 return false;
984 }
985
987 {
988 if (nextSeat == 0 && GetAnimationPhase("SeatDriver") > 0.5)
989 return false;
990
991 if (nextSeat == 1 && GetAnimationPhase("SeatCoDriver") > 0.5)
992 return false;
993
994 switch (currentSeat)
995 {
996 case 0:
997 return nextSeat == 1;
998
999 case 1:
1000 return nextSeat == 0;
1001
1002 case 2:
1003 return nextSeat == 3;
1004
1005 case 3:
1006 return nextSeat == 2;
1007 }
1008
1009 return false;
1010 }
1011
1013 {
1014 switch (pCurrentSeat)
1015 {
1016 case 0:
1017 return pDoorsSelection == "DoorsDriver";
1018
1019 case 1:
1020 return pDoorsSelection == "DoorsCoDriver";
1021
1022 case 2:
1023 return pDoorsSelection == "DoorsDriver";
1024
1025 case 3:
1026 return pDoorsSelection == "DoorsCoDriver";
1027 }
1028
1029 return false;
1030 }
1031
1033 {
1034 switch (pDoorSelection)
1035 {
1036 case "DoorsDriver":
1037 return 0;
1038 case "DoorsCoDriver":
1039 return 1;
1040 }
1041
1042 return -1;
1043 }
1044
1046 {
1047 super.SetActions();
1048
1050 }
1051
1053 {
1054 SpawnUniversalParts();
1055 SpawnAdditionalItems();
1056 FillUpCarFluids();
1057
1063
1068
1069
1072 }
1073}
1074
1076{
1078 {
1079 SpawnUniversalParts();
1080 SpawnAdditionalItems();
1081 FillUpCarFluids();
1082
1083 GameInventory inventory = GetInventory();
1088
1093
1094
1097 }
1098}
1099
1101{
1103 {
1104 SpawnUniversalParts();
1105 SpawnAdditionalItems();
1106 FillUpCarFluids();
1107
1108 GameInventory inventory = GetInventory();
1113
1118
1119
1122 }
1123}
void AddAction(typename actionName)
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 void SetActions()
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
override string GetAnimSourceFromSelection(string selection)
override int GetSeatAnimationType(int posIdx)
override string GetDoorConditionPointFromSelection(string selection)
override float OnSound(CarSoundCtrl ctrl, float oldValue)
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
override void EOnPostSimulate(IEntity other, float timeSlice)
override void OnEngineStop()
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()
class OffroadHatchback extends CarScript OnDebugSpawn()
override int GetSeatIndexFromDoor(string pDoorSelection)
override bool IsVitalTruckBattery()
override string GetDoorSelectionNameFromSeatPos(int posIdx)
override int GetCarDoorsState(string slotType)
override int GetCrewIndex(string selection)
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.