--- a/net/minecraft/client/gui/advancements/GuiScreenAdvancements.java +++ b/net/minecraft/client/gui/advancements/GuiScreenAdvancements.java @@ -24,6 +24,7 @@ private final Map field_191947_i = Maps.newLinkedHashMap(); private GuiAdvancementTab field_191940_s; private boolean field_191944_v; + private static int tabPage, maxPages; public GuiScreenAdvancements(ClientAdvancementManager p_i47383_1_) { this.field_191946_h = p_i47383_1_; @@ -38,7 +39,23 @@ } else { this.field_191946_h.func_194230_a(this.field_191940_s == null ? null : this.field_191940_s.func_193935_c(), true); } - + if (this.field_191947_i.size() > AdvancementTabType.MAX_TABS) { + int guiLeft = (this.field_146294_l - 252) / 2; + int guiTop = (this.field_146295_m - 140) / 2; + func_189646_b(new net.minecraft.client.gui.GuiButton(101, guiLeft, guiTop - 50, 20, 20, "<") { + @Override + public void func_194829_a(double mouseX, double mouseY) { + tabPage = Math.max(tabPage - 1, 0); + } + }); + func_189646_b(new net.minecraft.client.gui.GuiButton(102, guiLeft + 252 - 20, guiTop - 50, 20, 20, ">") { + @Override + public void func_194829_a(double mouseX, double mouseY) { + tabPage = Math.min(tabPage + 1, maxPages); + } + }); + maxPages = this.field_191947_i.size() / AdvancementTabType.MAX_TABS; + } } public void func_146281_b() { @@ -56,7 +73,7 @@ int j = (this.field_146295_m - 140) / 2; for(GuiAdvancementTab guiadvancementtab : this.field_191947_i.values()) { - if (guiadvancementtab.func_195627_a(i, j, p_mouseClicked_1_, p_mouseClicked_3_)) { + if (guiadvancementtab.getPage() == tabPage && guiadvancementtab.func_195627_a(i, j, p_mouseClicked_1_, p_mouseClicked_3_)) { this.field_191946_h.func_194230_a(guiadvancementtab.func_193935_c(), true); break; } @@ -83,6 +100,12 @@ this.func_191936_c(p_73863_1_, p_73863_2_, i, j); this.func_191934_b(i, j); this.func_191937_d(p_73863_1_, p_73863_2_, i, j); + if (maxPages != 0) { + String page = String.format("%d / %d", tabPage + 1, maxPages + 1); + int width = this.field_146289_q.func_78256_a(page); + GlStateManager.func_179140_f(); + this.field_146289_q.func_175063_a(page, i + (252 / 2) - (width / 2), j - 44, -1); + } } public boolean mouseDragged(double p_mouseDragged_1_, double p_mouseDragged_3_, int p_mouseDragged_5_, double p_mouseDragged_6_, double p_mouseDragged_8_) { @@ -129,6 +152,7 @@ this.field_146297_k.func_110434_K().func_110577_a(field_191945_g); for(GuiAdvancementTab guiadvancementtab : this.field_191947_i.values()) { + if (guiadvancementtab.getPage() == tabPage) guiadvancementtab.func_191798_a(p_191934_1_, p_191934_2_, guiadvancementtab == this.field_191940_s); } @@ -137,6 +161,7 @@ RenderHelper.func_74520_c(); for(GuiAdvancementTab guiadvancementtab1 : this.field_191947_i.values()) { + if (guiadvancementtab1.getPage() == tabPage) guiadvancementtab1.func_191796_a(p_191934_1_, p_191934_2_, this.field_146296_j); } @@ -159,7 +184,7 @@ if (this.field_191947_i.size() > 1) { for(GuiAdvancementTab guiadvancementtab : this.field_191947_i.values()) { - if (guiadvancementtab.func_195627_a(p_191937_3_, p_191937_4_, (double)p_191937_1_, (double)p_191937_2_)) { + if (guiadvancementtab.getPage() == tabPage && guiadvancementtab.func_195627_a(p_191937_3_, p_191937_4_, (double)p_191937_1_, (double)p_191937_2_)) { this.func_146279_a(guiadvancementtab.func_191795_d(), p_191937_1_, p_191937_2_); } }