package joshie.harvest.knowledge.gui.stats.collection.button; import joshie.harvest.core.base.gui.ButtonBook; import joshie.harvest.knowledge.gui.stats.GuiStats; import joshie.harvest.knowledge.gui.stats.collection.page.PageCollection; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.item.ItemStack; import net.minecraft.util.text.TextFormatting; import javax.annotation.Nonnull; import static joshie.harvest.api.HFApi.shipping; public class ButtonSearch extends ButtonBook<GuiStats> { public static boolean inFocus; private final PageCollection collection; @SuppressWarnings("unchecked") public ButtonSearch(GuiStats gui, PageCollection collection, int buttonId, int x, int y) { super(gui, buttonId, x, y, ""); this.collection = collection; this.width = 80; this.height = 24; //ButtonSearch.inFocus = false; } @Override public void drawButton(@Nonnull Minecraft mc, int mouseX, int mouseY) { if (visible) { GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); hovered = mouseX >= xPosition && mouseY >= yPosition && mouseX < xPosition + width && mouseY < yPosition + height; mouseDragged(mc, mouseX, mouseY); mc.getTextureManager().bindTexture(TEXTURE); GlStateManager.enableBlend(); GlStateManager.tryBlendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO); GlStateManager.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA); drawTexturedModalRect(xPosition, yPosition, 0, 169, width, height); mc.fontRendererObj.drawString(TextFormatting.ITALIC + collection.search + (inFocus ? "_": ""), xPosition + 8, yPosition + 8, 0x391312); GlStateManager.color(1.0F, 1.0F, 1.0F); } } public static boolean matchesFilter(ItemStack stack, String search) { if (search.startsWith("=")) { long value = shipping.getSellValue(stack); try { return value == Long.valueOf(search.substring(1).trim()); } catch (Exception ignored) {} } else if (search.startsWith("<=")) { long value = shipping.getSellValue(stack); try { return value <= Long.valueOf(search.substring(2).trim()); } catch (Exception ignored) {} } else if (search.startsWith("<")) { long value = shipping.getSellValue(stack); try { return value < Long.valueOf(search.substring(1).trim()); } catch (Exception ignored) {} } else if (search.startsWith(">=")) { long value = shipping.getSellValue(stack); try { return value >= Long.valueOf(search.substring(2).trim()); } catch (Exception ignored) {} } else if (search.startsWith(">")) { long value = shipping.getSellValue(stack); try { return value > Long.valueOf(search.substring(1).trim()); } catch (Exception ignored) {} } else if (search.startsWith("@")) { String modid = stack.getItem().getRegistryName().getResourceDomain().toLowerCase(); return modid.contains(search.substring(1)); } return stack.getDisplayName().toLowerCase().contains(search); } @Override public boolean mousePressed(Minecraft mc, int mouseX, int mouseY) { return inFocus = super.mousePressed(mc, mouseX, mouseY); } }