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:
NotEvil
2026-04-15 01:55:16 +02:00
parent f085fbfec2
commit 2504b7d657
89 changed files with 2647 additions and 5423 deletions

View File

@@ -2,16 +2,19 @@ package com.tiedup.remake.dispenser;
import com.tiedup.remake.core.TiedUpMod;
import com.tiedup.remake.items.ModItems;
import com.tiedup.remake.items.base.*;
import net.minecraft.world.level.block.DispenserBlock;
/**
* Registration class for all TiedUp dispenser behaviors.
*
* Allows dispensers to:
* - Equip bondage items (binds, gags, blindfolds, collars, earplugs, clothes) on entities
* - Equip bondage items (via data-driven V2 system) on entities
* - Shoot rope arrows
*
* Note: V1 per-variant dispenser registrations have been removed.
* Data-driven bondage items use a single universal dispenser behavior
* registered via DataDrivenBondageItem system.
*
* Based on original behaviors package from 1.12.2
*/
public class DispenserBehaviors {
@@ -25,72 +28,17 @@ public class DispenserBehaviors {
"[DispenserBehaviors] Registering dispenser behaviors..."
);
registerBindBehaviors();
registerGagBehaviors();
registerBlindfoldBehaviors();
registerCollarBehaviors();
registerEarplugsBehaviors();
registerClothesBehaviors();
registerRopeArrowBehavior();
// V2 data-driven bondage items register their own dispenser behaviors
// via DataDrivenBondageItem.registerDispenserBehaviors()
TiedUpMod.LOGGER.info(
"[DispenserBehaviors] Dispenser behaviors registered!"
);
}
private static void registerBindBehaviors() {
var behavior = GenericBondageDispenseBehavior.forBind();
for (BindVariant variant : BindVariant.values()) {
DispenserBlock.registerBehavior(
ModItems.getBind(variant),
behavior
);
}
}
private static void registerGagBehaviors() {
var behavior = GenericBondageDispenseBehavior.forGag();
for (GagVariant variant : GagVariant.values()) {
DispenserBlock.registerBehavior(ModItems.getGag(variant), behavior);
}
DispenserBlock.registerBehavior(ModItems.MEDICAL_GAG.get(), behavior);
DispenserBlock.registerBehavior(ModItems.HOOD.get(), behavior);
}
private static void registerBlindfoldBehaviors() {
var behavior = GenericBondageDispenseBehavior.forBlindfold();
for (BlindfoldVariant variant : BlindfoldVariant.values()) {
DispenserBlock.registerBehavior(
ModItems.getBlindfold(variant),
behavior
);
}
}
private static void registerCollarBehaviors() {
var behavior = GenericBondageDispenseBehavior.forCollar();
DispenserBlock.registerBehavior(
ModItems.CLASSIC_COLLAR.get(),
behavior
);
DispenserBlock.registerBehavior(ModItems.SHOCK_COLLAR.get(), behavior);
DispenserBlock.registerBehavior(
ModItems.SHOCK_COLLAR_AUTO.get(),
behavior
);
DispenserBlock.registerBehavior(ModItems.GPS_COLLAR.get(), behavior);
}
private static void registerEarplugsBehaviors() {
var behavior = GenericBondageDispenseBehavior.forEarplugs();
for (EarplugsVariant variant : EarplugsVariant.values()) {
DispenserBlock.registerBehavior(
ModItems.getEarplugs(variant),
behavior
);
}
}
private static void registerClothesBehaviors() {
DispenserBlock.registerBehavior(
ModItems.CLOTHES.get(),