1
0
mirror of https://github.com/SquidDev-CC/CC-Tweaked synced 2026-05-10 15:42:06 +00:00

Transform breaking overlay to match turtle's rotation

This commit is contained in:
Jonathan Coates
2026-04-28 09:46:26 +01:00
parent d7b115c68a
commit 4edd30c8c4
@@ -127,12 +127,17 @@ public class TurtleBlockEntityRenderer implements BlockEntityRenderer<TurtleBloc
);
}
// Then apply rotation and flip if needed.
transform.translate(0.5f, 0.5f, 0.5f);
transform.mulPose(Axis.YP.rotationDegrees(180.0f - state.yaw));
transform.translate(-0.5f, -0.5f, -0.5f);
// Then apply rotation
transform.rotateAround(Axis.YP.rotationDegrees(180.0f - state.yaw), 0.5f, 0.5f, 0.5f);
state.model.submit(transform, collector, state.lightCoords, OverlayTexture.NO_OVERLAY, state.colour == -1 ? -1 : ARGB.opaque(state.colour), state.breakProgress);
// And render our models.
state.model.submit(
transform, collector, state.lightCoords, OverlayTexture.NO_OVERLAY,
state.colour == -1 ? -1 : ARGB.opaque(state.colour),
// Similarly, translate the break progress so the breaking decal is applied in turtle-space, rather than
// world space.
state.breakProgress == null ? null : translateBreakProgress(state.breakProgress, state.yaw)
);
if (state.overlay != null) {
state.overlay.submit(transform, collector, state.lightCoords, OverlayTexture.NO_OVERLAY);
@@ -147,6 +152,12 @@ public class TurtleBlockEntityRenderer implements BlockEntityRenderer<TurtleBloc
transform.popPose();
}
private static ModelFeatureRenderer.CrumblingOverlay translateBreakProgress(ModelFeatureRenderer.CrumblingOverlay breakProgress, float yaw) {
var pose = breakProgress.cameraPose().copy();
pose.rotateAround(Axis.YP.rotationDegrees(180.0f - yaw), 0.5f, 0.5f, 0.5f);
return new ModelFeatureRenderer.CrumblingOverlay(breakProgress.progress(), pose);
}
private void submitUpgrade(PoseStack transform, SubmitNodeCollector collector, int lightmapCoord, float angle, ItemStackRenderState state) {
if (state.isEmpty()) return;
transform.pushPose();