diff options
| author | shedaniel <daniel@shedaniel.me> | 2021-06-20 21:54:39 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2021-06-20 21:54:39 +0800 |
| commit | 06c695df2c1ae92ddd71dfa23491d7554387156c (patch) | |
| tree | 77b10b982eaeedf38553833cf6c60a730fcfcf56 /api/src/main | |
| parent | 0239bf2fb623863164da37df7f059d29805ed1b9 (diff) | |
| download | RoughlyEnoughItems-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')
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 |
