diff --git a/src/api/java/appeng/api/parts/IPart.java b/src/api/java/appeng/api/parts/IPart.java index 05db17b45..89c945f95 100644 --- a/src/api/java/appeng/api/parts/IPart.java +++ b/src/api/java/appeng/api/parts/IPart.java @@ -32,6 +32,7 @@ import javax.annotation.Nonnull; import com.mojang.blaze3d.matrix.MatrixStack; import net.minecraft.client.renderer.IRenderTypeBuffer; +import net.minecraft.crash.CrashReportCategory; import net.minecraft.entity.Entity; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.player.PlayerEntity; @@ -371,4 +372,14 @@ public interface IPart extends ICustomCableConnection { */ void getBoxes(final IPartCollisionHelper bch); + /** + * This will be used by the core to add information about this part to a crash + * report if it is attached to a host that caused a crash during tick + * processing. + * + * @param section The crash report section the information will be added to. + */ + default void addEntityCrashInfo(final CrashReportCategory section) { + } + } diff --git a/src/main/java/appeng/me/cache/helpers/TickTracker.java b/src/main/java/appeng/me/cache/helpers/TickTracker.java index 8c83f4a26..ce77c6faa 100644 --- a/src/main/java/appeng/me/cache/helpers/TickTracker.java +++ b/src/main/java/appeng/me/cache/helpers/TickTracker.java @@ -25,9 +25,9 @@ import net.minecraft.crash.CrashReportCategory; import appeng.api.networking.IGridNode; import appeng.api.networking.ticking.IGridTickable; import appeng.api.networking.ticking.TickingRequest; +import appeng.api.parts.IPart; import appeng.api.util.DimensionalCoord; import appeng.me.cache.TickManagerCache; -import appeng.parts.AEBasePart; public class TickTracker implements Comparable { @@ -72,8 +72,8 @@ public class TickTracker implements Comparable { } public void addEntityCrashInfo(final CrashReportCategory crashreportcategory) { - if (this.getGridTickable() instanceof AEBasePart) { - final AEBasePart part = (AEBasePart) this.getGridTickable(); + if (this.getGridTickable() instanceof IPart) { + final IPart part = (IPart) this.getGridTickable(); part.addEntityCrashInfo(crashreportcategory); } diff --git a/src/main/java/appeng/parts/AEBasePart.java b/src/main/java/appeng/parts/AEBasePart.java index 8bd1c8910..08a835301 100644 --- a/src/main/java/appeng/parts/AEBasePart.java +++ b/src/main/java/appeng/parts/AEBasePart.java @@ -182,6 +182,7 @@ public abstract class AEBasePart implements IPart, IGridProxyable, IActionHost, return this.getItemStack().hasDisplayName(); } + @Override public void addEntityCrashInfo(final CrashReportCategory crashreportcategory) { crashreportcategory.addDetail("Part Side", this.getSide()); }