Newer
Older
Hierarchical-Task-Network-Unity-3D / Assets / Scripts / HTN / PrimitiveTaskBuilder.cs
public sealed class PrimitiveTaskBuilder
{
    private readonly PrimitiveTask task;

    private PrimitiveTaskBuilder(PrimitiveTask task) => this.task = task;

    // Factory method
    public static PrimitiveTaskBuilder For(PrimitiveTask task)
    {
        return new PrimitiveTaskBuilder(task);
    }

    // Fluent methods that use the existing public interface
    public PrimitiveTaskBuilder AddCondition(Condition condition)
    {
        task.AddCondition(condition);
        return this;
    }

    public PrimitiveTaskBuilder AddPostCondition(Condition condition)
    {
        task.AddPostCondition(condition);
        return this;
    }

    public PrimitiveTask Build(string name)
    {
        return task.Build(name);
    }
}