package com.tiedup.remake.blocks.entity; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.item.ItemStack; /** * Interface for BlockEntities that store bondage items. * * * Defines the contract for storing and retrieving bondage items: * - Bind (ropes, chains, etc.) * - Gag * - Blindfold * - Earplugs * - Collar * - Clothes * * Based on original ITileEntityBondageItemHolder from 1.12.2 */ public interface IBondageItemHolder { // BIND ItemStack getBind(); void setBind(ItemStack bind); // GAG ItemStack getGag(); void setGag(ItemStack gag); // BLINDFOLD ItemStack getBlindfold(); void setBlindfold(ItemStack blindfold); // EARPLUGS ItemStack getEarplugs(); void setEarplugs(ItemStack earplugs); // COLLAR ItemStack getCollar(); void setCollar(ItemStack collar); // CLOTHES ItemStack getClothes(); void setClothes(ItemStack clothes); // NBT SERIALIZATION /** * Read bondage items from NBT. * @param tag The compound tag to read from */ void readBondageData(CompoundTag tag); /** * Write bondage items to NBT. * @param tag The compound tag to write to * @return The modified compound tag */ CompoundTag writeBondageData(CompoundTag tag); // STATE /** * Check if this holder has any bondage items loaded. * Typically checks if bind is present. * @return true if armed/loaded */ boolean isArmed(); }