Files
TiedUp-/src/main/java/com/tiedup/remake/items/base/BindVariant.java
NotEvil a71093ba9c Remove internal phase comments and format code
Strip all Phase references, TODO/FUTURE roadmap notes, and internal
planning comments from the codebase. Run Prettier for consistent
formatting across all Java files.
2026-04-12 01:25:55 +02:00

91 lines
3.0 KiB
Java

package com.tiedup.remake.items.base;
/**
* Enum defining all bind variants with their properties.
* Used by GenericBind to create bind items via factory pattern.
*
* <p><b>Issue #12 fix:</b> Added textureSubfolder to eliminate 40+ string checks in renderers.
*/
public enum BindVariant {
// Standard binds (PoseType.STANDARD)
ROPES("ropes", PoseType.STANDARD, true, "ropes"),
ARMBINDER("armbinder", PoseType.STANDARD, false, "armbinder"),
DOGBINDER("dogbinder", PoseType.DOG, false, "armbinder"),
CHAIN("chain", PoseType.STANDARD, false, "chain"),
RIBBON("ribbon", PoseType.STANDARD, false, "ribbon"),
SLIME("slime", PoseType.STANDARD, false, "slime"),
VINE_SEED("vine_seed", PoseType.STANDARD, false, "vine"),
WEB_BIND("web_bind", PoseType.STANDARD, false, "web"),
SHIBARI("shibari", PoseType.STANDARD, true, "shibari"),
LEATHER_STRAPS("leather_straps", PoseType.STANDARD, false, "straps"),
MEDICAL_STRAPS("medical_straps", PoseType.STANDARD, false, "straps"),
BEAM_CUFFS("beam_cuffs", PoseType.STANDARD, false, "beam"),
DUCT_TAPE("duct_tape", PoseType.STANDARD, true, "tape"),
// Pose items (special PoseType)
STRAITJACKET("straitjacket", PoseType.STRAITJACKET, false, "straitjacket"),
WRAP("wrap", PoseType.WRAP, false, "wrap"),
LATEX_SACK("latex_sack", PoseType.LATEX_SACK, false, "latex");
private final String registryName;
private final PoseType poseType;
private final boolean supportsColor;
private final String textureSubfolder;
BindVariant(
String registryName,
PoseType poseType,
boolean supportsColor,
String textureSubfolder
) {
this.registryName = registryName;
this.poseType = poseType;
this.supportsColor = supportsColor;
this.textureSubfolder = textureSubfolder;
}
public String getRegistryName() {
return registryName;
}
/**
* Get the configured resistance for this bind variant.
* Delegates to {@link com.tiedup.remake.core.SettingsAccessor#getBindResistance(String)}.
*/
public int getResistance() {
return com.tiedup.remake.core.SettingsAccessor.getBindResistance(
registryName
);
}
public PoseType getPoseType() {
return poseType;
}
/**
* Check if this bind variant supports color variations.
* Items with colors: ropes, shibari, duct_tape
*/
public boolean supportsColor() {
return supportsColor;
}
/**
* Get the texture subfolder for this bind variant.
* Used by renderers to locate texture files.
*
* @return Subfolder path under textures/entity/bondage/ (e.g., "ropes", "straps")
*/
public String getTextureSubfolder() {
return textureSubfolder;
}
/**
* Get the item name used for textures and translations.
* For most variants this is the same as registryName.
*/
public String getItemName() {
return registryName;
}
}