feat(D-01/D): V1 cleanup — delete 28 files, ~5400 lines removed
D1: ThreadLocal alert suppression moved from ItemCollar to CollarHelper.
onCollarRemoved() logic (kidnapper alert) moved to CollarHelper.
D2+D3: Deleted 17 V1 item classes + 4 V1-only interfaces:
ItemBind, ItemGag, ItemBlindfold, ItemCollar, ItemEarplugs, ItemMittens,
ItemColor, ItemClassicCollar, ItemShockCollar, ItemShockCollarAuto,
ItemGpsCollar, ItemChokeCollar, ItemHood, ItemMedicalGag,
IBondageItem, IHasGaggingEffect, IHasBlindingEffect, IAdjustable
D4: KidnapperTheme/KidnapperItemSelector/DispenserBehaviors migrated
from variant enums to string-based DataDrivenItemRegistry IDs.
D5: Deleted 11 variant enums + Generic* factories + ItemBallGag3D:
BindVariant, GagVariant, BlindfoldVariant, EarplugsVariant, MittensVariant,
GenericBind, GenericGag, GenericBlindfold, GenericEarplugs, GenericMittens
D6: ModItems cleaned — all V1 bondage registrations removed.
D7: ModCreativeTabs rewritten — iterates DataDrivenItemRegistry.
D8+D9: All V2 helpers cleaned (V1 fallbacks removed), orphan imports removed.
Zero V1 bondage code references remain (only Javadoc comments).
All bondage items are now data-driven via 47 JSON definitions.
This commit is contained in:
@@ -1,42 +1,33 @@
|
||||
package com.tiedup.remake.entities;
|
||||
|
||||
import com.tiedup.remake.items.base.BindVariant;
|
||||
import com.tiedup.remake.items.base.BlindfoldVariant;
|
||||
import com.tiedup.remake.items.base.GagVariant;
|
||||
import java.util.Random;
|
||||
|
||||
/**
|
||||
* Defines themed item sets for kidnappers.
|
||||
* Each theme groups compatible binds, gags, and blindfolds.
|
||||
* Each theme groups compatible binds, gags, and blindfolds by registry name.
|
||||
*
|
||||
* Themes are selected randomly with weighted probabilities.
|
||||
* Higher weight = more common theme.
|
||||
*
|
||||
* Note: Natural themes (SLIME, VINE, WEB) are reserved for monsters.
|
||||
*
|
||||
* Registry names correspond to data-driven bondage item IDs in DataDrivenItemRegistry.
|
||||
*/
|
||||
public enum KidnapperTheme {
|
||||
// === ROPE THEMES (most common) ===
|
||||
|
||||
ROPE(
|
||||
BindVariant.ROPES,
|
||||
new GagVariant[] {
|
||||
GagVariant.ROPES_GAG,
|
||||
GagVariant.CLOTH_GAG,
|
||||
GagVariant.CLEAVE_GAG,
|
||||
},
|
||||
new BlindfoldVariant[] { BlindfoldVariant.CLASSIC },
|
||||
"ropes",
|
||||
new String[] { "ropes_gag", "cloth_gag", "cleave_gag" },
|
||||
new String[] { "classic_blindfold" },
|
||||
true, // supportsColor
|
||||
30 // weight (spawn probability)
|
||||
),
|
||||
|
||||
SHIBARI(
|
||||
BindVariant.SHIBARI,
|
||||
new GagVariant[] {
|
||||
GagVariant.ROPES_GAG,
|
||||
GagVariant.CLOTH_GAG,
|
||||
GagVariant.RIBBON_GAG,
|
||||
},
|
||||
new BlindfoldVariant[] { BlindfoldVariant.CLASSIC },
|
||||
"shibari",
|
||||
new String[] { "ropes_gag", "cloth_gag", "ribbon_gag" },
|
||||
new String[] { "classic_blindfold" },
|
||||
true,
|
||||
15
|
||||
),
|
||||
@@ -44,9 +35,9 @@ public enum KidnapperTheme {
|
||||
// === TAPE THEME ===
|
||||
|
||||
TAPE(
|
||||
BindVariant.DUCT_TAPE,
|
||||
new GagVariant[] { GagVariant.TAPE_GAG, GagVariant.WRAP_GAG },
|
||||
new BlindfoldVariant[] { BlindfoldVariant.MASK },
|
||||
"duct_tape",
|
||||
new String[] { "tape_gag", "wrap_gag" },
|
||||
new String[] { "mask_blindfold" },
|
||||
true,
|
||||
20
|
||||
),
|
||||
@@ -54,13 +45,9 @@ public enum KidnapperTheme {
|
||||
// === LEATHER/BDSM THEME ===
|
||||
|
||||
LEATHER(
|
||||
BindVariant.LEATHER_STRAPS,
|
||||
new GagVariant[] {
|
||||
GagVariant.BALL_GAG,
|
||||
GagVariant.BALL_GAG_STRAP,
|
||||
GagVariant.PANEL_GAG,
|
||||
},
|
||||
new BlindfoldVariant[] { BlindfoldVariant.MASK },
|
||||
"leather_straps",
|
||||
new String[] { "ball_gag", "ball_gag_strap", "panel_gag" },
|
||||
new String[] { "mask_blindfold" },
|
||||
false,
|
||||
15
|
||||
),
|
||||
@@ -68,12 +55,9 @@ public enum KidnapperTheme {
|
||||
// === CHAIN THEME ===
|
||||
|
||||
CHAIN(
|
||||
BindVariant.CHAIN,
|
||||
new GagVariant[] {
|
||||
GagVariant.CHAIN_PANEL_GAG,
|
||||
GagVariant.BALL_GAG_STRAP,
|
||||
},
|
||||
new BlindfoldVariant[] { BlindfoldVariant.MASK },
|
||||
"chain",
|
||||
new String[] { "chain_panel_gag", "ball_gag_strap" },
|
||||
new String[] { "mask_blindfold" },
|
||||
false,
|
||||
10
|
||||
),
|
||||
@@ -81,13 +65,9 @@ public enum KidnapperTheme {
|
||||
// === MEDICAL THEME ===
|
||||
|
||||
MEDICAL(
|
||||
BindVariant.MEDICAL_STRAPS,
|
||||
new GagVariant[] {
|
||||
GagVariant.TUBE_GAG,
|
||||
GagVariant.SPONGE_GAG,
|
||||
GagVariant.BALL_GAG,
|
||||
},
|
||||
new BlindfoldVariant[] { BlindfoldVariant.MASK },
|
||||
"medical_straps",
|
||||
new String[] { "tube_gag", "sponge_gag", "ball_gag" },
|
||||
new String[] { "mask_blindfold" },
|
||||
false,
|
||||
8
|
||||
),
|
||||
@@ -95,9 +75,9 @@ public enum KidnapperTheme {
|
||||
// === SCI-FI/BEAM THEME ===
|
||||
|
||||
BEAM(
|
||||
BindVariant.BEAM_CUFFS,
|
||||
new GagVariant[] { GagVariant.BEAM_PANEL_GAG, GagVariant.LATEX_GAG },
|
||||
new BlindfoldVariant[] { BlindfoldVariant.MASK },
|
||||
"beam_cuffs",
|
||||
new String[] { "beam_panel_gag", "latex_gag" },
|
||||
new String[] { "mask_blindfold" },
|
||||
false,
|
||||
5
|
||||
),
|
||||
@@ -105,9 +85,9 @@ public enum KidnapperTheme {
|
||||
// === LATEX THEME (rare) ===
|
||||
|
||||
LATEX(
|
||||
BindVariant.LATEX_SACK,
|
||||
new GagVariant[] { GagVariant.LATEX_GAG, GagVariant.TUBE_GAG },
|
||||
new BlindfoldVariant[] { BlindfoldVariant.MASK },
|
||||
"latex_sack",
|
||||
new String[] { "latex_gag", "tube_gag" },
|
||||
new String[] { "mask_blindfold" },
|
||||
false,
|
||||
3
|
||||
),
|
||||
@@ -115,13 +95,9 @@ public enum KidnapperTheme {
|
||||
// === ASYLUM THEME (rare) ===
|
||||
|
||||
ASYLUM(
|
||||
BindVariant.STRAITJACKET,
|
||||
new GagVariant[] {
|
||||
GagVariant.BITE_GAG,
|
||||
GagVariant.SPONGE_GAG,
|
||||
GagVariant.BALL_GAG,
|
||||
},
|
||||
new BlindfoldVariant[] { BlindfoldVariant.MASK },
|
||||
"straitjacket",
|
||||
new String[] { "bite_gag", "sponge_gag", "ball_gag" },
|
||||
new String[] { "mask_blindfold" },
|
||||
false,
|
||||
5
|
||||
),
|
||||
@@ -129,9 +105,9 @@ public enum KidnapperTheme {
|
||||
// === RIBBON THEME (cute/playful) ===
|
||||
|
||||
RIBBON(
|
||||
BindVariant.RIBBON,
|
||||
new GagVariant[] { GagVariant.RIBBON_GAG, GagVariant.CLOTH_GAG },
|
||||
new BlindfoldVariant[] { BlindfoldVariant.CLASSIC },
|
||||
"ribbon",
|
||||
new String[] { "ribbon_gag", "cloth_gag" },
|
||||
new String[] { "classic_blindfold" },
|
||||
false,
|
||||
8
|
||||
),
|
||||
@@ -139,54 +115,54 @@ public enum KidnapperTheme {
|
||||
// === WRAP THEME ===
|
||||
|
||||
WRAP(
|
||||
BindVariant.WRAP,
|
||||
new GagVariant[] { GagVariant.WRAP_GAG, GagVariant.TAPE_GAG },
|
||||
new BlindfoldVariant[] { BlindfoldVariant.MASK },
|
||||
"wrap",
|
||||
new String[] { "wrap_gag", "tape_gag" },
|
||||
new String[] { "mask_blindfold" },
|
||||
false,
|
||||
5
|
||||
);
|
||||
|
||||
private static final Random RANDOM = new Random();
|
||||
|
||||
private final BindVariant bind;
|
||||
private final GagVariant[] gags;
|
||||
private final BlindfoldVariant[] blindfolds;
|
||||
private final String bindId;
|
||||
private final String[] gagIds;
|
||||
private final String[] blindfoldIds;
|
||||
private final boolean supportsColor;
|
||||
private final int weight;
|
||||
|
||||
KidnapperTheme(
|
||||
BindVariant bind,
|
||||
GagVariant[] gags,
|
||||
BlindfoldVariant[] blindfolds,
|
||||
String bindId,
|
||||
String[] gagIds,
|
||||
String[] blindfoldIds,
|
||||
boolean supportsColor,
|
||||
int weight
|
||||
) {
|
||||
this.bind = bind;
|
||||
this.gags = gags;
|
||||
this.blindfolds = blindfolds;
|
||||
this.bindId = bindId;
|
||||
this.gagIds = gagIds;
|
||||
this.blindfoldIds = blindfoldIds;
|
||||
this.supportsColor = supportsColor;
|
||||
this.weight = weight;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the primary bind for this theme.
|
||||
* Get the primary bind registry name for this theme.
|
||||
*/
|
||||
public BindVariant getBind() {
|
||||
return bind;
|
||||
public String getBindId() {
|
||||
return bindId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get compatible gags for this theme (ordered by preference).
|
||||
* Get compatible gag IDs for this theme (ordered by preference).
|
||||
*/
|
||||
public GagVariant[] getGags() {
|
||||
return gags;
|
||||
public String[] getGagIds() {
|
||||
return gagIds;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get compatible blindfolds for this theme.
|
||||
* Get compatible blindfold IDs for this theme.
|
||||
*/
|
||||
public BlindfoldVariant[] getBlindfolds() {
|
||||
return blindfolds;
|
||||
public String[] getBlindfoldIds() {
|
||||
return blindfoldIds;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -206,41 +182,40 @@ public enum KidnapperTheme {
|
||||
}
|
||||
|
||||
/**
|
||||
* Get primary gag (first in list).
|
||||
* Used when only one gag is selected.
|
||||
* Get primary gag ID (first in list).
|
||||
*/
|
||||
public GagVariant getPrimaryGag() {
|
||||
return gags.length > 0 ? gags[0] : GagVariant.BALL_GAG;
|
||||
public String getPrimaryGagId() {
|
||||
return gagIds.length > 0 ? gagIds[0] : "ball_gag";
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a random gag from this theme's compatible list.
|
||||
* Get a random gag ID from this theme's compatible list.
|
||||
*/
|
||||
public GagVariant getRandomGag() {
|
||||
if (gags.length == 0) return GagVariant.BALL_GAG;
|
||||
return gags[RANDOM.nextInt(gags.length)];
|
||||
public String getRandomGagId() {
|
||||
if (gagIds.length == 0) return "ball_gag";
|
||||
return gagIds[RANDOM.nextInt(gagIds.length)];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get primary blindfold (first in list).
|
||||
* Get primary blindfold ID (first in list).
|
||||
*/
|
||||
public BlindfoldVariant getPrimaryBlindfold() {
|
||||
return blindfolds.length > 0 ? blindfolds[0] : BlindfoldVariant.CLASSIC;
|
||||
public String getPrimaryBlindfoldId() {
|
||||
return blindfoldIds.length > 0 ? blindfoldIds[0] : "classic_blindfold";
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a random blindfold from this theme's compatible list.
|
||||
* Get a random blindfold ID from this theme's compatible list.
|
||||
*/
|
||||
public BlindfoldVariant getRandomBlindfold() {
|
||||
if (blindfolds.length == 0) return BlindfoldVariant.CLASSIC;
|
||||
return blindfolds[RANDOM.nextInt(blindfolds.length)];
|
||||
public String getRandomBlindfoldId() {
|
||||
if (blindfoldIds.length == 0) return "classic_blindfold";
|
||||
return blindfoldIds[RANDOM.nextInt(blindfoldIds.length)];
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if this theme has any blindfolds.
|
||||
*/
|
||||
public boolean hasBlindfolds() {
|
||||
return blindfolds.length > 0;
|
||||
return blindfoldIds.length > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user