mirror of
https://github.com/KAMKEEL/CustomNPC-Plus-API.git
synced 2026-11-15 21:54:44 +00:00
Canged all the IConditionalAction Supplier<Boolean> instances (condition,terminateWhen,pauseUntil) to Function<IAction,Boolean>
This commit is contained in:
1 parent
283e3a864d
commit
f998e8feb4
3 files changed
+51
-50
No files matched your search
@@ -7,7 +7,8 @@ import noppes.npcs.api.handler.data.actions.IConditionalAction;
|
||||
import java.util.List;
|
||||
import java.util.Queue;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Supplier;
|
||||
import java.util.function.Function;
|
||||
|
||||
|
||||
/**
|
||||
* Manages a queue of {@link IAction} instances, allowing scheduling of delayed,
|
||||
@@ -41,65 +42,65 @@ public interface IActionManager {
|
||||
/**
|
||||
* Schedule a conditional action that gives up after at most maxChecks attempts.
|
||||
*
|
||||
* @param condition supplier checked every tick, if it returns true, task is fired
|
||||
* @param condition checked every tick, if it returns true, task is fired
|
||||
* @param task code to run once condition first becomes true
|
||||
* @return the action scheduled
|
||||
*/
|
||||
IConditionalAction create(Supplier<Boolean> condition, Consumer<IAction> task);
|
||||
IConditionalAction create(Function<IAction, Boolean> condition, Consumer<IAction> task);
|
||||
|
||||
/**
|
||||
* Schedule a conditional action that gives up after at most maxChecks attempts.
|
||||
*
|
||||
* @param name unique name
|
||||
* @param condition supplier checked every tick, if it returns true, task is fired
|
||||
* @param condition checked every tick, if it returns true, task is fired
|
||||
* @param task code to run once condition first becomes true
|
||||
* @return the action scheduled
|
||||
*/
|
||||
IConditionalAction create(String name, Supplier<Boolean> condition, Consumer<IAction> task);
|
||||
IConditionalAction create(String name, Function<IAction, Boolean> condition, Consumer<IAction> task);
|
||||
|
||||
/**
|
||||
* Schedule a conditional action that gives up after at most maxChecks attempts.
|
||||
*
|
||||
* @param condition supplier checked every tick, if it returns true, task is fired
|
||||
* @param condition checked every tick, if it returns true, task is fired
|
||||
* @param task code to run once condition first becomes true
|
||||
* @param terminateWhen supplier checked every tick, if it returns true, action is terminated (gets marked done)
|
||||
* @param terminateWhen checked every tick, if it returns true, action is terminated (gets marked done)
|
||||
* @return the action scheduled
|
||||
*/
|
||||
IConditionalAction create(Supplier<Boolean> condition, Consumer<IAction> task, Supplier<Boolean> terminateWhen);
|
||||
IConditionalAction create(Function<IAction, Boolean> condition, Consumer<IAction> task, Function<IAction, Boolean> terminateWhen);
|
||||
|
||||
/**
|
||||
* Schedule a conditional action that gives up after at most maxChecks attempts.
|
||||
*
|
||||
* @param name unique name
|
||||
* @param condition supplier checked every tick, if it returns true, task is fired
|
||||
* @param condition checked every tick, if it returns true, task is fired
|
||||
* @param task code to run once condition first becomes true
|
||||
* @param terminateWhen supplier checked every tick, if it returns true, action is terminated (gets marked done)
|
||||
* @param terminateWhen checked every tick, if it returns true, action is terminated (gets marked done)
|
||||
* @return the action scheduled
|
||||
*/
|
||||
IConditionalAction create(String name, Supplier<Boolean> condition, Consumer<IAction> task, Supplier<Boolean> terminateWhen);
|
||||
IConditionalAction create(String name, Function<IAction, Boolean> condition, Consumer<IAction> task, Function<IAction, Boolean> terminateWhen);
|
||||
|
||||
/**
|
||||
* Schedule a conditional action that gives up after at most maxChecks attempts.
|
||||
*
|
||||
* @param condition supplier checked every tick, if it returns true, task is fired
|
||||
* @param condition checked every tick, if it returns true, task is fired
|
||||
* @param task code to run once condition first becomes true
|
||||
* @param terminateWhen supplier checked every tick, if it returns true, action is terminated (gets marked done)
|
||||
* @param terminateWhen checked every tick, if it returns true, action is terminated (gets marked done)
|
||||
* @param onTermination code to run when the termination condition returns true
|
||||
* @return the action scheduled
|
||||
*/
|
||||
IConditionalAction create(Supplier<Boolean> condition, Consumer<IAction> task, Supplier<Boolean> terminateWhen, Consumer<IAction> onTermination);
|
||||
IConditionalAction create(Function<IAction, Boolean> condition, Consumer<IAction> task, Function<IAction, Boolean> terminateWhen, Consumer<IAction> onTermination);
|
||||
|
||||
/**
|
||||
* Schedule a conditional action that gives up after at most maxChecks attempts.
|
||||
*
|
||||
* @param name unique name
|
||||
* @param condition supplier checked every tick, if it returns true, task is fired
|
||||
* @param condition checked every tick, if it returns true, task is fired
|
||||
* @param task code to run once condition first becomes true
|
||||
* @param terminateWhen supplier checked every tick, if it returns true, action is terminated (gets marked done)
|
||||
* @param terminateWhen checked every tick, if it returns true, action is terminated (gets marked done)
|
||||
* @param onTermination code to run when the termination condition returns true
|
||||
* @return the action scheduled
|
||||
*/
|
||||
IConditionalAction create(String name, Supplier<Boolean> condition, Consumer<IAction> task, Supplier<Boolean> terminateWhen, Consumer<IAction> onTermination);
|
||||
IConditionalAction create(String name, Function<IAction, Boolean> condition, Consumer<IAction> task, Function<IAction, Boolean> terminateWhen, Consumer<IAction> onTermination);
|
||||
|
||||
/**
|
||||
* Begin processing scheduled actions. Must be called once.
|
||||
@@ -213,65 +214,65 @@ public interface IActionManager {
|
||||
/**
|
||||
* Schedule a conditional action that gives up after at most maxChecks attempts.
|
||||
*
|
||||
* @param condition supplier checked every tick, if it returns true, task is fired
|
||||
* @param condition checked every tick, if it returns true, task is fired
|
||||
* @param task code to run once condition first becomes true
|
||||
* @return the action scheduled
|
||||
*/
|
||||
IConditionalAction scheduleAction(Supplier<Boolean> condition, Consumer<IAction> task);
|
||||
IConditionalAction scheduleAction(Function<IAction, Boolean> condition, Consumer<IAction> task);
|
||||
|
||||
/**
|
||||
* Schedule a conditional action that gives up after at most maxChecks attempts.
|
||||
*
|
||||
* @param condition supplier checked every tick, if it returns true, task is fired
|
||||
* @param condition checked every tick, if it returns true, task is fired
|
||||
* @param task code to run once condition first becomes true
|
||||
* @param terminateWhen supplier checked every tick, if it returns true, action is terminated (gets marked done)
|
||||
* @param terminateWhen checked every tick, if it returns true, action is terminated (gets marked done)
|
||||
* @return the action scheduled
|
||||
*/
|
||||
IConditionalAction scheduleAction(Supplier<Boolean> condition, Consumer<IAction> task, Supplier<Boolean> terminateWhen);
|
||||
IConditionalAction scheduleAction(Function<IAction, Boolean> condition, Consumer<IAction> task, Function<IAction, Boolean> terminateWhen);
|
||||
|
||||
/**
|
||||
* Schedule a conditional action that gives up after at most maxChecks attempts.
|
||||
*
|
||||
* @param condition supplier checked every tick, if it returns true, task is fired
|
||||
* @param condition checked every tick, if it returns true, task is fired
|
||||
* @param task code to run once condition first becomes true
|
||||
* @param terminateWhen supplier checked every tick, if it returns true, action is terminated (gets marked done)
|
||||
* @param terminateWhen checked every tick, if it returns true, action is terminated (gets marked done)
|
||||
* @param onTermination code to run when the termination condition returns true
|
||||
* @return the action scheduled
|
||||
*/
|
||||
IConditionalAction scheduleAction(Supplier<Boolean> condition, Consumer<IAction> task, Supplier<Boolean> terminateWhen, Consumer<IAction> onTermination);
|
||||
IConditionalAction scheduleAction(Function<IAction, Boolean> condition, Consumer<IAction> task, Function<IAction, Boolean> terminateWhen, Consumer<IAction> onTermination);
|
||||
|
||||
/**
|
||||
* Schedule a conditional action that gives up after at most maxChecks attempts.
|
||||
*
|
||||
* @param name unique name
|
||||
* @param condition supplier checked every tick, if it returns true, task is fired
|
||||
* @param condition checked every tick, if it returns true, task is fired
|
||||
* @param task code to run once condition first becomes true
|
||||
* @return the action scheduled
|
||||
*/
|
||||
IConditionalAction scheduleAction(String name, Supplier<Boolean> condition, Consumer<IAction> task);
|
||||
IConditionalAction scheduleAction(String name, Function<IAction, Boolean> condition, Consumer<IAction> task);
|
||||
|
||||
/**
|
||||
* Schedule a conditional action that gives up after at most maxChecks attempts.
|
||||
*
|
||||
* @param name unique name
|
||||
* @param condition supplier checked every tick, if it returns true, task is fired
|
||||
* @param condition checked every tick, if it returns true, task is fired
|
||||
* @param task code to run once condition first becomes true
|
||||
* @param terminateWhen supplier checked every tick, if it returns true, action is terminated (gets marked done)
|
||||
* @param terminateWhen checked every tick, if it returns true, action is terminated (gets marked done)
|
||||
* @return the action scheduled
|
||||
*/
|
||||
IConditionalAction scheduleAction(String name, Supplier<Boolean> condition, Consumer<IAction> task, Supplier<Boolean> terminateWhen);
|
||||
IConditionalAction scheduleAction(String name, Function<IAction, Boolean> condition, Consumer<IAction> task, Function<IAction, Boolean> terminateWhen);
|
||||
|
||||
/**
|
||||
* Schedule a conditional action that gives up after at most maxChecks attempts.
|
||||
*
|
||||
* @param name unique name
|
||||
* @param condition supplier checked every tick, if it returns true, task is fired
|
||||
* @param condition checked every tick, if it returns true, task is fired
|
||||
* @param task code to run once condition first becomes true
|
||||
* @param terminateWhen supplier checked every tick, if it returns true, action is terminated (gets marked done)
|
||||
* @param terminateWhen checked every tick, if it returns true, action is terminated (gets marked done)
|
||||
* @param onTermination code to run when the termination condition returns true
|
||||
* @return the action scheduled
|
||||
*/
|
||||
IConditionalAction scheduleAction(String name, Supplier<Boolean> condition, Consumer<IAction> task, Supplier<Boolean> terminateWhen, Consumer<IAction> onTermination);
|
||||
IConditionalAction scheduleAction(String name, Function<IAction, Boolean> condition, Consumer<IAction> task, Function<IAction, Boolean> terminateWhen, Consumer<IAction> onTermination);
|
||||
|
||||
IConditionalAction scheduleAction(IConditionalAction action);
|
||||
|
||||
@@ -342,14 +343,14 @@ public interface IActionManager {
|
||||
/**
|
||||
* Convenience: create & enqueue a conditional task that re-checks forever.
|
||||
*/
|
||||
default IConditionalAction addConditionalTask(String name, Supplier<Boolean> condition, Consumer<IAction> task) {
|
||||
default IConditionalAction addConditionalTask(String name, Function<IAction, Boolean> condition, Consumer<IAction> task) {
|
||||
return scheduleAction(name, condition, task);
|
||||
}
|
||||
|
||||
/**
|
||||
* Convenience: create & enqueue a conditional task that gives up after maxChecks.
|
||||
*/
|
||||
default IConditionalAction addConditionalTask(String name, Supplier<Boolean> condition, Consumer<IAction> task, Supplier<Boolean> terminateWhen) {
|
||||
default IConditionalAction addConditionalTask(String name, Function<IAction, Boolean> condition, Consumer<IAction> task, Function<IAction, Boolean> terminateWhen) {
|
||||
return scheduleAction(name, condition, task, terminateWhen);
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import noppes.npcs.api.handler.IActionManager;
|
||||
import noppes.npcs.api.handler.data.actions.IConditionalAction;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Supplier;
|
||||
import java.util.function.Function;
|
||||
|
||||
/**
|
||||
* Represents a single "task" that can be executed over multiple ticks,
|
||||
@@ -125,10 +125,10 @@ public interface IAction {
|
||||
* Must call {@link #threadify()} before using, else throws exception.
|
||||
* Pauses IAction's thread until the supplied condition is satisfied or {@link #resume()} is called.
|
||||
*/
|
||||
void pauseUntil(Supplier<Boolean> until);
|
||||
void pauseUntil(Function<IAction,Boolean> until);
|
||||
|
||||
/**
|
||||
* Resumes thread that was previously paused by {@link #pause()}, {@link #pauseUntil(Supplier)}, {@link #pauseFor(int)} or {@link #pauseFor(long)}
|
||||
* Resumes thread that was previously paused by {@link #pause()}, {@link #pauseUntil(Function)}, {@link #pauseFor(int)} or {@link #pauseFor(long)}
|
||||
* Must be called from a different thread than the IAction one, as that one is paused, so it won't reach this function if it comes after any of the pausing functions.
|
||||
*/
|
||||
void resume();
|
||||
@@ -201,17 +201,17 @@ public interface IAction {
|
||||
*/
|
||||
IConditionalAction conditional(IConditionalAction after);
|
||||
|
||||
IConditionalAction conditional(Supplier<Boolean> condition, Consumer<IAction> task);
|
||||
IConditionalAction conditional(Function<IAction,Boolean> condition, Consumer<IAction> task);
|
||||
|
||||
IConditionalAction conditional(String name, Supplier<Boolean> condition, Consumer<IAction> task);
|
||||
IConditionalAction conditional(String name, Function<IAction,Boolean> condition, Consumer<IAction> task);
|
||||
|
||||
IConditionalAction conditional(Supplier<Boolean> condition, Consumer<IAction> task, Supplier<Boolean> terminate);
|
||||
IConditionalAction conditional(Function<IAction,Boolean> condition, Consumer<IAction> task, Function<IAction,Boolean> terminate);
|
||||
|
||||
IConditionalAction conditional(String name, Supplier<Boolean> condition, Consumer<IAction> task, Supplier<Boolean> terminate);
|
||||
IConditionalAction conditional(String name, Function<IAction,Boolean> condition, Consumer<IAction> task, Function<IAction,Boolean> terminate);
|
||||
|
||||
IConditionalAction conditional(Supplier<Boolean> condition, Consumer<IAction> task, Supplier<Boolean> terminateWhen, Consumer<IAction> onTermination);
|
||||
IConditionalAction conditional(Function<IAction,Boolean> condition, Consumer<IAction> task, Function<IAction,Boolean> terminateWhen, Consumer<IAction> onTermination);
|
||||
|
||||
IConditionalAction conditional(String name, Supplier<Boolean> condition, Consumer<IAction> task, Supplier<Boolean> terminateWhen, Consumer<IAction> onTermination);
|
||||
IConditionalAction conditional(String name, Function<IAction,Boolean> condition, Consumer<IAction> task, Function<IAction,Boolean> terminateWhen, Consumer<IAction> onTermination);
|
||||
|
||||
/**
|
||||
* Enqueue another IAction on the parallel chain which starts firing simultaneously as this.
|
||||
|
||||
@@ -3,21 +3,21 @@ package noppes.npcs.api.handler.data.actions;
|
||||
import noppes.npcs.api.handler.data.IAction;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Supplier;
|
||||
import java.util.function.Function;
|
||||
|
||||
public interface IConditionalAction extends IAction {
|
||||
|
||||
/**
|
||||
* @param condition supplier checked every tick, if it returns true, task is fired
|
||||
* @param condition checked every tick, if it returns true, task is fired
|
||||
* @return
|
||||
*/
|
||||
IConditionalAction setCondition(Supplier<Boolean> condition);
|
||||
IConditionalAction setCondition(Function<IAction, Boolean> condition);
|
||||
|
||||
/**
|
||||
* @param terminateWhen supplier checked every tick, if it returns true, action is terminated (gets marked done)
|
||||
* @param terminateWhen checked every tick, if it returns true, action is terminated (gets marked done)
|
||||
* @return this action
|
||||
*/
|
||||
IConditionalAction terminateWhen(Supplier<Boolean> terminateWhen);
|
||||
IConditionalAction terminateWhen(Function<IAction, Boolean> terminateWhen);
|
||||
|
||||
/**
|
||||
* @param onTermination code to run when the termination condition returns true
|
||||
@@ -45,7 +45,7 @@ public interface IConditionalAction extends IAction {
|
||||
|
||||
/**
|
||||
*
|
||||
* @return True if condition provided by {{@link #terminateWhen(Supplier)}} is satisfied
|
||||
* @return True if condition provided by {{@link #terminateWhen(Function)}} is satisfied
|
||||
* Can be called directly in the IAction's task.
|
||||
* Can only be true once, as action is marked done immediately after.
|
||||
*/
|
||||
|
||||
Reference in new issue
Block a user