aboutsummaryrefslogtreecommitdiff
path: root/runtime/src/main/java/me/shedaniel/rei/plugin
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/src/main/java/me/shedaniel/rei/plugin')
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientRuntimePlugin.java15
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java4
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/plugin/test/REITestPlugin.java4
3 files changed, 18 insertions, 5 deletions
diff --git a/runtime/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientRuntimePlugin.java b/runtime/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientRuntimePlugin.java
index 3b547fe2f..719f7c775 100644
--- a/runtime/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientRuntimePlugin.java
+++ b/runtime/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientRuntimePlugin.java
@@ -27,13 +27,18 @@ import com.mojang.blaze3d.vertex.PoseStack;
import me.shedaniel.architectury.fluid.FluidStack;
import me.shedaniel.math.Point;
import me.shedaniel.math.Rectangle;
+import me.shedaniel.rei.RoughlyEnoughItemsCore;
import me.shedaniel.rei.api.client.ClientHelper;
+import me.shedaniel.rei.api.client.REIHelper;
import me.shedaniel.rei.api.client.favorites.FavoriteEntry;
import me.shedaniel.rei.api.client.favorites.FavoriteEntryType;
import me.shedaniel.rei.api.client.gui.AbstractRenderer;
import me.shedaniel.rei.api.client.gui.Renderer;
+import me.shedaniel.rei.api.client.gui.drag.DraggableStackProviderWidget;
+import me.shedaniel.rei.api.client.gui.drag.DraggableStackVisitorWidget;
import me.shedaniel.rei.api.client.gui.widgets.Panel;
import me.shedaniel.rei.api.client.gui.widgets.Tooltip;
+import me.shedaniel.rei.api.client.gui.widgets.Widgets;
import me.shedaniel.rei.api.client.plugins.REIClientPlugin;
import me.shedaniel.rei.api.client.registry.entry.EntryRegistry;
import me.shedaniel.rei.api.client.registry.screen.DisplayBoundsProvider;
@@ -95,7 +100,7 @@ public class DefaultClientRuntimePlugin implements REIClientPlugin {
@Override
public void registerEntries(EntryRegistry registry) {
if (ClientHelperImpl.getInstance().isAprilFools.get()) {
- registry.registerEntry(ClientEntryStacks.of(new AbstractRenderer() {
+ registry.addEntry(ClientEntryStacks.of(new AbstractRenderer() {
private ResourceLocation id = new ResourceLocation("roughlyenoughitems", "textures/gui/kirb.png");
@Override
@@ -147,6 +152,14 @@ public class DefaultClientRuntimePlugin implements REIClientPlugin {
return InteractionResult.SUCCESS;
}
});
+ registry.registerDraggableStackProvider(DraggableStackProviderWidget.from(context -> {
+ if (RoughlyEnoughItemsCore.shouldReturn(context.getScreen()) || !REIHelper.getInstance().isOverlayVisible()) return Collections.emptyList();
+ return Widgets.walk(REIHelper.getInstance().getOverlay().get().children(), DraggableStackProviderWidget.class::isInstance);
+ }));
+ registry.registerDraggableStackVisitor(DraggableStackVisitorWidget.from(context -> {
+ if (RoughlyEnoughItemsCore.shouldReturn(context.getScreen()) || !REIHelper.getInstance().isOverlayVisible()) return Collections.emptyList();
+ return Widgets.walk(REIHelper.getInstance().getOverlay().get().children(), DraggableStackVisitorWidget.class::isInstance);
+ }));
}
@Override
diff --git a/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java b/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java
index 292ca0fb8..453df00c3 100644
--- a/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java
+++ b/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java
@@ -111,7 +111,7 @@ public class ItemEntryDefinition implements EntryDefinition<ItemStack>, EntrySer
public long hash(EntryStack<ItemStack> entry, ItemStack value, ComparisonContext context) {
int code = 1;
code = 31 * code + System.identityHashCode(value.getItem());
- code = 31 * code + (context.isFuzzy() ? 0 : Long.hashCode(ItemComparatorRegistry.getInstance().hashOf(value)));
+ code = 31 * code + Long.hashCode(ItemComparatorRegistry.getInstance().hashOf(context, value));
return code;
}
@@ -119,7 +119,7 @@ public class ItemEntryDefinition implements EntryDefinition<ItemStack>, EntrySer
public boolean equals(ItemStack o1, ItemStack o2, ComparisonContext context) {
if (o1.getItem() != o2.getItem())
return false;
- return context.isFuzzy() || ItemComparatorRegistry.getInstance().hashOf(o1) == ItemComparatorRegistry.getInstance().hashOf(o2);
+ return ItemComparatorRegistry.getInstance().hashOf(context, o1) == ItemComparatorRegistry.getInstance().hashOf(context, o2);
}
@Override
diff --git a/runtime/src/main/java/me/shedaniel/rei/plugin/test/REITestPlugin.java b/runtime/src/main/java/me/shedaniel/rei/plugin/test/REITestPlugin.java
index 67d0c7cb5..f0f1dae76 100644
--- a/runtime/src/main/java/me/shedaniel/rei/plugin/test/REITestPlugin.java
+++ b/runtime/src/main/java/me/shedaniel/rei/plugin/test/REITestPlugin.java
@@ -56,10 +56,10 @@ public class REITestPlugin implements REIClientPlugin {
int times = 1000;
for (Item item : Registry.ITEM) {
EntryStack<ItemStack> base = EntryStacks.of(item);
- registry.registerEntriesAfter(base, IntStream.range(0, times).mapToObj(value -> transformStack(EntryStacks.of(item))).collect(Collectors.toList()));
+ registry.addEntriesAfter(base, IntStream.range(0, times).mapToObj(value -> transformStack(EntryStacks.of(item))).collect(Collectors.toList()));
try {
for (ItemStack stack : registry.appendStacksForItem(item)) {
- registry.registerEntries(IntStream.range(0, times).mapToObj(value -> transformStack(EntryStacks.of(stack))).collect(Collectors.toList()));
+ registry.addEntries(IntStream.range(0, times).mapToObj(value -> transformStack(EntryStacks.of(stack))).collect(Collectors.toList()));
}
} catch (Exception ignored) {
}