DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
ActionPlugTargetIntoThis.c
См. документацию.
2{
4
6 {
7 m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_INTERACTONCE;
8 m_Retoggle = false;
9 m_Text = "#connect_together";
10 }
11
17
18 override bool Can(PlayerBase player, ActionTarget target, ItemBase item)
19 {
20 if (super.Can(player, target, item))
21 {
22 if (player.IsPlacingLocal())
23 {
24 m_Retoggle = true;
25
26 player.GetHologramLocal().SetIsHidden(true);
27 player.GetHologramLocal().GetProjectionEntity().HideAllSelections();
28 }
29 }
30
31 if (!super.Can(player, target, item))
32 {
33 if (m_Retoggle)
34 {
35 m_Retoggle = false;
36
37 player.GetHologramLocal().SetIsHidden(false);
38 player.GetHologramLocal().GetProjectionEntity().ShowAllSelections();
39 }
40 }
41
42 return super.Can(player, target, item);
43 }
44
45 override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
46 {
47 ItemBase targetIB = ItemBase.Cast(target.GetObject());
48
49 //Prevent plugging to items in inventory
50 if (targetIB && targetIB.GetHierarchyRoot() == targetIB && item && targetIB.HasEnergyManager() && item.HasEnergyManager())
51 {
52 if (!targetIB.GetCompEM().IsPlugged() && item.GetCompEM().CanReceivePlugFrom(targetIB))
53 {
54 //hotfix, re-work entire action!
55 return targetIB.IsElectricAppliance();
56 }
57
58 // Special case for vehicle batteries
59 if (item.IsInherited(VehicleBattery))
60 {
61 MetalWire metalWire = MetalWire.Cast(item.GetCompEM().GetPluggedDevice());
62
63 if (metalWire && metalWire.GetCompEM().CanReceivePlugFrom(targetIB))
64 {
65 return true; // We can power the action_data.m_Target from vehicle battery because it has metal wire attached.
66 }
67 }
68 }
69
70 return false;
71 }
72
73 override bool IsDeploymentAction()
74 {
75 return true;
76 }
77
78 override void OnExecuteServer(ActionData action_data)
79 {
80 Process(action_data);
81 }
82
83 override void OnExecuteClient(ActionData action_data)
84 {
85 m_Retoggle = false;
86 }
87
88 void Process(ActionData action_data)
89 {
90 ItemBase targetIB = ItemBase.Cast(action_data.m_Target.GetObject());
91
92 if (action_data.m_MainItem.IsInherited(VehicleBattery))
93 {
94 // Car/truck batteries can have a metal wire attached through which they can power common electric appliances
95 MetalWire metalWire = MetalWire.Cast(action_data.m_MainItem.GetCompEM().GetPluggedDevice());
96 if (metalWire)
97 targetIB.GetCompEM().PlugThisInto(metalWire);
98 }
99 else
100 {
101 // Everything else in general
102 targetIB.GetCompEM().PlugThisInto(action_data.m_MainItem);
103 }
104
105 Spotlight spotlight;
106 if (Spotlight.CastTo(spotlight, targetIB))
107 spotlight.Unfold();
108
109 targetIB.GetInventory().TakeEntityAsAttachment(InventoryMode.LOCAL, action_data.m_MainItem);
110 action_data.m_Player.ServerDropEntity(action_data.m_MainItem);
111 }
112}
InventoryMode
NOTE: PREDICTIVE is not to be used at all in multiplayer.
Определения Inventory.c:22
ActionBase ActionData
Определения ActionBase.c:30
class ActionTargets ActionTarget
void Process()
Определения EffectManager.c:743
string m_Text
Определения ActionBase.c:58
ref CCIBase m_ConditionItem
Определения ActionBase.c:64
ref CCTBase m_ConditionTarget
Определения ActionBase.c:65
override void OnExecuteServer(ActionData action_data)
Определения ActionPlugTargetIntoThis.c:78
override void CreateConditionComponents()
Определения ActionPlugTargetIntoThis.c:12
void Process(ActionData action_data)
Определения ActionPlugTargetIntoThis.c:88
void ActionPlugTargetIntoThis()
Определения ActionPlugTargetIntoThis.c:5
override bool Can(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionPlugTargetIntoThis.c:18
override bool IsDeploymentAction()
Определения ActionPlugTargetIntoThis.c:73
override void OnExecuteClient(ActionData action_data)
Определения ActionPlugTargetIntoThis.c:83
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionPlugTargetIntoThis.c:45
void ActionSingleUseBase()
Определения ActionSingleUseBase.c:31
int m_CommandUID
Определения AnimatedActionBase.c:143
Определения CCINonRuined.c:2
Определения CCTNonRuined.c:2
void Unfold()
Определения Spotlight.c:251
override bool IsElectricAppliance()
Определения BatteryCharger.c:43
Определения InventoryItem.c:731
Определения PlayerBaseClient.c:2
const float DEFAULT
Определения ActionConstants.c:112
Определения VehicleBattery.c:2
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602