package joshie.harvest.quests.gui; import joshie.harvest.api.quests.Quest; import joshie.harvest.core.network.PacketHandler; import joshie.harvest.quests.packet.PacketQuestStart; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.util.math.BlockPos; public class GuiButtonStartQuest extends GuiButton { private final BlockPos pos; private final Quest quest; public GuiButtonStartQuest(BlockPos pos, Quest quest, int buttonId, int x, int y) { super(buttonId, x, y, ""); this.pos = pos; this.quest = quest; width = 70; height = 30; } @Override public void drawButton(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; int state = getHoverState(hovered); 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, (state * 70) - 70, 226, width, height); GlStateManager.color(1.0F, 1.0F, 1.0F); } } @Override public void mouseReleased(int mouseX, int mouseY) { PacketHandler.sendToServer(new PacketQuestStart(pos, quest)); } }