DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
ActionDismantlePartInstant.c
См. документацию.
1
2#ifdef DIAG_DEVELOPER
3class ActionDismantlePartInstantDebug : ActionInstantBase
4{
5 void ActionDismantlePartInstantDebug()
6 {
7 m_Text = "dismantle part debug";
8 }
9
10 override bool HasTarget()
11 {
12 return true;
13 }
14
15 override void CreateConditionComponents()
16 {
17 m_ConditionItem = new CCINone();
18 m_ConditionTarget = new CCTCursor();
19 }
20
21 override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
22 {
23 ConstructionActionData cad = player.GetConstructionActionData();
24 if (cad.GetFastConstructionMode() != EConstructionDebugModes.INSTANT)
25 return false;
26
27 EntityAI targetEntity;
28 if (Class.CastTo(targetEntity,target.GetObject()) && targetEntity.CanUseConstruction())
29 {
30 ConstructionBase construction = ConstructionBase.Cast(targetEntity.GetConstructionBasic());
31 string partName;
32 ConstructionPart constructionPart;
33
34 array<string> compNames = new array<string>();
35 targetEntity.GetActionComponentNameList(target.GetComponentIndex(), compNames);
36 int count = compNames.Count();
37 for (int i = 0; i < count; ++i)
38 {
39 partName = compNames[i];
40 constructionPart = construction.GetConstructionPart(partName);
41 if (constructionPart)
42 break;
43 }
44
45 if (constructionPart && constructionPart.IsBuilt())
46 {
47 cad.SetTargetPart(constructionPart);
48 return true;
49 }
50 }
51
52 return false;
53 }
54
55 override void OnActionInfoUpdate( PlayerBase player, ActionTarget target, ItemBase item )
56 {
57 ConstructionActionData cad = player.GetConstructionActionData();
59
60 if (part)
61 {
62 m_Text = "dbgDismantle " + part.GetName() + " - INSTANT";
63
64 #ifdef DIAG_DEVELOPER
65 if (DiagMenu.GetBool(DiagMenuIDs.BASEBUILDING_FULLDEBUG))
66 {
67 m_Text = "dbgDismantle | part classname: " + part.GetPartName() + " - INSTANT";
68 }
69 #endif
70 }
71 }
72
73 override void OnStartServer(ActionData action_data)
74 {
75 ConstructionActionData cad = action_data.m_Player.GetConstructionActionData();
77 if (part)
78 {
79 EntityAI targetEntity = EntityAI.Cast(action_data.m_Target.GetObject());
80 ConstructionBase construction = ConstructionBase.Cast(targetEntity.GetConstructionBasic());
81 construction.DismantlePartServerEx(action_data.m_Player, part.GetPartName(), -1);
82 }
83 }
84};
85#endif
class LogManager EntityAI
string m_Text
Определения ActionBase.c:57
void OnActionInfoUpdate(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionBase.c:1342
bool HasTarget()
Определения ActionBase.c:259
void CreateConditionComponents()
Определения ActionBase.c:245
ref CCIBase m_ConditionItem
Определения ActionBase.c:63
void OnStartServer(ActionData action_data)
Определения ActionBase.c:1391
ref CCTBase m_ConditionTarget
Определения ActionBase.c:64
bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionBase.c:441
void ActionTarget(Object object, Object parent, int componentIndex, vector cursorHitPos, float utility, string surfaceName="")
Определения ActionTargets.c:125
void ConstructionBase(EntityAI parent)
Определения ConstructionBase.c:58
void ConstructionPart(string name, string part_name, string main_part_name, int id, bool is_built, bool is_base, bool is_gate, array< string > required_parts)
Определения ConstructionPart.c:531
DiagMenuIDs
Определения EDiagMenuIDs.c:2
class GP5GasMask extends MaskBase ItemBase
PlayerBase m_Player
Определения ActionBase.c:40
ref ActionTarget m_Target
Определения ActionBase.c:39
ConstructionPart GetTargetPart()
Определения ConstructionActionData.c:126
void SetTargetPart(ConstructionPart target_part)
Определения ConstructionActionData.c:121
string GetPartName()
Определения ConstructionPart.c:198
string GetName()
Определения ConstructionPart.c:193
bool IsBuilt()
Определения ConstructionPart.c:160