// Path: src/main/java/uk/kihira/gltf/Model.java
// public class Model implements IDisposable
// {
//     private final ArrayList<Node> allNodes;
//     private final ArrayList<Node> rootNodes;
//     private final HashMap<String, Animation> animations;
//     private final ArrayList<ResourceLocation> textures;
// 
//     public Model(ArrayList<Node> allNodes, ArrayList<Node> rootNodes, HashMap<String, Animation> animations, ArrayList<ResourceLocation> textures) {
//         this.allNodes = allNodes;
//         this.rootNodes = rootNodes;
//         this.animations = animations;
//         this.textures = textures;
//     }
// 
//     public void render(MatrixStack matrixStack)
//     {
//         for (Node node : rootNodes)
//         {
//             node.render(matrixStack);
//         }
//     }
// 
//     public void dispose()
//     {
//         allNodes.forEach(Node::dispose);
// 
//         // Textures
//         textures.forEach(texture -> Minecraft.getInstance().getTextureManager().deleteTexture(texture));
//         textures.clear();
//     }
// }


import uk.kihira.gltf.Model;
import javax.annotation.Nullable;
import java.util.UUID;
package uk.kihira.tails.client;



/**
 * Represents a Part that has a name, author, model and various details about how it should render
 */
@Nullable
public final class Part {
    // Non render details
    public final UUID id; // A UUID for a file that contains the model and texture. Also the UUID for the part
    public final String author;
    public final String name;
    public final String[] tags = new String[]{};
    public final int category = 0;

    public final MountPoint mountPoint;
    public final float[] mountOffset;
    public final float[] rotation;
    public final float[] scale;
    public final float[][] tint;
    public final UUID[] textures;

// Path: src/main/java/uk/kihira/gltf/Model.java
// public class Model implements IDisposable
// {
//     private final ArrayList<Node> allNodes;
//     private final ArrayList<Node> rootNodes;
//     private final HashMap<String, Animation> animations;
//     private final ArrayList<ResourceLocation> textures;
// 
//     public Model(ArrayList<Node> allNodes, ArrayList<Node> rootNodes, HashMap<String, Animation> animations, ArrayList<ResourceLocation> textures) {
//         this.allNodes = allNodes;
//         this.rootNodes = rootNodes;
//         this.animations = animations;
//         this.textures = textures;
//     }
// 
//     public void render(MatrixStack matrixStack)
//     {
//         for (Node node : rootNodes)
//         {
//             node.render(matrixStack);
//         }
//     }
// 
//     public void dispose()
//     {
//         allNodes.forEach(Node::dispose);
// 
//         // Textures
//         textures.forEach(texture -> Minecraft.getInstance().getTextureManager().deleteTexture(texture));
//         textures.clear();
//     }
// }


// Path: src/main/java/uk/kihira/tails/client/Part.java
import uk.kihira.gltf.Model;
import javax.annotation.Nullable;
import java.util.UUID;

package uk.kihira.tails.client;



/**
 * Represents a Part that has a name, author, model and various details about how it should render
 */
@Nullable
public final class Part {
    // Non render details
    public final UUID id; // A UUID for a file that contains the model and texture. Also the UUID for the part
    public final String author;
    public final String name;
    public final String[] tags = new String[]{};
    public final int category = 0;

    public final MountPoint mountPoint;
    public final float[] mountOffset;
    public final float[] rotation;
    public final float[] scale;
    public final float[][] tint;
    public final UUID[] textures;

    private transient Model model;