package crazypants.enderio.conduit.item.filter; import java.util.Collections; import java.util.List; import java.util.Locale; import net.minecraft.item.ItemStack; import com.enderio.core.api.client.render.IWidgetIcon; import com.enderio.core.client.gui.button.CycleButton; import crazypants.enderio.EnderIO; import crazypants.enderio.gui.IconEIO; public enum FuzzyMode implements CycleButton.ICycleEnum { DISABLED(IconEIO.FILTER_FUZZY_DISABLED) { @Override boolean compare(ItemStack stack) { return false; } }, FUZZY_25(IconEIO.FILTER_FUZZY_25) { @Override boolean compare(ItemStack stack) { return compareQuarter(stack, 1); } }, FUZZY_50(IconEIO.FILTER_FUZZY_50) { @Override boolean compare(ItemStack stack) { return compareQuarter(stack, 2); } }, FUZZY_75(IconEIO.FILTER_FUZZY_75) { @Override boolean compare(ItemStack stack) { return compareQuarter(stack, 3); } }, FUZZY_99(IconEIO.FILTER_FUZZY_99) { @Override boolean compare(ItemStack stack) { return stack.getItemDamageForDisplay() >= 1; } }; final IWidgetIcon icon; private FuzzyMode(IWidgetIcon icon) { this.icon = icon; } abstract boolean compare(ItemStack stack); private static boolean compareQuarter(ItemStack stack, int ratio) { return stack.getItemDamageForDisplay() * 4 >= stack.getMaxDamage() * ratio; } @Override public IWidgetIcon getIcon() { return icon; } @Override public List<String> getTooltipLines() { return Collections.singletonList(EnderIO.lang.localize("gui.conduit.item.fuzzy.".concat(name().toLowerCase(Locale.US)))); } }