package joshie.progression.criteria.rewards; import joshie.progression.api.ProgressionAPI; import joshie.progression.api.criteria.IFilterProvider; import joshie.progression.api.criteria.IFilterType; import joshie.progression.api.special.ICustomIcon; import joshie.progression.api.special.IHasFilters; import joshie.progression.helpers.ItemHelper; import joshie.progression.helpers.MCClientHelper; import net.minecraft.client.gui.GuiScreen; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import java.util.ArrayList; import java.util.List; public abstract class RewardBaseItemFilter extends RewardBase implements IHasFilters, ICustomIcon { public List<IFilterProvider> filters = new ArrayList(); protected ItemStack BROKEN; protected ItemStack preview; protected int ticker; public RewardBaseItemFilter() { BROKEN = new ItemStack(Items.BAKED_POTATO); } @Override public List<IFilterProvider> getAllFilters() { return filters; } @Override public IFilterType getFilterForField(String fieldName) { return ProgressionAPI.filters.getItemStackFilter(); } @Override public ItemStack getIcon() { if (ticker == 0 || ticker >= 200) { preview = ItemHelper.getRandomItemFromFilters(filters, MCClientHelper.getPlayer()); ticker = 1; } if (!GuiScreen.isShiftKeyDown()) ticker++; return preview == null ? BROKEN: preview; } }