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.
56 lines
1.6 KiB
Java
56 lines
1.6 KiB
Java
package com.tiedup.remake.dispenser;
|
|
|
|
import com.tiedup.remake.core.TiedUpMod;
|
|
import com.tiedup.remake.items.ModItems;
|
|
import net.minecraft.world.level.block.DispenserBlock;
|
|
|
|
/**
|
|
* Registration class for all TiedUp dispenser behaviors.
|
|
*
|
|
* Allows dispensers to:
|
|
* - 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 {
|
|
|
|
/**
|
|
* Register all dispenser behaviors.
|
|
* Should be called from TiedUpMod.commonSetup() using enqueueWork().
|
|
*/
|
|
public static void register() {
|
|
TiedUpMod.LOGGER.info(
|
|
"[DispenserBehaviors] Registering dispenser behaviors..."
|
|
);
|
|
|
|
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 registerClothesBehaviors() {
|
|
DispenserBlock.registerBehavior(
|
|
ModItems.CLOTHES.get(),
|
|
new ClothesDispenseBehavior()
|
|
);
|
|
}
|
|
|
|
private static void registerRopeArrowBehavior() {
|
|
DispenserBlock.registerBehavior(
|
|
ModItems.ROPE_ARROW.get(),
|
|
new RopeArrowDispenseBehavior()
|
|
);
|
|
}
|
|
}
|