DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ CanDisplayAttachmentCategory()

override bool OnDebugSpawn::CanDisplayAttachmentCategory ( string category_name)
protected

См. определение в файле Vehicles/InheritedCars/Sedan_02.c строка 618

618 : CarScript
619{
623
624 void Sedan_02()
625 {
626 m_dmgContactCoef = 0.0790;
627
628 m_EngineStartOK = "Sedan_02_engine_start_SoundSet";
629 m_EngineStartBattery = "Sedan_02_engine_failed_start_battery_SoundSet";
630 m_EngineStartPlug = "Sedan_02_engine_failed_start_sparkplugs_SoundSet";
631 m_EngineStartFuel = "Sedan_02_engine_failed_start_fuel_SoundSet";
632 m_EngineStop = "Sedan_02_engine_stop_SoundSet";
633 m_EngineStopFuel = "Sedan_02_engine_stop_fuel_SoundSet";
634
635 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
636 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
637
638 m_LightsComponent.RegisterLight("Front", new VehicleLightData(new Sedan_02LightProfileFront()));
639 m_LightsComponent.RegisterLight("Rear", new VehicleLightData(new Sedan_02LightProfileRear()));
640
641 m_HornComponent.RegisterSound(VehicleHornMode.SHORT, "Sedan_02_Horn_Short_SoundSet");
642 m_HornComponent.RegisterSound(VehicleHornMode.LONG, "Sedan_02_Horn_SoundSet");
643
644 SetEnginePos("0 0.7 -1.7");
645
647 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
648 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
649 }
650
651 void ~Sedan_02()
652 {
653 m_UTSource = null;
654 m_UTSSettings = null;
655 m_UTSLEngine = null;
656 }
657
658 override void EEInit()
659 {
660 super.EEInit();
661
662 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
663 {
665 m_UTSSettings.m_ManualUpdate = true;
667 m_UTSSettings.m_TemperatureCap = 0;
668 m_UTSSettings.m_RangeFull = 0.5;
669 m_UTSSettings.m_RangeMax = 2;
670
673 }
674 }
675
676 override bool NeedElectricitySourceDevice()
677 {
678 return true;
679 }
680
682 {
683 super.GetElectricitySourceDevice();
684
685 return GetInventory().FindAttachment(CarBattery.SLOT_ID);
686 }
687
688 override string GetElectricitySourceDeviceType()
689 {
690 return "CarBattery";
691 }
692
693 override void OnEngineStart()
694 {
695 super.OnEngineStart();
696
697 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
698 {
699 if (m_UTSource)
700 m_UTSource.SetDefferedActive(true, 20.0);
701 }
702 }
703
704 override void OnEngineStop()
705 {
706 super.OnEngineStop();
707
708 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
709 {
710 if (m_UTSource)
711 m_UTSource.SetDefferedActive(false, 10.0);
712 }
713 }
714
715 override void EOnPostSimulate(IEntity other, float timeSlice)
716 {
717 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
718 {
719 if (m_UTSource && m_UTSource.IsActive())
720 {
722 }
723 }
724 }
725
726 override int GetAnimInstance()
727 {
728 return VehicleAnimInstances.S120;
729 }
730
731 override int GetSeatAnimationType(int posIdx)
732 {
733 switch (posIdx)
734 {
735 case 0:
736 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
737 case 1:
738 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
739 case 2:
740 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
741 case 3:
742 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
743 }
744
745 return 0;
746 }
747
748 override bool CanReleaseAttachment( EntityAI attachment )
749 {
750 if (!super.CanReleaseAttachment(attachment))
751 {
752 return false;
753 }
754
755 string attType = attachment.GetType();
756 switch (attType)
757 {
758 case "CarBattery":
759 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED || EngineIsOn())
760 {
761 return false;
762 }
763 break;
764
765 case "SparkPlug":
766 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED || EngineIsOn())
767 {
768 return false;
769 }
770 break;
771
772 case "CarRadiator":
773 if (GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED || EngineIsOn())
774 {
775 return false;
776 }
777 break;
778 }
779
780 return true;
781 }
782
783 override protected bool CanManipulateSpareWheel(string slotSelectionName)
784 {
785 return GetCarDoorsState("Sedan_02_Hood") != CarDoorState.DOORS_CLOSED;
786 }
787
788 override bool CanDisplayAttachmentCategory(string category_name)
789 {
790 if ( !super.CanDisplayAttachmentCategory(category_name))
791 {
792 return false;
793 }
794
795 category_name.ToLower();
796 if (category_name.Contains("engine"))
797 {
798 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED)
799 {
800 return false;
801 }
802 }
803
804 if (category_name.Contains("trunk"))
805 {
806 if (GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED)
807 {
808 return false;
809 }
810 }
811
812 return true;
813 }
814
815 override bool CanDisplayCargo()
816 {
817 if ( !super.CanDisplayCargo() )
818 return false;
819
820 if ( GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED )
821 return false;
822
823 return true;
824 }
825
826 override int GetCarDoorsState(string slotType)
827 {
828 CarDoor carDoor;
829
830 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
831 if (!carDoor)
832 {
833 return CarDoorState.DOORS_MISSING;
834 }
835
836 switch (slotType)
837 {
838 case "Sedan_02_Door_1_1":
839 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
840
841 case "Sedan_02_Door_2_1":
842 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
843
844 case "Sedan_02_Door_1_2":
845 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
846
847 case "Sedan_02_Door_2_2":
848 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
849
850 case "Sedan_02_Hood":
851 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
852
853 case "Sedan_02_Trunk":
854 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
855 }
856
857 return CarDoorState.DOORS_MISSING;
858 }
859
860
861 override bool CrewCanGetThrough( int posIdx )
862 {
863 switch( posIdx )
864 {
865 case 0:
866 if ( GetCarDoorsState("Sedan_02_Door_1_1") == CarDoorState.DOORS_CLOSED )
867 return false;
868
869 return true;
870 break;
871
872 case 1:
873 if ( GetCarDoorsState("Sedan_02_Door_2_1") == CarDoorState.DOORS_CLOSED )
874 return false;
875
876 return true;
877 break;
878
879 case 2:
880 if ( GetCarDoorsState("Sedan_02_Door_1_2") == CarDoorState.DOORS_CLOSED )
881 return false;
882
883 return true;
884 break;
885
886 case 3:
887 if ( GetCarDoorsState("Sedan_02_Door_2_2") == CarDoorState.DOORS_CLOSED )
888 return false;
889
890 return true;
891 break;
892 }
893
894 return false;
895 }
896
897 override string GetDoorSelectionNameFromSeatPos(int posIdx)
898 {
899 switch( posIdx )
900 {
901 case 0:
902 return "doors_driver";
903 break;
904 case 1:
905 return "doors_codriver";
906 break;
907 case 2:
908 return "doors_cargo1";
909 break;
910 case 3:
911 return "doors_cargo2";
912 break;
913 }
914
915 return super.GetDoorSelectionNameFromSeatPos(posIdx);
916 }
917
918 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
919 {
920 switch( posIdx )
921 {
922 case 0:
923 return "Sedan_02_Door_1_1";
924 break;
925 case 1:
926 return "Sedan_02_Door_2_1";
927 break;
928 case 2:
929 return "Sedan_02_Door_1_2";
930 break;
931 case 3:
932 return "Sedan_02_Door_2_2";
933 break;
934 }
935
936 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
937 }
938
939 override float OnSound(CarSoundCtrl ctrl, float oldValue)
940 {
941 switch ( ctrl )
942 {
943 case CarSoundCtrl.DOORS:
944 float newValue = 0;
945 if (GetCarDoorsState("Sedan_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
946 {
947 newValue += 0.25;
948 }
949
950 if (GetCarDoorsState("Sedan_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
951 {
952 newValue += 0.25;
953 }
954
955 if (GetCarDoorsState("Sedan_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
956 {
957 newValue += 0.25;
958 }
959
960 if (GetCarDoorsState("Sedan_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
961 {
962 newValue += 0.25;
963 }
964
965 return Math.Clamp(newValue, 0, 1);
966 break;
967 }
968
969 return super.OnSound(ctrl, oldValue);
970 }
971
972 override string GetAnimSourceFromSelection( string selection )
973 {
974 switch( selection )
975 {
976 case "doors_driver":
977 return "DoorsDriver";
978 case "doors_codriver":
979 return "DoorsCoDriver";
980 case "doors_cargo1":
981 return "DoorsCargo1";
982 case "doors_cargo2":
983 return "DoorsCargo2";
984 case "doors_hood":
985 return "DoorsHood";
986 case "doors_trunk":
987 return "DoorsTrunk";
988 }
989
990 return "";
991 }
992
993 override bool IsVitalGlowPlug()
994 {
995 return false;
996 }
997
998 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
999 {
1000 switch (currentSeat)
1001 {
1002 case 0:
1003 return nextSeat == 1;
1004
1005 case 1:
1006 return nextSeat == 0;
1007
1008 case 2:
1009 return nextSeat == 3;
1010
1011 case 3:
1012 return nextSeat == 2;
1013 }
1014
1015 return false;
1016 }
1017
1018 override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
1019 {
1020 switch (pCurrentSeat)
1021 {
1022 case 0:
1023 return pDoorsSelection == "DoorsDriver";
1024
1025 case 1:
1026 return pDoorsSelection == "DoorsCoDriver";
1027
1028 case 2:
1029 return pDoorsSelection == "DoorsCargo1";
1030
1031 case 3:
1032 return pDoorsSelection == "DoorsCargo2";
1033 }
1034
1035 return false;
1036 }
1037
1038 override void OnDebugSpawn()
1039 {
1041 SpawnAdditionalItems();
1042 FillUpCarFluids();
1043
1044 GameInventory inventory = GetInventory();
1045 inventory.CreateInInventory("Sedan_02_Wheel");
1046 inventory.CreateInInventory("Sedan_02_Wheel");
1047 inventory.CreateInInventory("Sedan_02_Wheel");
1048 inventory.CreateInInventory("Sedan_02_Wheel");
1049 inventory.CreateInInventory("Sedan_02_Wheel");
1050
1051 inventory.CreateInInventory("Sedan_02_Door_1_1");
1052 inventory.CreateInInventory("Sedan_02_Door_1_2");
1053 inventory.CreateInInventory("Sedan_02_Door_2_1");
1054 inventory.CreateInInventory("Sedan_02_Door_2_2");
1055 inventory.CreateInInventory("Sedan_02_Hood");
1056 inventory.CreateInInventory("Sedan_02_Trunk");
1057
1058 //-----IN CAR CARGO
1059 inventory.CreateInInventory("Sedan_02_Wheel");
1060 inventory.CreateInInventory("Sedan_02_Wheel");
1061 }
1062}
1063
1064class Sedan_02_Red : Sedan_02
1065{
1066 override void OnDebugSpawn()
1067 {
1069 SpawnAdditionalItems();
1070 FillUpCarFluids();
1071
1072 GameInventory inventory = GetInventory();
1073 inventory.CreateInInventory("Sedan_02_Wheel");
1074 inventory.CreateInInventory("Sedan_02_Wheel");
1075 inventory.CreateInInventory("Sedan_02_Wheel");
1076 inventory.CreateInInventory("Sedan_02_Wheel");
1077
1078 inventory.CreateInInventory("Sedan_02_Door_1_1_Red");
1079 inventory.CreateInInventory("Sedan_02_Door_1_2_Red");
1080 inventory.CreateInInventory("Sedan_02_Door_2_1_Red");
1081 inventory.CreateInInventory("Sedan_02_Door_2_2_Red");
1082 inventory.CreateInInventory("Sedan_02_Hood_Red");
1083 inventory.CreateInInventory("Sedan_02_Trunk_Red");
1084
1085 //-----IN CAR CARGO
1086 inventory.CreateInInventory("Sedan_02_Wheel");
1087 inventory.CreateInInventory("Sedan_02_Wheel");
1088 }
1089}
1090
1091class Sedan_02_Grey : Sedan_02
1092{
1093 override void OnDebugSpawn()
1094 {
1096 SpawnAdditionalItems();
1097 FillUpCarFluids();
1098
1099 GameInventory inventory = GetInventory();
1100 inventory.CreateInInventory("Sedan_02_Wheel");
1101 inventory.CreateInInventory("Sedan_02_Wheel");
1102 inventory.CreateInInventory("Sedan_02_Wheel");
1103 inventory.CreateInInventory("Sedan_02_Wheel");
1104
1105 inventory.CreateInInventory("Sedan_02_Door_1_1_Grey");
1106 inventory.CreateInInventory("Sedan_02_Door_1_2_Grey");
1107 inventory.CreateInInventory("Sedan_02_Door_2_1_Grey");
1108 inventory.CreateInInventory("Sedan_02_Door_2_2_Grey");
1109 inventory.CreateInInventory("Sedan_02_Hood_Grey");
1110 inventory.CreateInInventory("Sedan_02_Trunk_Grey");
1111
1112 //-----IN CAR CARGO
1113 inventory.CreateInInventory("Sedan_02_Wheel");
1114 inventory.CreateInInventory("Sedan_02_Wheel");
1115 }
1116}
CarSoundCtrl
Car's sound controller list. (native, do not change or extend)
Определения Car.c:4
CarDoorState
Определения CarScript.c:2
DayZGame g_Game
Определения DayZGame.c:4074
ref UniversalTemperatureSourceSettings m_UTSSettings
Определения FireplaceBase.c:222
ref UniversalTemperatureSource m_UTSource
Определения FireplaceBase.c:221
proto native void SetEnginePos(vector pos)
Override the position of engine (model space)
proto native bool EngineIsOn()
Returns true when engine is running, false otherwise.
void SpawnUniversalParts()
Определения MotorbikeScript.c:1425
string m_EngineStartOK
Определения MotorbikeScript.c:89
string m_EngineStartBattery
Определения MotorbikeScript.c:90
string m_EngineStartPlug
Определения MotorbikeScript.c:91
string m_EngineStartFuel
Определения MotorbikeScript.c:92
ref VehicleHornComponent m_HornComponent
Определения MotorbikeScript.c:75
string m_EngineStopFuel
Определения MotorbikeScript.c:94
ref VehicleLightsComponent m_LightsComponent
Определения MotorbikeScript.c:74
string m_EngineStop
Определения MotorbikeScript.c:93
Sedan_02LightProfileFront VehicleLightProfileFront Sedan_02LightProfileRear()
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances
Определения VehicleAnimInstances.c:2
void VehicleLightData(VehicleLightProfileBase profile)
Определения VehicleLightsComponent.c:21
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
override string GetAnimSourceFromSelection(string selection)
override int GetSeatAnimationType(int posIdx)
override float OnSound(CarSoundCtrl ctrl, float oldValue)
void ~Sedan_02()
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
override void EOnPostSimulate(IEntity other, float timeSlice)
override void OnEngineStop()
override void EEInit()
override bool CanReleaseAttachment(EntityAI attachment)
override bool CanDisplayCargo()
override EntityAI GetElectricitySourceDevice()
Sedan_02 CarScript OnDebugSpawn()
override void OnEngineStart()
override int GetAnimInstance()
override bool CrewCanGetThrough(int posIdx)
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
bool CanManipulateSpareWheel(string slotSelectionName)
override bool IsVitalGlowPlug()
override bool NeedElectricitySourceDevice()
void Sedan_02()
override string GetElectricitySourceDeviceType()
override string GetDoorSelectionNameFromSeatPos(int posIdx)
override int GetCarDoorsState(string slotType)
override bool CanDisplayAttachmentCategory(string category_name)
static int SLOT_ID
Определения CarBattery.c:3
Определения CarBattery.c:2
Определения Truck_02.c:2
Super root of all classes in Enforce script.
Определения EnScript.c:11
EntityAI CreateInInventory(string type)
creates entity somewhere in inventory
script counterpart to engine's class Inventory
Определения EnEntity.c:165
Определения EnMath.c:7
override void OnDebugSpawn()
override void OnDebugSpawn()
original Timer deletes m_params which is unwanted
Определения UniversalTemperatureSource.c:39
const int LONG
Определения VehicleHornComponent.c:5
const int SHORT
Определения VehicleHornComponent.c:4
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
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
Определения 3_Game/DayZ/constants.c:856
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.
Определения EnString.c:286
proto int ToLower()
Changes string to lowercase. Returns length.