From 2ac0b4eeb3a13946d273af2be90b49cebc4997e9 Mon Sep 17 00:00:00 2001 From: 17146 <1714673995@qq.com> Date: Fri, 16 Aug 2024 01:35:39 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4renderType?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/renderer/item/M4ItemRenderer.java | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/main/java/net/mcreator/superbwarfare/client/renderer/item/M4ItemRenderer.java b/src/main/java/net/mcreator/superbwarfare/client/renderer/item/M4ItemRenderer.java index 7c35679d8..1a184da6a 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/renderer/item/M4ItemRenderer.java +++ b/src/main/java/net/mcreator/superbwarfare/client/renderer/item/M4ItemRenderer.java @@ -36,19 +36,18 @@ public class M4ItemRenderer extends GeoItemRenderer { } private static final float SCALE_RECIPROCAL = 1.0f / 16.0f; - protected boolean renderArms = false; protected MultiBufferSource currentBuffer; protected RenderType renderType; public ItemDisplayContext transformType; protected M4Item animatable; private final Set hiddenBones = new HashSet<>(); - private final Set suppressedBones = new HashSet<>(); @Override public void renderByItem(ItemStack stack, ItemDisplayContext transformType, PoseStack matrixStack, MultiBufferSource bufferIn, int combinedLightIn, int p_239207_6_) { this.transformType = transformType; - if (this.animatable != null) + if (this.animatable != null) { this.animatable.getTransformType(transformType); + } super.renderByItem(stack, transformType, matrixStack, bufferIn, combinedLightIn, p_239207_6_); } @@ -59,9 +58,6 @@ public class M4ItemRenderer extends GeoItemRenderer { this.renderType = type; this.animatable = animatable; super.actuallyRender(matrixStackIn, animatable, model, type, renderTypeBuffer, vertexBuilder, isRenderer, partialTicks, packedLightIn, packedOverlayIn, red, green, blue, alpha); - if (this.renderArms) { - this.renderArms = false; - } } @Override @@ -76,11 +72,18 @@ public class M4ItemRenderer extends GeoItemRenderer { } else { bone.setHidden(this.hiddenBones.contains(name)); } + if (this.transformType.firstPerson() && renderingArms) { AbstractClientPlayer player = mc.player; + + if (player == null) { + return; + } + float armsAlpha = player.isInvisible() ? 0.15f : 1.0f; PlayerRenderer playerRenderer = (PlayerRenderer) mc.getEntityRenderDispatcher().getRenderer(player); PlayerModel model = playerRenderer.getModel(); + stack.pushPose(); RenderUtils.translateMatrixToBone(stack, bone); RenderUtils.translateToPivotPoint(stack, bone); @@ -90,16 +93,18 @@ public class M4ItemRenderer extends GeoItemRenderer { ResourceLocation loc = player.getSkinTextureLocation(); VertexConsumer armBuilder = this.currentBuffer.getBuffer(RenderType.entitySolid(loc)); VertexConsumer sleeveBuilder = this.currentBuffer.getBuffer(RenderType.entityTranslucent(loc)); + if (name.equals("Lefthand")) { stack.translate(-1.0f * SCALE_RECIPROCAL, 2.0f * SCALE_RECIPROCAL, 0.0f); AnimUtils.renderPartOverBone(model.leftArm, bone, stack, armBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, armsAlpha); AnimUtils.renderPartOverBone(model.leftSleeve, bone, stack, sleeveBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, armsAlpha); - } else if (name.equals("Righthand")) { - stack.translate(1.0f * SCALE_RECIPROCAL, 2.0f * SCALE_RECIPROCAL, 0.0f); + } else { + stack.translate(SCALE_RECIPROCAL, 2.0f * SCALE_RECIPROCAL, 0.0f); AnimUtils.renderPartOverBone(model.rightArm, bone, stack, armBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, armsAlpha); AnimUtils.renderPartOverBone(model.rightSleeve, bone, stack, sleeveBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, armsAlpha); } - this.currentBuffer.getBuffer(RenderType.entityTranslucent(getTextureLocation(this.animatable))); + + this.currentBuffer.getBuffer(this.renderType); stack.popPose(); } super.renderRecursively(stack, animatable, bone, type, buffer, bufferIn, isReRender, partialTick, packedLightIn, packedOverlayIn, red, green, blue, alpha);