package com.tiedup.remake.v2.bondage;

import com.tiedup.remake.core.TiedUpMod;
import com.tiedup.remake.v2.bondage.datadriven.DataDrivenBondageItem;
import com.tiedup.remake.v2.bondage.items.V2Handcuffs;
import com.tiedup.remake.v2.furniture.FurniturePlacerItem;
import net.minecraft.world.item.Item;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;

/**
 * DeferredRegister for V2 bondage items.
 * Separate from V2Items (which registers block items).
 */
public class V2BondageItems {

    public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(
        ForgeRegistries.ITEMS,
        TiedUpMod.MOD_ID
    );

    public static final RegistryObject<Item> V2_HANDCUFFS = ITEMS.register(
        "v2_handcuffs",
        V2Handcuffs::new
    );

    /**
     * Generic data-driven bondage item. A single registered Item whose
     * behavior varies per-stack via the {@code tiedup_item_id} NBT tag.
     */
    public static final RegistryObject<Item> DATA_DRIVEN_ITEM = ITEMS.register(
        "data_driven_item",
        DataDrivenBondageItem::new
    );

    /**
     * Furniture placer item. A single registered Item that spawns
     * {@link com.tiedup.remake.v2.furniture.EntityFurniture} on right-click.
     * The specific furniture type is determined by the {@code tiedup_furniture_id}
     * NBT tag on each stack.
     */
    public static final RegistryObject<Item> FURNITURE_PLACER = ITEMS.register(
        "furniture_placer",
        FurniturePlacerItem::new
    );
}
