602{
606
608 {
609
610
611 m_EngineStartOK = "offroad_engine_start_SoundSet";
612 m_EngineStartBattery = "offroad_engine_failed_start_battery_SoundSet";
613 m_EngineStartPlug = "offroad_engine_failed_start_sparkplugs_SoundSet";
614 m_EngineStartFuel = "offroad_engine_failed_start_fuel_SoundSet";
615 m_EngineStop = "offroad_engine_stop_SoundSet";
616 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
617
618 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
619 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
620 m_CarSeatShiftInSound = "Offroad_SeatShiftIn_SoundSet";
621 m_CarSeatShiftOutSound = "Offroad_SeatShiftOut_SoundSet";
622
623 m_CarHornShortSoundName = "Offroad_Horn_Short_SoundSet";
624 m_CarHornLongSoundName = "Offroad_Horn_SoundSet";
625
626 SetEnginePos("0 0.7 1.2");
627 }
628
630 {
634 }
635
637 {
638 super.EEInit();
639
641 {
648
651 }
652 }
653
655 {
656 super.OnEngineStart();
657
659 {
662 }
663 }
664
666 {
667 super.OnEngineStop();
668
670 {
673 }
674 }
675
677 {
679 {
681 {
683 }
684 }
685 }
686
688 {
690 }
691
693 {
694 return 3.5;
695 }
696
698 {
699 switch (posIdx)
700 {
701 case 0:
703 case 1:
705 case 2:
707 case 3:
709 }
710
711 return 0;
712
713 }
714
715
717 {
719 }
720
722 {
724 }
725
727 {
728 if (!super.CanReleaseAttachment(attachment))
729 {
730 return false;
731 }
732
734 {
735 string attType = attachment.GetType();
736 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
737 {
738 return false;
739 }
740 }
741
742 return true;
743 }
744
746 {
748 }
749
751 {
752 if (!super.CanDisplayAttachmentCategory(category_name))
753 {
754 return false;
755 }
756
758 if (category_name.
Contains(
"engine"))
759 {
761 {
762 return false;
763 }
764 }
765
766 return true;
767 }
768
770 {
771 if (!super.CanDisplayCargo())
772 {
773 return false;
774 }
775
777 {
778 return false;
779 }
780
781 return true;
782 }
783
785 {
787
788 Class.
CastTo(carDoor, FindAttachmentBySlotName(slotType));
789 if (!carDoor)
790 {
792 }
793
794 switch (slotType)
795 {
796 case "NivaDriverDoors":
797 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
798
799 case "NivaCoDriverDoors":
800 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
801
802 case "NivaHood":
803 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
804
805 case "NivaTrunk":
806 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
807 }
808
810 }
811
813 {
815 switch (posIdx)
816 {
817 case 0:
819 return false;
820 else if (GetAnimationPhase("SeatDriver") > 0.5)
821 return false;
822
823 return true;
824
825 case 1:
827 return false;
828 else if (GetAnimationPhase("SeatCoDriver") > 0.5)
829 return false;
830
831 return true;
832
833 case 2:
835 return false;
836 else if (GetAnimationPhase("SeatDriver") <= 0.5)
837 return false;
838
839 return true;
840
841 case 3:
843 return false;
844 else if (GetAnimationPhase("SeatCoDriver") <= 0.5)
845 return false;
846
847 return true;
848 }
849
850 return false;
851 }
852
854 {
855 switch (posIdx)
856 {
857 case 0:
858 case 2:
859 return "doors_driver";
860 case 1:
861 case 3:
862 return "doors_codriver";
863 }
864
865 return super.GetDoorSelectionNameFromSeatPos(posIdx);
866 }
867
869 {
870 switch (posIdx)
871 {
872 case 0:
873 case 2:
874 return "NivaDriverDoors";
875 case 1:
876 case 3:
877 return "NivaCoDriverDoors";
878 }
879
880 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
881 }
882
883
884
886 {
887 float tempCap = 0.0;
888
889 switch (ctrl)
890 {
892 float newValue = 0;
894 {
895 newValue += 0.5;
896 }
897
899 {
900 newValue += 0.5;
901 }
902
904 {
905 newValue += 0.3;
906 }
907
909 {
910 newValue -= 0.6;
911 }
912
914 {
915 newValue -= 0.2;
916 }
917
919 {
920 newValue -= 0.2;
921 }
922
924 break;
925 }
926
927 return super.OnSound(ctrl, oldValue);
928 }
929
931 {
932 switch (selection)
933 {
934 case "doors_driver":
935 return "DoorsDriver";
936 case "doors_codriver":
937 return "DoorsCoDriver";
938 case "doors_hood":
939 return "DoorsHood";
940 case "doors_trunk":
941 return "DoorsTrunk";
942 case "seatback_driver":
943 return "SeatDriver";
944 case "seatback_codriver":
945 return "SeatCoDriver";
946 }
947
948 return "";
949 }
950
952 {
953 switch (selection)
954 {
955 case "seat_driver":
956 case "seatback_driver":
957 case "seat_cargo1":
958 return "seat_con_1_1";
959 case "seat_codriver":
960 case "seatback_codriver":
961 case "seat_cargo2":
962 return "seat_con_2_1";
963 }
964
965 return "";
966 }
967
969 {
970 switch (selection)
971 {
972 case "seatback_driver":
973 return 0;
974 case "seatback_codriver":
975 return 1;
976 }
977
978 return -1;
979 }
980
982 {
983 return false;
984 }
985
987 {
988 return false;
989 }
990
992 {
993 if (nextSeat == 0 && GetAnimationPhase("SeatDriver") > 0.5)
994 return false;
995
996 if (nextSeat == 1 && GetAnimationPhase("SeatCoDriver") > 0.5)
997 return false;
998
999 switch (currentSeat)
1000 {
1001 case 0:
1002 return nextSeat == 1;
1003
1004 case 1:
1005 return nextSeat == 0;
1006
1007 case 2:
1008 return nextSeat == 3;
1009
1010 case 3:
1011 return nextSeat == 2;
1012 }
1013
1014 return false;
1015 }
1016
1018 {
1019 switch (pCurrentSeat)
1020 {
1021 case 0:
1022 return pDoorsSelection == "DoorsDriver";
1023
1024 case 1:
1025 return pDoorsSelection == "DoorsCoDriver";
1026
1027 case 2:
1028 return pDoorsSelection == "DoorsDriver";
1029
1030 case 3:
1031 return pDoorsSelection == "DoorsCoDriver";
1032 }
1033
1034 return false;
1035 }
1036
1038 {
1039 switch (pDoorSelection)
1040 {
1041 case "DoorsDriver":
1042 return 0;
1043 case "DoorsCoDriver":
1044 return 1;
1045 }
1046
1047 return -1;
1048 }
1049
1051 {
1052 super.SetActions();
1053
1055 }
1056
1058 {
1059 SpawnUniversalParts();
1060 SpawnAdditionalItems();
1061 FillUpCarFluids();
1062
1068
1073
1074
1077 }
1078}
1079
1081{
1083 {
1084 SpawnUniversalParts();
1085 SpawnAdditionalItems();
1086 FillUpCarFluids();
1087
1088 GameInventory inventory = GetInventory();
1093
1098
1099
1102 }
1103}
1104
1106{
1108 {
1109 SpawnUniversalParts();
1110 SpawnAdditionalItems();
1111 FillUpCarFluids();
1112
1113 GameInventory inventory = GetInventory();
1118
1123
1124
1127 }
1128}
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.