573{
577
579 {
580
581
582 m_EngineStartOK = "Hatchback_02_engine_start_SoundSet";
583 m_EngineStartBattery = "Hatchback_02_engine_failed_start_battery_SoundSet";
584 m_EngineStartPlug = "Hatchback_02_engine_failed_start_sparkplugs_SoundSet";
585 m_EngineStartFuel = "Hatchback_02_engine_failed_start_fuel_SoundSet";
586 m_EngineStop = "Hatchback_02_engine_stop_SoundSet";
587 m_EngineStopFuel = "Hatchback_02_engine_stop_fuel_SoundSet";
588
589 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
590 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
591
592 m_CarHornShortSoundName = "Hatchback_02_Horn_Short_SoundSet";
593 m_CarHornLongSoundName = "Hatchback_02_Horn_SoundSet";
594
595 SetEnginePos("0 0.7 1.4");
596 }
597
599 {
603 }
604
606 {
607 super.EEInit();
608
610 {
617
620 }
621 }
622
624 {
625 super.OnEngineStart();
626
628 {
631 }
632 }
633
635 {
636 super.OnEngineStop();
637
639 {
642 }
643 }
644
646 {
648 {
650 {
652 }
653 }
654 }
655
657 {
659 }
660
662 {
663 switch (posIdx)
664 {
665 case 0:
667 case 1:
669 case 2:
671 case 3:
673 }
674
675 return 0;
676 }
677
678
680 {
682 }
683
684
686 {
688 }
689
691 {
692 if (!super.CanReleaseAttachment(attachment))
693 {
694 return false;
695 }
696
698 {
699 string attType = attachment.GetType();
700 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
701 {
702 return false;
703 }
704 }
705
706 return true;
707 }
708
710 {
712 }
713
715 {
716
717 if ( !super.CanDisplayAttachmentCategory( category_name ) )
718 return false;
719
720
722 if ( category_name.
Contains(
"engine") )
723 {
725 return false;
726 }
727
728 return true;
729 }
730
732 {
733 if ( !super.CanDisplayCargo() )
734 return false;
735
737 return false;
738
739 return true;
740 }
741
743 {
745
746 Class.
CastTo(carDoor, FindAttachmentBySlotName(slotType));
747 if (!carDoor)
748 {
750 }
751
752 switch (slotType)
753 {
754 case "Hatchback_02_Door_1_1":
755 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
756
757 case "Hatchback_02_Door_2_1":
758 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
759
760 case "Hatchback_02_Door_1_2":
761 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
762
763 case "Hatchback_02_Door_2_2":
764 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
765
766 case "Hatchback_02_Hood":
767 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
768
769 case "Hatchback_02_Trunk":
770 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
771 }
772
774 }
775
776
778 {
779 switch (posIdx)
780 {
781 case 0:
783 {
784 return false;
785 }
786
787 return true;
788
789 case 1:
791 {
792 return false;
793 }
794
795 return true;
796
797 case 2:
799 {
800 return false;
801 }
802
803 return true;
804
805 case 3:
807 {
808 return false;
809 }
810
811 return true;
812 }
813
814 return false;
815 }
816
818 {
819 switch( posIdx )
820 {
821 case 0:
822 return "doors_driver";
823 break;
824 case 1:
825 return "doors_codriver";
826 break;
827 case 2:
828 return "doors_cargo1";
829 break;
830 case 3:
831 return "doors_cargo2";
832 break;
833 }
834
835 return super.GetDoorSelectionNameFromSeatPos(posIdx);
836 }
837
839 {
840 switch( posIdx )
841 {
842 case 0:
843 return "Hatchback_02_Door_1_1";
844 break;
845 case 1:
846 return "Hatchback_02_Door_2_1";
847 break;
848 case 2:
849 return "Hatchback_02_Door_1_2";
850 break;
851 case 3:
852 return "Hatchback_02_Door_2_2";
853 break;
854 }
855
856 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
857 }
858
860 {
861 switch (ctrl)
862 {
864 float newValue = 0;
866 {
867 newValue += 0.25;
868 }
869
871 {
872 newValue += 0.25;
873 }
874
876 {
877 newValue += 0.25;
878 }
879
881 {
882 newValue += 0.25;
883 }
884
886 break;
887 }
888
889 return super.OnSound(ctrl, oldValue);
890 }
891
893 {
894 switch( selection )
895 {
896 case "doors_driver":
897 return "DoorsDriver";
898 case "doors_codriver":
899 return "DoorsCoDriver";
900 case "doors_cargo1":
901 return "DoorsCargo1";
902 case "doors_cargo2":
903 return "DoorsCargo2";
904 case "doors_hood":
905 return "DoorsHood";
906 case "doors_trunk":
907 return "DoorsTrunk";
908 }
909
910 return "";
911 }
912
913
915 {
916 return false;
917 }
918
920 {
921 return false;
922 }
923
925 {
926 switch (currentSeat)
927 {
928 case 0:
929 return nextSeat == 1;
930 case 1:
931 return nextSeat == 0;
932 case 2:
933 return nextSeat == 3;
934 case 3:
935 return nextSeat == 2;
936 }
937
938 return false;
939 }
940
942 {
943 switch (pCurrentSeat)
944 {
945 case 0:
946 return pDoorsSelection == "DoorsDriver";
947 case 1:
948 return pDoorsSelection == "DoorsCoDriver";
949 case 2:
950 return pDoorsSelection == "DoorsCargo1";
951 case 3:
952 return pDoorsSelection == "DoorsCargo2";
953 }
954
955 return false;
956 }
957
959 {
960 SpawnUniversalParts();
961 SpawnAdditionalItems();
962 FillUpCarFluids();
963
969
976
977
980 }
981}
982
984{
986 {
987 SpawnUniversalParts();
988 SpawnAdditionalItems();
989 FillUpCarFluids();
990
991 GameInventory inventory = GetInventory();
996
1003
1004
1007 }
1008};
1009
1011{
1013 {
1014 SpawnUniversalParts();
1015 SpawnAdditionalItems();
1016 FillUpCarFluids();
1017
1018 GameInventory inventory = GetInventory();
1023
1030
1031
1034 }
1035}
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.