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() ); } }