minecraft-src/net/minecraft/client/renderer/entity/layers/DolphinCarryingItemLayer.java
2025-07-04 01:41:11 +03:00

52 lines
1.8 KiB
Java

package net.minecraft.client.renderer.entity.layers;
import com.mojang.blaze3d.vertex.PoseStack;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.model.DolphinModel;
import net.minecraft.client.renderer.ItemInHandRenderer;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.entity.RenderLayerParent;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.HumanoidArm;
import net.minecraft.world.entity.animal.Dolphin;
import net.minecraft.world.item.ItemDisplayContext;
import net.minecraft.world.item.ItemStack;
@Environment(EnvType.CLIENT)
public class DolphinCarryingItemLayer extends RenderLayer<Dolphin, DolphinModel<Dolphin>> {
private final ItemInHandRenderer itemInHandRenderer;
public DolphinCarryingItemLayer(RenderLayerParent<Dolphin, DolphinModel<Dolphin>> renderer, ItemInHandRenderer itemInHandRenderer) {
super(renderer);
this.itemInHandRenderer = itemInHandRenderer;
}
public void render(
PoseStack poseStack,
MultiBufferSource buffer,
int packedLight,
Dolphin livingEntity,
float limbSwing,
float limbSwingAmount,
float partialTicks,
float ageInTicks,
float netHeadYaw,
float headPitch
) {
boolean bl = livingEntity.getMainArm() == HumanoidArm.RIGHT;
poseStack.pushPose();
float f = 1.0F;
float g = -1.0F;
float h = Mth.abs(livingEntity.getXRot()) / 60.0F;
if (livingEntity.getXRot() < 0.0F) {
poseStack.translate(0.0F, 1.0F - h * 0.5F, -1.0F + h * 0.5F);
} else {
poseStack.translate(0.0F, 1.0F + h * 0.8F, -1.0F + h * 0.2F);
}
ItemStack itemStack = bl ? livingEntity.getMainHandItem() : livingEntity.getOffhandItem();
this.itemInHandRenderer.renderItem(livingEntity, itemStack, ItemDisplayContext.GROUND, false, poseStack, buffer, packedLight);
poseStack.popPose();
}
}