package joshie.progression.api.criteria;
import com.google.gson.JsonObject;
import net.minecraft.item.ItemStack;
import java.util.List;
/** This is a reward provider, for storing information about rewards,
* that are unrelated to rewards themselves.
*/
public interface ITriggerProvider extends IRuleProvider<ITrigger> {
/** Returns a copy of this trigger provider **/
public ITriggerProvider copy();
/** Return the criteria this reward is attached to **/
public ICriteria getCriteria();
/** Return the list of conditions for this trigger **/
public List<IConditionProvider> getConditions();
/** Returns the icon for this reward **/
public ItemStack getIcon();
/** Returns the localised name **/
public String getLocalisedName();
/** Whether this trigger is cancelable **/
public boolean isCancelable();
/** Whether this trigger is currently cancel enabled **/
public boolean isCanceling();
/** Set the icon **/
public ITriggerProvider setIcon(ItemStack stack);
/** Marks this trigger as cancelable **/
public ITriggerProvider setCancelable();
/** Reads neccessary data about this provider from the json **/
public void readFromJSON(JsonObject data);
/** Writes neccessary data about this provider to the json **/
public void writeToJSON(JsonObject data);
}