package joshie.progression.criteria.filters.potion;
import joshie.progression.api.ProgressionAPI;
import joshie.progression.api.criteria.IField;
import joshie.progression.api.criteria.ProgressionRule;
import joshie.progression.api.special.DisplayMode;
import joshie.progression.api.special.IInit;
import joshie.progression.api.special.ISpecialFieldProvider;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import java.util.Collection;
import java.util.List;
import java.util.Set;
@ProgressionRule(name="potionitem", color=0xFFFF73FF)
public class FilterPotionItem extends FilterPotionBase implements IInit, ISpecialFieldProvider {
public ItemStack stack = new ItemStack(Items.POTIONITEM, 1, 16385); //Splash Potion of Regen, 33 seconds
private Set<Potion> ids;
@Override
public void addSpecialFields(List<IField> fields, DisplayMode mode) {
if (mode == DisplayMode.EDIT) fields.add(ProgressionAPI.fields.getItem(this, "stack", 25, 25, 3F));
}
@Override
public void init(boolean isClient) {
ids = getIds(getEffects(stack.getTagCompound()));
}
@Override
public boolean matches(PotionEffect effect) {
return ids == null? false: (ids.contains(effect.getPotion()));
}
@Override
public Collection<PotionEffect> getRandomEffects() {
return getEffects(stack.getTagCompound());
}
}