557{
561
563 {
564
565
566 m_EngineStartOK = "offroad_engine_start_SoundSet";
567 m_EngineStartBattery = "offroad_engine_failed_start_battery_SoundSet";
568 m_EngineStartPlug = "offroad_engine_failed_start_sparkplugs_SoundSet";
569 m_EngineStartFuel = "offroad_engine_failed_start_fuel_SoundSet";
570 m_EngineStop = "offroad_engine_stop_SoundSet";
571 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
572
573 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
574 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
575 m_CarSeatShiftInSound = "Offroad_SeatShiftIn_SoundSet";
576 m_CarSeatShiftOutSound = "Offroad_SeatShiftOut_SoundSet";
577
578 m_CarHornShortSoundName = "Offroad_Horn_Short_SoundSet";
579 m_CarHornLongSoundName = "Offroad_Horn_SoundSet";
580
581 SetEnginePos("0 0.7 1.2");
582 }
583
585 {
589 }
590
592 {
593 super.EEInit();
594
596 {
603
606 }
607 }
608
610 {
611 super.OnEngineStart();
612
614 {
617 }
618 }
619
621 {
622 super.OnEngineStop();
623
625 {
628 }
629 }
630
632 {
634 {
636 {
638 }
639 }
640 }
641
643 {
645 }
646
648 {
649 return 3.5;
650 }
651
653 {
654 switch (posIdx)
655 {
656 case 0:
658 case 1:
660 case 2:
662 case 3:
664 }
665
666 return 0;
667
668 }
669
670
672 {
674 }
675
677 {
679 }
680
682 {
683 if (!super.CanReleaseAttachment(attachment))
684 {
685 return false;
686 }
687
689 {
690 string attType = attachment.GetType();
691 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
692 {
693 return false;
694 }
695 }
696
697 return true;
698 }
699
701 {
703 }
704
706 {
707 if (!super.CanDisplayAttachmentCategory(category_name))
708 {
709 return false;
710 }
711
713 if (category_name.
Contains(
"engine"))
714 {
716 {
717 return false;
718 }
719 }
720
721 return true;
722 }
723
725 {
726 if (!super.CanDisplayCargo())
727 {
728 return false;
729 }
730
732 {
733 return false;
734 }
735
736 return true;
737 }
738
740 {
742
743 Class.
CastTo(carDoor, FindAttachmentBySlotName(slotType));
744 if (!carDoor)
745 {
747 }
748
749 switch (slotType)
750 {
751 case "NivaDriverDoors":
752 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
753
754 case "NivaCoDriverDoors":
755 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
756
757 case "NivaHood":
758 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
759
760 case "NivaTrunk":
761 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
762 }
763
765 }
766
768 {
770 switch (posIdx)
771 {
772 case 0:
774 return false;
775 else if (GetAnimationPhase("SeatDriver") > 0.5)
776 return false;
777
778 return true;
779
780 case 1:
782 return false;
783 else if (GetAnimationPhase("SeatCoDriver") > 0.5)
784 return false;
785
786 return true;
787
788 case 2:
790 return false;
791 else if (GetAnimationPhase("SeatDriver") <= 0.5)
792 return false;
793
794 return true;
795
796 case 3:
798 return false;
799 else if (GetAnimationPhase("SeatCoDriver") <= 0.5)
800 return false;
801
802 return true;
803 }
804
805 return false;
806 }
807
809 {
810 switch (posIdx)
811 {
812 case 0:
813 case 2:
814 return "doors_driver";
815 case 1:
816 case 3:
817 return "doors_codriver";
818 }
819
820 return super.GetDoorSelectionNameFromSeatPos(posIdx);
821 }
822
824 {
825 switch (posIdx)
826 {
827 case 0:
828 case 2:
829 return "NivaDriverDoors";
830 case 1:
831 case 3:
832 return "NivaCoDriverDoors";
833 }
834
835 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
836 }
837
838
839
841 {
842 float tempCap = 0.0;
843
844 switch (ctrl)
845 {
847 float newValue = 0;
849 {
850 newValue += 0.5;
851 }
852
854 {
855 newValue += 0.5;
856 }
857
859 {
860 newValue += 0.3;
861 }
862
864 {
865 newValue -= 0.6;
866 }
867
869 {
870 newValue -= 0.2;
871 }
872
874 {
875 newValue -= 0.2;
876 }
877
879 break;
880 }
881
882 return super.OnSound(ctrl, oldValue);
883 }
884
886 {
887 switch (selection)
888 {
889 case "doors_driver":
890 return "DoorsDriver";
891 case "doors_codriver":
892 return "DoorsCoDriver";
893 case "doors_hood":
894 return "DoorsHood";
895 case "doors_trunk":
896 return "DoorsTrunk";
897 case "seatback_driver":
898 return "SeatDriver";
899 case "seatback_codriver":
900 return "SeatCoDriver";
901 }
902
903 return "";
904 }
905
907 {
908 switch (selection)
909 {
910 case "seat_driver":
911 case "seatback_driver":
912 case "seat_cargo1":
913 return "seat_con_1_1";
914 case "seat_codriver":
915 case "seatback_codriver":
916 case "seat_cargo2":
917 return "seat_con_2_1";
918 }
919
920 return "";
921 }
922
924 {
925 switch (selection)
926 {
927 case "seatback_driver":
928 return 0;
929 case "seatback_codriver":
930 return 1;
931 }
932
933 return -1;
934 }
935
937 {
938 return false;
939 }
940
942 {
943 return false;
944 }
945
947 {
948 if (nextSeat == 0 && GetAnimationPhase("SeatDriver") > 0.5)
949 return false;
950
951 if (nextSeat == 1 && GetAnimationPhase("SeatCoDriver") > 0.5)
952 return false;
953
954 switch (currentSeat)
955 {
956 case 0:
957 return nextSeat == 1;
958
959 case 1:
960 return nextSeat == 0;
961
962 case 2:
963 return nextSeat == 3;
964
965 case 3:
966 return nextSeat == 2;
967 }
968
969 return false;
970 }
971
973 {
974 switch (pCurrentSeat)
975 {
976 case 0:
977 return pDoorsSelection == "DoorsDriver";
978
979 case 1:
980 return pDoorsSelection == "DoorsCoDriver";
981
982 case 2:
983 return pDoorsSelection == "DoorsDriver";
984
985 case 3:
986 return pDoorsSelection == "DoorsCoDriver";
987 }
988
989 return false;
990 }
991
993 {
994 switch (pDoorSelection)
995 {
996 case "DoorsDriver":
997 return 0;
998 case "DoorsCoDriver":
999 return 1;
1000 }
1001
1002 return -1;
1003 }
1004
1006 {
1007 super.SetActions();
1008
1010 }
1011
1013 {
1014 SpawnUniversalParts();
1015 SpawnAdditionalItems();
1016 FillUpCarFluids();
1017
1023
1028
1029
1032 }
1033}
1034
1036{
1038 {
1039 SpawnUniversalParts();
1040 SpawnAdditionalItems();
1041 FillUpCarFluids();
1042
1043 GameInventory inventory = GetInventory();
1048
1053
1054
1057 }
1058}
1059
1061{
1063 {
1064 SpawnUniversalParts();
1065 SpawnAdditionalItems();
1066 FillUpCarFluids();
1067
1068 GameInventory inventory = GetInventory();
1073
1078
1079
1082 }
1083}
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.