568{
572
574 {
575
576
577 m_EngineStartOK = "offroad_engine_start_SoundSet";
578 m_EngineStartBattery = "offroad_engine_failed_start_battery_SoundSet";
579 m_EngineStartPlug = "offroad_engine_failed_start_sparkplugs_SoundSet";
580 m_EngineStartFuel = "offroad_engine_failed_start_fuel_SoundSet";
581 m_EngineStop = "offroad_engine_stop_SoundSet";
582 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
583
584 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
585 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
586 m_CarSeatShiftInSound = "Offroad_SeatShiftIn_SoundSet";
587 m_CarSeatShiftOutSound = "Offroad_SeatShiftOut_SoundSet";
588
589 m_CarHornShortSoundName = "Offroad_Horn_Short_SoundSet";
590 m_CarHornLongSoundName = "Offroad_Horn_SoundSet";
591
592 SetEnginePos("0 0.7 1.2");
593 }
594
596 {
600 }
601
603 {
604 super.EEInit();
605
607 {
614
617 }
618 }
619
621 {
622 super.OnEngineStart();
623
625 {
628 }
629 }
630
632 {
633 super.OnEngineStop();
634
636 {
639 }
640 }
641
643 {
645 {
647 {
649 }
650 }
651 }
652
654 {
656 }
657
659 {
660 return 3.5;
661 }
662
664 {
665 switch (posIdx)
666 {
667 case 0:
669 case 1:
671 case 2:
673 case 3:
675 }
676
677 return 0;
678
679 }
680
681
683 {
685 }
686
688 {
690 }
691
693 {
694 if (!super.CanReleaseAttachment(attachment))
695 {
696 return false;
697 }
698
700 {
701 string attType = attachment.GetType();
702 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
703 {
704 return false;
705 }
706 }
707
708 return true;
709 }
710
712 {
714 }
715
717 {
718 if (!super.CanDisplayAttachmentCategory(category_name))
719 {
720 return false;
721 }
722
724 if (category_name.
Contains(
"engine"))
725 {
727 {
728 return false;
729 }
730 }
731
732 return true;
733 }
734
736 {
737 if (!super.CanDisplayCargo())
738 {
739 return false;
740 }
741
743 {
744 return false;
745 }
746
747 return true;
748 }
749
751 {
753
754 Class.
CastTo(carDoor, FindAttachmentBySlotName(slotType));
755 if (!carDoor)
756 {
758 }
759
760 switch (slotType)
761 {
762 case "NivaDriverDoors":
763 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
764
765 case "NivaCoDriverDoors":
766 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
767
768 case "NivaHood":
769 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
770
771 case "NivaTrunk":
772 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
773 }
774
776 }
777
779 {
781 switch (posIdx)
782 {
783 case 0:
785 return false;
786 else if (GetAnimationPhase("SeatDriver") > 0.5)
787 return false;
788
789 return true;
790
791 case 1:
793 return false;
794 else if (GetAnimationPhase("SeatCoDriver") > 0.5)
795 return false;
796
797 return true;
798
799 case 2:
801 return false;
802 else if (GetAnimationPhase("SeatDriver") <= 0.5)
803 return false;
804
805 return true;
806
807 case 3:
809 return false;
810 else if (GetAnimationPhase("SeatCoDriver") <= 0.5)
811 return false;
812
813 return true;
814 }
815
816 return false;
817 }
818
820 {
821 switch (posIdx)
822 {
823 case 0:
824 case 2:
825 return "doors_driver";
826 case 1:
827 case 3:
828 return "doors_codriver";
829 }
830
831 return super.GetDoorSelectionNameFromSeatPos(posIdx);
832 }
833
835 {
836 switch (posIdx)
837 {
838 case 0:
839 case 2:
840 return "NivaDriverDoors";
841 case 1:
842 case 3:
843 return "NivaCoDriverDoors";
844 }
845
846 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
847 }
848
849
850
852 {
853 float tempCap = 0.0;
854
855 switch (ctrl)
856 {
858 float newValue = 0;
860 {
861 newValue += 0.5;
862 }
863
865 {
866 newValue += 0.5;
867 }
868
870 {
871 newValue += 0.3;
872 }
873
875 {
876 newValue -= 0.6;
877 }
878
880 {
881 newValue -= 0.2;
882 }
883
885 {
886 newValue -= 0.2;
887 }
888
890 break;
891 }
892
893 return super.OnSound(ctrl, oldValue);
894 }
895
897 {
898 switch (selection)
899 {
900 case "doors_driver":
901 return "DoorsDriver";
902 case "doors_codriver":
903 return "DoorsCoDriver";
904 case "doors_hood":
905 return "DoorsHood";
906 case "doors_trunk":
907 return "DoorsTrunk";
908 case "seatback_driver":
909 return "SeatDriver";
910 case "seatback_codriver":
911 return "SeatCoDriver";
912 }
913
914 return "";
915 }
916
918 {
919 switch (selection)
920 {
921 case "seat_driver":
922 case "seatback_driver":
923 case "seat_cargo1":
924 return "seat_con_1_1";
925 case "seat_codriver":
926 case "seatback_codriver":
927 case "seat_cargo2":
928 return "seat_con_2_1";
929 }
930
931 return "";
932 }
933
935 {
936 switch (selection)
937 {
938 case "seatback_driver":
939 return 0;
940 case "seatback_codriver":
941 return 1;
942 }
943
944 return -1;
945 }
946
948 {
949 return false;
950 }
951
953 {
954 return false;
955 }
956
958 {
959 if (nextSeat == 0 && GetAnimationPhase("SeatDriver") > 0.5)
960 return false;
961
962 if (nextSeat == 1 && GetAnimationPhase("SeatCoDriver") > 0.5)
963 return false;
964
965 switch (currentSeat)
966 {
967 case 0:
968 return nextSeat == 1;
969
970 case 1:
971 return nextSeat == 0;
972
973 case 2:
974 return nextSeat == 3;
975
976 case 3:
977 return nextSeat == 2;
978 }
979
980 return false;
981 }
982
984 {
985 switch (pCurrentSeat)
986 {
987 case 0:
988 return pDoorsSelection == "DoorsDriver";
989
990 case 1:
991 return pDoorsSelection == "DoorsCoDriver";
992
993 case 2:
994 return pDoorsSelection == "DoorsDriver";
995
996 case 3:
997 return pDoorsSelection == "DoorsCoDriver";
998 }
999
1000 return false;
1001 }
1002
1004 {
1005 switch (pDoorSelection)
1006 {
1007 case "DoorsDriver":
1008 return 0;
1009 case "DoorsCoDriver":
1010 return 1;
1011 }
1012
1013 return -1;
1014 }
1015
1017 {
1018 super.SetActions();
1019
1021 }
1022
1024 {
1025 SpawnUniversalParts();
1026 SpawnAdditionalItems();
1027 FillUpCarFluids();
1028
1034
1039
1040
1043 }
1044}
1045
1047{
1049 {
1050 SpawnUniversalParts();
1051 SpawnAdditionalItems();
1052 FillUpCarFluids();
1053
1054 GameInventory inventory = GetInventory();
1059
1064
1065
1068 }
1069}
1070
1072{
1074 {
1075 SpawnUniversalParts();
1076 SpawnAdditionalItems();
1077 FillUpCarFluids();
1078
1079 GameInventory inventory = GetInventory();
1084
1089
1090
1093 }
1094}
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.