Dayz  1.11.153731
Dayz Code Explorer by Zeroy
ActionLightItemOnFire.c
Go to the documentation of this file.
2 {
3  override void CreateActionComponent()
4  {
6  }
7 }
8 
10 {
12  {
13  m_CallbackClass = ActionLightItemOnFireCB;
14  m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_STARTFIRE;
15  m_FullBody = true;
16  m_StanceMask = DayZPlayerConstants.STANCEMASK_CROUCH;
17 
19  }
20 
21  override void CreateConditionComponents()
22  {
25  }
26 
27  override string GetText()
28  {
29  return "#ignite";
30  }
31 
33  {
34  return true;
35  }
36 
37  // Removed as a fix for igniting Torch by Matchbox through drag&drop in inventory
38  /*override bool CanBePerformedFromInventory()
39  {
40  return true;
41  }*/
42 
43  // Check if ignite candidate is in cargo of something or not.
45  {
46  if ( item.GetInventory() )
47  {
49  item.GetInventory().GetCurrentInventoryLocation(loc);
50 
51  if ( loc.GetIdx() > -1 )
52  {
53  return true;
54  }
55  }
56 
57  return false;
58  }
59 
60  override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
61  {
62  ItemBase target_item = ItemBase.Cast( target.GetObject() );
63 
64  if ( target_item && item )
65  {
66  // when igniting item on the ground with igniter in hands
67  if ( !target_item.IsIgnited() && !IsItemInCargoOfSomething(target_item) && item.CanIgniteItem( target_item ) && target_item.CanBeIgnitedBy( item ) )
68  {
69  if ( Fireplace.CanIgniteEntityAsFireplace( target_item ) )
70  {
71  return true;
72  }
73  else
74  {
75  // special cases of fireplaces (interior)
76  if ( target_item.IsKindOf( "FireplaceIndoor" ) || target_item.IsKindOf( "OvenIndoor" ) )
77  {
78  return true;
79  }
80  // oven stage of standard fireplace
81  if ( target_item.IsKindOf( "Fireplace" ) )
82  {
83  if ( Fireplace.Cast( target_item ).IsOven() )
84  {
85  return true;
86  }
87  }
88  // barrel fireplace
89  if ( target_item.IsKindOf( "BarrelHoles_ColorBase" ) )
90  {
91  return true;
92  }
93  return false;
94  }
95  }
96  // when igniting item in hands from something on ground
97  else if ( !item.IsIgnited() && !IsItemInCargoOfSomething(item) && target_item.CanIgniteItem( item ) && item.CanBeIgnitedBy( target_item ) )
98  {
99  return true;
100  }
101  }
102 
103  return false;
104  }
105 
106  override void OnFinishProgressServer( ActionData action_data )
107  {
108  ItemBase target_item = ItemBase.Cast( action_data.m_Target.GetObject() );
109  ItemBase item = action_data.m_MainItem;
110 
111  bool is_ignition_successful;
112  ItemBase ignited_item; //item that was lit on fire
113  ItemBase fire_source_item; //item that was the source of fire
114 
115  if ( item.CanIgniteItem( target_item ) )
116  {
117  is_ignition_successful = target_item.IsThisIgnitionSuccessful( item );
118  ignited_item = target_item;
119  fire_source_item = item;
120  }
121  else if ( item.CanBeIgnitedBy( target_item ) )
122  {
123  is_ignition_successful = target_item.IsTargetIgnitionSuccessful( item );
124  ignited_item = item;
125  fire_source_item = target_item;
126  }
127 
128  if ( is_ignition_successful )
129  {
130  fire_source_item.OnIgnitedTarget( ignited_item );
131  ignited_item.OnIgnitedThis( fire_source_item );
132  }
133  else
134  {
135  fire_source_item.OnIgnitedTargetFailed( ignited_item );
136  ignited_item.OnIgnitedThisFailed( fire_source_item );
137  }
138  }
139 
140  override void OnFinishProgressClient( ActionData action_data )
141  {
142  //Print("Ignite client");
143  }
144 
145  //setup
146  override bool SetupAction( PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data = NULL )
147  {
148  if( super.SetupAction( player, target, item, action_data, extra_data ) )
149  {
150  ItemBase target_item = ItemBase.Cast( target.GetObject() );
151  if ( target_item )
152  {
153  SetIgnitingAnimation( target_item );
154  }
155 
156  return true;
157  }
158 
159  return false;
160  }
161 
162  void SetIgnitingAnimation( ItemBase target_item )
163  {
164  if( target_item.HasFlammableMaterial() )
165  {
166  m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_STARTFIRE;
167  }
168  else
169  {
170  m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_CRAFTING;
171  }
172  }
173 }
ItemBase
Definition: InventoryItem.c:445
ActionData::m_ActionComponent
ref CABase m_ActionComponent
Definition: ActionBase.c:28
m_ConditionTarget
ref CCTBase m_ConditionTarget
Definition: ActionBase.c:53
ActionContinuousBase::OnFinishProgressClient
protected void OnFinishProgressClient(ActionData action_data)
Definition: ActionContinuousBase.c:250
Param
Base Param Class with no parameters.
Definition: param.c:11
CAContinuousTime
Definition: CAContinuousTime.c:1
ActionContinuousBase::OnFinishProgressServer
protected void OnFinishProgressServer(ActionData action_data)
Definition: ActionContinuousBase.c:246
ItemBase::OnIgnitedTarget
override void OnIgnitedTarget(EntityAI ignited_item)
Definition: BandageDressing.c:23
ItemBase::HasFlammableMaterial
override bool HasFlammableMaterial()
Definition: BandageDressing.c:6
UASoftSkillsWeight
Definition: ActionConstants.c:106
m_StanceMask
int m_StanceMask
Definition: SmptAnimMeta.c:78
InventoryLocation
InventoryLocation.
Definition: InventoryLocation.c:27
ActionLightItemOnFireCB
Definition: ActionLightItemOnFire.c:1
m_SpecialtyWeight
protected float m_SpecialtyWeight
Definition: ActionBase.c:63
UATimeSpent::FIREPLACE_IGNITE
const float FIREPLACE_IGNITE
Definition: ActionConstants.c:84
UAMaxDistances
Definition: ActionConstants.c:95
ActionData::m_MainItem
ItemBase m_MainItem
Definition: ActionBase.c:26
UAMaxDistances::DEFAULT
const float DEFAULT
Definition: ActionConstants.c:98
ActionLightItemOnFireCB::CreateActionComponent
override void CreateActionComponent()
Definition: ActionLightItemOnFire.c:3
CreateConditionComponents
override void CreateConditionComponents()
Definition: ActionLightItemOnFire.c:21
InventoryLocation::GetIdx
proto native int GetIdx()
returns index of cargo if current type is Cargo / ProxyCargo
ItemBase::CanBeIgnitedBy
override bool CanBeIgnitedBy(EntityAI igniter=NULL)
Definition: BandageDressing.c:11
PlayerBase
Definition: PlayerBaseClient.c:1
ActionData
Definition: ActionBase.c:18
m_FullBody
protected bool m_FullBody
Definition: ActionBase.c:49
DayZPlayerConstants
DayZPlayerConstants
defined in C++
Definition: dayzplayer.c:568
ActionBaseCB::m_ActionData
protected ActionData m_ActionData
Definition: AnimatedActionBase.c:3
IsItemInCargoOfSomething
bool IsItemInCargoOfSomething(ItemBase item)
Definition: ActionLightItemOnFire.c:44
CCTNonRuined
Definition: CCTNonRuined.c:1
SetIgnitingAnimation
void SetIgnitingAnimation(ItemBase target_item)
Definition: ActionLightItemOnFire.c:162
AnimatedActionBase::ActionCondition
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Definition: AnimatedActionBase.c:220
UASoftSkillsWeight::ROUGH_HIGH
const float ROUGH_HIGH
Definition: ActionConstants.c:110
UATimeSpent
Definition: ActionConstants.c:25
ActionContinuousBaseCB
Definition: ActionContinuousBase.c:1
ActionData::m_Target
ref ActionTarget m_Target
Definition: ActionBase.c:30
ActionTarget
class ActionTargets ActionTarget
ItemBase::OnIgnitedTargetFailed
override void OnIgnitedTargetFailed(EntityAI target_item)
Definition: HandDrillKit.c:17
m_ConditionItem
ref CCIBase m_ConditionItem
Definition: ActionBase.c:52
GetText
override string GetText()
Definition: ActionLightItemOnFire.c:27
ActionContinuousBase
Definition: ActionContinuousBase.c:129
CanBePerformedFromQuickbar
override bool CanBePerformedFromQuickbar()
Definition: ActionLightItemOnFire.c:32
ItemBase::CanIgniteItem
override bool CanIgniteItem(EntityAI ignite_target=NULL)
Definition: BandageDressing.c:18
CCINonRuined
Definition: CCINonRuined.c:1
SetupAction
override bool SetupAction(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data=NULL)
Definition: ActionLightItemOnFire.c:146
ItemBase::OnIgnitedThis
override void OnIgnitedThis(EntityAI fire_source)
Definition: BandageDressing.c:27
ItemBase::IsThisIgnitionSuccessful
override bool IsThisIgnitionSuccessful(EntityAI item_source=NULL)
Definition: BandageDressing.c:32
ItemBase::IsIgnited
override bool IsIgnited()
Definition: PortableGasStove.c:244
ActionLightItemOnFire
ActionLightItemOnFireCB ActionContinuousBaseCB ActionLightItemOnFire()
Definition: ActionLightItemOnFire.c:11