DIFF

ActionRepairShelter.c

//used for shelters (non-proxy tent objects)
class ActionRepairShelter: ActionRepairTent
{
	void ActionRepairShelter()
	{
		m_CallbackClass = ActionRepairTentCB;
		m_SpecialtyWeight = UASoftSkillsWeight.PRECISE_LOW;
		
		m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_INTERACT;
		m_FullBody = true;
		m_StanceMask = DayZPlayerConstants.STANCEMASK_ERECT | DayZPlayerConstants.STANCEMASK_CROUCH;
	}

	override void CreateConditionComponents()  
	{
		m_ConditionItem = new CCINonRuined;
		m_ConditionTarget = new CCTCursor(UAMaxDistances.SMALL);
	}
	
	override bool IsUsingProxies()
	{
		return false;
	}
	
	override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
	{
		ShelterBase shelter = ShelterBase.Cast( target.GetObject() );
		if ( !shelter )
			return false;

		if ( player && shelter )
		{
			PluginRepairing module_repairing;
			Class.CastTo(module_repairing, GetPlugin(PluginRepairing));
			if (module_repairing.CanRepair(item,shelter))
			{
				return true;
			}
		}
		
		return false;
	}

	override void OnFinishProgressServer( ActionData action_data )
	{
		ShelterBase shelter = ShelterBase.Cast( action_data.m_Target.GetObject() );
		
		if ( shelter ) 
		{
			PluginRepairing module_repairing;
			Class.CastTo(module_repairing, GetPlugin(PluginRepairing));
			module_repairing.Repair(action_data.m_Player,action_data.m_MainItem,shelter,m_SpecialtyWeight);
		}
	}
};