650{
654
656 {
657
658
659 m_EngineStartOK = "offroad_engine_start_SoundSet";
660 m_EngineStartBattery = "offroad_engine_failed_start_battery_SoundSet";
661 m_EngineStartPlug = "offroad_engine_failed_start_sparkplugs_SoundSet";
662 m_EngineStartFuel = "offroad_engine_failed_start_fuel_SoundSet";
663 m_EngineStop = "offroad_engine_stop_SoundSet";
664 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
665
666 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
667 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
668 m_CarSeatShiftInSound = "Offroad_SeatShiftIn_SoundSet";
669 m_CarSeatShiftOutSound = "Offroad_SeatShiftOut_SoundSet";
670
671 m_CarHornShortSoundName = "Offroad_Horn_Short_SoundSet";
672 m_CarHornLongSoundName = "Offroad_Horn_SoundSet";
673
674 SetEnginePos("0 0.7 1.2");
675 }
676
678 {
682 }
683
685 {
686 super.EEInit();
687
689 {
696
699 }
700 }
701
703 {
704 super.OnEngineStart();
705
707 {
710 }
711 }
712
714 {
715 super.OnEngineStop();
716
718 {
721 }
722 }
723
725 {
727 {
729 {
731 }
732 }
733 }
734
736 {
738 }
739
741 {
742 return 3.5;
743 }
744
746 {
747 switch (posIdx)
748 {
749 case 0:
751 case 1:
753 case 2:
755 case 3:
757 }
758
759 return 0;
760
761 }
762
763
765 {
767 }
768
770 {
772 }
773
775 {
776 if (!super.CanReleaseAttachment(attachment))
777 {
778 return false;
779 }
780
782 {
783 string attType = attachment.GetType();
784 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
785 {
786 return false;
787 }
788 }
789
790 return true;
791 }
792
794 {
796 }
797
799 {
800 if (!super.CanDisplayAttachmentCategory(category_name))
801 {
802 return false;
803 }
804
806 if (category_name.
Contains(
"engine"))
807 {
809 {
810 return false;
811 }
812 }
813
814 return true;
815 }
816
818 {
819 if (!super.CanDisplayCargo())
820 {
821 return false;
822 }
823
825 {
826 return false;
827 }
828
829 return true;
830 }
831
833 {
835
836 Class.
CastTo(carDoor, FindAttachmentBySlotName(slotType));
837 if (!carDoor)
838 {
840 }
841
842 switch (slotType)
843 {
844 case "NivaDriverDoors":
845 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
846
847 case "NivaCoDriverDoors":
848 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
849
850 case "NivaHood":
851 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
852
853 case "NivaTrunk":
854 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
855 }
856
858 }
859
861 {
863 switch (posIdx)
864 {
865 case 0:
867 return false;
868 else if (GetAnimationPhase("SeatDriver") > 0.5)
869 return false;
870
871 return true;
872
873 case 1:
875 return false;
876 else if (GetAnimationPhase("SeatCoDriver") > 0.5)
877 return false;
878
879 return true;
880
881 case 2:
883 return false;
884 else if (GetAnimationPhase("SeatDriver") <= 0.5)
885 return false;
886
887 return true;
888
889 case 3:
891 return false;
892 else if (GetAnimationPhase("SeatCoDriver") <= 0.5)
893 return false;
894
895 return true;
896 }
897
898 return false;
899 }
900
902 {
903 switch (posIdx)
904 {
905 case 0:
906 case 2:
907 return "doors_driver";
908 case 1:
909 case 3:
910 return "doors_codriver";
911 }
912
913 return super.GetDoorSelectionNameFromSeatPos(posIdx);
914 }
915
917 {
918 switch (posIdx)
919 {
920 case 0:
921 case 2:
922 return "NivaDriverDoors";
923 case 1:
924 case 3:
925 return "NivaCoDriverDoors";
926 }
927
928 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
929 }
930
931
932
934 {
935 float tempCap = 0.0;
936
937 switch (ctrl)
938 {
940 float newValue = 0;
942 {
943 newValue += 0.5;
944 }
945
947 {
948 newValue += 0.5;
949 }
950
952 {
953 newValue += 0.3;
954 }
955
957 {
958 newValue -= 0.6;
959 }
960
962 {
963 newValue -= 0.2;
964 }
965
967 {
968 newValue -= 0.2;
969 }
970
972 break;
973 }
974
975 return super.OnSound(ctrl, oldValue);
976 }
977
979 {
980 switch (selection)
981 {
982 case "doors_driver":
983 return "DoorsDriver";
984 case "doors_codriver":
985 return "DoorsCoDriver";
986 case "doors_hood":
987 return "DoorsHood";
988 case "doors_trunk":
989 return "DoorsTrunk";
990 case "seatback_driver":
991 return "SeatDriver";
992 case "seatback_codriver":
993 return "SeatCoDriver";
994 }
995
996 return "";
997 }
998
1000 {
1001 switch (selection)
1002 {
1003 case "seat_driver":
1004 case "seatback_driver":
1005 case "seat_cargo1":
1006 return "seat_con_1_1";
1007 case "seat_codriver":
1008 case "seatback_codriver":
1009 case "seat_cargo2":
1010 return "seat_con_2_1";
1011 }
1012
1013 return "";
1014 }
1015
1017 {
1018 switch (selection)
1019 {
1020 case "seatback_driver":
1021 return 0;
1022 case "seatback_codriver":
1023 return 1;
1024 }
1025
1026 return -1;
1027 }
1028
1030 {
1031 return false;
1032 }
1033
1035 {
1036 return false;
1037 }
1038
1040 {
1041 if (nextSeat == 0 && GetAnimationPhase("SeatDriver") > 0.5)
1042 return false;
1043
1044 if (nextSeat == 1 && GetAnimationPhase("SeatCoDriver") > 0.5)
1045 return false;
1046
1047 switch (currentSeat)
1048 {
1049 case 0:
1050 return nextSeat == 1;
1051
1052 case 1:
1053 return nextSeat == 0;
1054
1055 case 2:
1056 return nextSeat == 3;
1057
1058 case 3:
1059 return nextSeat == 2;
1060 }
1061
1062 return false;
1063 }
1064
1066 {
1067 switch (pCurrentSeat)
1068 {
1069 case 0:
1070 return pDoorsSelection == "DoorsDriver";
1071
1072 case 1:
1073 return pDoorsSelection == "DoorsCoDriver";
1074
1075 case 2:
1076 return pDoorsSelection == "DoorsDriver";
1077
1078 case 3:
1079 return pDoorsSelection == "DoorsCoDriver";
1080 }
1081
1082 return false;
1083 }
1084
1086 {
1087 switch (pDoorSelection)
1088 {
1089 case "DoorsDriver":
1090 return 0;
1091 case "DoorsCoDriver":
1092 return 1;
1093 }
1094
1095 return -1;
1096 }
1097
1099 {
1100 super.SetActions();
1101
1103 }
1104
1106 {
1107 SpawnUniversalParts();
1108 SpawnAdditionalItems();
1109 FillUpCarFluids();
1110
1116
1121
1122
1125 }
1126}
1127
1129{
1131 {
1132 SpawnUniversalParts();
1133 SpawnAdditionalItems();
1134 FillUpCarFluids();
1135
1136 GameInventory inventory = GetInventory();
1141
1146
1147
1150 }
1151}
1152
1154{
1156 {
1157 SpawnUniversalParts();
1158 SpawnAdditionalItems();
1159 FillUpCarFluids();
1160
1161 GameInventory inventory = GetInventory();
1166
1171
1172
1175 }
1176}
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.