using System;
using VOID.Generic.Player.Util;
namespace VOID.Generic.Player.CursorOperation
{
public abstract class AbstractCursorOperation
{
///
/// for which this operation will work.
///
public abstract Type ForType();
///
/// Returns TRUE if this operation can be executed.
///
/// Complex information what was selected for this operation
public abstract bool Check(SelectUtilResult select);
///
/// Instantly executes default logic. Usually, by ordering currently active unit to do something.
/// On Scene: single tap, no alternate available (for now)
/// On UI: double tap, single tap is alternate usage
///
/// Complex information what was selected for this operation
/// If operation should execute alternate logic
public abstract void DoDefault(SelectUtilResult select, bool isAlternate);
///
/// Open context menu with all available action to choose for selected target.
///
/// Complex information what was selected for this operation
public abstract void DoContext(SelectUtilResult select);
}
}