Fixed Refined Storage sidebuttons displaying over the JEI bookmark pagination buttons. Fixes #2711

This commit is contained in:
raoulvdberge
2020-10-24 18:59:17 +02:00
parent 771b4e3aea
commit 559c214492
3 changed files with 35 additions and 0 deletions

View File

@@ -1,6 +1,11 @@
# Refined Storage Changelog # Refined Storage Changelog
### 1.9.9
- Fixed Refined Storage sidebuttons displaying over the JEI bookmark pagination buttons (raoulvdberge)
### 1.9.8 ### 1.9.8
- Fixed server crash when scrolling in Grid (Darkere) - Fixed server crash when scrolling in Grid (Darkere)
- Fixed various issues with Grid interactions working without power (Darkere) - Fixed various issues with Grid interactions working without power (Darkere)
- Fixed changing rotation not updating blocks (Darkere) - Fixed changing rotation not updating blocks (Darkere)

View File

@@ -2,15 +2,37 @@ package com.refinedmods.refinedstorage.integration.jei;
import com.refinedmods.refinedstorage.container.BaseContainer; import com.refinedmods.refinedstorage.container.BaseContainer;
import com.refinedmods.refinedstorage.container.slot.filter.FluidFilterSlot; import com.refinedmods.refinedstorage.container.slot.filter.FluidFilterSlot;
import com.refinedmods.refinedstorage.screen.BaseScreen;
import com.refinedmods.refinedstorage.screen.grid.GridScreen; import com.refinedmods.refinedstorage.screen.grid.GridScreen;
import com.refinedmods.refinedstorage.screen.widget.sidebutton.SideButton;
import com.refinedmods.refinedstorage.util.RenderUtils; import com.refinedmods.refinedstorage.util.RenderUtils;
import mezz.jei.api.gui.handlers.IGuiContainerHandler; import mezz.jei.api.gui.handlers.IGuiContainerHandler;
import net.minecraft.client.gui.screen.inventory.ContainerScreen; import net.minecraft.client.gui.screen.inventory.ContainerScreen;
import net.minecraft.client.renderer.Rectangle2d;
import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidStack;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class GuiContainerHandler implements IGuiContainerHandler<ContainerScreen<?>> { public class GuiContainerHandler implements IGuiContainerHandler<ContainerScreen<?>> {
@Override
public List<Rectangle2d> getGuiExtraAreas(ContainerScreen<?> screen) {
if (screen instanceof BaseScreen) {
List<SideButton> sideButtons = ((BaseScreen) screen).getSideButtons();
List<Rectangle2d> rectangles = new ArrayList<>();
for (SideButton sideButton : sideButtons) {
rectangles.add(new Rectangle2d(sideButton.x, sideButton.y, sideButton.getWidth(), sideButton.getHeight()));
}
return rectangles;
}
return Collections.emptyList();
}
@Nullable @Nullable
@Override @Override
public Object getIngredientUnderMouse(ContainerScreen screen, double mouseX, double mouseY) { public Object getIngredientUnderMouse(ContainerScreen screen, double mouseX, double mouseY) {

View File

@@ -51,6 +51,8 @@ public abstract class BaseScreen<T extends Container> extends ContainerScreen<T>
private static final ITextComponent ALTERNATIVES_TEXT = new TranslationTextComponent("gui.refinedstorage.alternatives"); private static final ITextComponent ALTERNATIVES_TEXT = new TranslationTextComponent("gui.refinedstorage.alternatives");
private final List<SideButton> sideButtons = new ArrayList<>();
private final Logger logger = LogManager.getLogger(getClass()); private final Logger logger = LogManager.getLogger(getClass());
private int sideButtonY; private int sideButtonY;
@@ -95,6 +97,7 @@ public abstract class BaseScreen<T extends Container> extends ContainerScreen<T>
} }
sideButtonY = 6; sideButtonY = 6;
sideButtons.clear();
onPostInit(guiLeft, guiTop); onPostInit(guiLeft, guiTop);
@@ -271,9 +274,14 @@ public abstract class BaseScreen<T extends Container> extends ContainerScreen<T>
sideButtonY += button.getHeight() + 2; sideButtonY += button.getHeight() + 2;
sideButtons.add(button);
this.addButton(button); this.addButton(button);
} }
public List<SideButton> getSideButtons() {
return sideButtons;
}
public void bindTexture(String namespace, String filenameInTexturesFolder) { public void bindTexture(String namespace, String filenameInTexturesFolder) {
minecraft.getTextureManager().bindTexture(TEXTURE_CACHE.computeIfAbsent(namespace + ":" + filenameInTexturesFolder, newId -> new ResourceLocation(namespace, "textures/" + filenameInTexturesFolder))); minecraft.getTextureManager().bindTexture(TEXTURE_CACHE.computeIfAbsent(namespace + ":" + filenameInTexturesFolder, newId -> new ResourceLocation(namespace, "textures/" + filenameInTexturesFolder)));
} }