aboutsummaryrefslogtreecommitdiff
path: root/api/src/main/java
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2023-02-19 02:05:30 +0800
committershedaniel <daniel@shedaniel.me>2024-04-16 00:38:18 +0900
commitab7a2bb72b9ee9591049d4ec3c8815d57986bd2c (patch)
treea8c0c0fb76ac58537f5d4bafdc55a416f3a31b43 /api/src/main/java
parenteb2b1d1ecc00ba435e97b5d89879ebe379fd7390 (diff)
downloadRoughlyEnoughItems-ab7a2bb72b9ee9591049d4ec3c8815d57986bd2c.tar.gz
RoughlyEnoughItems-ab7a2bb72b9ee9591049d4ec3c8815d57986bd2c.tar.bz2
RoughlyEnoughItems-ab7a2bb72b9ee9591049d4ec3c8815d57986bd2c.zip
Mini Displays Favorites
Diffstat (limited to 'api/src/main/java')
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/entry/region/RegionEntry.java10
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntry.java7
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntryType.java6
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/common/entry/settings/EntryIngredientSetting.java2
4 files changed, 24 insertions, 1 deletions
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/entry/region/RegionEntry.java b/api/src/main/java/me/shedaniel/rei/api/client/entry/region/RegionEntry.java
index cf88e5263..d6ed83471 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/entry/region/RegionEntry.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/entry/region/RegionEntry.java
@@ -25,7 +25,11 @@ package me.shedaniel.rei.api.client.entry.region;
import me.shedaniel.rei.api.client.favorites.FavoriteEntry;
import me.shedaniel.rei.api.client.favorites.FavoriteMenuEntry;
+import me.shedaniel.rei.api.client.gui.drag.component.DraggableComponent;
+import me.shedaniel.rei.api.client.gui.widgets.Slot;
import me.shedaniel.rei.api.common.entry.EntryStack;
+import org.jetbrains.annotations.ApiStatus;
+import org.jetbrains.annotations.Nullable;
import java.util.Collection;
import java.util.Optional;
@@ -55,4 +59,10 @@ public interface RegionEntry<T extends RegionEntry<T>> {
default boolean doAction(int button) {
return false;
}
+
+ @Nullable
+ @ApiStatus.Experimental
+ default DraggableComponent<?> asDraggableComponent(Slot slot) {
+ return null;
+ }
}
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntry.java b/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntry.java
index 2c5293ba5..42a884d0d 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntry.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntry.java
@@ -28,12 +28,14 @@ import com.mojang.serialization.Lifecycle;
import me.shedaniel.rei.api.client.entry.region.RegionEntry;
import me.shedaniel.rei.api.client.gui.Renderer;
import me.shedaniel.rei.api.client.util.ClientEntryStacks;
+import me.shedaniel.rei.api.common.display.Display;
import me.shedaniel.rei.api.common.entry.EntryStack;
import me.shedaniel.rei.impl.ClientInternals;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.resources.ResourceLocation;
+import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Nullable;
import java.util.Collection;
@@ -73,6 +75,11 @@ public abstract class FavoriteEntry implements RegionEntry<FavoriteEntry> {
return delegateResult(() -> FavoriteEntryType.registry().get(FavoriteEntryType.ENTRY_STACK).fromArgs(stack), null);
}
+ @ApiStatus.Experimental
+ public static FavoriteEntry fromDisplay(Display display) {
+ return delegateResult(() -> FavoriteEntryType.registry().get(FavoriteEntryType.DISPLAY).fromArgs(display), null);
+ }
+
@Override
public boolean isEntryInvalid() {
return isInvalid();
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntryType.java b/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntryType.java
index 40e1bcf43..62236f22c 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntryType.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntryType.java
@@ -25,6 +25,7 @@ package me.shedaniel.rei.api.client.favorites;
import com.mojang.serialization.DataResult;
import me.shedaniel.rei.api.client.plugins.REIClientPlugin;
+import me.shedaniel.rei.api.common.display.Display;
import me.shedaniel.rei.api.common.entry.EntryStack;
import me.shedaniel.rei.api.common.plugins.PluginManager;
import me.shedaniel.rei.api.common.registry.Reloadable;
@@ -44,6 +45,11 @@ public interface FavoriteEntryType<T extends FavoriteEntry> {
* A builtin type of favorites, wrapping a {@link EntryStack}.
*/
ResourceLocation ENTRY_STACK = new ResourceLocation("roughlyenoughitems", "entry_stack");
+ /**
+ * A builtin type of favorites, wrapping a {@link Display}.
+ */
+ @ApiStatus.Experimental
+ ResourceLocation DISPLAY = new ResourceLocation("roughlyenoughitems", "display");
static Registry registry() {
return PluginManager.getClientInstance().get(FavoriteEntryType.Registry.class);
diff --git a/api/src/main/java/me/shedaniel/rei/api/common/entry/settings/EntryIngredientSetting.java b/api/src/main/java/me/shedaniel/rei/api/common/entry/settings/EntryIngredientSetting.java
index 78f61f446..0a9666ca2 100644
--- a/api/src/main/java/me/shedaniel/rei/api/common/entry/settings/EntryIngredientSetting.java
+++ b/api/src/main/java/me/shedaniel/rei/api/common/entry/settings/EntryIngredientSetting.java
@@ -1,6 +1,6 @@
/*
* This file is licensed under the MIT License, part of Roughly Enough Items.
- * Copyright (c) 2018, 2019, 2020, 2021, 2022 shedaniel
+ * Copyright (c) 2018, 2019, 2020, 2021, 2022, 2023 shedaniel
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal