ActionIgniteFireplaceByAir.c
class ActionIgniteFireplaceByAirCB : ActionContinuousBaseCB
{
override void CreateActionComponent()
{
m_ActionData.m_ActionComponent = new CAContinuousTime( UATimeSpent.FIREPLACE_IGNITE );
}
};
class ActionIgniteFireplaceByAir: ActionContinuousBase
{
void ActionIgniteFireplaceByAir()
{
m_CallbackClass = ActionIgniteFireplaceByAirCB;
m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_BLOWFIREPLACE;
m_FullBody = true;
m_StanceMask = DayZPlayerConstants.STANCEMASK_CROUCH;
m_SpecialtyWeight = UASoftSkillsWeight.PRECISE_LOW;
m_Text = "#blow_air_into_fireplace";
}
override void CreateConditionComponents()
{
m_ConditionTarget = new CCTNonRuined( UAMaxDistances.DEFAULT );
m_ConditionItem = new CCINotPresent;
}
override typename GetInputType()
{
return ContinuousInteractActionInput;
}
override bool ActionCondition ( PlayerBase player, ActionTarget target, ItemBase item )
{
Object target_object = target.GetObject();
FireplaceBase fireplace_target = FireplaceBase.Cast( target_object );
if ( target_object && target_object.IsFireplace() )
{
if ( fireplace_target.IsBaseFireplace() || fireplace_target.IsFireplaceIndoor() )
{
if ( !fireplace_target.IsBurning() && fireplace_target.GetTemperature() >= fireplace_target.PARAM_MIN_TEMP_TO_REIGNITE )
{
return true;
}
}
}
return false;
}
override void OnFinishProgressServer( ActionData action_data )
{
FireplaceBase fireplace_target = FireplaceBase.Cast( action_data.m_Target.GetObject() );
//start fire
fireplace_target.StartFire();
}
bool SkipKindlingCheck()
{
return false;
}
}