package matgm50.wanderer.client.gui;
import matgm50.wanderer.client.gui.button.ButtonArrow;
import matgm50.wanderer.lib.GuiLib;
import matgm50.wanderer.scroll.ScrollEntry;
import matgm50.wanderer.util.helper.ScrollHelper;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.player.EntityPlayer;
import org.lwjgl.opengl.GL11;
public class GuiScroll extends GuiScreen {
private int startX, startY;
private GuiButton buttonPrev, buttonNext;
private ScrollEntry entry;
private int currentlyOpenedPage = 0;
public GuiScroll(EntityPlayer player) {
this.entry = ScrollHelper.getEquippedScrollEntryFromPlayer(player);
}
@Override
public void initGui() {
super.initGui();
startX = (width - GuiLib.SCROLL_TEXTURE_WIDTH) / 2;
startY = (height - GuiLib.SCROLL_TEXTURE_HEIGHT) / 2;
buttonList.clear();
buttonList.add(buttonPrev = new ButtonArrow(0, startX, startY + (GuiLib.SCROLL_TEXTURE_HEIGHT - GuiLib.SCROLL_ARROW_HEIGHT / 2), false));
buttonList.add(buttonNext = new ButtonArrow(1, startX + (GuiLib.SCROLL_TEXTURE_WIDTH - GuiLib.SCROLL_ARROW_WIDTH), startY + (GuiLib.SCROLL_TEXTURE_HEIGHT - GuiLib.SCROLL_ARROW_HEIGHT / 2), true));
updateButtons();
}
public void updateButtons() {
if(currentlyOpenedPage == 0 && entry.getPages().size() == 1) {
buttonNext.enabled = false;
buttonPrev.enabled = false;
} else if(currentlyOpenedPage == 0) {
buttonNext.enabled = true;
buttonPrev.enabled = false;
} else if(currentlyOpenedPage > 0 && currentlyOpenedPage < entry.getPages().size() - 1) {
buttonNext.enabled = true;
buttonPrev.enabled = true;
} else if(currentlyOpenedPage == entry.getPages().size() - 1) {
buttonNext.enabled = false;
buttonPrev.enabled = true;
} else {
buttonNext.enabled = false;
buttonPrev.enabled = false;
}
}
@Override
public boolean doesGuiPauseGame() {return false;}
@Override
protected void actionPerformed(GuiButton par1GuiButton) {
switch(par1GuiButton.id) {
case 0:
currentlyOpenedPage--;
updateButtons();
updateScreen();
break;
case 1:
currentlyOpenedPage++;
updateButtons();
updateScreen();
break;
}
}
@Override
public void drawScreen(int par1, int par2, float par3) {
GL11.glColor4f(1, 1, 1, 1);
mc.getTextureManager().bindTexture(GuiLib.SCROLL_TEXTURE);
drawTexturedModalRect(startX, startY, 0, 0, GuiLib.SCROLL_TEXTURE_WIDTH, GuiLib.SCROLL_TEXTURE_HEIGHT);
if((entry.getPage(currentlyOpenedPage)) != null) {
(entry.getPage(currentlyOpenedPage)).drawPage(startX, startY);
}
super.drawScreen(par1, par2, par3);
}
}