From edfc3c650677a7a4e5b5bbc7b2ced39f01162737 Mon Sep 17 00:00:00 2001 From: NotEvil Date: Tue, 14 Apr 2026 01:29:24 +0200 Subject: [PATCH] feat(D-01): add IItemComponent interface for data-driven item behaviors --- .../v2/bondage/component/IItemComponent.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/main/java/com/tiedup/remake/v2/bondage/component/IItemComponent.java diff --git a/src/main/java/com/tiedup/remake/v2/bondage/component/IItemComponent.java b/src/main/java/com/tiedup/remake/v2/bondage/component/IItemComponent.java new file mode 100644 index 0000000..9f43772 --- /dev/null +++ b/src/main/java/com/tiedup/remake/v2/bondage/component/IItemComponent.java @@ -0,0 +1,21 @@ +package com.tiedup.remake.v2.bondage.component; + +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.ItemStack; + +/** + * A reusable behavior module for data-driven bondage items. + * Components are declared in JSON and instantiated per item definition. + */ +public interface IItemComponent { + + default void onEquipped(ItemStack stack, LivingEntity entity) {} + + default void onUnequipped(ItemStack stack, LivingEntity entity) {} + + default void onWornTick(ItemStack stack, LivingEntity entity) {} + + default boolean blocksUnequip(ItemStack stack, LivingEntity entity) { + return false; + } +}