From 41f09641b0656b4e33282065ff4010bfc4c23e1f Mon Sep 17 00:00:00 2001 From: Light_Quanta Date: Tue, 8 Apr 2025 13:51:30 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dvertex=E4=BC=A0=E5=8F=82?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/AbstractLaserEntityRenderer.java | 39 ++++++++++--------- .../entity/FlareDecoyEntityRenderer.java | 29 ++++++++------ .../renderer/entity/LaserEntityRenderer.java | 28 ++++++------- 3 files changed, 51 insertions(+), 45 deletions(-) diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/entity/AbstractLaserEntityRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/entity/AbstractLaserEntityRenderer.java index 3255ca81d..644eccc6e 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/entity/AbstractLaserEntityRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/entity/AbstractLaserEntityRenderer.java @@ -9,6 +9,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.entity.EntityRenderer; import net.minecraft.client.renderer.entity.EntityRendererProvider; +import net.minecraft.client.renderer.texture.OverlayTexture; import net.minecraft.core.Direction; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; @@ -72,13 +73,13 @@ public abstract class AbstractLaserEntityRenderer float maxU = minU + 16F / TEXTURE_WIDTH; float maxV = minV + 16F / TEXTURE_HEIGHT; float SIZE = this.quadRadius + (inGround ? 0.2F : 0); - PoseStack.Pose matrix$stack$entry = matrixStackIn.last(); - Matrix4f matrix4f = matrix$stack$entry.pose(); - Matrix3f matrix3f = matrix$stack$entry.normal(); - drawVertex(matrix4f, matrix3f, builder, -SIZE, -SIZE, 0, minU, minV, packedLightIn); - drawVertex(matrix4f, matrix3f, builder, -SIZE, SIZE, 0, minU, maxV, packedLightIn); - drawVertex(matrix4f, matrix3f, builder, SIZE, SIZE, 0, maxU, maxV, packedLightIn); - drawVertex(matrix4f, matrix3f, builder, SIZE, -SIZE, 0, maxU, minV, packedLightIn); + PoseStack.Pose pose = matrixStackIn.last(); + Matrix4f matrix4f = pose.pose(); + Matrix3f matrix3f = pose.normal(); + drawVertex(matrix4f, matrix3f, pose, builder, -SIZE, -SIZE, 0, minU, minV, packedLightIn); + drawVertex(matrix4f, matrix3f, pose, builder, -SIZE, SIZE, 0, minU, maxV, packedLightIn); + drawVertex(matrix4f, matrix3f, pose, builder, SIZE, SIZE, 0, maxU, maxV, packedLightIn); + drawVertex(matrix4f, matrix3f, pose, builder, SIZE, -SIZE, 0, maxU, minV, packedLightIn); } protected void renderStart(T entity, int frame, PoseStack matrixStackIn, VertexConsumer builder, float delta, int packedLightIn) { @@ -144,22 +145,22 @@ public abstract class AbstractLaserEntityRenderer float minV = 16 / TEXTURE_HEIGHT + 1 / TEXTURE_HEIGHT * frame; float maxU = minU + 20 / TEXTURE_WIDTH; float maxV = minV + 1 / TEXTURE_HEIGHT; - PoseStack.Pose matrix$stack$entry = matrixStackIn.last(); - Matrix4f matrix4f = matrix$stack$entry.pose(); - Matrix3f matrix3f = matrix$stack$entry.normal(); + PoseStack.Pose pose = matrixStackIn.last(); + Matrix4f matrix4f = pose.pose(); + Matrix3f matrix3f = pose.normal(); float offset = 0; float size = this.beamRadius; - drawVertex(matrix4f, matrix3f, builder, -size, offset, 0, minU, minV, packedLightIn); - drawVertex(matrix4f, matrix3f, builder, -size, length, 0, minU, maxV, packedLightIn); - drawVertex(matrix4f, matrix3f, builder, size, length, 0, maxU, maxV, packedLightIn); - drawVertex(matrix4f, matrix3f, builder, size, offset, 0, maxU, minV, packedLightIn); + drawVertex(matrix4f, matrix3f, pose, builder, -size, offset, 0, minU, minV, packedLightIn); + drawVertex(matrix4f, matrix3f, pose, builder, -size, length, 0, minU, maxV, packedLightIn); + drawVertex(matrix4f, matrix3f, pose, builder, size, length, 0, maxU, maxV, packedLightIn); + drawVertex(matrix4f, matrix3f, pose, builder, size, offset, 0, maxU, minV, packedLightIn); } - protected void drawVertex(Matrix4f matrix, Matrix3f normals, VertexConsumer vertexBuilder, float offsetX, float offsetY, float offsetZ, float textureX, float textureY, int packedLightIn) { - // TODO drawVertex -// vertexBuilder.addVertex(matrix, offsetX, offsetY, offsetZ).setColor(1F, 1F, 1F, 1F).setUv(textureX, textureY).setOverlay(OverlayTexture.NO_OVERLAY).setLight(packedLightIn) -// .setNormal(normals, 0.0F, 1.0F, 0.0F) -// .endVertex(); + protected void drawVertex(Matrix4f matrix, Matrix3f normals, PoseStack.Pose pose, VertexConsumer vertexBuilder, float offsetX, float offsetY, float offsetZ, float textureX, float textureY, int packedLightIn) { + vertexBuilder.addVertex(matrix, offsetX, offsetY, offsetZ) + .setColor(1F, 1F, 1F, 1F).setUv(textureX, textureY) + .setOverlay(OverlayTexture.NO_OVERLAY).setLight(packedLightIn) + .setNormal(pose, 0.0F, 1.0F, 0.0F); } } diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/entity/FlareDecoyEntityRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/entity/FlareDecoyEntityRenderer.java index b0338903a..904159af1 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/entity/FlareDecoyEntityRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/entity/FlareDecoyEntityRenderer.java @@ -9,6 +9,7 @@ import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.entity.EntityRenderer; import net.minecraft.client.renderer.entity.EntityRendererProvider; +import net.minecraft.client.renderer.texture.OverlayTexture; import net.minecraft.core.BlockPos; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.Entity; @@ -30,28 +31,32 @@ public class FlareDecoyEntityRenderer extends EntityRenderer { pMatrixStack.scale(1.0F, 1.0F, 1.0F); pMatrixStack.mulPose(this.entityRenderDispatcher.cameraOrientation()); pMatrixStack.mulPose(Axis.YP.rotationDegrees(180.0F)); - PoseStack.Pose $$6 = pMatrixStack.last(); - Matrix4f $$7 = $$6.pose(); - Matrix3f $$8 = $$6.normal(); - VertexConsumer $$9 = pBuffer.getBuffer(RenderType.entityCutoutNoCull(texture(pEntity))); - vertex($$9, $$7, $$8, pPackedLight, 0.0F, 0, 0, 1); - vertex($$9, $$7, $$8, pPackedLight, 1.0F, 0, 1, 1); - vertex($$9, $$7, $$8, pPackedLight, 1.0F, 1, 1, 0); - vertex($$9, $$7, $$8, pPackedLight, 0.0F, 1, 0, 0); + PoseStack.Pose pose = pMatrixStack.last(); + Matrix4f matrix = pose.pose(); + Matrix3f normal = pose.normal(); + VertexConsumer consumer = pBuffer.getBuffer(RenderType.entityCutoutNoCull(texture(pEntity))); + vertex(consumer, matrix, pose, normal, pPackedLight, 0.0F, 0, 0, 1); + vertex(consumer, matrix, pose, normal, pPackedLight, 1.0F, 0, 1, 1); + vertex(consumer, matrix, pose, normal, pPackedLight, 1.0F, 1, 1, 0); + vertex(consumer, matrix, pose, normal, pPackedLight, 0.0F, 1, 0, 0); pMatrixStack.popPose(); super.render(pEntity, pEntityYaw, pPartialTicks, pMatrixStack, pBuffer, pPackedLight); } - private static void vertex(VertexConsumer pConsumer, Matrix4f pPose, Matrix3f pNormal, int pLightmapUV, float pX, float pY, int pU, int pV) { - // TODO vertex - // pConsumer.vertex(pPose, pX - 0.5F, pY - 0.25F, 0.0F).color(255, 255, 255, 255).uv((float)pU, (float)pV).overlayCoords(OverlayTexture.NO_OVERLAY).uv2(pLightmapUV).normal(pNormal, 0.0F, 1.0F, 0.0F).endVertex(); + private static void vertex(VertexConsumer consumer, Matrix4f matrix, PoseStack.Pose pose, Matrix3f normal, int lightmapUV, float pX, float pY, int pU, int pV) { + consumer.addVertex(matrix, pX - 0.5F, pY - 0.25F, 0.0F) + .setColor(255, 255, 255, 255) + .setUv((float) pU, (float) pV) + .setOverlay(OverlayTexture.NO_OVERLAY) + .setNormal(pose, 0.0F, 1.0F, 0.0F) + .setLight(lightmapUV); } private static ResourceLocation texture(Entity entity) { return Mod.loc("textures/particle/fire_star_" + (entity.tickCount % 8 + 1) + ".png"); } - public ResourceLocation getTextureLocation(FlareDecoyEntity pEntity) { + public @NotNull ResourceLocation getTextureLocation(@NotNull FlareDecoyEntity pEntity) { return texture(pEntity); } } diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/entity/LaserEntityRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/entity/LaserEntityRenderer.java index 3899dcf54..7562712a1 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/entity/LaserEntityRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/entity/LaserEntityRenderer.java @@ -53,13 +53,13 @@ public class LaserEntityRenderer extends AbstractLaserEntityRenderer