Files
TiedUp-/src/main/java/com/tiedup/remake/entities/KidnapperVariant.java
NotEvil f6466360b6 Clean repo for open source release
Remove build artifacts, dev tool configs, unused dependencies,
and third-party source dumps. Add proper README, update .gitignore,
clean up Makefile.
2026-04-12 00:51:22 +02:00

113 lines
3.3 KiB
Java

package com.tiedup.remake.entities;
import com.tiedup.remake.entities.skins.Gender;
import com.tiedup.remake.entities.skins.SkinVariant;
import net.minecraft.resources.ResourceLocation;
/**
* Represents a kidnapper skin variant with metadata.
*
* All skins from kidnapper folder, random selection.
*
* @param id Unique identifier (e.g., "knp_mob_1", "blake")
* @param texture Skin texture location
* @param hasSlimArms True for Alex/slim model (3px arms), false for Steve/normal (4px arms)
* @param defaultName Default display name for this variant
* @param gender Gender of the skin (default FEMALE)
*/
public record KidnapperVariant(
String id,
ResourceLocation texture,
boolean hasSlimArms,
String defaultName,
Gender gender
) implements SkinVariant {
/**
* Create a kidnapper variant from texture name.
*
* @param textureName Texture file name without extension (e.g., "knp_mob_1", "blake")
* @param hasSlimArms True if this variant uses slim arms
* @return Kidnapper variant
*/
public static KidnapperVariant create(
String textureName,
boolean hasSlimArms
) {
return create(textureName, hasSlimArms, "Kidnapper");
}
/**
* Create a kidnapper variant from texture name with custom display name.
*
* @param textureName Texture file name without extension
* @param hasSlimArms True if this variant uses slim arms
* @param displayName Display name for this variant
* @return Kidnapper variant
*/
public static KidnapperVariant create(
String textureName,
boolean hasSlimArms,
String displayName
) {
return new KidnapperVariant(
textureName,
ResourceLocation.fromNamespaceAndPath(
"tiedup",
"textures/entity/kidnapper/" + textureName + ".png"
),
hasSlimArms,
displayName,
Gender.FEMALE
);
}
/**
* Create a variant with a custom texture subfolder.
* Used by MaidSkinManager, TraderSkinManager, etc.
*
* @param textureName Texture file name without extension
* @param subfolder Subfolder under kidnapper/ (e.g., "maid", "trader")
* @param hasSlimArms True if this variant uses slim arms
* @param displayName Display name for this variant (required)
* @param gender Gender of the variant
* @return Kidnapper variant
*/
public static KidnapperVariant createWithSubfolder(
String textureName,
String subfolder,
boolean hasSlimArms,
String displayName,
Gender gender
) {
return new KidnapperVariant(
textureName,
ResourceLocation.fromNamespaceAndPath(
"tiedup",
"textures/entity/kidnapper/" +
subfolder +
"/" +
textureName +
".png"
),
hasSlimArms,
displayName,
gender
);
}
@Override
public String toString() {
return (
"KidnapperVariant{id='" +
id +
"', slim=" +
hasSlimArms +
", name='" +
defaultName +
"', gender=" +
gender +
"}"
);
}
}