/*
 * Derived from Epic Fight (https://github.com/Epic-Fight/epicfight)
 * by the Epic Fight Team, licensed under GPLv3.
 * Modifications © 2026 TiedUp! Remake Contributors, distributed under GPLv3.
 */

package com.tiedup.remake.rig.mixin.client;

import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Invoker;

import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.entity.LivingEntityRenderer;
import net.minecraft.world.entity.LivingEntity;

/**
 * Expose les méthodes protected {@code isBodyVisible}, {@code getRenderType}
 * et {@code getBob} de {@link LivingEntityRenderer} pour que
 * {@link com.tiedup.remake.rig.render.PatchedLivingEntityRenderer#render}
 * puisse les appeler sans dépendre d'access transformers lourds.
 *
 * <p>Pure @Invoker mixin — équivalent EF de
 * {@code yesman.epicfight.mixin.client.MixinLivingEntityRenderer}.</p>
 */
@Mixin(value = LivingEntityRenderer.class)
public interface MixinLivingEntityRenderer {

	@Invoker("isBodyVisible")
	boolean invokeIsBodyVisible(LivingEntity entity);

	@Invoker("getRenderType")
	RenderType invokeGetRenderType(LivingEntity entity, boolean isVisible, boolean isVisibleToPlayer, boolean isGlowing);

	@Invoker("getBob")
	float invokeGetBob(LivingEntity entity, float partialTicks);
}
