aboutsummaryrefslogtreecommitdiff
path: root/api/src/main
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2021-06-20 21:54:39 +0800
committershedaniel <daniel@shedaniel.me>2021-06-20 21:54:39 +0800
commit06c695df2c1ae92ddd71dfa23491d7554387156c (patch)
tree77b10b982eaeedf38553833cf6c60a730fcfcf56 /api/src/main
parent0239bf2fb623863164da37df7f059d29805ed1b9 (diff)
downloadRoughlyEnoughItems-06c695df2c1ae92ddd71dfa23491d7554387156c.tar.gz
RoughlyEnoughItems-06c695df2c1ae92ddd71dfa23491d7554387156c.tar.bz2
RoughlyEnoughItems-06c695df2c1ae92ddd71dfa23491d7554387156c.zip
Improve crash reports, fluid rendering return missing sprite, add more util methods to EntryStacks and EntryIngredients
Diffstat (limited to 'api/src/main')
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/gui/Renderer.java11
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/common/entry/type/EntryDefinition.java6
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/common/util/EntryIngredients.java12
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/common/util/EntryStacks.java4
4 files changed, 31 insertions, 2 deletions
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/Renderer.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/Renderer.java
index 153473352..207bd118b 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/gui/Renderer.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/Renderer.java
@@ -27,8 +27,11 @@ import com.mojang.blaze3d.vertex.PoseStack;
import me.shedaniel.math.Point;
import me.shedaniel.math.Rectangle;
import me.shedaniel.rei.api.client.gui.widgets.Tooltip;
+import me.shedaniel.rei.api.client.gui.widgets.WidgetWithBounds;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
+import net.minecraft.CrashReport;
+import net.minecraft.CrashReportCategory;
import org.jetbrains.annotations.Nullable;
public interface Renderer {
@@ -44,4 +47,12 @@ public interface Renderer {
int getZ();
void setZ(int z);
+
+ default void fillCrashReport(CrashReport report, CrashReportCategory category) {
+ category.setDetail("Renderer name", () -> getClass().getCanonicalName());
+ category.setDetail("Z level", () -> String.valueOf(getZ()));
+ if (this instanceof WidgetWithBounds widget) {
+ category.setDetail("Bounds", () -> String.valueOf(widget.getBounds()));
+ }
+ }
}
diff --git a/api/src/main/java/me/shedaniel/rei/api/common/entry/type/EntryDefinition.java b/api/src/main/java/me/shedaniel/rei/api/common/entry/type/EntryDefinition.java
index 555149b8e..81e2a93dd 100644
--- a/api/src/main/java/me/shedaniel/rei/api/common/entry/type/EntryDefinition.java
+++ b/api/src/main/java/me/shedaniel/rei/api/common/entry/type/EntryDefinition.java
@@ -29,6 +29,8 @@ import me.shedaniel.rei.api.common.entry.EntryStack;
import me.shedaniel.rei.api.common.entry.comparison.ComparisonContext;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
+import net.minecraft.CrashReport;
+import net.minecraft.CrashReportCategory;
import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.TagContainer;
@@ -75,5 +77,9 @@ public interface EntryDefinition<T> {
default <O> EntryDefinition<O> cast() {
return (EntryDefinition<O>) this;
}
+
+ default void fillCrashReport(CrashReport report, CrashReportCategory category, EntryStack<T> entry) {
+ category.setDetail("Entry definition class name", () -> getClass().getCanonicalName());
+ }
}
diff --git a/api/src/main/java/me/shedaniel/rei/api/common/util/EntryIngredients.java b/api/src/main/java/me/shedaniel/rei/api/common/util/EntryIngredients.java
index dc34584c2..9af0218ec 100644
--- a/api/src/main/java/me/shedaniel/rei/api/common/util/EntryIngredients.java
+++ b/api/src/main/java/me/shedaniel/rei/api/common/util/EntryIngredients.java
@@ -49,6 +49,10 @@ public final class EntryIngredients {
return EntryIngredient.of(EntryStacks.of(stack));
}
+ public static EntryIngredient of(ItemLike stack, int amount) {
+ return EntryIngredient.of(EntryStacks.of(stack, amount));
+ }
+
public static EntryIngredient of(ItemStack stack) {
return EntryIngredient.of(EntryStacks.of(stack));
}
@@ -80,11 +84,15 @@ public final class EntryIngredients {
}
public static EntryIngredient ofItems(Collection<ItemLike> stacks) {
+ return ofItems(stacks, 1);
+ }
+
+ public static EntryIngredient ofItems(Collection<ItemLike> stacks, int amount) {
if (stacks.size() == 0) return EntryIngredient.empty();
- if (stacks.size() == 1) return EntryIngredient.of(EntryStacks.of(stacks.iterator().next()));
+ if (stacks.size() == 1) return EntryIngredient.of(EntryStacks.of(stacks.iterator().next(), amount));
EntryIngredient.Builder result = EntryIngredient.builder(stacks.size());
for (ItemLike stack : stacks) {
- result.add(EntryStacks.of(stack));
+ result.add(EntryStacks.of(stack, amount));
}
return result.build();
}
diff --git a/api/src/main/java/me/shedaniel/rei/api/common/util/EntryStacks.java b/api/src/main/java/me/shedaniel/rei/api/common/util/EntryStacks.java
index 827db488c..10c3aaa6d 100644
--- a/api/src/main/java/me/shedaniel/rei/api/common/util/EntryStacks.java
+++ b/api/src/main/java/me/shedaniel/rei/api/common/util/EntryStacks.java
@@ -61,6 +61,10 @@ public final class EntryStacks {
return of(new ItemStack(item));
}
+ public static EntryStack<ItemStack> of(ItemLike item, int amount) {
+ return of(new ItemStack(item, amount));
+ }
+
/**
* Compares equality under the provided {@code context}.
* Prioritizes {@link me.shedaniel.rei.api.common.entry.type.EntryDefinition#equals(Object, Object, ComparisonContext)} then compares