626{
630
632 {
633
634
635 m_EngineStartOK = "offroad_engine_start_SoundSet";
636 m_EngineStartBattery = "offroad_engine_failed_start_battery_SoundSet";
637 m_EngineStartPlug = "offroad_engine_failed_start_sparkplugs_SoundSet";
638 m_EngineStartFuel = "offroad_engine_failed_start_fuel_SoundSet";
639 m_EngineStop = "offroad_engine_stop_SoundSet";
640 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
641
642 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
643 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
644 m_CarSeatShiftInSound = "Offroad_SeatShiftIn_SoundSet";
645 m_CarSeatShiftOutSound = "Offroad_SeatShiftOut_SoundSet";
646
647 m_CarHornShortSoundName = "Offroad_Horn_Short_SoundSet";
648 m_CarHornLongSoundName = "Offroad_Horn_SoundSet";
649
650 SetEnginePos("0 0.7 1.2");
651 }
652
654 {
658 }
659
661 {
662 super.EEInit();
663
665 {
672
675 }
676 }
677
679 {
680 super.OnEngineStart();
681
683 {
686 }
687 }
688
690 {
691 super.OnEngineStop();
692
694 {
697 }
698 }
699
701 {
703 {
705 {
707 }
708 }
709 }
710
712 {
714 }
715
717 {
718 return 3.5;
719 }
720
722 {
723 switch (posIdx)
724 {
725 case 0:
727 case 1:
729 case 2:
731 case 3:
733 }
734
735 return 0;
736
737 }
738
739
741 {
743 }
744
746 {
748 }
749
751 {
752 if (!super.CanReleaseAttachment(attachment))
753 {
754 return false;
755 }
756
758 {
759 string attType = attachment.GetType();
760 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
761 {
762 return false;
763 }
764 }
765
766 return true;
767 }
768
770 {
772 }
773
775 {
776 if (!super.CanDisplayAttachmentCategory(category_name))
777 {
778 return false;
779 }
780
782 if (category_name.
Contains(
"engine"))
783 {
785 {
786 return false;
787 }
788 }
789
790 return true;
791 }
792
794 {
795 if (!super.CanDisplayCargo())
796 {
797 return false;
798 }
799
801 {
802 return false;
803 }
804
805 return true;
806 }
807
809 {
811
812 Class.
CastTo(carDoor, FindAttachmentBySlotName(slotType));
813 if (!carDoor)
814 {
816 }
817
818 switch (slotType)
819 {
820 case "NivaDriverDoors":
821 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
822
823 case "NivaCoDriverDoors":
824 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
825
826 case "NivaHood":
827 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
828
829 case "NivaTrunk":
830 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
831 }
832
834 }
835
837 {
839 switch (posIdx)
840 {
841 case 0:
843 return false;
844 else if (GetAnimationPhase("SeatDriver") > 0.5)
845 return false;
846
847 return true;
848
849 case 1:
851 return false;
852 else if (GetAnimationPhase("SeatCoDriver") > 0.5)
853 return false;
854
855 return true;
856
857 case 2:
859 return false;
860 else if (GetAnimationPhase("SeatDriver") <= 0.5)
861 return false;
862
863 return true;
864
865 case 3:
867 return false;
868 else if (GetAnimationPhase("SeatCoDriver") <= 0.5)
869 return false;
870
871 return true;
872 }
873
874 return false;
875 }
876
878 {
879 switch (posIdx)
880 {
881 case 0:
882 case 2:
883 return "doors_driver";
884 case 1:
885 case 3:
886 return "doors_codriver";
887 }
888
889 return super.GetDoorSelectionNameFromSeatPos(posIdx);
890 }
891
893 {
894 switch (posIdx)
895 {
896 case 0:
897 case 2:
898 return "NivaDriverDoors";
899 case 1:
900 case 3:
901 return "NivaCoDriverDoors";
902 }
903
904 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
905 }
906
907
908
910 {
911 float tempCap = 0.0;
912
913 switch (ctrl)
914 {
916 float newValue = 0;
918 {
919 newValue += 0.5;
920 }
921
923 {
924 newValue += 0.5;
925 }
926
928 {
929 newValue += 0.3;
930 }
931
933 {
934 newValue -= 0.6;
935 }
936
938 {
939 newValue -= 0.2;
940 }
941
943 {
944 newValue -= 0.2;
945 }
946
948 break;
949 }
950
951 return super.OnSound(ctrl, oldValue);
952 }
953
955 {
956 switch (selection)
957 {
958 case "doors_driver":
959 return "DoorsDriver";
960 case "doors_codriver":
961 return "DoorsCoDriver";
962 case "doors_hood":
963 return "DoorsHood";
964 case "doors_trunk":
965 return "DoorsTrunk";
966 case "seatback_driver":
967 return "SeatDriver";
968 case "seatback_codriver":
969 return "SeatCoDriver";
970 }
971
972 return "";
973 }
974
976 {
977 switch (selection)
978 {
979 case "seat_driver":
980 case "seatback_driver":
981 case "seat_cargo1":
982 return "seat_con_1_1";
983 case "seat_codriver":
984 case "seatback_codriver":
985 case "seat_cargo2":
986 return "seat_con_2_1";
987 }
988
989 return "";
990 }
991
993 {
994 switch (selection)
995 {
996 case "seatback_driver":
997 return 0;
998 case "seatback_codriver":
999 return 1;
1000 }
1001
1002 return -1;
1003 }
1004
1006 {
1007 return false;
1008 }
1009
1011 {
1012 return false;
1013 }
1014
1016 {
1017 if (nextSeat == 0 && GetAnimationPhase("SeatDriver") > 0.5)
1018 return false;
1019
1020 if (nextSeat == 1 && GetAnimationPhase("SeatCoDriver") > 0.5)
1021 return false;
1022
1023 switch (currentSeat)
1024 {
1025 case 0:
1026 return nextSeat == 1;
1027
1028 case 1:
1029 return nextSeat == 0;
1030
1031 case 2:
1032 return nextSeat == 3;
1033
1034 case 3:
1035 return nextSeat == 2;
1036 }
1037
1038 return false;
1039 }
1040
1042 {
1043 switch (pCurrentSeat)
1044 {
1045 case 0:
1046 return pDoorsSelection == "DoorsDriver";
1047
1048 case 1:
1049 return pDoorsSelection == "DoorsCoDriver";
1050
1051 case 2:
1052 return pDoorsSelection == "DoorsDriver";
1053
1054 case 3:
1055 return pDoorsSelection == "DoorsCoDriver";
1056 }
1057
1058 return false;
1059 }
1060
1062 {
1063 switch (pDoorSelection)
1064 {
1065 case "DoorsDriver":
1066 return 0;
1067 case "DoorsCoDriver":
1068 return 1;
1069 }
1070
1071 return -1;
1072 }
1073
1075 {
1076 super.SetActions();
1077
1079 }
1080
1082 {
1083 SpawnUniversalParts();
1084 SpawnAdditionalItems();
1085 FillUpCarFluids();
1086
1092
1097
1098
1101 }
1102}
1103
1105{
1107 {
1108 SpawnUniversalParts();
1109 SpawnAdditionalItems();
1110 FillUpCarFluids();
1111
1112 GameInventory inventory = GetInventory();
1117
1122
1123
1126 }
1127}
1128
1130{
1132 {
1133 SpawnUniversalParts();
1134 SpawnAdditionalItems();
1135 FillUpCarFluids();
1136
1137 GameInventory inventory = GetInventory();
1142
1147
1148
1151 }
1152}
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.