Files
CustomNPC-Plus-API/java/noppes/npcs/api/handler/data/actions/IConditionalAction.java
T

67 lines
2.3 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package noppes.npcs.api.handler.data.actions;
import noppes.npcs.api.handler.data.IAction;
import java.util.function.Consumer;
import java.util.function.Supplier;
public interface IConditionalAction extends IAction {
/**
* @param condition supplier checked every tick, if it returns true, task is fired
* @return
*/
IConditionalAction setCondition(Supplier<Boolean> condition);
/**
* @param terminateWhen supplier checked every tick, if it returns true, action is terminated (gets marked done)
* @return this action
*/
IConditionalAction terminateWhen(Supplier<Boolean> terminateWhen);
/**
* @param onTermination code to run when the termination condition returns true
* @return this action
*/
IConditionalAction onTermination(Consumer<IAction> onTermination);
/**
* @return true if condition was satisfied and task ran (i.e can be called in termination task to see if original task was executed
* then do code based on that, if not return early)
*/
boolean wasTaskExecuted();
/**
* Note: Only for Conditional Actions
* @return how many times this conditional action has tested its condition
*/
int getCheckCount();
/**
* Note: Only for Conditional Actions
* @return the maximum number of checks before auto‐expiring, or –1 if unlimited
*/
int getMaxChecks();
/**
* @param maxChecks maximum times to test condition before auto‐cancelling
* @return this action
*/
IConditionalAction setMaxChecks(int maxChecks);
IConditionalAction after(IConditionalAction after);
IConditionalAction after(Supplier<Boolean> condition, Consumer<IAction> task);
IConditionalAction after(String name, Supplier<Boolean> condition, Consumer<IAction> task);
IConditionalAction after(Supplier<Boolean> condition, Consumer<IAction> task, Supplier<Boolean> terminate);
IConditionalAction after(String name, Supplier<Boolean> condition, Consumer<IAction> task, Supplier<Boolean> terminate);
IConditionalAction after(Supplier<Boolean> condition, Consumer<IAction> task, Supplier<Boolean> terminateWhen, Consumer<IAction> onTermination);
IConditionalAction after(String name, Supplier<Boolean> condition, Consumer<IAction> task, Supplier<Boolean> terminateWhen, Consumer<IAction> onTermination);
}