aboutsummaryrefslogtreecommitdiff
path: root/runtime/src/main/java/me
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2021-04-10 14:28:46 +0800
committershedaniel <daniel@shedaniel.me>2021-04-10 14:28:46 +0800
commit0e96125db3f91890657d1026feb0879bbf761dc7 (patch)
treeaadd503779f7f84981cded924ec5072f3907a526 /runtime/src/main/java/me
parent188066bfd4817c1c160061d61e7a0130e9377e98 (diff)
downloadRoughlyEnoughItems-0e96125db3f91890657d1026feb0879bbf761dc7.tar.gz
RoughlyEnoughItems-0e96125db3f91890657d1026feb0879bbf761dc7.tar.bz2
RoughlyEnoughItems-0e96125db3f91890657d1026feb0879bbf761dc7.zip
BatchEntryRenderer -> BatchedEntryRenderer
Signed-off-by: shedaniel <daniel@shedaniel.me>
Diffstat (limited to 'runtime/src/main/java/me')
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringScreen.java4
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/BatchedEntryRendererManager.java (renamed from runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/BatchEntryRendererManager.java)17
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryListWidget.java4
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/FavoritesListWidget.java2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/search/OverlaySearchFieldSyntaxHighlighter.java4
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/search/IntRange.java38
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/search/argument/Argument.java2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/search/result/ArgumentApplicableResult.java2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/common/entry/AbstractEntryStack.java2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java6
10 files changed, 60 insertions, 21 deletions
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringScreen.java
index 7a6e9f32d..9717f1cf1 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringScreen.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringScreen.java
@@ -46,7 +46,7 @@ import me.shedaniel.rei.api.client.search.SearchFilter;
import me.shedaniel.rei.api.client.search.SearchProvider;
import me.shedaniel.rei.api.common.entry.EntryStack;
import me.shedaniel.rei.impl.client.gui.ContainerScreenOverlay;
-import me.shedaniel.rei.impl.client.gui.widget.BatchEntryRendererManager;
+import me.shedaniel.rei.impl.client.gui.widget.BatchedEntryRendererManager;
import me.shedaniel.rei.impl.client.gui.widget.EntryWidget;
import me.shedaniel.rei.impl.client.gui.widget.search.OverlaySearchField;
import net.minecraft.client.Minecraft;
@@ -222,7 +222,7 @@ public class FilteringScreen extends Screen {
int skip = Math.max(0, Mth.floor(scrolling.scrollAmount / (float) entrySize()));
int nextIndex = skip * innerBounds.width / entrySize();
int i = nextIndex;
- BatchEntryRendererManager manager = new BatchEntryRendererManager();
+ BatchedEntryRendererManager manager = new BatchedEntryRendererManager();
for (; i < entryStacks.size(); i++) {
EntryStack<?> stack = entryStacks.get(i);
EntryListEntry entry = entries.get(nextIndex);
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/BatchEntryRendererManager.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/BatchedEntryRendererManager.java
index 6cafecb90..a410a24a3 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/BatchEntryRendererManager.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/BatchedEntryRendererManager.java
@@ -28,7 +28,7 @@ import com.mojang.blaze3d.vertex.PoseStack;
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
import me.shedaniel.rei.api.client.config.ConfigObject;
-import me.shedaniel.rei.api.client.entry.renderer.BatchEntryRenderer;
+import me.shedaniel.rei.api.client.entry.renderer.BatchedEntryRenderer;
import me.shedaniel.rei.api.client.entry.renderer.EntryRenderer;
import me.shedaniel.rei.api.common.entry.EntryStack;
import net.minecraft.client.Minecraft;
@@ -40,15 +40,15 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
-public class BatchEntryRendererManager {
+public class BatchedEntryRendererManager {
private boolean fastEntryRendering = ConfigObject.getInstance().doesFastEntryRendering();
private Int2ObjectMap<List<EntryWidget>> grouping = new Int2ObjectOpenHashMap<>();
private List<EntryWidget> toRender = new ArrayList<>();
- public BatchEntryRendererManager() {
+ public BatchedEntryRendererManager() {
}
- public BatchEntryRendererManager(Collection<? extends EntryWidget> widgets) {
+ public BatchedEntryRendererManager(Collection<? extends EntryWidget> widgets) {
addAll(widgets);
}
@@ -66,8 +66,8 @@ public class BatchEntryRendererManager {
if (fastEntryRendering) {
EntryStack<?> currentEntry = widget.getCurrentEntry();
EntryRenderer<?> renderer = currentEntry.getRenderer();
- if (renderer instanceof BatchEntryRenderer) {
- int hash = ((BatchEntryRenderer<Object>) renderer).getBatchId(currentEntry.cast());
+ if (renderer instanceof BatchedEntryRenderer) {
+ int hash = ((BatchedEntryRenderer<Object>) renderer).getBatchIdentifier(currentEntry.cast(), widget.getBounds());
List<EntryWidget> entries = grouping.get(hash);
if (entries == null) {
grouping.put(hash, entries = new ArrayList<>());
@@ -101,8 +101,9 @@ public class BatchEntryRendererManager {
@SuppressWarnings("rawtypes")
EntryStack first = firstWidget.getCurrentEntry();
EntryRenderer<?> renderer = first.getRenderer();
- if (fastEntryRendering && renderer instanceof BatchEntryRenderer) {
- BatchEntryRenderer<?> firstRenderer = (BatchEntryRenderer<?>) renderer;
+ if (fastEntryRendering && renderer instanceof BatchedEntryRenderer) {
+ BatchedEntryRenderer<?> firstRenderer = (BatchedEntryRenderer<?>) renderer;
+ matrices = firstRenderer.batchModifyMatrices(matrices);
firstRenderer.startBatch(first, matrices, delta);
long l = debugTime ? System.nanoTime() : 0;
MultiBufferSource.BufferSource immediate = Minecraft.getInstance().renderBuffers().bufferSource();
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryListWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryListWidget.java
index ec57bf1d1..44e0589d9 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryListWidget.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryListWidget.java
@@ -220,7 +220,7 @@ public class EntryListWidget extends WidgetWithBounds {
int skip = Math.max(0, Mth.floor(scrolling.scrollAmount / (float) entrySize()));
int nextIndex = skip * innerBounds.width / entrySize();
this.blockedCount = 0;
- BatchEntryRendererManager helper = new BatchEntryRendererManager();
+ BatchedEntryRendererManager helper = new BatchedEntryRendererManager();
int i = nextIndex;
for (int cont = nextIndex; cont < entries.size(); cont++) {
@@ -253,7 +253,7 @@ public class EntryListWidget extends WidgetWithBounds {
for (Widget widget : renders) {
widget.render(matrices, mouseX, mouseY, delta);
}
- new BatchEntryRendererManager(entries).render(debugTime, size, time, matrices, mouseX, mouseY, delta);
+ new BatchedEntryRendererManager(entries).render(debugTime, size, time, matrices, mouseX, mouseY, delta);
}
if (debugTime) {
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/FavoritesListWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/FavoritesListWidget.java
index 57ccd0b6a..1433c65de 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/FavoritesListWidget.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/FavoritesListWidget.java
@@ -251,7 +251,7 @@ public class FavoritesListWidget extends WidgetWithBounds implements DraggableSt
Stream<EntryListEntry> entryStream = this.entriesList.stream()
.filter(entry -> entry.getBounds().getMaxY() >= this.currentBounds.getY() && entry.getBounds().y <= this.currentBounds.getMaxY());
- new BatchEntryRendererManager(entryStream.collect(Collectors.toList()))
+ new BatchedEntryRendererManager(entryStream.collect(Collectors.toList()))
.render(matrices, mouseX, mouseY, delta);
updatePosition(delta);
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/search/OverlaySearchFieldSyntaxHighlighter.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/search/OverlaySearchFieldSyntaxHighlighter.java
index 42308f678..0af21de72 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/search/OverlaySearchFieldSyntaxHighlighter.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/search/OverlaySearchFieldSyntaxHighlighter.java
@@ -23,9 +23,9 @@
package me.shedaniel.rei.impl.client.gui.widget.search;
+import me.shedaniel.rei.impl.client.search.IntRange;
import me.shedaniel.rei.impl.client.search.argument.Argument;
import me.shedaniel.rei.impl.client.search.argument.type.ArgumentTypesRegistry;
-import net.minecraft.util.IntRange;
import org.jetbrains.annotations.ApiStatus;
import java.util.Collection;
@@ -63,7 +63,7 @@ public class OverlaySearchFieldSyntaxHighlighter implements Consumer<String> {
highlighted[i] = (byte) argIndex;
}
for (IntRange grammarRange : grammarRanges) {
- for (int i = grammarRange.getMinInclusive(); i <= grammarRange.getMaxInclusive(); i++) {
+ for (int i = grammarRange.min(); i <= grammarRange.max(); i++) {
highlighted[i + index] = (byte) (argIndex + 1);
}
}
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/search/IntRange.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/search/IntRange.java
new file mode 100644
index 000000000..05c5e1ca4
--- /dev/null
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/search/IntRange.java
@@ -0,0 +1,38 @@
+package me.shedaniel.rei.impl.client.search;
+
+import java.util.Objects;
+
+public class IntRange {
+ private final int min;
+ private final int max;
+
+ private IntRange(int min, int max) {
+ this.min = min;
+ this.max = max;
+ }
+
+ public static IntRange of(int min, int max) {
+ return new IntRange(min, max);
+ }
+
+ public int min() {
+ return min;
+ }
+
+ public int max() {
+ return max;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ IntRange intRange = (IntRange) o;
+ return min == intRange.min && max == intRange.max;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(min, max);
+ }
+}
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/search/argument/Argument.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/search/argument/Argument.java
index 67520b666..dcabfbdf2 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/search/argument/Argument.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/search/argument/Argument.java
@@ -27,13 +27,13 @@ import com.google.common.base.MoreObjects;
import com.google.common.collect.Lists;
import me.shedaniel.rei.api.client.gui.config.SearchMode;
import me.shedaniel.rei.api.common.entry.EntryStack;
+import me.shedaniel.rei.impl.client.search.IntRange;
import me.shedaniel.rei.impl.client.search.argument.type.AlwaysMatchingArgumentType;
import me.shedaniel.rei.impl.client.search.argument.type.ArgumentType;
import me.shedaniel.rei.impl.client.search.argument.type.ArgumentTypesRegistry;
import me.shedaniel.rei.impl.client.search.result.ArgumentApplicableResult;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
-import net.minecraft.util.IntRange;
import net.minecraft.util.Unit;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.mutable.Mutable;
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/search/result/ArgumentApplicableResult.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/search/result/ArgumentApplicableResult.java
index e25b89326..3014c9771 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/search/result/ArgumentApplicableResult.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/search/result/ArgumentApplicableResult.java
@@ -23,8 +23,8 @@
package me.shedaniel.rei.impl.client.search.result;
+import me.shedaniel.rei.impl.client.search.IntRange;
import me.shedaniel.rei.impl.client.search.argument.type.MatchType;
-import net.minecraft.util.IntRange;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Nullable;
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/AbstractEntryStack.java b/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/AbstractEntryStack.java
index 618674152..3cbf8d511 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/AbstractEntryStack.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/AbstractEntryStack.java
@@ -154,7 +154,7 @@ public abstract class AbstractEntryStack<A> extends AbstractRenderer implements
@Override
@Nullable
public Tooltip getTooltip(Point mouse, boolean appendModName) {
- Mutable<Tooltip> tooltip = new MutableObject<>(this.get(Settings.RENDER).apply(this).<A>cast().getTooltip(this, mouse));
+ Mutable<Tooltip> tooltip = new MutableObject<>(this.get(Settings.RENDERER).apply(this).<A>cast().getTooltip(this, mouse));
if (tooltip.getValue() == null) return null;
tooltip.getValue().getText().addAll(get(EntryStack.Settings.TOOLTIP_APPEND_EXTRA).apply(this));
tooltip.setValue(get(Settings.TOOLTIP_PROCESSOR).apply(this, tooltip.getValue()));
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 453df00c3..a6a102ea8 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
@@ -33,7 +33,7 @@ import it.unimi.dsi.fastutil.objects.ReferenceSet;
import me.shedaniel.math.Point;
import me.shedaniel.math.Rectangle;
import me.shedaniel.rei.api.client.entry.renderer.AbstractEntryRenderer;
-import me.shedaniel.rei.api.client.entry.renderer.BatchEntryRenderer;
+import me.shedaniel.rei.api.client.entry.renderer.BatchedEntryRenderer;
import me.shedaniel.rei.api.client.entry.renderer.EntryRenderer;
import me.shedaniel.rei.api.client.gui.widgets.Tooltip;
import me.shedaniel.rei.api.common.entry.EntrySerializer;
@@ -185,9 +185,9 @@ public class ItemEntryDefinition implements EntryDefinition<ItemStack>, EntrySer
}
@SuppressWarnings("deprecation")
- public class ItemEntryRenderer extends AbstractEntryRenderer<ItemStack> implements BatchEntryRenderer<ItemStack> {
+ public class ItemEntryRenderer extends AbstractEntryRenderer<ItemStack> implements BatchedEntryRenderer<ItemStack> {
@Override
- public int getBatchId(EntryStack<ItemStack> entry) {
+ public int getBatchIdentifier(EntryStack<ItemStack> entry, Rectangle bounds) {
return 1738923 + (getModelFromStack(entry.getValue()).usesBlockLight() ? 1 : 0);
}