aboutsummaryrefslogtreecommitdiff
path: root/runtime/src/main/java/me/shedaniel/rei/plugin
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2022-12-09 02:08:47 +0800
committershedaniel <daniel@shedaniel.me>2022-12-09 02:08:47 +0800
commitdc6351d3b4893c316854f7a9fc6f8d95320046ee (patch)
treea74dc043393b9f228473766cb7ce126cf080c206 /runtime/src/main/java/me/shedaniel/rei/plugin
parent00029913ffe72ee1b6cdff64ffe1fd9e56ac15a1 (diff)
parent2caa595aa94d46ddaefc5ecdb79f7ec834f7eae8 (diff)
downloadRoughlyEnoughItems-dc6351d3b4893c316854f7a9fc6f8d95320046ee.tar.gz
RoughlyEnoughItems-dc6351d3b4893c316854f7a9fc6f8d95320046ee.tar.bz2
RoughlyEnoughItems-dc6351d3b4893c316854f7a9fc6f8d95320046ee.zip
Merge remote-tracking branch 'origin/9.x-1.19' into feature/1.19.3
# Conflicts: # runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringRulesScreen.java
Diffstat (limited to 'runtime/src/main/java/me/shedaniel/rei/plugin')
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/plugin/client/runtime/DefaultClientRuntimePlugin.java3
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/plugin/test/REITestPlugin.java42
2 files changed, 43 insertions, 2 deletions
diff --git a/runtime/src/main/java/me/shedaniel/rei/plugin/client/runtime/DefaultClientRuntimePlugin.java b/runtime/src/main/java/me/shedaniel/rei/plugin/client/runtime/DefaultClientRuntimePlugin.java
index 95e77b334..4e0c6cbee 100644
--- a/runtime/src/main/java/me/shedaniel/rei/plugin/client/runtime/DefaultClientRuntimePlugin.java
+++ b/runtime/src/main/java/me/shedaniel/rei/plugin/client/runtime/DefaultClientRuntimePlugin.java
@@ -67,6 +67,7 @@ import me.shedaniel.rei.impl.client.search.method.unihan.PinyinInputMethod;
import me.shedaniel.rei.impl.client.search.method.unihan.UniHanManager;
import me.shedaniel.rei.impl.common.entry.type.EntryRegistryImpl;
import me.shedaniel.rei.impl.common.entry.type.EntryRegistryListener;
+import me.shedaniel.rei.impl.common.util.HashedEntryStackWrapper;
import me.shedaniel.rei.plugin.autocrafting.DefaultCategoryHandler;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
@@ -120,7 +121,7 @@ public class DefaultClientRuntimePlugin implements REIClientPlugin {
((EntryRegistryImpl) registry).listeners.add(new EntryRegistryListener() {
@Override
- public void onReFilter(List<EntryStack<?>> stacks) {
+ public void onReFilter(List<HashedEntryStackWrapper> stacks) {
filteredStacksVisibilityHandler.reset();
}
});
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 ff8521cd1..73080a7ec 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
@@ -24,11 +24,15 @@
package me.shedaniel.rei.plugin.test;
import com.google.common.collect.ImmutableList;
+import dev.architectury.event.events.common.CommandRegistrationEvent;
+import me.shedaniel.rei.api.client.entry.filtering.FilteringRuleTypeRegistry;
+import me.shedaniel.rei.api.client.entry.filtering.base.BasicFilteringRule;
import me.shedaniel.rei.api.client.favorites.FavoriteEntry;
import me.shedaniel.rei.api.client.favorites.FavoriteEntryType;
import me.shedaniel.rei.api.client.plugins.REIClientPlugin;
import me.shedaniel.rei.api.client.registry.entry.CollapsibleEntryRegistry;
import me.shedaniel.rei.api.client.registry.entry.EntryRegistry;
+import me.shedaniel.rei.api.common.entry.EntryIngredient;
import me.shedaniel.rei.api.common.entry.EntryStack;
import me.shedaniel.rei.api.common.entry.comparison.ItemComparatorRegistry;
import me.shedaniel.rei.api.common.entry.type.VanillaEntryTypes;
@@ -39,7 +43,12 @@ import me.shedaniel.rei.impl.common.InternalLogger;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.Minecraft;
+import net.minecraft.commands.CommandBuildContext;
+import net.minecraft.commands.Commands;
+import net.minecraft.commands.arguments.item.ItemArgument;
+import net.minecraft.commands.arguments.item.ItemInput;
import net.minecraft.core.Registry;
+import net.minecraft.core.RegistryAccess;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component;
import net.minecraft.world.item.Item;
@@ -55,7 +64,24 @@ import java.util.stream.IntStream;
@TestOnly
@Environment(EnvType.CLIENT)
public class REITestPlugin implements REIClientPlugin {
- private Random random = new Random();
+ private final Random random = new Random();
+ private BasicFilteringRule.MarkDirty markDirty;
+
+ public REITestPlugin() {
+ CommandRegistrationEvent.EVENT.register((dispatcher, selection) -> {
+ dispatcher.register(Commands.literal("rei_test_reload_filtering")
+ .then(Commands.argument("item", ItemArgument.item(new CommandBuildContext(RegistryAccess.fromRegistryOfRegistries(Registry.REGISTRY))))
+ .executes(context -> {
+ BasicFilteringRule<?> basic = FilteringRuleTypeRegistry.getInstance().basic();
+ basic.hide(EntryStacks.of(context.getArgument("item", ItemInput.class).createItemStack(1, false)));
+ return 0;
+ }))
+ .executes(context -> {
+ if (this.markDirty != null) this.markDirty.markDirty();
+ return 0;
+ }));
+ });
+ }
@Override
public void preStage(PluginManager<REIClientPlugin> manager, ReloadStage stage) {
@@ -64,6 +90,7 @@ public class REITestPlugin implements REIClientPlugin {
@Override
public void registerEntries(EntryRegistry registry) {
+ if (1 + 1 == 2) return;
int times = 10;
for (Item item : Registry.ITEM) {
EntryStack<ItemStack> base = EntryStacks.of(item);
@@ -89,6 +116,19 @@ public class REITestPlugin implements REIClientPlugin {
}
@Override
+ public void registerBasicEntryFiltering(BasicFilteringRule<?> rule) {
+ markDirty = rule.hide(() -> {
+ EntryIngredient.Builder builder = EntryIngredient.builder();
+ for (Item item : Registry.ITEM) {
+ if (random.nextInt() % 10 == 0) {
+ builder.add(EntryStacks.of(item));
+ }
+ }
+ return builder.build();
+ });
+ }
+
+ @Override
public void registerItemComparators(ItemComparatorRegistry registry) {
registry.registerNbt(Registry.ITEM.stream().toArray(Item[]::new));
}