aboutsummaryrefslogtreecommitdiff
path: root/api/src/main/java/me
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 /api/src/main/java/me
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 'api/src/main/java/me')
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/registry/screen/DisplayBoundsProvider.java13
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/registry/screen/ExclusionZones.java7
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/registry/screen/ExclusionZonesProvider.java10
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/registry/screen/FocusedStackProvider.java3
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/registry/screen/ScreenRegistry.java5
5 files changed, 18 insertions, 20 deletions
diff --git a/api/src/main/java/me/shedaniel/rei/api/registry/screen/DisplayBoundsProvider.java b/api/src/main/java/me/shedaniel/rei/api/registry/screen/DisplayBoundsProvider.java
index 007aded8c..049df6379 100644
--- a/api/src/main/java/me/shedaniel/rei/api/registry/screen/DisplayBoundsProvider.java
+++ b/api/src/main/java/me/shedaniel/rei/api/registry/screen/DisplayBoundsProvider.java
@@ -24,7 +24,6 @@
package me.shedaniel.rei.api.registry.screen;
import me.shedaniel.math.Rectangle;
-import net.minecraft.client.gui.screens.Screen;
public interface DisplayBoundsProvider<T> extends OverlayDecider {
/**
@@ -32,16 +31,4 @@ public interface DisplayBoundsProvider<T> extends OverlayDecider {
* @return the boundary of the base container panel.
*/
Rectangle getScreenBounds(T screen);
-
- /**
- * Gets the base supported class for the bounds handler
- *
- * @return the base class
- */
- Class<? extends Screen> getBaseSupportedClass();
-
- @Override
- default <R extends Screen> boolean isHandingScreen(Class<R> screen) {
- return getBaseSupportedClass().isAssignableFrom(screen);
- }
} \ No newline at end of file
diff --git a/api/src/main/java/me/shedaniel/rei/api/registry/screen/ExclusionZones.java b/api/src/main/java/me/shedaniel/rei/api/registry/screen/ExclusionZones.java
index d564a6080..415407646 100644
--- a/api/src/main/java/me/shedaniel/rei/api/registry/screen/ExclusionZones.java
+++ b/api/src/main/java/me/shedaniel/rei/api/registry/screen/ExclusionZones.java
@@ -28,7 +28,6 @@ import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import java.util.List;
-import java.util.function.Supplier;
@Environment(EnvType.CLIENT)
public interface ExclusionZones extends OverlayDecider {
@@ -49,8 +48,8 @@ public interface ExclusionZones extends OverlayDecider {
/**
* Register an exclusion zone
*
- * @param screenClass the screen
- * @param supplier the exclusion zone supplier, returns the list of exclusion zones
+ * @param screenClass the screen class
+ * @param provider the exclusion zone provider, returns a collection of exclusion zones
*/
- void register(Class<?> screenClass, Supplier<List<Rectangle>> supplier);
+ <T> void register(Class<? extends T> screenClass, ExclusionZonesProvider<? extends T> provider);
}
diff --git a/api/src/main/java/me/shedaniel/rei/api/registry/screen/ExclusionZonesProvider.java b/api/src/main/java/me/shedaniel/rei/api/registry/screen/ExclusionZonesProvider.java
new file mode 100644
index 000000000..99f86703f
--- /dev/null
+++ b/api/src/main/java/me/shedaniel/rei/api/registry/screen/ExclusionZonesProvider.java
@@ -0,0 +1,10 @@
+package me.shedaniel.rei.api.registry.screen;
+
+import me.shedaniel.math.Rectangle;
+
+import java.util.Collection;
+
+@FunctionalInterface
+public interface ExclusionZonesProvider<T> {
+ Collection<Rectangle> provide(T screen);
+}
diff --git a/api/src/main/java/me/shedaniel/rei/api/registry/screen/FocusedStackProvider.java b/api/src/main/java/me/shedaniel/rei/api/registry/screen/FocusedStackProvider.java
index 6e0c682fd..2d31a4a4a 100644
--- a/api/src/main/java/me/shedaniel/rei/api/registry/screen/FocusedStackProvider.java
+++ b/api/src/main/java/me/shedaniel/rei/api/registry/screen/FocusedStackProvider.java
@@ -23,6 +23,7 @@
package me.shedaniel.rei.api.registry.screen;
+import me.shedaniel.math.Point;
import me.shedaniel.rei.api.ingredient.EntryStack;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.world.InteractionResultHolder;
@@ -38,7 +39,7 @@ public interface FocusedStackProvider extends Comparable<FocusedStackProvider> {
}
@NotNull
- InteractionResultHolder<EntryStack<?>> provide(Screen screen);
+ InteractionResultHolder<EntryStack<?>> provide(Screen screen, Point mouse);
@Override
default int compareTo(@NotNull FocusedStackProvider o) {
diff --git a/api/src/main/java/me/shedaniel/rei/api/registry/screen/ScreenRegistry.java b/api/src/main/java/me/shedaniel/rei/api/registry/screen/ScreenRegistry.java
index b4d89b033..4484e5050 100644
--- a/api/src/main/java/me/shedaniel/rei/api/registry/screen/ScreenRegistry.java
+++ b/api/src/main/java/me/shedaniel/rei/api/registry/screen/ScreenRegistry.java
@@ -23,6 +23,7 @@
package me.shedaniel.rei.api.registry.screen;
+import me.shedaniel.math.Point;
import me.shedaniel.math.Rectangle;
import me.shedaniel.rei.api.gui.config.DisplayPanelLocation;
import me.shedaniel.rei.api.ingredient.EntryStack;
@@ -55,7 +56,7 @@ public interface ScreenRegistry extends Reloadable {
*
* @return the list of registered overlay deciders
*/
- <R extends Screen> List<OverlayDecider> getDeciders(Class<R> screenClass);
+ <R extends Screen> List<OverlayDecider> getDeciders(R screen);
/**
* Gets all registered overlay deciders
@@ -81,7 +82,7 @@ public interface ScreenRegistry extends Reloadable {
*/
<T extends Screen> Rectangle getOverlayBounds(DisplayPanelLocation location, T screen);
- @Nullable <T extends Screen> EntryStack<?> getFocusedStack(T screen);
+ @Nullable <T extends Screen> EntryStack<?> getFocusedStack(T screen, Point mouse);
ExclusionZones exclusionZones();