aboutsummaryrefslogtreecommitdiff
path: root/RoughlyEnoughItems-api/src/main/java/me/shedaniel/rei/api/ScreenClickAreaProvider.java
diff options
context:
space:
mode:
Diffstat (limited to 'RoughlyEnoughItems-api/src/main/java/me/shedaniel/rei/api/ScreenClickAreaProvider.java')
-rw-r--r--RoughlyEnoughItems-api/src/main/java/me/shedaniel/rei/api/ScreenClickAreaProvider.java12
1 files changed, 12 insertions, 0 deletions
diff --git a/RoughlyEnoughItems-api/src/main/java/me/shedaniel/rei/api/ScreenClickAreaProvider.java b/RoughlyEnoughItems-api/src/main/java/me/shedaniel/rei/api/ScreenClickAreaProvider.java
index 3e57fb5cc..3ced900f3 100644
--- a/RoughlyEnoughItems-api/src/main/java/me/shedaniel/rei/api/ScreenClickAreaProvider.java
+++ b/RoughlyEnoughItems-api/src/main/java/me/shedaniel/rei/api/ScreenClickAreaProvider.java
@@ -25,10 +25,22 @@ package me.shedaniel.rei.api;
import me.shedaniel.math.Rectangle;
import net.minecraft.client.gui.screens.Screen;
+import net.minecraft.resources.ResourceLocation;
import org.jetbrains.annotations.NotNull;
+import java.util.Arrays;
+import java.util.function.Supplier;
+
@FunctionalInterface
public interface ScreenClickAreaProvider<T extends Screen> {
@NotNull
Rectangle provide(@NotNull T screen);
+
+ default ClickAreaHandler<T> toHandler(Supplier<ResourceLocation[]> categories) {
+ return context -> {
+ return provide(context.getScreen()).contains(context.getMousePosition())
+ ? ClickAreaHandler.Result.success().categories(Arrays.asList(categories.get()))
+ : ClickAreaHandler.Result.fail();
+ };
+ }
}