aboutsummaryrefslogtreecommitdiff
path: root/runtime/src/main/java/me/shedaniel/rei/impl/ScreenRegistryImpl.java
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2021-03-20 17:20:54 +0800
committershedaniel <daniel@shedaniel.me>2021-03-20 17:20:54 +0800
commit0292fa5317106c46a39cd39e9664936f807b6270 (patch)
treef92cf071d1361be177af6c966148b8fd1c26613a /runtime/src/main/java/me/shedaniel/rei/impl/ScreenRegistryImpl.java
parent2cd3f0737b2008e37f8eaadf479312c60d36e7bc (diff)
downloadRoughlyEnoughItems-0292fa5317106c46a39cd39e9664936f807b6270.tar.gz
RoughlyEnoughItems-0292fa5317106c46a39cd39e9664936f807b6270.tar.bz2
RoughlyEnoughItems-0292fa5317106c46a39cd39e9664936f807b6270.zip
Refactor exclusion zones, wrap JEI exclusion zones
Signed-off-by: shedaniel <daniel@shedaniel.me>
Diffstat (limited to 'runtime/src/main/java/me/shedaniel/rei/impl/ScreenRegistryImpl.java')
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/ScreenRegistryImpl.java14
1 files changed, 7 insertions, 7 deletions
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/ScreenRegistryImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/ScreenRegistryImpl.java
index bc21380b8..ff7dca9a2 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/ScreenRegistryImpl.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/ScreenRegistryImpl.java
@@ -26,9 +26,8 @@ package me.shedaniel.rei.impl;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap;
import com.mojang.blaze3d.platform.Window;
+import me.shedaniel.math.Point;
import me.shedaniel.math.Rectangle;
-import me.shedaniel.rei.api.registry.screen.FocusedStackProvider;
-import me.shedaniel.rei.api.registry.screen.SimpleClickArea;
import me.shedaniel.rei.api.gui.config.DisplayPanelLocation;
import me.shedaniel.rei.api.ingredient.EntryStack;
import me.shedaniel.rei.api.ingredient.util.EntryStacks;
@@ -70,7 +69,8 @@ public class ScreenRegistryImpl implements ScreenRegistry {
}
@Override
- public <R extends Screen> List<OverlayDecider> getDeciders(Class<R> screenClass) {
+ public <R extends Screen> List<OverlayDecider> getDeciders(R screen) {
+ Class<? extends Screen> screenClass = screen.getClass();
List<OverlayDecider> possibleCached = cache.get(screenClass);
if (possibleCached != null) {
return possibleCached;
@@ -97,7 +97,7 @@ public class ScreenRegistryImpl implements ScreenRegistry {
Window window = Minecraft.getInstance().getWindow();
int scaledWidth = window.getGuiScaledWidth();
int scaledHeight = window.getGuiScaledHeight();
- for (OverlayDecider decider : getDeciders(screen.getClass())) {
+ for (OverlayDecider decider : getDeciders(screen)) {
if (decider instanceof DisplayBoundsProvider) {
Rectangle containerBounds = ((DisplayBoundsProvider<T>) decider).getScreenBounds(screen);
if (location == DisplayPanelLocation.LEFT) {
@@ -114,9 +114,9 @@ public class ScreenRegistryImpl implements ScreenRegistry {
@Nullable
@Override
- public <T extends Screen> EntryStack<?> getFocusedStack(T screen) {
+ public <T extends Screen> EntryStack<?> getFocusedStack(T screen, Point mouse) {
for (FocusedStackProvider provider : focusedStackProviders) {
- InteractionResultHolder<EntryStack<?>> result = Objects.requireNonNull(provider.provide(screen));
+ InteractionResultHolder<EntryStack<?>> result = Objects.requireNonNull(provider.provide(screen, mouse));
if (result.getResult() == InteractionResult.SUCCESS) {
if (result != null && !result.getObject().isEmpty())
return result.getObject();
@@ -211,7 +211,7 @@ public class ScreenRegistryImpl implements ScreenRegistry {
registerFocusedStack(new FocusedStackProvider() {
@Override
@NotNull
- public InteractionResultHolder<EntryStack<?>> provide(Screen screen) {
+ public InteractionResultHolder<EntryStack<?>> provide(Screen screen, Point mouse) {
if (screen instanceof AbstractContainerScreen) {
AbstractContainerScreen<?> containerScreen = (AbstractContainerScreen<?>) screen;
if (containerScreen.hoveredSlot != null && !containerScreen.hoveredSlot.getItem().isEmpty())