From 2a5ebf385a00b4a0e1eab0ec23993e4697a0631b Mon Sep 17 00:00:00 2001 From: Unknown Date: Sat, 11 May 2019 14:35:39 +0800 Subject: Build 107 --- .../rei/gui/VillagerRecipeViewingScreen.java | 36 ++++++++++++------ .../rei/listeners/ContainerScreenHooks.java | 9 +++++ .../CreativePlayerInventoryScreenHooks.java | 6 +++ .../rei/listeners/RecipeBookGuiHooks.java | 7 ++++ .../shedaniel/rei/mixin/MixinContainerScreen.java | 43 ---------------------- .../mixin/MixinCreativePlayerInventoryScreen.java | 16 -------- .../me/shedaniel/rei/mixin/MixinRecipeBookGui.java | 38 ------------------- src/main/resources/fabric.mod.json | 3 +- .../listeners.roughlyenoughitems.mixins.json | 15 ++++++++ .../resources/mixin.roughlyenoughitems.mixins.json | 13 +++++++ src/main/resources/roughlyenoughitems.mixins.json | 16 -------- 11 files changed, 77 insertions(+), 125 deletions(-) delete mode 100644 src/main/java/me/shedaniel/rei/mixin/MixinContainerScreen.java delete mode 100644 src/main/java/me/shedaniel/rei/mixin/MixinCreativePlayerInventoryScreen.java delete mode 100644 src/main/java/me/shedaniel/rei/mixin/MixinRecipeBookGui.java create mode 100644 src/main/resources/listeners.roughlyenoughitems.mixins.json create mode 100755 src/main/resources/mixin.roughlyenoughitems.mixins.json delete mode 100755 src/main/resources/roughlyenoughitems.mixins.json (limited to 'src/main') diff --git a/src/main/java/me/shedaniel/rei/gui/VillagerRecipeViewingScreen.java b/src/main/java/me/shedaniel/rei/gui/VillagerRecipeViewingScreen.java index e53168df6..99ca687d8 100644 --- a/src/main/java/me/shedaniel/rei/gui/VillagerRecipeViewingScreen.java +++ b/src/main/java/me/shedaniel/rei/gui/VillagerRecipeViewingScreen.java @@ -16,6 +16,7 @@ import net.minecraft.client.render.GuiLighting; import net.minecraft.client.resource.language.I18n; import net.minecraft.sound.SoundEvents; import net.minecraft.text.StringTextComponent; +import net.minecraft.text.TranslatableTextComponent; import net.minecraft.util.math.MathHelper; import org.lwjgl.BufferUtils; import org.lwjgl.glfw.GLFW; @@ -32,6 +33,7 @@ import static me.shedaniel.rei.gui.RecipeViewingScreen.getSpeedCraftFunctionalBy public class VillagerRecipeViewingScreen extends Screen { + private static final int TABS_PER_PAGE = 8; private final Map> categoryMap; private final List categories; private final List widgets; @@ -42,7 +44,6 @@ public class VillagerRecipeViewingScreen extends Screen { private int selectedCategoryIndex, selectedRecipeIndex; private double scroll; private int tabsPage; - private static final int TABS_PER_PAGE = 9; public VillagerRecipeViewingScreen(Map> map) { super(new StringTextComponent("")); @@ -117,6 +118,7 @@ public class VillagerRecipeViewingScreen extends Screen { return false; selectedCategoryIndex = getId() + tabsPage * TABS_PER_PAGE; scroll = 0; + selectedRecipeIndex = 0; VillagerRecipeViewingScreen.this.init(); return true; } @@ -126,6 +128,26 @@ public class VillagerRecipeViewingScreen extends Screen { tab.setRenderer(categories.get(j), categories.get(j).getIcon(), categories.get(j).getCategoryName(), tab.getId() + tabsPage * TABS_PER_PAGE == selectedCategoryIndex); } } + ButtonWidget w, w2; + this.widgets.add(w = new ButtonWidget(bounds.x + 2, bounds.y - 16, 10, 10, new TranslatableTextComponent("text.rei.left_arrow")) { + @Override + public void onPressed() { + tabsPage--; + if (tabsPage < 0) + tabsPage = MathHelper.ceil(categories.size() / (float) TABS_PER_PAGE) - 1; + VillagerRecipeViewingScreen.this.init(); + } + }); + this.widgets.add(w2 = new ButtonWidget(bounds.x + bounds.width - 12, bounds.y - 16, 10, 10, new TranslatableTextComponent("text.rei.right_arrow")) { + @Override + public void onPressed() { + tabsPage++; + if (tabsPage > MathHelper.ceil(categories.size() / (float) TABS_PER_PAGE) - 1) + tabsPage = 0; + VillagerRecipeViewingScreen.this.init(); + } + }); + w.enabled = w2.enabled = categories.size() > TABS_PER_PAGE; this.widgets.add(new ClickableLabelWidget(bounds.x + 4 + scrollListBounds.width / 2, bounds.y + 6, categories.get(selectedCategoryIndex).getCategoryName()) { @Override @@ -142,22 +164,14 @@ public class VillagerRecipeViewingScreen extends Screen { @Override public void render(int mouseX, int mouseY, float delta) { GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F); - int colour = getDefaultColor(); - if (clickable && isHovered(mouseX, mouseY)) - colour = getHoveredColor(); - font.draw((isHovered(mouseX, mouseY) ? "§n" : "") + text, x - font.getStringWidth(text) / 2, y, colour); + font.draw((isHovered(mouseX, mouseY) ? "§n" : "") + text, x - font.getStringWidth(text) / 2, y, getDefaultColor()); if (clickable && getTooltips().isPresent()) if (!focused && isHighlighted(mouseX, mouseY)) ScreenHelper.getLastOverlay().addTooltip(QueuedTooltip.create(getTooltips().get().split("\n"))); else if (focused) ScreenHelper.getLastOverlay().addTooltip(QueuedTooltip.create(new Point(x, y), getTooltips().get().split("\n"))); } - - @Override - public int getHoveredColor() { - return -1; - } - + @Override public int getDefaultColor() { return 4210752; diff --git a/src/main/java/me/shedaniel/rei/listeners/ContainerScreenHooks.java b/src/main/java/me/shedaniel/rei/listeners/ContainerScreenHooks.java index caae64adc..da393b5b6 100644 --- a/src/main/java/me/shedaniel/rei/listeners/ContainerScreenHooks.java +++ b/src/main/java/me/shedaniel/rei/listeners/ContainerScreenHooks.java @@ -1,17 +1,26 @@ package me.shedaniel.rei.listeners; +import net.minecraft.client.gui.ContainerScreen; import net.minecraft.container.Slot; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; +@Mixin(ContainerScreen.class) public interface ContainerScreenHooks { + @Accessor("left") int rei_getContainerLeft(); + @Accessor("top") int rei_getContainerTop(); + @Accessor("containerWidth") int rei_getContainerWidth(); + @Accessor("containerHeight") int rei_getContainerHeight(); + @Accessor("focusedSlot") Slot rei_getHoveredSlot(); } diff --git a/src/main/java/me/shedaniel/rei/listeners/CreativePlayerInventoryScreenHooks.java b/src/main/java/me/shedaniel/rei/listeners/CreativePlayerInventoryScreenHooks.java index 45cdc198b..9948d289c 100644 --- a/src/main/java/me/shedaniel/rei/listeners/CreativePlayerInventoryScreenHooks.java +++ b/src/main/java/me/shedaniel/rei/listeners/CreativePlayerInventoryScreenHooks.java @@ -1,5 +1,11 @@ package me.shedaniel.rei.listeners; +import net.minecraft.client.gui.ingame.CreativePlayerInventoryScreen; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@Mixin(CreativePlayerInventoryScreen.class) public interface CreativePlayerInventoryScreenHooks { + @Accessor("selectedTab") int rei_getSelectedTab(); } diff --git a/src/main/java/me/shedaniel/rei/listeners/RecipeBookGuiHooks.java b/src/main/java/me/shedaniel/rei/listeners/RecipeBookGuiHooks.java index c76eb2b6e..a694322c3 100644 --- a/src/main/java/me/shedaniel/rei/listeners/RecipeBookGuiHooks.java +++ b/src/main/java/me/shedaniel/rei/listeners/RecipeBookGuiHooks.java @@ -1,17 +1,24 @@ package me.shedaniel.rei.listeners; import net.minecraft.client.gui.recipebook.GroupButtonWidget; +import net.minecraft.client.gui.recipebook.RecipeBookGui; import net.minecraft.client.gui.widget.RecipeBookGhostSlots; import net.minecraft.client.gui.widget.TextFieldWidget; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; import java.util.List; +@Mixin(RecipeBookGui.class) public interface RecipeBookGuiHooks { + @Accessor("ghostSlots") RecipeBookGhostSlots rei_getGhostSlots(); + @Accessor("searchField") TextFieldWidget rei_getSearchField(); + @Accessor("tabButtons") List rei_getTabButtons(); } diff --git a/src/main/java/me/shedaniel/rei/mixin/MixinContainerScreen.java b/src/main/java/me/shedaniel/rei/mixin/MixinContainerScreen.java deleted file mode 100644 index 6d1a39e55..000000000 --- a/src/main/java/me/shedaniel/rei/mixin/MixinContainerScreen.java +++ /dev/null @@ -1,43 +0,0 @@ -package me.shedaniel.rei.mixin; - -import me.shedaniel.rei.listeners.ContainerScreenHooks; -import net.minecraft.client.gui.ContainerScreen; -import net.minecraft.container.Slot; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; - -@Mixin(ContainerScreen.class) -public class MixinContainerScreen implements ContainerScreenHooks { - - @Shadow protected int left; - @Shadow protected int top; - @Shadow protected int containerWidth; - @Shadow protected int containerHeight; - @Shadow protected Slot focusedSlot; - - @Override - public int rei_getContainerLeft() { - return left; - } - - @Override - public int rei_getContainerTop() { - return top; - } - - @Override - public int rei_getContainerWidth() { - return containerWidth; - } - - @Override - public int rei_getContainerHeight() { - return containerHeight; - } - - @Override - public Slot rei_getHoveredSlot() { - return focusedSlot; - } - -} diff --git a/src/main/java/me/shedaniel/rei/mixin/MixinCreativePlayerInventoryScreen.java b/src/main/java/me/shedaniel/rei/mixin/MixinCreativePlayerInventoryScreen.java deleted file mode 100644 index c5cac7ba6..000000000 --- a/src/main/java/me/shedaniel/rei/mixin/MixinCreativePlayerInventoryScreen.java +++ /dev/null @@ -1,16 +0,0 @@ -package me.shedaniel.rei.mixin; - -import me.shedaniel.rei.listeners.CreativePlayerInventoryScreenHooks; -import net.minecraft.client.gui.ingame.CreativePlayerInventoryScreen; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; - -@Mixin(CreativePlayerInventoryScreen.class) -public class MixinCreativePlayerInventoryScreen implements CreativePlayerInventoryScreenHooks { - @Shadow private static int selectedTab; - - @Override - public int rei_getSelectedTab() { - return selectedTab; - } -} diff --git a/src/main/java/me/shedaniel/rei/mixin/MixinRecipeBookGui.java b/src/main/java/me/shedaniel/rei/mixin/MixinRecipeBookGui.java deleted file mode 100644 index 7885eff88..000000000 --- a/src/main/java/me/shedaniel/rei/mixin/MixinRecipeBookGui.java +++ /dev/null @@ -1,38 +0,0 @@ -package me.shedaniel.rei.mixin; - -import me.shedaniel.rei.listeners.RecipeBookGuiHooks; -import net.minecraft.client.gui.recipebook.GroupButtonWidget; -import net.minecraft.client.gui.recipebook.RecipeBookGui; -import net.minecraft.client.gui.widget.RecipeBookGhostSlots; -import net.minecraft.client.gui.widget.TextFieldWidget; -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; - -import java.util.List; - -@Mixin(RecipeBookGui.class) -public class MixinRecipeBookGui implements RecipeBookGuiHooks { - - @Shadow @Final protected RecipeBookGhostSlots ghostSlots; - - @Shadow private TextFieldWidget searchField; - - @Shadow @Final private List tabButtons; - - public RecipeBookGhostSlots rei_getGhostSlots() { - return ghostSlots; - } - - @Override - public TextFieldWidget rei_getSearchField() { - return searchField; - } - - @Override - public List rei_getTabButtons() { - return tabButtons; - } - - -} diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index b80d634b3..4cfb3c35b 100755 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -38,7 +38,8 @@ "cloth-config": ">=0.1.0" }, "mixins": [ - "roughlyenoughitems.mixins.json" + "mixin.roughlyenoughitems.mixins.json", + "listeners.roughlyenoughitems.mixins.json" ], "custom": { "modmenu:clientsideOnly": true diff --git a/src/main/resources/listeners.roughlyenoughitems.mixins.json b/src/main/resources/listeners.roughlyenoughitems.mixins.json new file mode 100644 index 000000000..429adad8a --- /dev/null +++ b/src/main/resources/listeners.roughlyenoughitems.mixins.json @@ -0,0 +1,15 @@ +{ + "required": true, + "package": "me.shedaniel.rei.listeners", + "minVersion": "0.7.11", + "compatibilityLevel": "JAVA_8", + "mixins": [], + "client": [ + "ContainerScreenHooks", + "CreativePlayerInventoryScreenHooks", + "RecipeBookGuiHooks" + ], + "injectors": { + "defaultRequire": 1 + } +} diff --git a/src/main/resources/mixin.roughlyenoughitems.mixins.json b/src/main/resources/mixin.roughlyenoughitems.mixins.json new file mode 100755 index 000000000..a8334dea1 --- /dev/null +++ b/src/main/resources/mixin.roughlyenoughitems.mixins.json @@ -0,0 +1,13 @@ +{ + "required": true, + "package": "me.shedaniel.rei.mixin", + "minVersion": "0.7.11", + "compatibilityLevel": "JAVA_8", + "mixins": [], + "client": [ + "MixinBrewingRecipeRegistry" + ], + "injectors": { + "defaultRequire": 1 + } +} diff --git a/src/main/resources/roughlyenoughitems.mixins.json b/src/main/resources/roughlyenoughitems.mixins.json deleted file mode 100755 index 0fcdc8327..000000000 --- a/src/main/resources/roughlyenoughitems.mixins.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "required": true, - "package": "me.shedaniel.rei.mixin", - "minVersion": "0.7.11", - "compatibilityLevel": "JAVA_8", - "mixins": [], - "client": [ - "MixinContainerScreen", - "MixinBrewingRecipeRegistry", - "MixinRecipeBookGui", - "MixinCreativePlayerInventoryScreen" - ], - "injectors": { - "defaultRequire": 1 - } -} -- cgit