diff options
| author | shedaniel <daniel@shedaniel.me> | 2021-03-20 17:20:54 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2021-03-20 17:20:54 +0800 |
| commit | 0292fa5317106c46a39cd39e9664936f807b6270 (patch) | |
| tree | f92cf071d1361be177af6c966148b8fd1c26613a /api/src/main/java/me | |
| parent | 2cd3f0737b2008e37f8eaadf479312c60d36e7bc (diff) | |
| download | RoughlyEnoughItems-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')
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(); |
