607{
611
613 {
614
615
616 m_EngineStartOK = "offroad_engine_start_SoundSet";
617 m_EngineStartBattery = "offroad_engine_failed_start_battery_SoundSet";
618 m_EngineStartPlug = "offroad_engine_failed_start_sparkplugs_SoundSet";
619 m_EngineStartFuel = "offroad_engine_failed_start_fuel_SoundSet";
620 m_EngineStop = "offroad_engine_stop_SoundSet";
621 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
622
623 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
624 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
625 m_CarSeatShiftInSound = "Offroad_SeatShiftIn_SoundSet";
626 m_CarSeatShiftOutSound = "Offroad_SeatShiftOut_SoundSet";
627
628 m_CarHornShortSoundName = "Offroad_Horn_Short_SoundSet";
629 m_CarHornLongSoundName = "Offroad_Horn_SoundSet";
630
631 SetEnginePos("0 0.7 1.2");
632 }
633
635 {
639 }
640
642 {
643 super.EEInit();
644
646 {
653
656 }
657 }
658
660 {
661 super.OnEngineStart();
662
664 {
667 }
668 }
669
671 {
672 super.OnEngineStop();
673
675 {
678 }
679 }
680
682 {
684 {
686 {
688 }
689 }
690 }
691
693 {
695 }
696
698 {
699 return 3.5;
700 }
701
703 {
704 switch (posIdx)
705 {
706 case 0:
708 case 1:
710 case 2:
712 case 3:
714 }
715
716 return 0;
717
718 }
719
720
722 {
724 }
725
727 {
729 }
730
732 {
733 if (!super.CanReleaseAttachment(attachment))
734 {
735 return false;
736 }
737
739 {
740 string attType = attachment.GetType();
741 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
742 {
743 return false;
744 }
745 }
746
747 return true;
748 }
749
751 {
753 }
754
756 {
757 if (!super.CanDisplayAttachmentCategory(category_name))
758 {
759 return false;
760 }
761
763 if (category_name.
Contains(
"engine"))
764 {
766 {
767 return false;
768 }
769 }
770
771 return true;
772 }
773
775 {
776 if (!super.CanDisplayCargo())
777 {
778 return false;
779 }
780
782 {
783 return false;
784 }
785
786 return true;
787 }
788
790 {
792
793 Class.
CastTo(carDoor, FindAttachmentBySlotName(slotType));
794 if (!carDoor)
795 {
797 }
798
799 switch (slotType)
800 {
801 case "NivaDriverDoors":
802 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
803
804 case "NivaCoDriverDoors":
805 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
806
807 case "NivaHood":
808 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
809
810 case "NivaTrunk":
811 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
812 }
813
815 }
816
818 {
820 switch (posIdx)
821 {
822 case 0:
824 return false;
825 else if (GetAnimationPhase("SeatDriver") > 0.5)
826 return false;
827
828 return true;
829
830 case 1:
832 return false;
833 else if (GetAnimationPhase("SeatCoDriver") > 0.5)
834 return false;
835
836 return true;
837
838 case 2:
840 return false;
841 else if (GetAnimationPhase("SeatDriver") <= 0.5)
842 return false;
843
844 return true;
845
846 case 3:
848 return false;
849 else if (GetAnimationPhase("SeatCoDriver") <= 0.5)
850 return false;
851
852 return true;
853 }
854
855 return false;
856 }
857
859 {
860 switch (posIdx)
861 {
862 case 0:
863 case 2:
864 return "doors_driver";
865 case 1:
866 case 3:
867 return "doors_codriver";
868 }
869
870 return super.GetDoorSelectionNameFromSeatPos(posIdx);
871 }
872
874 {
875 switch (posIdx)
876 {
877 case 0:
878 case 2:
879 return "NivaDriverDoors";
880 case 1:
881 case 3:
882 return "NivaCoDriverDoors";
883 }
884
885 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
886 }
887
888
889
891 {
892 float tempCap = 0.0;
893
894 switch (ctrl)
895 {
897 float newValue = 0;
899 {
900 newValue += 0.5;
901 }
902
904 {
905 newValue += 0.5;
906 }
907
909 {
910 newValue += 0.3;
911 }
912
914 {
915 newValue -= 0.6;
916 }
917
919 {
920 newValue -= 0.2;
921 }
922
924 {
925 newValue -= 0.2;
926 }
927
929 break;
930 }
931
932 return super.OnSound(ctrl, oldValue);
933 }
934
936 {
937 switch (selection)
938 {
939 case "doors_driver":
940 return "DoorsDriver";
941 case "doors_codriver":
942 return "DoorsCoDriver";
943 case "doors_hood":
944 return "DoorsHood";
945 case "doors_trunk":
946 return "DoorsTrunk";
947 case "seatback_driver":
948 return "SeatDriver";
949 case "seatback_codriver":
950 return "SeatCoDriver";
951 }
952
953 return "";
954 }
955
957 {
958 switch (selection)
959 {
960 case "seat_driver":
961 case "seatback_driver":
962 case "seat_cargo1":
963 return "seat_con_1_1";
964 case "seat_codriver":
965 case "seatback_codriver":
966 case "seat_cargo2":
967 return "seat_con_2_1";
968 }
969
970 return "";
971 }
972
974 {
975 switch (selection)
976 {
977 case "seatback_driver":
978 return 0;
979 case "seatback_codriver":
980 return 1;
981 }
982
983 return -1;
984 }
985
987 {
988 return false;
989 }
990
992 {
993 return false;
994 }
995
997 {
998 if (nextSeat == 0 && GetAnimationPhase("SeatDriver") > 0.5)
999 return false;
1000
1001 if (nextSeat == 1 && GetAnimationPhase("SeatCoDriver") > 0.5)
1002 return false;
1003
1004 switch (currentSeat)
1005 {
1006 case 0:
1007 return nextSeat == 1;
1008
1009 case 1:
1010 return nextSeat == 0;
1011
1012 case 2:
1013 return nextSeat == 3;
1014
1015 case 3:
1016 return nextSeat == 2;
1017 }
1018
1019 return false;
1020 }
1021
1023 {
1024 switch (pCurrentSeat)
1025 {
1026 case 0:
1027 return pDoorsSelection == "DoorsDriver";
1028
1029 case 1:
1030 return pDoorsSelection == "DoorsCoDriver";
1031
1032 case 2:
1033 return pDoorsSelection == "DoorsDriver";
1034
1035 case 3:
1036 return pDoorsSelection == "DoorsCoDriver";
1037 }
1038
1039 return false;
1040 }
1041
1043 {
1044 switch (pDoorSelection)
1045 {
1046 case "DoorsDriver":
1047 return 0;
1048 case "DoorsCoDriver":
1049 return 1;
1050 }
1051
1052 return -1;
1053 }
1054
1056 {
1057 super.SetActions();
1058
1060 }
1061
1063 {
1064 SpawnUniversalParts();
1065 SpawnAdditionalItems();
1066 FillUpCarFluids();
1067
1073
1078
1079
1082 }
1083}
1084
1086{
1088 {
1089 SpawnUniversalParts();
1090 SpawnAdditionalItems();
1091 FillUpCarFluids();
1092
1093 GameInventory inventory = GetInventory();
1098
1103
1104
1107 }
1108}
1109
1111{
1113 {
1114 SpawnUniversalParts();
1115 SpawnAdditionalItems();
1116 FillUpCarFluids();
1117
1118 GameInventory inventory = GetInventory();
1123
1128
1129
1132 }
1133}
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.