aboutsummaryrefslogtreecommitdiff
path: root/runtime/src/main/java
diff options
context:
space:
mode:
authorKrLite <68179735+krlite@users.noreply.github.com>2023-01-28 20:16:07 +0800
committershedaniel <daniel@shedaniel.me>2023-05-29 21:22:03 +0800
commit21cd9c37987fe8d438ff9246e8aefbca10785711 (patch)
tree94426d7a3c0a67aeb0256c32f446db8ebf7033b5 /runtime/src/main/java
parent5d2049448a111e0661b041034ae11bca080e3c38 (diff)
downloadRoughlyEnoughItems-21cd9c37987fe8d438ff9246e8aefbca10785711.tar.gz
RoughlyEnoughItems-21cd9c37987fe8d438ff9246e8aefbca10785711.tar.bz2
RoughlyEnoughItems-21cd9c37987fe8d438ff9246e8aefbca10785711.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')
-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 3fef2df4a..9076c0ffc 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
@@ -112,9 +112,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);
@@ -163,6 +160,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), new TextComponent(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 a9c255a9d..7ff51286c 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 ae6974668..dafcec4f9 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
@@ -110,7 +110,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);
@@ -210,4 +212,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)) {