Code/net/minecraft/client/renderer/entity/SalmonRenderer.java

70 lines
2.9 KiB
Java
Raw Permalink Normal View History

2025-07-01 06:20:03 +00:00
package net.minecraft.client.renderer.entity;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Axis;
import net.minecraft.client.model.SalmonModel;
import net.minecraft.client.model.geom.ModelLayers;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.entity.state.SalmonRenderState;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.animal.Salmon;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
@OnlyIn(Dist.CLIENT)
public class SalmonRenderer extends MobRenderer<Salmon, SalmonRenderState, SalmonModel> {
private static final ResourceLocation SALMON_LOCATION = ResourceLocation.withDefaultNamespace("textures/entity/fish/salmon.png");
private final SalmonModel smallSalmonModel;
private final SalmonModel mediumSalmonModel;
private final SalmonModel largeSalmonModel;
public SalmonRenderer(EntityRendererProvider.Context p_174364_) {
super(p_174364_, new SalmonModel(p_174364_.bakeLayer(ModelLayers.SALMON)), 0.4F);
this.smallSalmonModel = new SalmonModel(p_174364_.bakeLayer(ModelLayers.SALMON_SMALL));
this.mediumSalmonModel = new SalmonModel(p_174364_.bakeLayer(ModelLayers.SALMON));
this.largeSalmonModel = new SalmonModel(p_174364_.bakeLayer(ModelLayers.SALMON_LARGE));
}
public void extractRenderState(Salmon p_368522_, SalmonRenderState p_369928_, float p_363641_) {
super.extractRenderState(p_368522_, p_369928_, p_363641_);
p_369928_.variant = p_368522_.getVariant();
}
public ResourceLocation getTextureLocation(SalmonRenderState p_363562_) {
return SALMON_LOCATION;
}
public SalmonRenderState createRenderState() {
return new SalmonRenderState();
}
protected void setupRotations(SalmonRenderState p_363147_, PoseStack p_115829_, float p_115830_, float p_115831_) {
super.setupRotations(p_363147_, p_115829_, p_115830_, p_115831_);
float f = 1.0F;
float f1 = 1.0F;
if (!p_363147_.isInWater) {
f = 1.3F;
f1 = 1.7F;
}
float f2 = f * 4.3F * Mth.sin(f1 * 0.6F * p_363147_.ageInTicks);
p_115829_.mulPose(Axis.YP.rotationDegrees(f2));
if (!p_363147_.isInWater) {
p_115829_.translate(0.2F, 0.1F, 0.0F);
p_115829_.mulPose(Axis.ZP.rotationDegrees(90.0F));
}
}
public void render(SalmonRenderState p_364512_, PoseStack p_368878_, MultiBufferSource p_363357_, int p_365924_) {
if (p_364512_.variant == Salmon.Variant.SMALL) {
this.model = this.smallSalmonModel;
} else if (p_364512_.variant == Salmon.Variant.LARGE) {
this.model = this.largeSalmonModel;
} else {
this.model = this.mediumSalmonModel;
}
super.render(p_364512_, p_368878_, p_363357_, p_365924_);
}
}