完成了手雷渲染功能

This commit is contained in:
17146 2024-07-30 23:55:25 +08:00
parent 0f31cf2ae6
commit 3ea791240e

View file

@ -1,4 +1,3 @@
package net.mcreator.superbwarfare.client.renderer.entity; package net.mcreator.superbwarfare.client.renderer.entity;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
@ -9,45 +8,42 @@ import net.mcreator.superbwarfare.entity.model.RgoGrenadeEntityModel;
import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.entity.EntityRendererProvider; import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;
import software.bernie.geckolib.cache.object.BakedGeoModel; import software.bernie.geckolib.cache.object.BakedGeoModel;
import software.bernie.geckolib.renderer.GeoEntityRenderer; import software.bernie.geckolib.renderer.GeoEntityRenderer;
public class RgoGrenadeRenderer extends GeoEntityRenderer<RgoGrenadeEntity> { public class RgoGrenadeRenderer extends GeoEntityRenderer<RgoGrenadeEntity> {
public RgoGrenadeRenderer(EntityRendererProvider.Context renderManager) { public RgoGrenadeRenderer(EntityRendererProvider.Context renderManager) {
super(renderManager, new RgoGrenadeEntityModel()); super(renderManager, new RgoGrenadeEntityModel());
this.shadowRadius = 0.1f; this.shadowRadius = 0.1f;
} }
@Override @Override
public RenderType getRenderType(RgoGrenadeEntity animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) { public RenderType getRenderType(RgoGrenadeEntity animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) {
return RenderType.entityTranslucent(getTextureLocation(animatable)); return RenderType.entityTranslucent(getTextureLocation(animatable));
} }
@Override @Override
public void preRender(PoseStack poseStack, RgoGrenadeEntity entity, BakedGeoModel model, MultiBufferSource bufferSource, VertexConsumer buffer, boolean isReRender, float partialTick, int packedLight, int packedOverlay, float red, float green, public void preRender(PoseStack poseStack, RgoGrenadeEntity entity, BakedGeoModel model, MultiBufferSource bufferSource, VertexConsumer buffer, boolean isReRender, float partialTick, int packedLight, int packedOverlay, float red, float green,
float blue, float alpha) { float blue, float alpha) {
float scale = 1f; float scale = 1f;
this.scaleHeight = scale; this.scaleHeight = scale;
this.scaleWidth = scale; this.scaleWidth = scale;
super.preRender(poseStack, entity, model, bufferSource, buffer, isReRender, partialTick, packedLight, packedOverlay, red, green, blue, alpha); super.preRender(poseStack, entity, model, bufferSource, buffer, isReRender, partialTick, packedLight, packedOverlay, red, green, blue, alpha);
} }
@Override @Override
public void render(RgoGrenadeEntity entityIn, float entityYaw, float partialTicks, PoseStack poseStack, MultiBufferSource bufferIn, int packedLightIn) { public void render(RgoGrenadeEntity entityIn, float entityYaw, float partialTicks, PoseStack poseStack, MultiBufferSource bufferIn, int packedLightIn) {
VertexConsumer vb = bufferIn.getBuffer(RenderType.eyes(this.getTextureLocation(entityIn))); poseStack.pushPose();
poseStack.pushPose(); poseStack.mulPose(Axis.YP.rotationDegrees(Mth.lerp(partialTicks, entityIn.yRotO, entityIn.getYRot()) - 90));
poseStack.mulPose(Axis.YP.rotationDegrees(Mth.lerp(partialTicks, entityIn.yRotO, entityIn.getYRot()) - 90)); poseStack.mulPose(Axis.ZP.rotationDegrees(90 + Mth.lerp(partialTicks, entityIn.xRotO, entityIn.getXRot())));
poseStack.mulPose(Axis.ZP.rotationDegrees(90 + Mth.lerp(partialTicks, entityIn.xRotO, entityIn.getXRot()))); super.render(entityIn, entityYaw, partialTicks, poseStack, bufferIn, packedLightIn);
model.renderToBuffer(poseStack, vb, packedLightIn, OverlayTexture.NO_OVERLAY, 1, 1, 1, 0.0625f); poseStack.popPose();
poseStack.popPose(); }
super.render(entityIn, entityYaw, partialTicks, poseStack, bufferIn, packedLightIn);
}
@Override @Override
protected float getDeathMaxRotation(RgoGrenadeEntity entityLivingBaseIn) { protected float getDeathMaxRotation(RgoGrenadeEntity entityLivingBaseIn) {
return 0.0F; return 0.0F;
} }
} }