mirror of
https://github.com/Ellpeck/ActuallyAdditions.git
synced 2024-12-26 21:09:23 +01:00
Fixed clicking sometimes switching two pages in the booklet
This commit is contained in:
parent
e5926265f8
commit
0a77476470
8 changed files with 28 additions and 32 deletions
|
@ -24,7 +24,6 @@ import net.minecraft.client.gui.GuiButton;
|
|||
import net.minecraft.client.gui.GuiScreen;
|
||||
import net.minecraft.client.gui.GuiTextField;
|
||||
import net.minecraft.client.renderer.OpenGlHelper;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
@ -66,12 +65,11 @@ public class GuiBooklet extends GuiScreen{
|
|||
|
||||
private static final int BUTTONS_PER_PAGE = 15;
|
||||
|
||||
private EntityPlayer player;
|
||||
private boolean mouseClicked;
|
||||
|
||||
public GuiBooklet(EntityPlayer player){
|
||||
public GuiBooklet(){
|
||||
this.xSize = 146;
|
||||
this.ySize = 180;
|
||||
this.player = player;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -116,6 +114,9 @@ public class GuiBooklet extends GuiScreen{
|
|||
@Override
|
||||
protected void mouseClicked(int par1, int par2, int par3){
|
||||
this.searchField.mouseClicked(par1, par2, par3);
|
||||
if(par3 == 0){
|
||||
this.mouseClicked = true;
|
||||
}
|
||||
super.mouseClicked(par1, par2, par3);
|
||||
}
|
||||
|
||||
|
@ -197,7 +198,7 @@ public class GuiBooklet extends GuiScreen{
|
|||
if(this.currentIndexEntry != null){
|
||||
if(this.currentChapter != null && this.currentPage != null){
|
||||
this.drawCenteredString(this.unicodeRenderer, this.currentPage.getID()+"/"+this.currentChapter.pages.length, this.guiLeft+this.xSize/2, this.guiTop+172, StringUtil.DECIMAL_COLOR_WHITE);
|
||||
this.currentPage.renderPre(this, x, y);
|
||||
this.currentPage.renderPre(this, x, y, this.mouseClicked);
|
||||
}
|
||||
else{
|
||||
this.drawCenteredString(this.unicodeRenderer, this.pageOpenInIndex+"/"+this.indexPageAmount, this.guiLeft+this.xSize/2, this.guiTop+172, StringUtil.DECIMAL_COLOR_WHITE);
|
||||
|
@ -225,8 +226,10 @@ public class GuiBooklet extends GuiScreen{
|
|||
}
|
||||
|
||||
if(this.currentIndexEntry != null && this.currentChapter != null && this.currentPage != null){
|
||||
this.currentPage.render(this, x, y);
|
||||
this.currentPage.render(this, x, y, this.mouseClicked);
|
||||
}
|
||||
|
||||
if(this.mouseClicked) this.mouseClicked = false;
|
||||
}
|
||||
|
||||
private IBookletPage getNextPage(BookletChapter chapter, IBookletPage currentPage){
|
||||
|
|
|
@ -22,7 +22,6 @@ import net.minecraft.client.renderer.entity.RenderItem;
|
|||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import org.lwjgl.input.Mouse;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
import org.lwjgl.opengl.GL12;
|
||||
|
||||
|
@ -33,8 +32,6 @@ public class BookletPage implements IBookletPage{
|
|||
protected int id;
|
||||
protected BookletChapter chapter;
|
||||
|
||||
private boolean mouseWasDown;
|
||||
|
||||
public BookletPage(int id){
|
||||
this.id = id;
|
||||
}
|
||||
|
@ -60,12 +57,12 @@ public class BookletPage implements IBookletPage{
|
|||
}
|
||||
|
||||
@Override
|
||||
public void renderPre(GuiBooklet gui, int mouseX, int mouseY){
|
||||
public void renderPre(GuiBooklet gui, int mouseX, int mouseY, boolean mouseClick){
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(GuiBooklet gui, int mouseX, int mouseY){
|
||||
public void render(GuiBooklet gui, int mouseX, int mouseY, boolean mouseClick){
|
||||
|
||||
}
|
||||
|
||||
|
@ -75,7 +72,7 @@ public class BookletPage implements IBookletPage{
|
|||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
protected void renderTooltipAndTransfer(GuiBooklet gui, ItemStack stack, int x, int y, boolean checkAndTransfer){
|
||||
protected void renderTooltipAndTransfer(GuiBooklet gui, ItemStack stack, int x, int y, boolean checkAndTransfer, boolean mouseClick){
|
||||
List list = stack.getTooltip(gui.mc.thePlayer, gui.mc.gameSettings.advancedItemTooltips);
|
||||
|
||||
for(int k = 0; k < list.size(); ++k){
|
||||
|
@ -92,14 +89,10 @@ public class BookletPage implements IBookletPage{
|
|||
if(page.getItemStackForPage() != null && page.getItemStackForPage().isItemEqual(stack)){
|
||||
list.add(EnumChatFormatting.GOLD+StringUtil.localize("booklet."+ModUtil.MOD_ID_LOWER+".clickToSeeRecipe"));
|
||||
|
||||
boolean isDown = Mouse.isButtonDown(0);
|
||||
if(!this.mouseWasDown){
|
||||
if(isDown){
|
||||
gui.openChapter(page.getChapter(), page);
|
||||
Minecraft.getMinecraft().getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F));
|
||||
}
|
||||
if(mouseClick){
|
||||
gui.openChapter(page.getChapter(), page);
|
||||
Minecraft.getMinecraft().getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F));
|
||||
}
|
||||
this.mouseWasDown = isDown;
|
||||
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -24,9 +24,9 @@ public interface IBookletPage{
|
|||
|
||||
String getText();
|
||||
|
||||
void renderPre(GuiBooklet gui, int mouseX, int mouseY);
|
||||
void renderPre(GuiBooklet gui, int mouseX, int mouseY, boolean mouseClick);
|
||||
|
||||
void render(GuiBooklet gui, int mouseX, int mouseY);
|
||||
void render(GuiBooklet gui, int mouseX, int mouseY, boolean mouseClick);
|
||||
|
||||
ItemStack getItemStackForPage();
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@ public class PageCrafting extends BookletPage{
|
|||
}
|
||||
|
||||
@Override
|
||||
public void renderPre(GuiBooklet gui, int mouseX, int mouseY){
|
||||
public void renderPre(GuiBooklet gui, int mouseX, int mouseY, boolean mouseClick){
|
||||
if(this.recipe != null){
|
||||
gui.mc.getTextureManager().bindTexture(GuiBooklet.resLoc);
|
||||
gui.drawTexturedModalRect(gui.guiLeft+27, gui.guiTop+20, 146, 20, 99, 60);
|
||||
|
@ -50,7 +50,7 @@ public class PageCrafting extends BookletPage{
|
|||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public void render(GuiBooklet gui, int mouseX, int mouseY){
|
||||
public void render(GuiBooklet gui, int mouseX, int mouseY, boolean mouseClick){
|
||||
if(this.recipe == null){
|
||||
gui.unicodeRenderer.drawSplitString(StringUtil.localize("booklet."+ModUtil.MOD_ID_LOWER+".recipeDisabled"), gui.guiLeft+14, gui.guiTop+15, 115, 0);
|
||||
}
|
||||
|
@ -114,7 +114,7 @@ public class PageCrafting extends BookletPage{
|
|||
}
|
||||
else{
|
||||
if(mouseX >= xShow && mouseX <= xShow+16 && mouseY >= yShow && mouseY <= yShow+16){
|
||||
this.renderTooltipAndTransfer(gui, stack, mouseX, mouseY, true);
|
||||
this.renderTooltipAndTransfer(gui, stack, mouseX, mouseY, true, mouseClick);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -29,7 +29,7 @@ public class PageCrusherRecipe extends BookletPage{
|
|||
}
|
||||
|
||||
@Override
|
||||
public void renderPre(GuiBooklet gui, int mouseX, int mouseY){
|
||||
public void renderPre(GuiBooklet gui, int mouseX, int mouseY, boolean mouseClick){
|
||||
if(recipe != null){
|
||||
gui.mc.getTextureManager().bindTexture(GuiBooklet.resLoc);
|
||||
gui.drawTexturedModalRect(gui.guiLeft+37, gui.guiTop+20, 60, 180, 60, 60);
|
||||
|
@ -43,7 +43,7 @@ public class PageCrusherRecipe extends BookletPage{
|
|||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public void render(GuiBooklet gui, int mouseX, int mouseY){
|
||||
public void render(GuiBooklet gui, int mouseX, int mouseY, boolean mouseClick){
|
||||
if(recipe == null){
|
||||
gui.unicodeRenderer.drawSplitString(StringUtil.localize("booklet."+ModUtil.MOD_ID_LOWER+".recipeDisabled"), gui.guiLeft+14, gui.guiTop+15, 115, 0);
|
||||
}
|
||||
|
@ -74,7 +74,7 @@ public class PageCrusherRecipe extends BookletPage{
|
|||
}
|
||||
else{
|
||||
if(mouseX >= xShow && mouseX <= xShow+16 && mouseY >= yShow && mouseY <= yShow+16){
|
||||
this.renderTooltipAndTransfer(gui, stack, mouseX, mouseY, j == 0);
|
||||
this.renderTooltipAndTransfer(gui, stack, mouseX, mouseY, j == 0, mouseClick);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@ public class PageFurnace extends BookletPage{
|
|||
}
|
||||
|
||||
@Override
|
||||
public void renderPre(GuiBooklet gui, int mouseX, int mouseY){
|
||||
public void renderPre(GuiBooklet gui, int mouseX, int mouseY, boolean mouseClick){
|
||||
if(this.input != null || this.getInputForOutput(this.result) != null){
|
||||
gui.mc.getTextureManager().bindTexture(GuiBooklet.resLoc);
|
||||
gui.drawTexturedModalRect(gui.guiLeft+37, gui.guiTop+20, 0, 180, 60, 60);
|
||||
|
@ -50,7 +50,7 @@ public class PageFurnace extends BookletPage{
|
|||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public void render(GuiBooklet gui, int mouseX, int mouseY){
|
||||
public void render(GuiBooklet gui, int mouseX, int mouseY, boolean mouseClick){
|
||||
ItemStack input = this.input != null ? this.input : this.getInputForOutput(this.result);
|
||||
if(input == null){
|
||||
gui.unicodeRenderer.drawSplitString(StringUtil.localize("booklet."+ModUtil.MOD_ID_LOWER+".recipeDisabled"), gui.guiLeft+14, gui.guiTop+15, 115, 0);
|
||||
|
@ -75,7 +75,7 @@ public class PageFurnace extends BookletPage{
|
|||
}
|
||||
else{
|
||||
if(mouseX >= xShow && mouseX <= xShow+16 && mouseY >= yShow && mouseY <= yShow+16){
|
||||
this.renderTooltipAndTransfer(gui, stack, mouseX, mouseY, x == 0);
|
||||
this.renderTooltipAndTransfer(gui, stack, mouseX, mouseY, x == 0, mouseClick);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@ public class PageText extends BookletPage{
|
|||
}
|
||||
|
||||
@Override
|
||||
public void render(GuiBooklet gui, int mouseX, int mouseY){
|
||||
public void render(GuiBooklet gui, int mouseX, int mouseY, boolean mouseClick){
|
||||
String text = gui.currentPage.getText();
|
||||
if(text != null && !text.isEmpty() && !text.contains("booklet.")){
|
||||
gui.unicodeRenderer.drawSplitString(text.replace("<n>", "\n"), gui.guiLeft+14, gui.guiTop+11, 115, 0);
|
||||
|
|
|
@ -140,7 +140,7 @@ public class GuiHandler implements IGuiHandler{
|
|||
case CLOUD:
|
||||
return new GuiSmileyCloud(tile, x, y, z, world);
|
||||
case BOOK:
|
||||
return new GuiBooklet(entityPlayer);
|
||||
return new GuiBooklet();
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue