535{
539
541 {
542
543
544 m_EngineStartOK = "offroad_engine_start_SoundSet";
545 m_EngineStartBattery = "offroad_engine_failed_start_battery_SoundSet";
546 m_EngineStartPlug = "offroad_engine_failed_start_sparkplugs_SoundSet";
547 m_EngineStartFuel = "offroad_engine_failed_start_fuel_SoundSet";
548 m_EngineStop = "offroad_engine_stop_SoundSet";
549 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
550
551 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
552 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
553 m_CarSeatShiftInSound = "Offroad_SeatShiftIn_SoundSet";
554 m_CarSeatShiftOutSound = "Offroad_SeatShiftOut_SoundSet";
555
556 m_CarHornShortSoundName = "Offroad_Horn_Short_SoundSet";
557 m_CarHornLongSoundName = "Offroad_Horn_SoundSet";
558
559 SetEnginePos("0 0.7 1.2");
560 }
561
563 {
567 }
568
570 {
571 super.EEInit();
572
574 {
581
584 }
585 }
586
588 {
589 super.OnEngineStart();
590
592 {
595 }
596 }
597
599 {
600 super.OnEngineStop();
601
603 {
606 }
607 }
608
610 {
612 {
614 {
616 }
617 }
618 }
619
621 {
623 }
624
626 {
627 return 3.5;
628 }
629
631 {
632 switch (posIdx)
633 {
634 case 0:
636 case 1:
638 case 2:
640 case 3:
642 }
643
644 return 0;
645
646 }
647
648
650 {
652 }
653
655 {
657 }
658
660 {
661 if (!super.CanReleaseAttachment(attachment))
662 {
663 return false;
664 }
665
667 {
668 string attType = attachment.GetType();
669 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
670 {
671 return false;
672 }
673 }
674
675 return true;
676 }
677
679 {
681 }
682
684 {
685 if (!super.CanDisplayAttachmentCategory(category_name))
686 {
687 return false;
688 }
689
691 if (category_name.
Contains(
"engine"))
692 {
694 {
695 return false;
696 }
697 }
698
699 return true;
700 }
701
703 {
704 if (!super.CanDisplayCargo())
705 {
706 return false;
707 }
708
710 {
711 return false;
712 }
713
714 return true;
715 }
716
718 {
720
721 Class.
CastTo(carDoor, FindAttachmentBySlotName(slotType));
722 if (!carDoor)
723 {
725 }
726
727 switch (slotType)
728 {
729 case "NivaDriverDoors":
730 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
731
732 case "NivaCoDriverDoors":
733 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
734
735 case "NivaHood":
736 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
737
738 case "NivaTrunk":
739 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
740 }
741
743 }
744
746 {
748 switch (posIdx)
749 {
750 case 0:
752 return false;
753 else if (GetAnimationPhase("SeatDriver") > 0.5)
754 return false;
755
756 return true;
757
758 case 1:
760 return false;
761 else if (GetAnimationPhase("SeatCoDriver") > 0.5)
762 return false;
763
764 return true;
765
766 case 2:
768 return false;
769 else if (GetAnimationPhase("SeatDriver") <= 0.5)
770 return false;
771
772 return true;
773
774 case 3:
776 return false;
777 else if (GetAnimationPhase("SeatCoDriver") <= 0.5)
778 return false;
779
780 return true;
781 }
782
783 return false;
784 }
785
787 {
788 switch (posIdx)
789 {
790 case 0:
791 case 2:
792 return "doors_driver";
793 case 1:
794 case 3:
795 return "doors_codriver";
796 }
797
798 return super.GetDoorSelectionNameFromSeatPos(posIdx);
799 }
800
802 {
803 switch (posIdx)
804 {
805 case 0:
806 case 2:
807 return "NivaDriverDoors";
808 case 1:
809 case 3:
810 return "NivaCoDriverDoors";
811 }
812
813 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
814 }
815
816
817
819 {
820 float tempCap = 0.0;
821
822 switch (ctrl)
823 {
825 float newValue = 0;
827 {
828 newValue += 0.5;
829 }
830
832 {
833 newValue += 0.5;
834 }
835
837 {
838 newValue += 0.3;
839 }
840
842 {
843 newValue -= 0.6;
844 }
845
847 {
848 newValue -= 0.2;
849 }
850
852 {
853 newValue -= 0.2;
854 }
855
857 break;
858 }
859
860 return super.OnSound(ctrl, oldValue);
861 }
862
864 {
865 switch (selection)
866 {
867 case "doors_driver":
868 return "DoorsDriver";
869 case "doors_codriver":
870 return "DoorsCoDriver";
871 case "doors_hood":
872 return "DoorsHood";
873 case "doors_trunk":
874 return "DoorsTrunk";
875 case "seatback_driver":
876 return "SeatDriver";
877 case "seatback_codriver":
878 return "SeatCoDriver";
879 }
880
881 return "";
882 }
883
885 {
886 switch (selection)
887 {
888 case "seat_driver":
889 case "seatback_driver":
890 case "seat_cargo1":
891 return "seat_con_1_1";
892 case "seat_codriver":
893 case "seatback_codriver":
894 case "seat_cargo2":
895 return "seat_con_2_1";
896 }
897
898 return "";
899 }
900
902 {
903 switch (selection)
904 {
905 case "seatback_driver":
906 return 0;
907 case "seatback_codriver":
908 return 1;
909 }
910
911 return -1;
912 }
913
915 {
916 return false;
917 }
918
920 {
921 return false;
922 }
923
925 {
926 if (nextSeat == 0 && GetAnimationPhase("SeatDriver") > 0.5)
927 return false;
928
929 if (nextSeat == 1 && GetAnimationPhase("SeatCoDriver") > 0.5)
930 return false;
931
932 switch (currentSeat)
933 {
934 case 0:
935 return nextSeat == 1;
936
937 case 1:
938 return nextSeat == 0;
939
940 case 2:
941 return nextSeat == 3;
942
943 case 3:
944 return nextSeat == 2;
945 }
946
947 return false;
948 }
949
951 {
952 switch (pCurrentSeat)
953 {
954 case 0:
955 return pDoorsSelection == "DoorsDriver";
956
957 case 1:
958 return pDoorsSelection == "DoorsCoDriver";
959
960 case 2:
961 return pDoorsSelection == "DoorsDriver";
962
963 case 3:
964 return pDoorsSelection == "DoorsCoDriver";
965 }
966
967 return false;
968 }
969
971 {
972 switch (pDoorSelection)
973 {
974 case "DoorsDriver":
975 return 0;
976 case "DoorsCoDriver":
977 return 1;
978 }
979
980 return -1;
981 }
982
984 {
985 super.SetActions();
986
988 }
989
991 {
992 SpawnUniversalParts();
993 SpawnAdditionalItems();
994 FillUpCarFluids();
995
1001
1006
1007
1010 }
1011}
1012
1014{
1016 {
1017 SpawnUniversalParts();
1018 SpawnAdditionalItems();
1019 FillUpCarFluids();
1020
1021 GameInventory inventory = GetInventory();
1026
1031
1032
1035 }
1036}
1037
1039{
1041 {
1042 SpawnUniversalParts();
1043 SpawnAdditionalItems();
1044 FillUpCarFluids();
1045
1046 GameInventory inventory = GetInventory();
1051
1056
1057
1060 }
1061}
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.