/*
 * 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.patch;

import javax.annotation.Nullable;

import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.Mob;

/**
 * Stub RIG Phase 0 — patch générique pour {@link Mob} (NPCs). Utilisé par
 * {@code instanceof MobPatch<?>} dans les YRotProvider pour rediriger la tête
 * et stopper la navigation pendant une animation. Version complète Phase 2.
 */
public abstract class MobPatch<T extends Mob> extends LivingEntityPatch<T> {

	/**
	 * Override conforme à EF {@code yesman.epicfight.world.capabilities.entitypatch.MobPatch:171-174}.
	 * Sans cet override, {@code MoveCoordFunctions.MOB_ATTACK_TARGET_LOOK} recevrait la sémantique
	 * de base {@link LivingEntityPatch#getTarget()} = {@code getLastHurtMob()} (dernier mob qui m'a
	 * frappé) au lieu de {@code Mob.getTarget()} (cible AI courante) → NPC ne tourne pas vers sa
	 * cible pendant une attack animation.
	 */
	@Override
	@Nullable
	public LivingEntity getTarget() {
		return this.original != null ? this.original.getTarget() : null;
	}
}
