diff options
| author | shedaniel <daniel@shedaniel.me> | 2022-12-09 02:08:47 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2022-12-09 02:08:47 +0800 |
| commit | dc6351d3b4893c316854f7a9fc6f8d95320046ee (patch) | |
| tree | a74dc043393b9f228473766cb7ce126cf080c206 /runtime/src/main/java/me/shedaniel/rei/plugin | |
| parent | 00029913ffe72ee1b6cdff64ffe1fd9e56ac15a1 (diff) | |
| parent | 2caa595aa94d46ddaefc5ecdb79f7ec834f7eae8 (diff) | |
| download | RoughlyEnoughItems-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.java | 3 | ||||
| -rw-r--r-- | runtime/src/main/java/me/shedaniel/rei/plugin/test/REITestPlugin.java | 42 |
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)); } |
