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

◆ GetElectricitySourceDevice()

override EntityAI OnDebugSpawn::GetElectricitySourceDevice ( )
protected

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

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

Используется в OnEngineStart(), OnEngineStop() и OnUpdate().