631{
635
637 {
638
639
640 m_EngineStartOK = "offroad_engine_start_SoundSet";
641 m_EngineStartBattery = "offroad_engine_failed_start_battery_SoundSet";
642 m_EngineStartPlug = "offroad_engine_failed_start_sparkplugs_SoundSet";
643 m_EngineStartFuel = "offroad_engine_failed_start_fuel_SoundSet";
644 m_EngineStop = "offroad_engine_stop_SoundSet";
645 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
646
647 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
648 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
649 m_CarSeatShiftInSound = "Offroad_SeatShiftIn_SoundSet";
650 m_CarSeatShiftOutSound = "Offroad_SeatShiftOut_SoundSet";
651
652 m_CarHornShortSoundName = "Offroad_Horn_Short_SoundSet";
653 m_CarHornLongSoundName = "Offroad_Horn_SoundSet";
654
655 SetEnginePos("0 0.7 1.2");
656 }
657
659 {
663 }
664
666 {
667 super.EEInit();
668
670 {
677
680 }
681 }
682
684 {
685 super.OnEngineStart();
686
688 {
691 }
692 }
693
695 {
696 super.OnEngineStop();
697
699 {
702 }
703 }
704
706 {
708 {
710 {
712 }
713 }
714 }
715
717 {
719 }
720
722 {
723 return 3.5;
724 }
725
727 {
728 switch (posIdx)
729 {
730 case 0:
732 case 1:
734 case 2:
736 case 3:
738 }
739
740 return 0;
741
742 }
743
744
746 {
748 }
749
751 {
753 }
754
756 {
757 if (!super.CanReleaseAttachment(attachment))
758 {
759 return false;
760 }
761
763 {
764 string attType = attachment.GetType();
765 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
766 {
767 return false;
768 }
769 }
770
771 return true;
772 }
773
775 {
777 }
778
780 {
781 if (!super.CanDisplayAttachmentCategory(category_name))
782 {
783 return false;
784 }
785
787 if (category_name.
Contains(
"engine"))
788 {
790 {
791 return false;
792 }
793 }
794
795 return true;
796 }
797
799 {
800 if (!super.CanDisplayCargo())
801 {
802 return false;
803 }
804
806 {
807 return false;
808 }
809
810 return true;
811 }
812
814 {
816
817 Class.
CastTo(carDoor, FindAttachmentBySlotName(slotType));
818 if (!carDoor)
819 {
821 }
822
823 switch (slotType)
824 {
825 case "NivaDriverDoors":
826 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
827
828 case "NivaCoDriverDoors":
829 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
830
831 case "NivaHood":
832 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
833
834 case "NivaTrunk":
835 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
836 }
837
839 }
840
842 {
844 switch (posIdx)
845 {
846 case 0:
848 return false;
849 else if (GetAnimationPhase("SeatDriver") > 0.5)
850 return false;
851
852 return true;
853
854 case 1:
856 return false;
857 else if (GetAnimationPhase("SeatCoDriver") > 0.5)
858 return false;
859
860 return true;
861
862 case 2:
864 return false;
865 else if (GetAnimationPhase("SeatDriver") <= 0.5)
866 return false;
867
868 return true;
869
870 case 3:
872 return false;
873 else if (GetAnimationPhase("SeatCoDriver") <= 0.5)
874 return false;
875
876 return true;
877 }
878
879 return false;
880 }
881
883 {
884 switch (posIdx)
885 {
886 case 0:
887 case 2:
888 return "doors_driver";
889 case 1:
890 case 3:
891 return "doors_codriver";
892 }
893
894 return super.GetDoorSelectionNameFromSeatPos(posIdx);
895 }
896
898 {
899 switch (posIdx)
900 {
901 case 0:
902 case 2:
903 return "NivaDriverDoors";
904 case 1:
905 case 3:
906 return "NivaCoDriverDoors";
907 }
908
909 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
910 }
911
912
913
915 {
916 float tempCap = 0.0;
917
918 switch (ctrl)
919 {
921 float newValue = 0;
923 {
924 newValue += 0.5;
925 }
926
928 {
929 newValue += 0.5;
930 }
931
933 {
934 newValue += 0.3;
935 }
936
938 {
939 newValue -= 0.6;
940 }
941
943 {
944 newValue -= 0.2;
945 }
946
948 {
949 newValue -= 0.2;
950 }
951
953 break;
954 }
955
956 return super.OnSound(ctrl, oldValue);
957 }
958
960 {
961 switch (selection)
962 {
963 case "doors_driver":
964 return "DoorsDriver";
965 case "doors_codriver":
966 return "DoorsCoDriver";
967 case "doors_hood":
968 return "DoorsHood";
969 case "doors_trunk":
970 return "DoorsTrunk";
971 case "seatback_driver":
972 return "SeatDriver";
973 case "seatback_codriver":
974 return "SeatCoDriver";
975 }
976
977 return "";
978 }
979
981 {
982 switch (selection)
983 {
984 case "seat_driver":
985 case "seatback_driver":
986 case "seat_cargo1":
987 return "seat_con_1_1";
988 case "seat_codriver":
989 case "seatback_codriver":
990 case "seat_cargo2":
991 return "seat_con_2_1";
992 }
993
994 return "";
995 }
996
998 {
999 switch (selection)
1000 {
1001 case "seatback_driver":
1002 return 0;
1003 case "seatback_codriver":
1004 return 1;
1005 }
1006
1007 return -1;
1008 }
1009
1011 {
1012 return false;
1013 }
1014
1016 {
1017 return false;
1018 }
1019
1021 {
1022 if (nextSeat == 0 && GetAnimationPhase("SeatDriver") > 0.5)
1023 return false;
1024
1025 if (nextSeat == 1 && GetAnimationPhase("SeatCoDriver") > 0.5)
1026 return false;
1027
1028 switch (currentSeat)
1029 {
1030 case 0:
1031 return nextSeat == 1;
1032
1033 case 1:
1034 return nextSeat == 0;
1035
1036 case 2:
1037 return nextSeat == 3;
1038
1039 case 3:
1040 return nextSeat == 2;
1041 }
1042
1043 return false;
1044 }
1045
1047 {
1048 switch (pCurrentSeat)
1049 {
1050 case 0:
1051 return pDoorsSelection == "DoorsDriver";
1052
1053 case 1:
1054 return pDoorsSelection == "DoorsCoDriver";
1055
1056 case 2:
1057 return pDoorsSelection == "DoorsDriver";
1058
1059 case 3:
1060 return pDoorsSelection == "DoorsCoDriver";
1061 }
1062
1063 return false;
1064 }
1065
1067 {
1068 switch (pDoorSelection)
1069 {
1070 case "DoorsDriver":
1071 return 0;
1072 case "DoorsCoDriver":
1073 return 1;
1074 }
1075
1076 return -1;
1077 }
1078
1080 {
1081 super.SetActions();
1082
1084 }
1085
1087 {
1088 SpawnUniversalParts();
1089 SpawnAdditionalItems();
1090 FillUpCarFluids();
1091
1097
1102
1103
1106 }
1107}
1108
1110{
1112 {
1113 SpawnUniversalParts();
1114 SpawnAdditionalItems();
1115 FillUpCarFluids();
1116
1117 GameInventory inventory = GetInventory();
1122
1127
1128
1131 }
1132}
1133
1135{
1137 {
1138 SpawnUniversalParts();
1139 SpawnAdditionalItems();
1140 FillUpCarFluids();
1141
1142 GameInventory inventory = GetInventory();
1147
1152
1153
1156 }
1157}
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.