Files
TiedUp-/src/main/java/com/tiedup/remake/client/renderer/NpcFishingBobberRenderer.java
NotEvil f6466360b6 Clean repo for open source release
Remove build artifacts, dev tool configs, unused dependencies,
and third-party source dumps. Add proper README, update .gitignore,
clean up Makefile.
2026-04-12 00:51:22 +02:00

95 lines
2.9 KiB
Java

package com.tiedup.remake.client.renderer;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Axis;
import com.tiedup.remake.entities.NpcFishingBobber;
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.resources.ResourceLocation;
import org.joml.Matrix3f;
import org.joml.Matrix4f;
/**
* Renderer for NpcFishingBobber.
*
* Renders a textured quad using the vanilla fishing hook texture.
* Billboard-style: always faces the camera.
*/
public class NpcFishingBobberRenderer extends EntityRenderer<NpcFishingBobber> {
private static final ResourceLocation TEXTURE = new ResourceLocation(
"textures/entity/fishing_hook.png"
);
private static final RenderType RENDER_TYPE = RenderType.entityCutout(
TEXTURE
);
public NpcFishingBobberRenderer(EntityRendererProvider.Context ctx) {
super(ctx);
}
@Override
public void render(
NpcFishingBobber entity,
float yaw,
float partialTick,
PoseStack poseStack,
MultiBufferSource bufferSource,
int packedLight
) {
poseStack.pushPose();
poseStack.scale(0.5F, 0.5F, 0.5F);
poseStack.mulPose(this.entityRenderDispatcher.cameraOrientation());
poseStack.mulPose(Axis.YP.rotationDegrees(180.0F));
VertexConsumer vertexConsumer = bufferSource.getBuffer(RENDER_TYPE);
PoseStack.Pose pose = poseStack.last();
Matrix4f matrix4f = pose.pose();
Matrix3f matrix3f = pose.normal();
vertex(vertexConsumer, matrix4f, matrix3f, packedLight, 0.0F, 0, 0, 1);
vertex(vertexConsumer, matrix4f, matrix3f, packedLight, 1.0F, 0, 1, 1);
vertex(vertexConsumer, matrix4f, matrix3f, packedLight, 1.0F, 1, 1, 0);
vertex(vertexConsumer, matrix4f, matrix3f, packedLight, 0.0F, 1, 0, 0);
poseStack.popPose();
super.render(
entity,
yaw,
partialTick,
poseStack,
bufferSource,
packedLight
);
}
private static void vertex(
VertexConsumer consumer,
Matrix4f matrix4f,
Matrix3f matrix3f,
int packedLight,
float x,
int y,
int u,
int v
) {
consumer
.vertex(matrix4f, x - 0.5F, y - 0.5F, 0.0F)
.color(255, 255, 255, 255)
.uv((float) u, (float) v)
.overlayCoords(OverlayTexture.NO_OVERLAY)
.uv2(packedLight)
.normal(matrix3f, 0.0F, 1.0F, 0.0F)
.endVertex();
}
@Override
public ResourceLocation getTextureLocation(NpcFishingBobber entity) {
return TEXTURE;
}
}