class ActionNotifier extends IScriptable
{
	var external : Bool;
	var internal : Bool;
	var failed : Bool;

	public function SetInternalOnly()
	{
		external = false;
		internal = true;
	}

	public function SetExternalOnly()
	{
		external = true;
		internal = false;
	}

	public function SetAll()
	{
		external = true;
		internal = true;
	}

	public function SetNone()
	{
		external = false;
		internal = false;
	}

	public function SetFailed()
	{
		external = false;
		internal = false;
		failed = true;
	}

	public function IsInternalOnly() : Bool
	{
		return external == false && internal == true;
	}

	public function IsExternalOnly() : Bool
	{
		return external == true && internal == false;
	}

	public function IsAll() : Bool
	{
		return external == true && internal == true;
	}

	public function IsNone() : Bool
	{
		return external == false && internal == false;
	}

	public function IsFailed() : Bool
	{
		return failed == true;
	}

}

class FailedActionEvent extends Event
{
	var action : DeviceAction;
	var whoFailed : PersistentID;
}

