546{
550
552 {
553
554
555 m_EngineStartOK = "offroad_engine_start_SoundSet";
556 m_EngineStartBattery = "offroad_engine_failed_start_battery_SoundSet";
557 m_EngineStartPlug = "offroad_engine_failed_start_sparkplugs_SoundSet";
558 m_EngineStartFuel = "offroad_engine_failed_start_fuel_SoundSet";
559 m_EngineStop = "offroad_engine_stop_SoundSet";
560 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
561
562 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
563 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
564 m_CarSeatShiftInSound = "Offroad_SeatShiftIn_SoundSet";
565 m_CarSeatShiftOutSound = "Offroad_SeatShiftOut_SoundSet";
566
567 m_CarHornShortSoundName = "Offroad_Horn_Short_SoundSet";
568 m_CarHornLongSoundName = "Offroad_Horn_SoundSet";
569
570 SetEnginePos("0 0.7 1.2");
571 }
572
574 {
578 }
579
581 {
582 super.EEInit();
583
585 {
592
595 }
596 }
597
599 {
600 super.OnEngineStart();
601
603 {
606 }
607 }
608
610 {
611 super.OnEngineStop();
612
614 {
617 }
618 }
619
621 {
623 {
625 {
627 }
628 }
629 }
630
632 {
634 }
635
637 {
638 return 3.5;
639 }
640
642 {
643 switch (posIdx)
644 {
645 case 0:
647 case 1:
649 case 2:
651 case 3:
653 }
654
655 return 0;
656
657 }
658
659
661 {
663 }
664
666 {
668 }
669
671 {
672 if (!super.CanReleaseAttachment(attachment))
673 {
674 return false;
675 }
676
678 {
679 string attType = attachment.GetType();
680 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
681 {
682 return false;
683 }
684 }
685
686 return true;
687 }
688
690 {
692 }
693
695 {
696 if (!super.CanDisplayAttachmentCategory(category_name))
697 {
698 return false;
699 }
700
702 if (category_name.
Contains(
"engine"))
703 {
705 {
706 return false;
707 }
708 }
709
710 return true;
711 }
712
714 {
715 if (!super.CanDisplayCargo())
716 {
717 return false;
718 }
719
721 {
722 return false;
723 }
724
725 return true;
726 }
727
729 {
731
732 Class.
CastTo(carDoor, FindAttachmentBySlotName(slotType));
733 if (!carDoor)
734 {
736 }
737
738 switch (slotType)
739 {
740 case "NivaDriverDoors":
741 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
742
743 case "NivaCoDriverDoors":
744 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
745
746 case "NivaHood":
747 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
748
749 case "NivaTrunk":
750 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
751 }
752
754 }
755
757 {
759 switch (posIdx)
760 {
761 case 0:
763 return false;
764 else if (GetAnimationPhase("SeatDriver") > 0.5)
765 return false;
766
767 return true;
768
769 case 1:
771 return false;
772 else if (GetAnimationPhase("SeatCoDriver") > 0.5)
773 return false;
774
775 return true;
776
777 case 2:
779 return false;
780 else if (GetAnimationPhase("SeatDriver") <= 0.5)
781 return false;
782
783 return true;
784
785 case 3:
787 return false;
788 else if (GetAnimationPhase("SeatCoDriver") <= 0.5)
789 return false;
790
791 return true;
792 }
793
794 return false;
795 }
796
798 {
799 switch (posIdx)
800 {
801 case 0:
802 case 2:
803 return "doors_driver";
804 case 1:
805 case 3:
806 return "doors_codriver";
807 }
808
809 return super.GetDoorSelectionNameFromSeatPos(posIdx);
810 }
811
813 {
814 switch (posIdx)
815 {
816 case 0:
817 case 2:
818 return "NivaDriverDoors";
819 case 1:
820 case 3:
821 return "NivaCoDriverDoors";
822 }
823
824 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
825 }
826
827
828
830 {
831 float tempCap = 0.0;
832
833 switch (ctrl)
834 {
836 float newValue = 0;
838 {
839 newValue += 0.5;
840 }
841
843 {
844 newValue += 0.5;
845 }
846
848 {
849 newValue += 0.3;
850 }
851
853 {
854 newValue -= 0.6;
855 }
856
858 {
859 newValue -= 0.2;
860 }
861
863 {
864 newValue -= 0.2;
865 }
866
868 break;
869 }
870
871 return super.OnSound(ctrl, oldValue);
872 }
873
875 {
876 switch (selection)
877 {
878 case "doors_driver":
879 return "DoorsDriver";
880 case "doors_codriver":
881 return "DoorsCoDriver";
882 case "doors_hood":
883 return "DoorsHood";
884 case "doors_trunk":
885 return "DoorsTrunk";
886 case "seatback_driver":
887 return "SeatDriver";
888 case "seatback_codriver":
889 return "SeatCoDriver";
890 }
891
892 return "";
893 }
894
896 {
897 switch (selection)
898 {
899 case "seat_driver":
900 case "seatback_driver":
901 case "seat_cargo1":
902 return "seat_con_1_1";
903 case "seat_codriver":
904 case "seatback_codriver":
905 case "seat_cargo2":
906 return "seat_con_2_1";
907 }
908
909 return "";
910 }
911
913 {
914 switch (selection)
915 {
916 case "seatback_driver":
917 return 0;
918 case "seatback_codriver":
919 return 1;
920 }
921
922 return -1;
923 }
924
926 {
927 return false;
928 }
929
931 {
932 return false;
933 }
934
936 {
937 if (nextSeat == 0 && GetAnimationPhase("SeatDriver") > 0.5)
938 return false;
939
940 if (nextSeat == 1 && GetAnimationPhase("SeatCoDriver") > 0.5)
941 return false;
942
943 switch (currentSeat)
944 {
945 case 0:
946 return nextSeat == 1;
947
948 case 1:
949 return nextSeat == 0;
950
951 case 2:
952 return nextSeat == 3;
953
954 case 3:
955 return nextSeat == 2;
956 }
957
958 return false;
959 }
960
962 {
963 switch (pCurrentSeat)
964 {
965 case 0:
966 return pDoorsSelection == "DoorsDriver";
967
968 case 1:
969 return pDoorsSelection == "DoorsCoDriver";
970
971 case 2:
972 return pDoorsSelection == "DoorsDriver";
973
974 case 3:
975 return pDoorsSelection == "DoorsCoDriver";
976 }
977
978 return false;
979 }
980
982 {
983 switch (pDoorSelection)
984 {
985 case "DoorsDriver":
986 return 0;
987 case "DoorsCoDriver":
988 return 1;
989 }
990
991 return -1;
992 }
993
995 {
996 super.SetActions();
997
999 }
1000
1002 {
1003 SpawnUniversalParts();
1004 SpawnAdditionalItems();
1005 FillUpCarFluids();
1006
1012
1017
1018
1021 }
1022}
1023
1025{
1027 {
1028 SpawnUniversalParts();
1029 SpawnAdditionalItems();
1030 FillUpCarFluids();
1031
1032 GameInventory inventory = GetInventory();
1037
1042
1043
1046 }
1047}
1048
1050{
1052 {
1053 SpawnUniversalParts();
1054 SpawnAdditionalItems();
1055 FillUpCarFluids();
1056
1057 GameInventory inventory = GetInventory();
1062
1067
1068
1071 }
1072}
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.