2025-11-24 22:52:51 +03:00

63 lines
2.5 KiB
Java

/*
* Decompiled with CFR 0.152.
*
* Could not load the following classes:
* org.joml.Quaternionfc
*/
package net.minecraft.client.renderer.entity;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Axis;
import net.minecraft.client.model.IronGolemModel;
import net.minecraft.client.model.geom.ModelLayers;
import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.client.renderer.entity.MobRenderer;
import net.minecraft.client.renderer.entity.layers.IronGolemCrackinessLayer;
import net.minecraft.client.renderer.entity.layers.IronGolemFlowerLayer;
import net.minecraft.client.renderer.entity.state.IronGolemRenderState;
import net.minecraft.resources.Identifier;
import net.minecraft.world.entity.animal.IronGolem;
import org.joml.Quaternionfc;
public class IronGolemRenderer
extends MobRenderer<IronGolem, IronGolemRenderState, IronGolemModel> {
private static final Identifier GOLEM_LOCATION = Identifier.withDefaultNamespace("textures/entity/iron_golem/iron_golem.png");
public IronGolemRenderer(EntityRendererProvider.Context context) {
super(context, new IronGolemModel(context.bakeLayer(ModelLayers.IRON_GOLEM)), 0.7f);
this.addLayer(new IronGolemCrackinessLayer(this));
this.addLayer(new IronGolemFlowerLayer(this, context.getBlockRenderDispatcher()));
}
@Override
public Identifier getTextureLocation(IronGolemRenderState state) {
return GOLEM_LOCATION;
}
@Override
public IronGolemRenderState createRenderState() {
return new IronGolemRenderState();
}
@Override
public void extractRenderState(IronGolem entity, IronGolemRenderState state, float partialTicks) {
super.extractRenderState(entity, state, partialTicks);
state.attackTicksRemaining = (float)entity.getAttackAnimationTick() > 0.0f ? (float)entity.getAttackAnimationTick() - partialTicks : 0.0f;
state.offerFlowerTick = entity.getOfferFlowerTick();
state.crackiness = entity.getCrackiness();
}
@Override
protected void setupRotations(IronGolemRenderState state, PoseStack poseStack, float bodyRot, float entityScale) {
super.setupRotations(state, poseStack, bodyRot, entityScale);
if ((double)state.walkAnimationSpeed < 0.01) {
return;
}
float p = 13.0f;
float wp = state.walkAnimationPos + 6.0f;
float triangleWave = (Math.abs(wp % 13.0f - 6.5f) - 3.25f) / 3.25f;
poseStack.mulPose((Quaternionfc)Axis.ZP.rotationDegrees(6.5f * triangleWave));
}
}