diff --git a/src/main/java/me/melontini/recipebookispain/mixin/RecipeBookWidgetMixin.java b/src/main/java/me/melontini/recipebookispain/mixin/RecipeBookWidgetMixin.java index 9b39a38..600513c 100644 --- a/src/main/java/me/melontini/recipebookispain/mixin/RecipeBookWidgetMixin.java +++ b/src/main/java/me/melontini/recipebookispain/mixin/RecipeBookWidgetMixin.java @@ -1,6 +1,5 @@ package me.melontini.recipebookispain.mixin; -import me.melontini.recipebookispain.client.RecipeBookIsPainClient; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.recipebook.RecipeBookWidget; import net.minecraft.client.gui.screen.recipebook.RecipeGroupButtonWidget; @@ -24,6 +23,13 @@ import java.util.List; @Mixin(RecipeBookWidget.class) public abstract class RecipeBookWidgetMixin { + @Shadow + @Final + protected static Identifier TEXTURE; + @Unique + private static int page = 0; + @Unique + public List> groupTab = Lists.newArrayList(); @Shadow protected MinecraftClient client; @Shadow @@ -35,16 +41,8 @@ public abstract class RecipeBookWidgetMixin { @Shadow @Final private List tabButtons; - @Shadow private int parentWidth; - @Shadow @Final protected static Identifier TEXTURE; - - @Shadow public abstract boolean isOpen(); - - @Unique - private static int page = 0; - @Unique private int pages; @Unique @@ -52,8 +50,8 @@ public abstract class RecipeBookWidgetMixin { @Unique private ToggleButtonWidget prevPageButton; - @Unique - public List> groupTab = Lists.newArrayList(); + @Shadow + public abstract boolean isOpen(); @Inject(at = @At("RETURN"), method = "reset") private void recipe_book_is_pain$init(CallbackInfo ci) { @@ -71,11 +69,9 @@ public abstract class RecipeBookWidgetMixin { this.prevPageButton.render(matrices, mouseX, mouseY, delta); this.nextPageButton.render(matrices, mouseX, mouseY, delta); updatePages(); - - - //if (client.world.getTime() % 20 == 0) refreshTabButtons(); reloadPages(); } + @Unique private void reloadPages() { int c = (this.parentWidth - 147) / 2 - this.leftOffset - 30; @@ -86,11 +82,11 @@ public abstract class RecipeBookWidgetMixin { if (pair.getLeft() == page) { RecipeBookGroup recipeBookGroup = widget.getCategory(); if (recipeBookGroup == RecipeBookGroup.CRAFTING_SEARCH || recipeBookGroup == RecipeBookGroup.FURNACE_SEARCH) { - widget.visible = true; - widget.setPos(c, b + 27 * l++); if (l == 6) { l = 0; } + widget.visible = true; + widget.setPos(c, b + 27 * l++); } else if (widget.hasKnownRecipes(recipeBook)) { if (l == 6) { l = 0; @@ -132,15 +128,19 @@ public abstract class RecipeBookWidgetMixin { @Inject(at = @At("HEAD"), method = "refreshTabButtons", cancellable = true) private void recipe_book_is_pain$refresh(CallbackInfo ci) { groupTab.clear(); + this.pages = 0; int l = 0; int p = 0; //I'm in pain - for (RecipeGroupButtonWidget recipeGroupButtonWidget : this.tabButtons) { - p++; - l++; - groupTab.add(new Pair<>((int) Math.ceil(p / 6), recipeGroupButtonWidget)); - if (l == 6) { - l = 0; + for (RecipeGroupButtonWidget widget : this.tabButtons) { + RecipeBookGroup recipeBookGroup = widget.getCategory(); + if (recipeBookGroup == RecipeBookGroup.CRAFTING_SEARCH || recipeBookGroup == RecipeBookGroup.FURNACE_SEARCH || widget.hasKnownRecipes(recipeBook)) { + p++; + l++; + groupTab.add(new Pair<>((int) Math.ceil(p / 6), widget)); + if (l == 6) { + l = 0; + } } } diff --git a/src/main/resources/recipe-book-is-pain.mixins.json b/src/main/resources/recipe-book-is-pain.mixins.json index 6919a64..292ad3f 100644 --- a/src/main/resources/recipe-book-is-pain.mixins.json +++ b/src/main/resources/recipe-book-is-pain.mixins.json @@ -9,8 +9,7 @@ "Accessor", "ClientRecipeBookMixin", "RecipeBookGroupMixin", - "RecipeBookWidgetMixin", - "RecipeGroupButtonWidgetMixin" + "RecipeBookWidgetMixin" ], "injectors": { "defaultRequire": 1