using Godot; using System; using System.Collections.Generic; using System.Diagnostics; public class TaskQueueComponent : Component { public class Task { } public class NavigationTask : Task { [Flags] public enum Flags { Position = 1, Orientation = 2 } public Vector3 TargetPositionWorld = Vector3.Zero; public Quat TargetOrientationWorld = Quat.Identity; public Flags NavigationFlags = Flags.Position | Flags.Orientation; } public class InteractionTask : Task { public Entity TargetEntity; } public Queue Queue; public TaskQueueComponent() { Queue = new Queue(); Reset(); } public void Reset() { Queue.Clear(); } }