diff options
| author | shedaniel <daniel@shedaniel.me> | 2021-03-28 20:35:46 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2021-03-28 20:35:46 +0800 |
| commit | ebf2bb9dfa1f0e1abca845d7283e6e74ad8b00cd (patch) | |
| tree | cc2e4c4d101aaaf5dcbc9dd5cebb9d7f7b3a7982 /runtime/src/main/java/me/shedaniel/rei/plugin | |
| parent | 9d835c7823978e04007414cfe3ebf128e23a6494 (diff) | |
| download | RoughlyEnoughItems-ebf2bb9dfa1f0e1abca845d7283e6e74ad8b00cd.tar.gz RoughlyEnoughItems-ebf2bb9dfa1f0e1abca845d7283e6e74ad8b00cd.tar.bz2 RoughlyEnoughItems-ebf2bb9dfa1f0e1abca845d7283e6e74ad8b00cd.zip | |
Optimise > 1 million entries & Improve Favorites Dragging
Signed-off-by: shedaniel <daniel@shedaniel.me>
Diffstat (limited to 'runtime/src/main/java/me/shedaniel/rei/plugin')
| -rw-r--r-- | runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java | 2 | ||||
| -rw-r--r-- | runtime/src/main/java/me/shedaniel/rei/plugin/test/REITestPlugin.java | 18 |
2 files changed, 13 insertions, 7 deletions
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 b1c854e4e..8f995af67 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 @@ -224,7 +224,7 @@ public class ItemEntryDefinition implements EntryDefinition<ItemStack>, EntrySer } @Override - public void renderOverlay(EntryStack<ItemStack> entry, PoseStack matrices, Rectangle bounds, int mouseX, int mouseY, float delta) { + public void renderOverlay(EntryStack<ItemStack> entry, PoseStack matrices, MultiBufferSource.BufferSource immediate, Rectangle bounds, int mouseX, int mouseY, float delta) { if (!entry.isEmpty()) { Minecraft.getInstance().getItemRenderer().blitOffset = entry.getZ(); Minecraft.getInstance().getItemRenderer().renderGuiItemDecorations(Minecraft.getInstance().font, entry.getValue(), bounds.x, bounds.y, null); 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 f2f3a9ec8..67d0c7cb5 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 @@ -26,6 +26,7 @@ package me.shedaniel.rei.plugin.test; import me.shedaniel.rei.api.client.plugins.REIClientPlugin; import me.shedaniel.rei.api.client.registry.entry.EntryRegistry; import me.shedaniel.rei.api.common.entry.EntryStack; +import me.shedaniel.rei.api.common.entry.comparison.ItemComparatorRegistry; import me.shedaniel.rei.api.common.util.EntryStacks; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; @@ -37,6 +38,8 @@ import org.apache.logging.log4j.LogManager; import org.jetbrains.annotations.TestOnly; import java.util.Random; +import java.util.stream.Collectors; +import java.util.stream.IntStream; @TestOnly @Environment(EnvType.CLIENT) @@ -50,24 +53,27 @@ public class REITestPlugin implements REIClientPlugin { @Override public void registerEntries(EntryRegistry registry) { - int times = 10; + int times = 1000; for (Item item : Registry.ITEM) { - for (int i = 0; i < times; i++) - registry.registerEntryAfter(EntryStacks.of(item), transformStack(EntryStacks.of(item))); + EntryStack<ItemStack> base = EntryStacks.of(item); + registry.registerEntriesAfter(base, IntStream.range(0, times).mapToObj(value -> transformStack(EntryStacks.of(item))).collect(Collectors.toList())); try { for (ItemStack stack : registry.appendStacksForItem(item)) { - for (int i = 0; i < times; i++) - registry.registerEntry(transformStack(EntryStacks.of(stack))); + registry.registerEntries(IntStream.range(0, times).mapToObj(value -> transformStack(EntryStacks.of(stack))).collect(Collectors.toList())); } } catch (Exception ignored) { } } } + @Override + public void registerItemComparators(ItemComparatorRegistry registry) { + registry.registerNbt(Registry.ITEM.stream().toArray(Item[]::new)); + } + public EntryStack<ItemStack> transformStack(EntryStack<ItemStack> stack) { CompoundTag tag = stack.getValue().getOrCreateTag(); tag.putInt("Whatever", random.nextInt(Integer.MAX_VALUE)); return stack; } - } |
