584{
588
590 {
591
592
593 m_EngineStartOK = "Hatchback_02_engine_start_SoundSet";
594 m_EngineStartBattery = "Hatchback_02_engine_failed_start_battery_SoundSet";
595 m_EngineStartPlug = "Hatchback_02_engine_failed_start_sparkplugs_SoundSet";
596 m_EngineStartFuel = "Hatchback_02_engine_failed_start_fuel_SoundSet";
597 m_EngineStop = "Hatchback_02_engine_stop_SoundSet";
598 m_EngineStopFuel = "Hatchback_02_engine_stop_fuel_SoundSet";
599
600 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
601 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
602
603 m_CarHornShortSoundName = "Hatchback_02_Horn_Short_SoundSet";
604 m_CarHornLongSoundName = "Hatchback_02_Horn_SoundSet";
605
606 SetEnginePos("0 0.7 1.4");
607 }
608
610 {
614 }
615
617 {
618 super.EEInit();
619
621 {
628
631 }
632 }
633
635 {
636 super.OnEngineStart();
637
639 {
642 }
643 }
644
646 {
647 super.OnEngineStop();
648
650 {
653 }
654 }
655
657 {
659 {
661 {
663 }
664 }
665 }
666
668 {
670 }
671
673 {
674 switch (posIdx)
675 {
676 case 0:
678 case 1:
680 case 2:
682 case 3:
684 }
685
686 return 0;
687 }
688
689
691 {
693 }
694
695
697 {
699 }
700
702 {
703 if (!super.CanReleaseAttachment(attachment))
704 {
705 return false;
706 }
707
709 {
710 string attType = attachment.GetType();
711 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
712 {
713 return false;
714 }
715 }
716
717 return true;
718 }
719
721 {
723 }
724
726 {
727
728 if ( !super.CanDisplayAttachmentCategory( category_name ) )
729 return false;
730
731
733 if ( category_name.
Contains(
"engine") )
734 {
736 return false;
737 }
738
739 return true;
740 }
741
743 {
744 if ( !super.CanDisplayCargo() )
745 return false;
746
748 return false;
749
750 return true;
751 }
752
754 {
756
757 Class.
CastTo(carDoor, FindAttachmentBySlotName(slotType));
758 if (!carDoor)
759 {
761 }
762
763 switch (slotType)
764 {
765 case "Hatchback_02_Door_1_1":
766 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
767
768 case "Hatchback_02_Door_2_1":
769 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
770
771 case "Hatchback_02_Door_1_2":
772 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
773
774 case "Hatchback_02_Door_2_2":
775 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
776
777 case "Hatchback_02_Hood":
778 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
779
780 case "Hatchback_02_Trunk":
781 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
782 }
783
785 }
786
787
789 {
790 switch (posIdx)
791 {
792 case 0:
794 {
795 return false;
796 }
797
798 return true;
799
800 case 1:
802 {
803 return false;
804 }
805
806 return true;
807
808 case 2:
810 {
811 return false;
812 }
813
814 return true;
815
816 case 3:
818 {
819 return false;
820 }
821
822 return true;
823 }
824
825 return false;
826 }
827
829 {
830 switch( posIdx )
831 {
832 case 0:
833 return "doors_driver";
834 break;
835 case 1:
836 return "doors_codriver";
837 break;
838 case 2:
839 return "doors_cargo1";
840 break;
841 case 3:
842 return "doors_cargo2";
843 break;
844 }
845
846 return super.GetDoorSelectionNameFromSeatPos(posIdx);
847 }
848
850 {
851 switch( posIdx )
852 {
853 case 0:
854 return "Hatchback_02_Door_1_1";
855 break;
856 case 1:
857 return "Hatchback_02_Door_2_1";
858 break;
859 case 2:
860 return "Hatchback_02_Door_1_2";
861 break;
862 case 3:
863 return "Hatchback_02_Door_2_2";
864 break;
865 }
866
867 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
868 }
869
871 {
872 switch (ctrl)
873 {
875 float newValue = 0;
877 {
878 newValue += 0.25;
879 }
880
882 {
883 newValue += 0.25;
884 }
885
887 {
888 newValue += 0.25;
889 }
890
892 {
893 newValue += 0.25;
894 }
895
897 break;
898 }
899
900 return super.OnSound(ctrl, oldValue);
901 }
902
904 {
905 switch( selection )
906 {
907 case "doors_driver":
908 return "DoorsDriver";
909 case "doors_codriver":
910 return "DoorsCoDriver";
911 case "doors_cargo1":
912 return "DoorsCargo1";
913 case "doors_cargo2":
914 return "DoorsCargo2";
915 case "doors_hood":
916 return "DoorsHood";
917 case "doors_trunk":
918 return "DoorsTrunk";
919 }
920
921 return "";
922 }
923
924
926 {
927 return false;
928 }
929
931 {
932 return false;
933 }
934
936 {
937 switch (currentSeat)
938 {
939 case 0:
940 return nextSeat == 1;
941 case 1:
942 return nextSeat == 0;
943 case 2:
944 return nextSeat == 3;
945 case 3:
946 return nextSeat == 2;
947 }
948
949 return false;
950 }
951
953 {
954 switch (pCurrentSeat)
955 {
956 case 0:
957 return pDoorsSelection == "DoorsDriver";
958 case 1:
959 return pDoorsSelection == "DoorsCoDriver";
960 case 2:
961 return pDoorsSelection == "DoorsCargo1";
962 case 3:
963 return pDoorsSelection == "DoorsCargo2";
964 }
965
966 return false;
967 }
968
970 {
971 SpawnUniversalParts();
972 SpawnAdditionalItems();
973 FillUpCarFluids();
974
980
987
988
991 }
992}
993
995{
997 {
998 SpawnUniversalParts();
999 SpawnAdditionalItems();
1000 FillUpCarFluids();
1001
1002 GameInventory inventory = GetInventory();
1007
1014
1015
1018 }
1019};
1020
1022{
1024 {
1025 SpawnUniversalParts();
1026 SpawnAdditionalItems();
1027 FillUpCarFluids();
1028
1029 GameInventory inventory = GetInventory();
1034
1041
1042
1045 }
1046}
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.