ForgePatch/patches/minecraft/net/minecraft/client/gui/advancements/GuiScreenAdvancements.java....

83 lines
3.9 KiB
Diff

--- a/net/minecraft/client/gui/advancements/GuiScreenAdvancements.java
+++ b/net/minecraft/client/gui/advancements/GuiScreenAdvancements.java
@@ -24,6 +24,7 @@
private final Map<Advancement, GuiAdvancementTab> 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_);
}
}