package noppes.npcs.api.handler.data; import noppes.npcs.controllers.data.action.ActionManager; import java.util.Queue; import java.util.function.Consumer; public interface IActionQueue { IActionQueue start(); IActionQueue stop(); ActionManager getManager(); String getName(); boolean isParallel(); Queue getQueue(); IAction schedule(IAction action); void schedule(IAction... actions); void schedule(Consumer... tasks); IAction schedule(Consumer task); IAction schedule(int delay, Consumer task); IAction schedule(int maxDuration, int delay, Consumer task); IAction schedule(String name, Consumer task); IAction schedule(String name, int delay, Consumer task); IAction schedule(String name, int maxDuration, int delay, Consumer task); IAction scheduleActionAt(int index, IAction action); int getIndex(IAction action); IAction getCurrentAction(); boolean has(IAction action); boolean has(String actionName); IAction get(String actionName); boolean cancel(IAction action); boolean cancel(String actionName); void clear(); }