aboutsummaryrefslogtreecommitdiff
path: root/api
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2021-11-14 03:20:23 +0800
committershedaniel <daniel@shedaniel.me>2021-11-14 03:20:23 +0800
commitf04d72b96e5c562d4de7f5f5e5521942de5df49a (patch)
tree2740c71c1b3b641757f0d1627e53546250e08845 /api
parent760f20e8bdf63ee4af47bb408cdac18e6dd7a591 (diff)
downloadRoughlyEnoughItems-f04d72b96e5c562d4de7f5f5e5521942de5df49a.tar.gz
RoughlyEnoughItems-f04d72b96e5c562d4de7f5f5e5521942de5df49a.tar.bz2
RoughlyEnoughItems-f04d72b96e5c562d4de7f5f5e5521942de5df49a.zip
Removed deprecated APIs, 1.18-pre1
Diffstat (limited to 'api')
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/REIRuntime.java10
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/config/ConfigObject.java6
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntry.java9
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntryType.java24
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/gui/drag/DraggableStack.java6
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/gui/drag/DraggableStackVisitor.java36
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/gui/drag/DraggableStackVisitorWidget.java40
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Tooltip.java4
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/view/ViewSearchBuilder.java16
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/common/plugins/REIPlugin.java19
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/common/transfer/info/MenuInfo.java20
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/common/transfer/info/MenuInfoProvider.java41
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/common/transfer/info/MenuInfoRegistry.java11
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/common/transfer/info/MenuSerializationContext.java31
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/common/transfer/info/MenuSerializationProviderContext.java43
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/common/transfer/info/simple/RecipeBookGridMenuInfo.java11
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/common/transfer/info/simple/SimpleMenuInfoProvider.java73
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/common/util/Animator.java106
18 files changed, 138 insertions, 368 deletions
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/REIRuntime.java b/api/src/main/java/me/shedaniel/rei/api/client/REIRuntime.java
index 1af65d4ad..2c3cff511 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/REIRuntime.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/REIRuntime.java
@@ -24,22 +24,18 @@
package me.shedaniel.rei.api.client;
import me.shedaniel.math.Rectangle;
-import me.shedaniel.rei.api.client.config.ConfigObject;
import me.shedaniel.rei.api.client.gui.config.SearchFieldLocation;
import me.shedaniel.rei.api.client.gui.widgets.TextField;
import me.shedaniel.rei.api.client.gui.widgets.Tooltip;
import me.shedaniel.rei.api.client.overlay.ScreenOverlay;
import me.shedaniel.rei.api.client.plugins.REIClientPlugin;
-import me.shedaniel.rei.api.client.registry.screen.ScreenRegistry;
import me.shedaniel.rei.api.common.plugins.PluginManager;
import me.shedaniel.rei.api.common.registry.Reloadable;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
-import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen;
import net.minecraft.resources.ResourceLocation;
-import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Nullable;
import java.util.Optional;
@@ -84,12 +80,6 @@ public interface REIRuntime extends Reloadable<REIClientPlugin> {
SearchFieldLocation getContextualSearchFieldLocation();
- @ApiStatus.ScheduledForRemoval
- @Deprecated
- default Rectangle calculateEntryListArea() {
- return calculateEntryListArea(ScreenRegistry.getInstance().getOverlayBounds(ConfigObject.getInstance().getDisplayPanelLocation(), Minecraft.getInstance().screen));
- }
-
Rectangle calculateEntryListArea(Rectangle bounds);
Rectangle calculateFavoritesListArea();
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/config/ConfigObject.java b/api/src/main/java/me/shedaniel/rei/api/client/config/ConfigObject.java
index 8d35049c2..13ba8edf5 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/config/ConfigObject.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/config/ConfigObject.java
@@ -27,7 +27,6 @@ import me.shedaniel.clothconfig2.api.ModifierKeyCode;
import me.shedaniel.rei.api.client.config.entry.EntryStackProvider;
import me.shedaniel.rei.api.client.favorites.FavoriteEntry;
import me.shedaniel.rei.api.client.gui.config.*;
-import me.shedaniel.rei.api.common.entry.EntryStack;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import org.jetbrains.annotations.ApiStatus;
@@ -145,10 +144,7 @@ public interface ConfigObject {
@ApiStatus.Experimental
List<FavoriteEntry> getFavoriteEntries();
- @ApiStatus.ScheduledForRemoval
- @Deprecated
- List<EntryStack<?>> getFilteredStacks();
-
+ @ApiStatus.Experimental
List<EntryStackProvider<?>> getFilteredStackProviders();
@ApiStatus.Experimental
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 493f2ddd3..82e3ca72d 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
@@ -34,7 +34,6 @@ 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;
@@ -71,13 +70,7 @@ public abstract class FavoriteEntry implements RegionEntry<FavoriteEntry> {
}
public static FavoriteEntry fromEntryStack(EntryStack<?> stack) {
- return delegateResult(() -> FavoriteEntryType.registry().get(FavoriteEntryType.ENTRY_STACK).fromArgsResult(stack), null);
- }
-
- @ApiStatus.ScheduledForRemoval
- @Deprecated
- public static boolean isEntryInvalid(@Nullable FavoriteEntry entry) {
- return entry == null || entry.isInvalid();
+ return delegateResult(() -> FavoriteEntryType.registry().get(FavoriteEntryType.ENTRY_STACK).fromArgs(stack), null);
}
@Override
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 a317787fc..82e7b961a 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
@@ -24,7 +24,6 @@
package me.shedaniel.rei.api.client.favorites;
import com.mojang.serialization.DataResult;
-import com.mojang.serialization.Lifecycle;
import me.shedaniel.rei.api.client.plugins.REIClientPlugin;
import me.shedaniel.rei.api.common.entry.EntryStack;
import me.shedaniel.rei.api.common.plugins.PluginManager;
@@ -50,25 +49,9 @@ public interface FavoriteEntryType<T extends FavoriteEntry> {
return PluginManager.getClientInstance().get(FavoriteEntryType.Registry.class);
}
- @ApiStatus.ScheduledForRemoval
- @Deprecated
- default T read(CompoundTag object) {
- throw new UnsupportedOperationException("Implementation of FavoriteEntryType must override #read or #readResult");
- }
-
- default DataResult<T> readResult(CompoundTag object) {
- return DataResult.success(read(object), Lifecycle.stable());
- }
+ DataResult<T> read(CompoundTag object);
- @ApiStatus.ScheduledForRemoval
- @Deprecated
- default T fromArgs(Object... args) {
- throw new UnsupportedOperationException("Implementation of FavoriteEntryType must override #fromArgs or #fromArgsResult");
- }
-
- default DataResult<T> fromArgsResult(Object... args) {
- return DataResult.success(fromArgs(args), Lifecycle.stable());
- }
+ DataResult<T> fromArgs(Object... args);
CompoundTag save(T entry, CompoundTag tag);
@@ -76,8 +59,7 @@ public interface FavoriteEntryType<T extends FavoriteEntry> {
interface Registry extends Reloadable<REIClientPlugin> {
void register(ResourceLocation id, FavoriteEntryType<?> type);
- @Nullable
- <A extends FavoriteEntry> FavoriteEntryType<A> get(ResourceLocation id);
+ @Nullable <A extends FavoriteEntry> FavoriteEntryType<A> get(ResourceLocation id);
@Nullable
ResourceLocation getId(FavoriteEntryType<?> type);
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/drag/DraggableStack.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/drag/DraggableStack.java
index b5ccc97f2..d38919ee4 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/gui/drag/DraggableStack.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/drag/DraggableStack.java
@@ -26,19 +26,13 @@ package me.shedaniel.rei.api.client.gui.drag;
import com.mojang.blaze3d.vertex.PoseStack;
import me.shedaniel.math.Rectangle;
import me.shedaniel.rei.api.common.entry.EntryStack;
-import org.jetbrains.annotations.ApiStatus;
public interface DraggableStack {
EntryStack<?> getStack();
void drag();
- @Deprecated
- @ApiStatus.ScheduledForRemoval
- default void release(boolean consumed) {}
-
default void release(DraggedAcceptorResult result) {
- release(result != DraggedAcceptorResult.PASS);
}
default void render(PoseStack matrices, Rectangle bounds, int mouseX, int mouseY, float delta) {
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/drag/DraggableStackVisitor.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/drag/DraggableStackVisitor.java
index d893eccd4..0d0f98fd7 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/gui/drag/DraggableStackVisitor.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/drag/DraggableStackVisitor.java
@@ -27,10 +27,8 @@ import me.shedaniel.math.Rectangle;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.world.phys.shapes.Shapes;
import net.minecraft.world.phys.shapes.VoxelShape;
-import org.jetbrains.annotations.ApiStatus;
import java.util.Objects;
-import java.util.Optional;
import java.util.function.Supplier;
import java.util.stream.Stream;
import java.util.stream.StreamSupport;
@@ -52,10 +50,10 @@ public interface DraggableStackVisitor<T extends Screen> extends Comparable<Drag
}
@Override
- public DraggedAcceptorResult acceptDraggedStackWithResult(DraggingContext<T> context, DraggableStack stack) {
+ public DraggedAcceptorResult acceptDraggedStack(DraggingContext<T> context, DraggableStack stack) {
for (DraggableStackVisitor<T> visitor : visitors.get()) {
if (visitor.isHandingScreen(context.getScreen())) {
- DraggedAcceptorResult result = Objects.requireNonNull(visitor.acceptDraggedStackWithResult(context, stack));
+ DraggedAcceptorResult result = Objects.requireNonNull(visitor.acceptDraggedStack(context, stack));
if (result != DraggedAcceptorResult.PASS) return result;
}
}
@@ -71,32 +69,6 @@ public interface DraggableStackVisitor<T extends Screen> extends Comparable<Drag
};
}
- @Deprecated(forRemoval = true)
- @ApiStatus.ScheduledForRemoval
- default Optional<Acceptor> visitDraggedStack(DraggingContext<T> context, DraggableStack stack) {
- return Optional.empty();
- }
-
- /**
- * Accepts a dragged stack, implementations of this function should check if the {@code context} is within
- * boundaries of the accepting boundaries.
- *
- * @param context the context of the current dragged stack on the overlay
- * @param stack the stack being dragged
- * @return whether the stack is accepted by the visitor
- */
- @ApiStatus.ScheduledForRemoval
- @Deprecated
- default boolean acceptDraggedStack(DraggingContext<T> context, DraggableStack stack) {
- Optional<Acceptor> acceptor = visitDraggedStack(context, stack);
- if (acceptor.isPresent()) {
- acceptor.get().accept(stack);
- return true;
- } else {
- return false;
- }
- }
-
/**
* Accepts a dragged stack, implementations of this function should check if the {@code context} is within
* boundaries of the accepting boundaries.
@@ -105,8 +77,8 @@ public interface DraggableStackVisitor<T extends Screen> extends Comparable<Drag
* @param stack the stack being dragged
* @return the result of the visitor
*/
- default DraggedAcceptorResult acceptDraggedStackWithResult(DraggingContext<T> context, DraggableStack stack) {
- return acceptDraggedStack(context, stack) ? DraggedAcceptorResult.CONSUMED : DraggedAcceptorResult.PASS;
+ default DraggedAcceptorResult acceptDraggedStack(DraggingContext<T> context, DraggableStack stack) {
+ return DraggedAcceptorResult.PASS;
}
/**
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/drag/DraggableStackVisitorWidget.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/drag/DraggableStackVisitorWidget.java
index 4234b2b6b..cbe00cc1a 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/gui/drag/DraggableStackVisitorWidget.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/drag/DraggableStackVisitorWidget.java
@@ -24,9 +24,7 @@
package me.shedaniel.rei.api.client.gui.drag;
import net.minecraft.client.gui.screens.Screen;
-import org.jetbrains.annotations.ApiStatus;
-import java.util.Optional;
import java.util.function.Function;
import java.util.stream.Stream;
import java.util.stream.StreamSupport;
@@ -39,9 +37,9 @@ public interface DraggableStackVisitorWidget {
static DraggableStackVisitorWidget from(Function<DraggingContext<Screen>, Iterable<DraggableStackVisitorWidget>> providers) {
return new DraggableStackVisitorWidget() {
@Override
- public DraggedAcceptorResult acceptDraggedStackWithResult(DraggingContext<Screen> context, DraggableStack stack) {
+ public DraggedAcceptorResult acceptDraggedStack(DraggingContext<Screen> context, DraggableStack stack) {
return StreamSupport.stream(providers.apply(context).spliterator(), false)
- .map(visitor -> visitor.acceptDraggedStackWithResult(context, stack))
+ .map(visitor -> visitor.acceptDraggedStack(context, stack))
.filter(result -> result != DraggedAcceptorResult.PASS)
.findFirst()
.orElse(DraggedAcceptorResult.PASS);
@@ -55,32 +53,6 @@ public interface DraggableStackVisitorWidget {
};
}
- @ApiStatus.ScheduledForRemoval
- @Deprecated(forRemoval = true)
- default Optional<DraggableStackVisitor.Acceptor> visitDraggedStack(DraggingContext<Screen> context, DraggableStack stack) {
- return Optional.empty();
- }
-
- /**
- * Accepts a dragged stack, implementations of this function should check if the {@code context} is within
- * boundaries of the widget.
- *
- * @param context the context of the current dragged stack on the overlay
- * @param stack the stack being dragged
- * @return whether the stack is accepted by the widget
- */
- @ApiStatus.ScheduledForRemoval
- @Deprecated
- default boolean acceptDraggedStack(DraggingContext<Screen> context, DraggableStack stack) {
- Optional<DraggableStackVisitor.Acceptor> acceptor = visitDraggedStack(context, stack);
- if (acceptor.isPresent()) {
- acceptor.get().accept(stack);
- return true;
- } else {
- return false;
- }
- }
-
/**
* Accepts a dragged stack, implementations of this function should check if the {@code context} is within
* boundaries of the widget.
@@ -89,8 +61,8 @@ public interface DraggableStackVisitorWidget {
* @param stack the stack being dragged
* @return the result of the visitor
*/
- default DraggedAcceptorResult acceptDraggedStackWithResult(DraggingContext<Screen> context, DraggableStack stack) {
- return acceptDraggedStack(context, stack) ? DraggedAcceptorResult.CONSUMED : DraggedAcceptorResult.PASS;
+ default DraggedAcceptorResult acceptDraggedStack(DraggingContext<Screen> context, DraggableStack stack) {
+ return DraggedAcceptorResult.PASS;
}
/**
@@ -112,8 +84,8 @@ public interface DraggableStackVisitorWidget {
static DraggableStackVisitor<Screen> toVisitor(DraggableStackVisitorWidget widget, double priority) {
return new DraggableStackVisitor<>() {
@Override
- public DraggedAcceptorResult acceptDraggedStackWithResult(DraggingContext<Screen> context, DraggableStack stack) {
- return widget.acceptDraggedStackWithResult(context, stack);
+ public DraggedAcceptorResult acceptDraggedStack(DraggingContext<Screen> context, DraggableStack stack) {
+ return widget.acceptDraggedStack(context, stack);
}
@Override
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Tooltip.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Tooltip.java
index 919644e09..370caa671 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Tooltip.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Tooltip.java
@@ -87,10 +87,6 @@ public interface Tooltip {
int getY();
- @Deprecated
- @ApiStatus.ScheduledForRemoval
- List<Component> getText();
-
List<Entry> entries();
List<TooltipComponent> components();
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/view/ViewSearchBuilder.java b/api/src/main/java/me/shedaniel/rei/api/client/view/ViewSearchBuilder.java
index 9b8a7582c..2157d54e3 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/view/ViewSearchBuilder.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/view/ViewSearchBuilder.java
@@ -27,7 +27,6 @@ import me.shedaniel.rei.api.client.ClientHelper;
import me.shedaniel.rei.api.client.registry.category.CategoryRegistry;
import me.shedaniel.rei.api.client.registry.display.DisplayCategory;
import me.shedaniel.rei.api.common.category.CategoryIdentifier;
-import me.shedaniel.rei.api.common.display.Display;
import me.shedaniel.rei.api.common.entry.EntryStack;
import me.shedaniel.rei.api.common.util.CollectionUtils;
import me.shedaniel.rei.impl.ClientInternals;
@@ -35,7 +34,10 @@ import me.shedaniel.rei.impl.display.DisplaySpec;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Nullable;
-import java.util.*;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
public interface ViewSearchBuilder {
static ViewSearchBuilder builder() {
@@ -65,16 +67,6 @@ public interface ViewSearchBuilder {
@Nullable
CategoryIdentifier<?> getPreferredOpenedCategory();
- @Deprecated
- @ApiStatus.ScheduledForRemoval
- default Map<DisplayCategory<?>, List<Display>> buildMap() {
- Map<DisplayCategory<?>, List<Display>> map = new HashMap<>();
- for (Map.Entry<DisplayCategory<?>, List<DisplaySpec>> entry : buildMapInternal().entrySet()) {
- map.put(entry.getKey(), CollectionUtils.map(entry.getValue(), DisplaySpec::provideInternalDisplay));
- }
- return map;
- }
-
@ApiStatus.Internal
Map<DisplayCategory<?>, List<DisplaySpec>> buildMapInternal();
diff --git a/api/src/main/java/me/shedaniel/rei/api/common/plugins/REIPlugin.java b/api/src/main/java/me/shedaniel/rei/api/common/plugins/REIPlugin.java
index ef4444661..108b293ac 100644
--- a/api/src/main/java/me/shedaniel/rei/api/common/plugins/REIPlugin.java
+++ b/api/src/main/java/me/shedaniel/rei/api/common/plugins/REIPlugin.java
@@ -35,7 +35,6 @@ import org.jetbrains.annotations.ApiStatus;
import java.util.Collection;
import java.util.Collections;
-import java.util.Objects;
/**
* Base interface for a REI plugin.
@@ -99,29 +98,11 @@ public interface REIPlugin<P extends REIPlugin<?>> extends Comparable<REIPlugin<
}
@ApiStatus.OverrideOnly
- @Deprecated
- @ApiStatus.ScheduledForRemoval
- default void preRegister() {
- }
-
- @ApiStatus.OverrideOnly
default void preStage(PluginManager<P> manager, ReloadStage stage) {
- if (stage == ReloadStage.START && Objects.equals(manager, PluginManager.getInstance())) {
- preRegister();
- }
- }
-
- @ApiStatus.OverrideOnly
- @Deprecated
- @ApiStatus.ScheduledForRemoval
- default void postRegister() {
}
@ApiStatus.OverrideOnly
default void postStage(PluginManager<P> manager, ReloadStage stage) {
- if (stage == ReloadStage.END && (this instanceof REIServerPlugin ? Objects.equals(manager, PluginManager.getServerInstance()) : !Objects.equals(manager, PluginManager.getInstance()))) {
- preRegister();
- }
}
@Override
diff --git a/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/MenuInfo.java b/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/MenuInfo.java
index b5ed1de67..cde2c2231 100644
--- a/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/MenuInfo.java
+++ b/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/MenuInfo.java
@@ -23,7 +23,6 @@
package me.shedaniel.rei.api.common.transfer.info;
-import me.shedaniel.rei.api.common.category.CategoryIdentifier;
import me.shedaniel.rei.api.common.display.Display;
import me.shedaniel.rei.api.common.display.DisplaySerializerRegistry;
import me.shedaniel.rei.api.common.entry.EntryStack;
@@ -43,7 +42,6 @@ import net.minecraft.world.item.ItemStack;
import java.util.Collections;
import java.util.List;
-import java.util.Optional;
/**
* Provider of information for {@link AbstractContainerMenu}, for the default REI {@link me.shedaniel.rei.api.client.registry.transfer.TransferHandler}.
@@ -55,12 +53,7 @@ import java.util.Optional;
* @see me.shedaniel.rei.api.common.transfer.info.simple.SimplePlayerInventoryMenuInfo
* @see me.shedaniel.rei.api.common.transfer.info.simple.SimpleGridMenuInfo
*/
-public interface MenuInfo<T extends AbstractContainerMenu, D extends Display> extends MenuInfoProvider<T, D> {
- @Override
- default Optional<MenuInfo<T, D>> provide(CategoryIdentifier<D> categoryId, Class<T> menuClass) {
- return Optional.of(this);
- }
-
+public interface MenuInfo<T extends AbstractContainerMenu, D extends Display> {
/**
* Returns a {@link RecipeFinderPopulator}, used to populate a {@link RecipeFinder} with
* available ingredients.
@@ -136,18 +129,13 @@ public interface MenuInfo<T extends AbstractContainerMenu, D extends Display> ex
* @return the {@link CompoundTag} serialized
*/
default CompoundTag save(MenuSerializationContext<T, ?, D> context, D display) {
- // TODO Remove this, replace with getDisplay()
return DisplaySerializerRegistry.getInstance().save(display, new CompoundTag());
}
/**
- * Deserializes the {@link Display} from {@link CompoundTag}, sent from the client for further info of the transfer.
+ * Returns the {@link Display} for this menu info.
*
- * @param context the context of the transfer
- * @param tag the nbt tag to deserialize from
- * @return the {@link Display} deserialized
+ * @return the {@link Display}
*/
- default D read(MenuSerializationContext<T, ?, D> context, CompoundTag tag) {
- return DisplaySerializerRegistry.getInstance().read(context.getCategoryIdentifier(), tag);
- }
+ D getDisplay();
}
diff --git a/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/MenuInfoProvider.java b/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/MenuInfoProvider.java
index 904c59dd4..2d25603fd 100644
--- a/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/MenuInfoProvider.java
+++ b/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/MenuInfoProvider.java
@@ -25,12 +25,11 @@ package me.shedaniel.rei.api.common.transfer.info;
import me.shedaniel.rei.api.common.category.CategoryIdentifier;
import me.shedaniel.rei.api.common.display.Display;
+import me.shedaniel.rei.api.common.transfer.info.simple.SimpleMenuInfoProvider;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.nbt.CompoundTag;
-import net.minecraft.world.entity.player.Player;
import net.minecraft.world.inventory.AbstractContainerMenu;
-import org.jetbrains.annotations.ApiStatus;
import java.util.Optional;
@@ -39,43 +38,11 @@ import java.util.Optional;
*
* @param <T> the type of the menu
* @param <D> the type of display
+ * @see SimpleMenuInfoProvider
*/
-@FunctionalInterface
public interface MenuInfoProvider<T extends AbstractContainerMenu, D extends Display> {
@Environment(EnvType.CLIENT)
- default Optional<MenuInfo<T, D>> provideClient(D display, T menu) {
- return provide((CategoryIdentifier<D>) display.getCategoryIdentifier(), (Class<T>) menu.getClass());
- }
+ Optional<MenuInfo<T, D>> provideClient(D display, MenuSerializationContext<T, ?, D> context, T menu);
- default Optional<MenuInfo<T, D>> provide(CategoryIdentifier<D> display, T menu, MenuSerializationProviderContext<T, ?, D> context, CompoundTag networkTag) {
- Optional<MenuInfo<T, D>> menuInfo = provide(display, (Class<T>) menu.getClass());
- if (menuInfo.isPresent()) {
- menuInfo.get().read(new MenuSerializationContext<T, Player, D>() {
- @Override
- public MenuInfo<T, D> getContainerInfo() {
- return menuInfo.get();
- }
-
- @Override
- public T getMenu() {
- return context.getMenu();
- }
-
- @Override
- public Player getPlayerEntity() {
- return context.getPlayerEntity();
- }
-
- @Override
- public CategoryIdentifier<D> getCategoryIdentifier() {
- return context.getCategoryIdentifier();
- }
- }, networkTag);
- }
- return menuInfo;
- }
-
- @Deprecated
- @ApiStatus.ScheduledForRemoval
- Optional<MenuInfo<T, D>> provide(CategoryIdentifier<D> categoryId, Class<T> menuClass);
+ Optional<MenuInfo<T, D>> provide(CategoryIdentifier<D> category, T menu, MenuSerializationContext<T, ?, D> context, CompoundTag networkTag);
}
diff --git a/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/MenuInfoRegistry.java b/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/MenuInfoRegistry.java
index fdb83fb30..31b79e8c2 100644
--- a/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/MenuInfoRegistry.java
+++ b/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/MenuInfoRegistry.java
@@ -32,7 +32,6 @@ import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.world.inventory.AbstractContainerMenu;
-import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Nullable;
import java.util.function.Predicate;
@@ -50,16 +49,10 @@ public interface MenuInfoRegistry extends Reloadable<REIServerPlugin> {
<D extends Display> void registerGeneric(Predicate<CategoryIdentifier<?>> categoryPredicate, MenuInfoProvider<?, D> menuInfo);
@Nullable
- @ApiStatus.ScheduledForRemoval
- @Deprecated
- <C extends AbstractContainerMenu, D extends Display> MenuInfo<C, D> get(CategoryIdentifier<D> category, Class<C> menuClass);
-
- @Nullable
@Environment(EnvType.CLIENT)
- <C extends AbstractContainerMenu, D extends Display> MenuInfo<C, D> getClient(D display, C menu);
+ <C extends AbstractContainerMenu, D extends Display> MenuInfo<C, D> getClient(D display, MenuSerializationContext<C, ?, D> context, C menu);
- @Nullable
- <C extends AbstractContainerMenu, D extends Display> MenuInfo<C, D> get(CategoryIdentifier<D> category, C menu, MenuSerializationProviderContext<C, ?, D> context, CompoundTag tag);
+ @Nullable <C extends AbstractContainerMenu, D extends Display> MenuInfo<C, D> get(CategoryIdentifier<D> category, C menu, MenuSerializationContext<C, ?, D> context, CompoundTag tag);
int infoSize();
}
diff --git a/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/MenuSerializationContext.java b/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/MenuSerializationContext.java
index b3ed73d5f..ba7b77edf 100644
--- a/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/MenuSerializationContext.java
+++ b/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/MenuSerializationContext.java
@@ -34,15 +34,34 @@ import net.minecraft.world.inventory.AbstractContainerMenu;
* @param <T> the type of {@link AbstractContainerMenu}
* @param <P> the type of {@link Player}, server sided contexts may pass {@link net.minecraft.server.level.ServerPlayer} instead
*/
-public interface MenuSerializationContext<T extends AbstractContainerMenu, P extends Player, D extends Display> extends MenuSerializationProviderContext<T, P, D> {
- @Override
+public interface MenuSerializationContext<T extends AbstractContainerMenu, P extends Player, D extends Display> {
T getMenu();
- @Override
P getPlayerEntity();
- MenuInfo<T, D> getContainerInfo();
-
- @Override
CategoryIdentifier<D> getCategoryIdentifier();
+
+ default MenuInfoContext<T, P, D> withDisplay(D display) {
+ return new MenuInfoContext<T, P, D>() {
+ @Override
+ public D getDispl