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 (); } }