aboutsummaryrefslogtreecommitdiff
path: root/runtime/src/main/java/me/shedaniel/rei
diff options
context:
space:
mode:
authorKrLite <68179735+KrLite@users.noreply.github.com>2023-01-28 20:16:07 +0800
committerGitHub <noreply@github.com>2023-01-28 20:16:07 +0800
commit0566dd779c719d6c3c49310752d487e893e0dff5 (patch)
tree0954779fa46ff964c50bc0dbffea6d6c69c97078 /runtime/src/main/java/me/shedaniel/rei
parent7dac5856acd5a1b4111f009d3c348a501f1bc397 (diff)
downloadRoughlyEnoughItems-0566dd779c719d6c3c49310752d487e893e0dff5.tar.gz
RoughlyEnoughItems-0566dd779c719d6c3c49310752d487e893e0dff5.tar.bz2
RoughlyEnoughItems-0566dd779c719d6c3c49310752d487e893e0dff5.zip
Fix Render Misbehaves Under Certain Conditions [1.19] (#1343)
* fix entrylist background render * fix others * Consolidate calls to entrySize() --------- Co-authored-by: shedaniel <daniel@shedaniel.me>
Diffstat (limited to 'runtime/src/main/java/me/shedaniel/rei')
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/CompositeDisplayViewingScreen.java6
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/BatchedEntryRendererManager.java2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/EntryListStackEntry.java6
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/ScrolledEntryListWidget.java7
4 files changed, 12 insertions, 9 deletions
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/CompositeDisplayViewingScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/CompositeDisplayViewingScreen.java
index cc4a6119c..a95d52069 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/CompositeDisplayViewingScreen.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/CompositeDisplayViewingScreen.java
@@ -110,9 +110,6 @@ public class CompositeDisplayViewingScreen extends AbstractDisplayViewingScreen
int guiHeight = Mth.clamp(category.getDisplayHeight() + 40, 166, largestHeight);
this.bounds = new Rectangle(width / 2 - guiWidth / 2, height / 2 - guiHeight / 2, guiWidth, guiHeight);
- this.initTabs(this.bounds.width);
- this.widgets.addAll(this.tabs.widgets());
-
List<EntryIngredient> workstations = CategoryRegistry.getInstance().get(category.getCategoryIdentifier()).getWorkstations();
if (!workstations.isEmpty()) {
int ww = Mth.floor((bounds.width - 16) / 18f);
@@ -161,6 +158,9 @@ public class CompositeDisplayViewingScreen extends AbstractDisplayViewingScreen
Optional<ButtonArea> supplier = CategoryRegistry.getInstance().get(category.getCategoryIdentifier()).getPlusButtonArea();
if (supplier.isPresent() && supplier.get().get(recipeBounds) != null)
this.widgets.add(Widgets.withTranslate(InternalWidgets.createAutoCraftingButtonWidget(recipeBounds, supplier.get().get(recipeBounds), Component.literal(supplier.get().getButtonText()), display::provideInternalDisplay, display::provideInternalDisplayIds, setupDisplay, category), 0, 0, 100));
+
+ this.initTabs(this.bounds.width);
+ this.widgets.addAll(this.tabs.widgets());
int index = 0;
for (DisplaySpec recipeDisplay : categoryMap.get(category)) {
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/BatchedEntryRendererManager.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/BatchedEntryRendererManager.java
index 96e902ada..11fff3ddf 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/BatchedEntryRendererManager.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/BatchedEntryRendererManager.java
@@ -186,7 +186,7 @@ public class BatchedEntryRendererManager {
try {
@SuppressWarnings("rawtypes")
EntryStack currentEntry = entry.getCurrentEntry();
- currentEntry.setZ(100);
+ currentEntry.setZ(entry.getBounds().contains(mouseX, mouseY) ? 150 : 100);
firstRenderer.renderBase(currentEntry, extraData[i++], matrices, immediate, entry.getInnerBounds(), mouseX, mouseY, delta);
if (debugTime && !currentEntry.isEmpty()) size.increment();
} catch (Throwable throwable) {
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/EntryListStackEntry.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/EntryListStackEntry.java
index d91227889..8f8662bc7 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/EntryListStackEntry.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/EntryListStackEntry.java
@@ -109,7 +109,9 @@ public class EntryListStackEntry extends DisplayedEntryWidget {
Rectangle bounds = getBounds();
if (collapsedStack != null) {
- fillGradient(matrices, bounds.x, bounds.y, bounds.getMaxX(), bounds.getMaxY(), 0x34FFFFFF, 0x34FFFFFF);
+ int entrySize = entrySize();
+ fillGradient(matrices, bounds.getCenterX() - entrySize / 2, bounds.getCenterY() - entrySize / 2,
+ bounds.getCenterX() + entrySize / 2 + 1, bounds.getCenterY() + entrySize / 2 + 1, 0x34FFFFFF, 0x34FFFFFF);
}
super.drawBackground(matrices, mouseX, mouseY, delta);
@@ -209,4 +211,4 @@ public class EntryListStackEntry extends DisplayedEntryWidget {
protected long getCyclingInterval() {
return 100;
}
-} \ No newline at end of file
+}
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/ScrolledEntryListWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/ScrolledEntryListWidget.java
index 444f8ddc8..ac057a33c 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/ScrolledEntryListWidget.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/ScrolledEntryListWidget.java
@@ -64,8 +64,9 @@ public class ScrolledEntryListWidget extends CollapsingEntryListWidget {
protected void renderEntries(boolean fastEntryRendering, PoseStack matrices, int mouseX, int mouseY, float delta) {
ScissorsHandler.INSTANCE.scissor(bounds);
- int skip = Math.max(0, Mth.floor(scrolling.scrollAmount() / (float) entrySize()));
- int nextIndex = skip * innerBounds.width / entrySize();
+ int entrySize = entrySize();
+ int skip = Math.max(0, Mth.floor(scrolling.scrollAmount() / (float) entrySize));
+ int nextIndex = skip * innerBounds.width / entrySize;
this.blockedCount = 0;
BatchedEntryRendererManager helper = new BatchedEntryRendererManager();
Int2ObjectMap<CollapsedStack> indexedCollapsedStack = getCollapsedStackIndexed();
@@ -75,7 +76,7 @@ public class ScrolledEntryListWidget extends CollapsingEntryListWidget {
EntryListStackEntry entry = entries.get(cont);
Rectangle entryBounds = entry.getBounds();
- entryBounds.y = entry.backupY - scrolling.scrollAmountInt();
+ entryBounds.y = entry.backupY - scrolling.scrollAmountInt() - entryBounds.height / 2 + entrySize / 2;
if (entryBounds.y > this.bounds.getMaxY()) break;
if (stacks.size() <= i) break;
if (notSteppingOnExclusionZones(entryBounds.x, entryBounds.y, entryBounds.width, entryBounds.height)) {