aboutsummaryrefslogtreecommitdiff
path: root/runtime/src/main/java/me
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/src/main/java/me')
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayEntry.java20
1 files changed, 15 insertions, 5 deletions
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayEntry.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayEntry.java
index 72fd04e6f..03db37b7e 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayEntry.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayEntry.java
@@ -44,10 +44,7 @@ import net.minecraft.client.gui.screens.Screen;
import net.minecraft.network.chat.Component;
import org.jetbrains.annotations.Nullable;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
+import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.function.Supplier;
@@ -99,7 +96,7 @@ public class DisplayEntry extends WidgetWithBounds {
CategoryRegistry.CategoryConfiguration<Display> configuration = CategoryRegistry.getInstance().get((CategoryIdentifier<Display>) display.getCategoryIdentifier());
DisplayCategory<Display> category = configuration.getCategory();
Rectangle displayBounds = new Rectangle(0, 0, category.getDisplayWidth(display), category.getDisplayHeight());
- List<Widget> widgets = configuration.getView(display).setupDisplay(display, displayBounds);
+ List<Widget> widgets = setupDisplay(configuration, displayBounds);
float scale = 1.0F;
if (parentBounds.width * scale < displayBounds.width) {
scale = Math.min(scale, parentBounds.width * scale / (float) displayBounds.width);
@@ -124,6 +121,19 @@ public class DisplayEntry extends WidgetWithBounds {
return widgets;
}
+ private List<Widget> setupDisplay(CategoryRegistry.CategoryConfiguration<Display> configuration, Rectangle displayBounds) {
+ try {
+ return configuration.getView(display).setupDisplay(display, displayBounds);
+ } catch (Throwable throwable) {
+ throwable.printStackTrace();
+ List<Widget> w = new ArrayList<>();
+ w.add(Widgets.createRecipeBase(displayBounds).color(0xFFBB0000));
+ w.add(Widgets.createLabel(new Point(displayBounds.getCenterX(), displayBounds.getCenterY() - 8), new TextComponent("Failed to initiate setupDisplay")));
+ w.add(Widgets.createLabel(new Point(displayBounds.getCenterX(), displayBounds.getCenterY() + 1), new TextComponent("Check console for error")));
+ return w;
+ }
+ }
+
@Override
public Rectangle getBounds() {
return bounds.value().getBounds();