|
12 | 12 | import net.minecraft.client.model.geom.builders.LayerDefinition; |
13 | 13 | import net.minecraft.client.model.geom.builders.MeshDefinition; |
14 | 14 | import net.minecraft.client.model.geom.builders.PartDefinition; |
15 | | -import net.minecraft.client.renderer.MultiBufferSource; |
16 | | -import net.minecraft.client.renderer.Sheets; |
17 | 15 | import net.minecraft.client.renderer.SubmitNodeCollector; |
18 | 16 | import net.minecraft.client.renderer.rendertype.RenderType; |
19 | 17 | import net.minecraft.client.renderer.rendertype.RenderTypes; |
|
23 | 21 | import net.minecraft.resources.Identifier; |
24 | 22 | import net.minecraft.world.level.Level; |
25 | 23 | import org.cyclops.energeticsheep.Reference; |
| 24 | +import org.cyclops.energeticsheep.client.EnergeticSheepRenderTypes; |
26 | 25 |
|
27 | 26 | import java.util.function.Consumer; |
28 | 27 |
|
@@ -70,8 +69,14 @@ public void submit(PoseStack poseStack, SubmitNodeCollector collector, int light |
70 | 69 | RenderType renderType = EnergeticSheepRenderTypes.energySwirlPreserveAlpha(CHARGE_TEXTURE, xOffset, yOffset); |
71 | 70 | WoolChargeState state = new WoolChargeState(); |
72 | 71 | model.setupAnim(state); |
73 | | - collector.order(1).submitModel(model, state, poseStack, renderType, |
74 | | - lightCoords, OverlayTexture.NO_OVERLAY, -8355712, null, 0, null); |
| 72 | + // Use submitCustomGeometry so the swirl is submitted to the translucent pass (hasBlending=true), |
| 73 | + // which executes AFTER the solid wool geometry. This ensures the swirl renders on top of the wool |
| 74 | + // rather than being overwritten by it. |
| 75 | + collector.submitCustomGeometry(poseStack, renderType, (capturedPose, buffer) -> { |
| 76 | + PoseStack ps = new PoseStack(); |
| 77 | + ps.last().set(capturedPose); |
| 78 | + model.renderToBuffer(ps, buffer, lightCoords, OverlayTexture.NO_OVERLAY, -8355712); |
| 79 | + }); |
75 | 80 | } |
76 | 81 |
|
77 | 82 | /** |
|
0 commit comments