package joshie.progression.api.criteria; import com.google.gson.JsonObject; import net.minecraft.item.ItemStack; /** This is a condition provider, for storing information about conditions, * that are unrelated to conditions themselves. */ public interface IConditionProvider extends IRuleProvider<ICondition> { /** Return the trigger this condition is attached to **/ public ITriggerProvider getTrigger(); /** Whether this condition checks for true or false **/ public boolean isInverted(); /** Returns the icon for this condition **/ public ItemStack getIcon(); /** Returns the localised name **/ public String getLocalisedName(); /** Set the icon **/ public IConditionProvider setIcon(ItemStack stack); /** Sets the satisfaction for conditions that were synced **/ public void setSatisfied(boolean isTrue); /** Returns whether this is true or not **/ public boolean isSatisfied(); /** 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); }