using System.Collections.Generic;
using CleverCrow.Fluid.BTs.Trees;
using UnityEngine;
namespace CleverCrow.Fluid.BTs.Tasks {
public interface ITask {
///
/// Used for debugging and identification purposes
///
string Name { get; set; }
///
/// Is this task enabled or not? Disabled tasks are excluded from the runtime
///
bool Enabled { get; set; }
string IconPath { get; }
///
/// Reference to the behavior tree responsible for this node. Allows for dynamic variables such as adding a
/// GameObject reference
///
GameObject Owner { get; set; }
///
/// Tree this node belongs to
///
IBehaviorTree ParentTree { get; set; }
List Children { get; }
///
/// Last status returned by Update
///
TaskStatus LastStatus { get; }
EditorRuntimeUtilities EditorUtils { get; }
float IconPadding { get; }
bool HasBeenActive { get; }
///
/// Triggered every tick
///
///
TaskStatus Update ();
///
/// Forcibly end this task. Firing all necessary completion logic
///
void End ();
///
/// Reset this task back to its initial state to run again. Triggered after the behavior
/// tree finishes with a task status other than continue.
///
void Reset ();
}
}