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

◆ GetElectricitySourceDevice()

override EntityAI OnDebugSpawn::GetElectricitySourceDevice ( )
protected

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

511 : CarScript
512{
516
517 void Sedan_02()
518 {
519 m_dmgContactCoef = 0.0790;
520
521 m_EngineStartOK = "Sedan_02_engine_start_SoundSet";
522 m_EngineStartBattery = "Sedan_02_engine_failed_start_battery_SoundSet";
523 m_EngineStartPlug = "Sedan_02_engine_failed_start_sparkplugs_SoundSet";
524 m_EngineStartFuel = "Sedan_02_engine_failed_start_fuel_SoundSet";
525 m_EngineStop = "Sedan_02_engine_stop_SoundSet";
526 m_EngineStopFuel = "Sedan_02_engine_stop_fuel_SoundSet";
527
528 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
529 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
530
531 m_LightsComponent.RegisterLight("Front", new VehicleLightData(new Sedan_02LightProfileFront()));
532 m_LightsComponent.RegisterLight("Rear", new VehicleLightData(new Sedan_02LightProfileRear()));
533
534 m_HornComponent.RegisterSound(VehicleHornMode.SHORT, "Sedan_02_Horn_Short_SoundSet");
535 m_HornComponent.RegisterSound(VehicleHornMode.LONG, "Sedan_02_Horn_SoundSet");
536
537 SetEnginePos("0 0.7 -1.7");
538
540 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
541 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
542 }
543
544 void ~Sedan_02()
545 {
546 m_UTSource = null;
547 m_UTSSettings = null;
548 m_UTSLEngine = null;
549 }
550
551 override void EEInit()
552 {
553 super.EEInit();
554
555 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
556 {
558 m_UTSSettings.m_ManualUpdate = true;
560 m_UTSSettings.m_TemperatureCap = 0;
561 m_UTSSettings.m_RangeFull = 0.5;
562 m_UTSSettings.m_RangeMax = 2;
563
566 }
567 }
568
569 override bool NeedElectricitySourceDevice()
570 {
571 return true;
572 }
573
575 {
576 super.GetElectricitySourceDevice();
577
578 return GetInventory().FindAttachment(CarBattery.SLOT_ID);
579 }
580
581 override string GetElectricitySourceDeviceType()
582 {
583 return "CarBattery";
584 }
585
586 override void OnEngineStart()
587 {
588 super.OnEngineStart();
589
590 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
591 {
592 if (m_UTSource)
593 m_UTSource.SetDefferedActive(true, 20.0);
594 }
595 }
596
597 override void OnEngineStop()
598 {
599 super.OnEngineStop();
600
601 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
602 {
603 if (m_UTSource)
604 m_UTSource.SetDefferedActive(false, 10.0);
605 }
606 }
607
608 override void EOnPostSimulate(IEntity other, float timeSlice)
609 {
610 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
611 {
612 if (m_UTSource && m_UTSource.IsActive())
613 {
615 }
616 }
617 }
618
619 override int GetAnimInstance()
620 {
621 return VehicleAnimInstances.S120;
622 }
623
624 override int GetSeatAnimationType(int posIdx)
625 {
626 switch (posIdx)
627 {
628 case 0:
629 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
630 case 1:
631 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
632 case 2:
633 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
634 case 3:
635 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
636 }
637
638 return 0;
639 }
640
641 override bool CanReleaseAttachment( EntityAI attachment )
642 {
643 if (!super.CanReleaseAttachment(attachment))
644 {
645 return false;
646 }
647
648 string attType = attachment.GetType();
649 switch (attType)
650 {
651 case "CarBattery":
652 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED || EngineIsOn())
653 {
654 return false;
655 }
656 break;
657
658 case "SparkPlug":
659 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED || EngineIsOn())
660 {
661 return false;
662 }
663 break;
664
665 case "CarRadiator":
666 if (GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED || EngineIsOn())
667 {
668 return false;
669 }
670 break;
671 }
672
673 return true;
674 }
675
676 override protected bool CanManipulateSpareWheel(string slotSelectionName)
677 {
678 return GetCarDoorsState("Sedan_02_Hood") != CarDoorState.DOORS_CLOSED;
679 }
680
681 override bool CanDisplayAttachmentCategory(string category_name)
682 {
683 if ( !super.CanDisplayAttachmentCategory(category_name))
684 {
685 return false;
686 }
687
688 category_name.ToLower();
689 if (category_name.Contains("engine"))
690 {
691 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED)
692 {
693 return false;
694 }
695 }
696
697 if (category_name.Contains("trunk"))
698 {
699 if (GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED)
700 {
701 return false;
702 }
703 }
704
705 return true;
706 }
707
708 override bool CanDisplayCargo()
709 {
710 if ( !super.CanDisplayCargo() )
711 return false;
712
713 if ( GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED )
714 return false;
715
716 return true;
717 }
718
719 override int GetCarDoorsState(string slotType)
720 {
721 CarDoor carDoor;
722
723 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
724 if (!carDoor)
725 {
726 return CarDoorState.DOORS_MISSING;
727 }
728
729 switch (slotType)
730 {
731 case "Sedan_02_Door_1_1":
732 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
733
734 case "Sedan_02_Door_2_1":
735 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
736
737 case "Sedan_02_Door_1_2":
738 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
739
740 case "Sedan_02_Door_2_2":
741 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
742
743 case "Sedan_02_Hood":
744 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
745
746 case "Sedan_02_Trunk":
747 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
748 }
749
750 return CarDoorState.DOORS_MISSING;
751 }
752
753
754 override bool CrewCanGetThrough( int posIdx )
755 {
756 switch( posIdx )
757 {
758 case 0:
759 if ( GetCarDoorsState("Sedan_02_Door_1_1") == CarDoorState.DOORS_CLOSED )
760 return false;
761
762 return true;
763 break;
764
765 case 1:
766 if ( GetCarDoorsState("Sedan_02_Door_2_1") == CarDoorState.DOORS_CLOSED )
767 return false;
768
769 return true;
770 break;
771
772 case 2:
773 if ( GetCarDoorsState("Sedan_02_Door_1_2") == CarDoorState.DOORS_CLOSED )
774 return false;
775
776 return true;
777 break;
778
779 case 3:
780 if ( GetCarDoorsState("Sedan_02_Door_2_2") == CarDoorState.DOORS_CLOSED )
781 return false;
782
783 return true;
784 break;
785 }
786
787 return false;
788 }
789
790 override string GetDoorSelectionNameFromSeatPos(int posIdx)
791 {
792 switch( posIdx )
793 {
794 case 0:
795 return "doors_driver";
796 break;
797 case 1:
798 return "doors_codriver";
799 break;
800 case 2:
801 return "doors_cargo1";
802 break;
803 case 3:
804 return "doors_cargo2";
805 break;
806 }
807
808 return super.GetDoorSelectionNameFromSeatPos(posIdx);
809 }
810
811 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
812 {
813 switch( posIdx )
814 {
815 case 0:
816 return "Sedan_02_Door_1_1";
817 break;
818 case 1:
819 return "Sedan_02_Door_2_1";
820 break;
821 case 2:
822 return "Sedan_02_Door_1_2";
823 break;
824 case 3:
825 return "Sedan_02_Door_2_2";
826 break;
827 }
828
829 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
830 }
831
832 override float OnSound(CarSoundCtrl ctrl, float oldValue)
833 {
834 switch ( ctrl )
835 {
836 case CarSoundCtrl.DOORS:
837 float newValue = 0;
838 if (GetCarDoorsState("Sedan_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
839 {
840 newValue += 0.25;
841 }
842
843 if (GetCarDoorsState("Sedan_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
844 {
845 newValue += 0.25;
846 }
847
848 if (GetCarDoorsState("Sedan_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
849 {
850 newValue += 0.25;
851 }
852
853 if (GetCarDoorsState("Sedan_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
854 {
855 newValue += 0.25;
856 }
857
858 return Math.Clamp(newValue, 0, 1);
859 break;
860 }
861
862 return super.OnSound(ctrl, oldValue);
863 }
864
865 override string GetAnimSourceFromSelection( string selection )
866 {
867 switch( selection )
868 {
869 case "doors_driver":
870 return "DoorsDriver";
871 case "doors_codriver":
872 return "DoorsCoDriver";
873 case "doors_cargo1":
874 return "DoorsCargo1";
875 case "doors_cargo2":
876 return "DoorsCargo2";
877 case "doors_hood":
878 return "DoorsHood";
879 case "doors_trunk":
880 return "DoorsTrunk";
881 }
882
883 return "";
884 }
885
886 override bool IsVitalGlowPlug()
887 {
888 return false;
889 }
890
891 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
892 {
893 switch (currentSeat)
894 {
895 case 0:
896 return nextSeat == 1;
897
898 case 1:
899 return nextSeat == 0;
900
901 case 2:
902 return nextSeat == 3;
903
904 case 3:
905 return nextSeat == 2;
906 }
907
908 return false;
909 }
910
911 override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
912 {
913 switch (pCurrentSeat)
914 {
915 case 0:
916 return pDoorsSelection == "DoorsDriver";
917
918 case 1:
919 return pDoorsSelection == "DoorsCoDriver";
920
921 case 2:
922 return pDoorsSelection == "DoorsCargo1";
923
924 case 3:
925 return pDoorsSelection == "DoorsCargo2";
926 }
927
928 return false;
929 }
930
931 override void OnDebugSpawn()
932 {
934 SpawnAdditionalItems();
935 FillUpCarFluids();
936
937 GameInventory inventory = GetInventory();
938 inventory.CreateInInventory("Sedan_02_Wheel");
939 inventory.CreateInInventory("Sedan_02_Wheel");
940 inventory.CreateInInventory("Sedan_02_Wheel");
941 inventory.CreateInInventory("Sedan_02_Wheel");
942 inventory.CreateInInventory("Sedan_02_Wheel");
943
944 inventory.CreateInInventory("Sedan_02_Door_1_1");
945 inventory.CreateInInventory("Sedan_02_Door_1_2");
946 inventory.CreateInInventory("Sedan_02_Door_2_1");
947 inventory.CreateInInventory("Sedan_02_Door_2_2");
948 inventory.CreateInInventory("Sedan_02_Hood");
949 inventory.CreateInInventory("Sedan_02_Trunk");
950
951 //-----IN CAR CARGO
952 inventory.CreateInInventory("Sedan_02_Wheel");
953 inventory.CreateInInventory("Sedan_02_Wheel");
954 }
955}
956
957class Sedan_02_Red : Sedan_02
958{
959 override void OnDebugSpawn()
960 {
962 SpawnAdditionalItems();
963 FillUpCarFluids();
964
965 GameInventory inventory = GetInventory();
966 inventory.CreateInInventory("Sedan_02_Wheel");
967 inventory.CreateInInventory("Sedan_02_Wheel");
968 inventory.CreateInInventory("Sedan_02_Wheel");
969 inventory.CreateInInventory("Sedan_02_Wheel");
970
971 inventory.CreateInInventory("Sedan_02_Door_1_1_Red");
972 inventory.CreateInInventory("Sedan_02_Door_1_2_Red");
973 inventory.CreateInInventory("Sedan_02_Door_2_1_Red");
974 inventory.CreateInInventory("Sedan_02_Door_2_2_Red");
975 inventory.CreateInInventory("Sedan_02_Hood_Red");
976 inventory.CreateInInventory("Sedan_02_Trunk_Red");
977
978 //-----IN CAR CARGO
979 inventory.CreateInInventory("Sedan_02_Wheel");
980 inventory.CreateInInventory("Sedan_02_Wheel");
981 }
982}
983
985{
986 override void OnDebugSpawn()
987 {
989 SpawnAdditionalItems();
990 FillUpCarFluids();
991
992 GameInventory inventory = GetInventory();
993 inventory.CreateInInventory("Sedan_02_Wheel");
994 inventory.CreateInInventory("Sedan_02_Wheel");
995 inventory.CreateInInventory("Sedan_02_Wheel");
996 inventory.CreateInInventory("Sedan_02_Wheel");
997
998 inventory.CreateInInventory("Sedan_02_Door_1_1_Grey");
999 inventory.CreateInInventory("Sedan_02_Door_1_2_Grey");
1000 inventory.CreateInInventory("Sedan_02_Door_2_1_Grey");
1001 inventory.CreateInInventory("Sedan_02_Door_2_2_Grey");
1002 inventory.CreateInInventory("Sedan_02_Hood_Grey");
1003 inventory.CreateInInventory("Sedan_02_Trunk_Grey");
1004
1005 //-----IN CAR CARGO
1006 inventory.CreateInInventory("Sedan_02_Wheel");
1007 inventory.CreateInInventory("Sedan_02_Wheel");
1008 }
1009}
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.