532{
536
538 {
539
540
541 m_EngineStartOK = "Hatchback_02_engine_start_SoundSet";
542 m_EngineStartBattery = "Hatchback_02_engine_failed_start_battery_SoundSet";
543 m_EngineStartPlug = "Hatchback_02_engine_failed_start_sparkplugs_SoundSet";
544 m_EngineStartFuel = "Hatchback_02_engine_failed_start_fuel_SoundSet";
545 m_EngineStop = "Hatchback_02_engine_stop_SoundSet";
546 m_EngineStopFuel = "Hatchback_02_engine_stop_fuel_SoundSet";
547
548 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
549 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
550
551 m_CarHornShortSoundName = "Hatchback_02_Horn_Short_SoundSet";
552 m_CarHornLongSoundName = "Hatchback_02_Horn_SoundSet";
553
554 SetEnginePos("0 0.7 1.4");
555 }
556
558 {
562 }
563
565 {
566 super.EEInit();
567
569 {
576
579 }
580 }
581
583 {
584 super.OnEngineStart();
585
587 {
590 }
591 }
592
594 {
595 super.OnEngineStop();
596
598 {
601 }
602 }
603
605 {
607 {
609 {
611 }
612 }
613 }
614
616 {
618 }
619
621 {
622 switch (posIdx)
623 {
624 case 0:
626 case 1:
628 case 2:
630 case 3:
632 }
633
634 return 0;
635 }
636
637
639 {
641 }
642
643
645 {
647 }
648
650 {
651 if (!super.CanReleaseAttachment(attachment))
652 {
653 return false;
654 }
655
657 {
658 string attType = attachment.GetType();
659 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
660 {
661 return false;
662 }
663 }
664
665 return true;
666 }
667
669 {
671 }
672
674 {
675
676 if ( !super.CanDisplayAttachmentCategory( category_name ) )
677 return false;
678
679
681 if ( category_name.
Contains(
"engine") )
682 {
684 return false;
685 }
686
687 return true;
688 }
689
691 {
692 if ( !super.CanDisplayCargo() )
693 return false;
694
696 return false;
697
698 return true;
699 }
700
702 {
704
705 Class.
CastTo(carDoor, FindAttachmentBySlotName(slotType));
706 if (!carDoor)
707 {
709 }
710
711 switch (slotType)
712 {
713 case "Hatchback_02_Door_1_1":
714 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
715
716 case "Hatchback_02_Door_2_1":
717 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
718
719 case "Hatchback_02_Door_1_2":
720 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
721
722 case "Hatchback_02_Door_2_2":
723 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
724
725 case "Hatchback_02_Hood":
726 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
727
728 case "Hatchback_02_Trunk":
729 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
730 }
731
733 }
734
735
737 {
738 switch (posIdx)
739 {
740 case 0:
742 {
743 return false;
744 }
745
746 return true;
747
748 case 1:
750 {
751 return false;
752 }
753
754 return true;
755
756 case 2:
758 {
759 return false;
760 }
761
762 return true;
763
764 case 3:
766 {
767 return false;
768 }
769
770 return true;
771 }
772
773 return false;
774 }
775
777 {
778 switch( posIdx )
779 {
780 case 0:
781 return "doors_driver";
782 break;
783 case 1:
784 return "doors_codriver";
785 break;
786 case 2:
787 return "doors_cargo1";
788 break;
789 case 3:
790 return "doors_cargo2";
791 break;
792 }
793
794 return super.GetDoorSelectionNameFromSeatPos(posIdx);
795 }
796
798 {
799 switch( posIdx )
800 {
801 case 0:
802 return "Hatchback_02_Door_1_1";
803 break;
804 case 1:
805 return "Hatchback_02_Door_2_1";
806 break;
807 case 2:
808 return "Hatchback_02_Door_1_2";
809 break;
810 case 3:
811 return "Hatchback_02_Door_2_2";
812 break;
813 }
814
815 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
816 }
817
819 {
820 switch (ctrl)
821 {
823 float newValue = 0;
825 {
826 newValue += 0.25;
827 }
828
830 {
831 newValue += 0.25;
832 }
833
835 {
836 newValue += 0.25;
837 }
838
840 {
841 newValue += 0.25;
842 }
843
845 break;
846 }
847
848 return super.OnSound(ctrl, oldValue);
849 }
850
852 {
853 switch( selection )
854 {
855 case "doors_driver":
856 return "DoorsDriver";
857 case "doors_codriver":
858 return "DoorsCoDriver";
859 case "doors_cargo1":
860 return "DoorsCargo1";
861 case "doors_cargo2":
862 return "DoorsCargo2";
863 case "doors_hood":
864 return "DoorsHood";
865 case "doors_trunk":
866 return "DoorsTrunk";
867 }
868
869 return "";
870 }
871
872
874 {
875 return false;
876 }
877
879 {
880 return false;
881 }
882
884 {
885 switch (currentSeat)
886 {
887 case 0:
888 return nextSeat == 1;
889 case 1:
890 return nextSeat == 0;
891 case 2:
892 return nextSeat == 3;
893 case 3:
894 return nextSeat == 2;
895 }
896
897 return false;
898 }
899
901 {
902 switch (pCurrentSeat)
903 {
904 case 0:
905 return pDoorsSelection == "DoorsDriver";
906 case 1:
907 return pDoorsSelection == "DoorsCoDriver";
908 case 2:
909 return pDoorsSelection == "DoorsCargo1";
910 case 3:
911 return pDoorsSelection == "DoorsCargo2";
912 }
913
914 return false;
915 }
916
918 {
919 SpawnUniversalParts();
920 SpawnAdditionalItems();
921 FillUpCarFluids();
922
928
935
936
939 }
940}
941
943{
945 {
946 SpawnUniversalParts();
947 SpawnAdditionalItems();
948 FillUpCarFluids();
949
950 GameInventory inventory = GetInventory();
955
962
963
966 }
967};
968
970{
972 {
973 SpawnUniversalParts();
974 SpawnAdditionalItems();
975 FillUpCarFluids();
976
977 GameInventory inventory = GetInventory();
982
989
990
993 }
994}
CarSoundCtrl
Car's sound controller list. (native, do not change or extend)
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
ref UniversalTemperatureSourceSettings m_UTSSettings
ref UniversalTemperatureSource m_UTSource
class Hatchback_02_Blue extends Hatchback_02 OnDebugSpawn
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
override string GetAnimSourceFromSelection(string selection)
override int GetSeatAnimationType(int posIdx)
override float OnSound(CarSoundCtrl ctrl, float oldValue)
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
override void EOnPostSimulate(IEntity other, float timeSlice)
override void OnEngineStop()
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()
override bool IsVitalTruckBattery()
override string GetDoorSelectionNameFromSeatPos(int posIdx)
override int GetCarDoorsState(string slotType)
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.