diff options
| author | Unknown <shekwancheung0528@gmail.com> | 2019-05-11 14:38:16 +0800 |
|---|---|---|
| committer | Unknown <shekwancheung0528@gmail.com> | 2019-05-11 14:38:16 +0800 |
| commit | 9201b65bc631d5cc471bc348e140e4e2c8f55f9c (patch) | |
| tree | dcc31de61cae74a01b27d68d9649a95fa786f713 /src/main/java/me/shedaniel/rei | |
| parent | 68ba3c1f952c1e74129591fb8219056fddb1b5ee (diff) | |
| parent | 3712cc6a63c390275bf61c42bd514530f6d95481 (diff) | |
| download | RoughlyEnoughItems-9201b65bc631d5cc471bc348e140e4e2c8f55f9c.tar.gz RoughlyEnoughItems-9201b65bc631d5cc471bc348e140e4e2c8f55f9c.tar.bz2 RoughlyEnoughItems-9201b65bc631d5cc471bc348e140e4e2c8f55f9c.zip | |
Merge branch '1.14-dev' into 1.14
Diffstat (limited to 'src/main/java/me/shedaniel/rei')
7 files changed, 47 insertions, 108 deletions
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<RecipeCategory, List<RecipeDisplay>> categoryMap; private final List<RecipeCategory> categories; private final List<Widget> 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<RecipeCategory, List<RecipeDisplay>> 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<GroupButtonWidget> 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<GroupButtonWidget> tabButtons; - - public RecipeBookGhostSlots rei_getGhostSlots() { - return ghostSlots; - } - - @Override - public TextFieldWidget rei_getSearchField() { - return searchField; - } - - @Override - public List<GroupButtonWidget> rei_getTabButtons() { - return tabButtons; - } - - -} |
