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

import javax.annotation.Nullable;

import net.minecraft.world.phys.Vec3;
import com.tiedup.remake.rig.anim.Animator;
import com.tiedup.remake.rig.armature.Armature;
import com.tiedup.remake.rig.physics.SimulatableObject;

public interface ClothSimulatable extends SimulatableObject {
	@Nullable
	Armature getArmature();
	
	@Nullable
	Animator getSimulatableAnimator();
	
	boolean invalid();
	public Vec3 getObjectVelocity();
	public float getYRot();
	public float getYRotO();
	
	// Cloth object requires providing location info for 2 steps before for accurate continuous collide detection.
	public Vec3 getAccurateCloakLocation(float partialFrame);
	public Vec3 getAccuratePartialLocation(float partialFrame);
	public float getAccurateYRot(float partialFrame);
	public float getYRotDelta(float partialFrame);
	public float getScale();
	public float getGravity();
	
	ClothSimulator getClothSimulator();
}
