From 0101f5aeac250bf719d3bfbd7c71439637eb2a9d Mon Sep 17 00:00:00 2001 From: Atsuihsio <842960157@qq.com> Date: Sun, 12 May 2024 16:29:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=95=9C=E5=AD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../renderer/item/Mk14ItemRenderer.java | 46 ++++++++++++++++++- .../client/renderer/item/SvdItemRenderer.java | 46 ++++++++++++++++++- 2 files changed, 90 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/mcreator/target/client/renderer/item/Mk14ItemRenderer.java b/src/main/java/net/mcreator/target/client/renderer/item/Mk14ItemRenderer.java index 86fd8a4b7..7c7655b4d 100644 --- a/src/main/java/net/mcreator/target/client/renderer/item/Mk14ItemRenderer.java +++ b/src/main/java/net/mcreator/target/client/renderer/item/Mk14ItemRenderer.java @@ -1,19 +1,63 @@ package net.mcreator.target.client.renderer.item; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; import net.mcreator.target.item.gun.Mk14Item; import net.mcreator.target.client.layer.Mk14Layer; import net.mcreator.target.client.model.item.Mk14ItemModel; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.ItemDisplayContext; +import net.minecraft.world.item.ItemStack; +import software.bernie.geckolib.cache.object.BakedGeoModel; import software.bernie.geckolib.renderer.GeoItemRenderer; +import java.util.HashSet; +import java.util.Set; + public class Mk14ItemRenderer extends GeoItemRenderer { public Mk14ItemRenderer() { super(new Mk14ItemModel()); this.addRenderLayer(new Mk14Layer(this)); } + @Override + public RenderType getRenderType(Mk14Item animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) { + return RenderType.entityTranslucent(getTextureLocation(animatable)); + } + + private static final float SCALE_RECIPROCAL = 1.0f / 16.0f; + protected boolean renderArms = false; + protected MultiBufferSource currentBuffer; + protected RenderType renderType; + public ItemDisplayContext transformType; + protected Mk14Item 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) + this.animatable.getTransformType(transformType); + super.renderByItem(stack, transformType, matrixStack, bufferIn, combinedLightIn, p_239207_6_); + } + + @Override + public void actuallyRender(PoseStack matrixStackIn, Mk14Item animatable, BakedGeoModel model, RenderType type, MultiBufferSource renderTypeBuffer, VertexConsumer vertexBuilder, boolean isRenderer, float partialTicks, int packedLightIn, + int packedOverlayIn, float red, float green, float blue, float alpha) { + this.currentBuffer = renderTypeBuffer; + 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 public ResourceLocation getTextureLocation(Mk14Item instance) { return super.getTextureLocation(instance); } -} +} \ No newline at end of file diff --git a/src/main/java/net/mcreator/target/client/renderer/item/SvdItemRenderer.java b/src/main/java/net/mcreator/target/client/renderer/item/SvdItemRenderer.java index 945e578c3..eb3f35c9d 100644 --- a/src/main/java/net/mcreator/target/client/renderer/item/SvdItemRenderer.java +++ b/src/main/java/net/mcreator/target/client/renderer/item/SvdItemRenderer.java @@ -1,19 +1,63 @@ package net.mcreator.target.client.renderer.item; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; import net.mcreator.target.item.gun.SvdItem; import net.mcreator.target.client.layer.SvdLayer; import net.mcreator.target.client.model.item.SvdItemModel; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.ItemDisplayContext; +import net.minecraft.world.item.ItemStack; +import software.bernie.geckolib.cache.object.BakedGeoModel; import software.bernie.geckolib.renderer.GeoItemRenderer; +import java.util.HashSet; +import java.util.Set; + public class SvdItemRenderer extends GeoItemRenderer { public SvdItemRenderer() { super(new SvdItemModel()); this.addRenderLayer(new SvdLayer(this)); } + @Override + public RenderType getRenderType(SvdItem animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) { + return RenderType.entityTranslucent(getTextureLocation(animatable)); + } + + private static final float SCALE_RECIPROCAL = 1.0f / 16.0f; + protected boolean renderArms = false; + protected MultiBufferSource currentBuffer; + protected RenderType renderType; + public ItemDisplayContext transformType; + protected SvdItem 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) + this.animatable.getTransformType(transformType); + super.renderByItem(stack, transformType, matrixStack, bufferIn, combinedLightIn, p_239207_6_); + } + + @Override + public void actuallyRender(PoseStack matrixStackIn, SvdItem animatable, BakedGeoModel model, RenderType type, MultiBufferSource renderTypeBuffer, VertexConsumer vertexBuilder, boolean isRenderer, float partialTicks, int packedLightIn, + int packedOverlayIn, float red, float green, float blue, float alpha) { + this.currentBuffer = renderTypeBuffer; + 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 public ResourceLocation getTextureLocation(SvdItem instance) { return super.getTextureLocation(instance); } -} +} \ No newline at end of file