ActionPlaceFireplaceIntoBarrel.c
class ActionPlaceFireplaceIntoBarrel: ActionSingleUseBase
{
void ActionPlaceFireplaceIntoBarrel()
{
m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_OPENDOORFW;
m_StanceMask = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
m_SpecialtyWeight = UASoftSkillsWeight.ROUGH_LOW;
m_Text = "#place_object";
}
override void CreateConditionComponents()
{
m_ConditionItem = new CCINonRuined;
m_ConditionTarget = new CCTNonRuined( UAMaxDistances.DEFAULT );
}
override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
{
Object target_object = target.GetObject();
if ( target_object && target_object.IsInherited( BarrelHoles_ColorBase ) )
{
BarrelHoles_ColorBase fireplace_barrel = BarrelHoles_ColorBase.Cast( target_object );
if ( fireplace_barrel.IsOpen() && fireplace_barrel.GetInventory().AttachmentCount() == 0 && fireplace_barrel.IsCargoEmpty() )
{
return true;
}
}
return false;
}
override void OnExecuteServer( ActionData action_data )
{
ClearInventoryReservationEx(action_data);
FireplaceBase fireplace_in_hands = FireplaceBase.Cast( action_data.m_MainItem );
BarrelHoles_ColorBase fireplace_barrel = BarrelHoles_ColorBase.Cast( action_data.m_Target.GetObject() );
auto lambda = new MoveEquipToExistingItemAndDestroyOldRootLambda(fireplace_in_hands, "", action_data.m_Player, fireplace_barrel);
action_data.m_Player.ServerReplaceItemInHandsWithNewElsewhere(lambda);
}
}