diff --git a/block_entities/xplat/src/main/java/lgbt/greenhouse/cowponents/block_entities/api/v1/extension/CowponentsBlockEntityType.java b/block_entities/xplat/src/main/java/lgbt/greenhouse/cowponents/block_entities/api/v1/extension/CowponentsBlockEntityType.java index 8d922c2..2e2400e 100644 --- a/block_entities/xplat/src/main/java/lgbt/greenhouse/cowponents/block_entities/api/v1/extension/CowponentsBlockEntityType.java +++ b/block_entities/xplat/src/main/java/lgbt/greenhouse/cowponents/block_entities/api/v1/extension/CowponentsBlockEntityType.java @@ -27,8 +27,4 @@ public interface CowponentsBlockEntityType { default BlockEntityType cowponents$delayedHolderComponent(DataComponentType> type, ResourceKey valueKey) { throw new AssertionError("Implemented via mixin."); } - - default BlockEntityType cowponents$buildComponents() { - throw new AssertionError("Implemented via mixin."); - } } diff --git a/block_entities/xplat/src/main/java/lgbt/greenhouse/cowponents/block_entities/impl/mixin/Mixin_BlockEntityType.java b/block_entities/xplat/src/main/java/lgbt/greenhouse/cowponents/block_entities/impl/mixin/Mixin_BlockEntityType.java index 324ab54..e8b54cd 100644 --- a/block_entities/xplat/src/main/java/lgbt/greenhouse/cowponents/block_entities/impl/mixin/Mixin_BlockEntityType.java +++ b/block_entities/xplat/src/main/java/lgbt/greenhouse/cowponents/block_entities/impl/mixin/Mixin_BlockEntityType.java @@ -20,7 +20,6 @@ import org.jspecify.annotations.NonNull; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.Unique; @SuppressWarnings("unchecked") @Mixin(BlockEntityType.class) @@ -28,27 +27,19 @@ public class Mixin_BlockEntityType implements Cowponents @Shadow @Final private Holder.Reference> builtInRegistryHolder; - @Unique - private final DataComponentInitializers.Initializer> cowponents_instances$componentInitializer = (_, _, _) -> { - }; public @NonNull BlockEntityType cowponents$component(@NonNull DataComponentType type, @NonNull T value) { - cowponents_instances$componentInitializer.andThen((components, _, _) -> components.set(type, value)); + BuiltInRegistries.DATA_COMPONENT_INITIALIZERS.add(builtInRegistryHolder.key(), (components, _, _) -> components.set(type, value)); return (BlockEntityType) (Object) this; } public @NonNull BlockEntityType cowponents$delayedComponent(@NonNull DataComponentType type, DataComponentInitializers.SingleComponentInitializer initializer) { - cowponents_instances$componentInitializer.andThen(initializer.asInitializer(type)); + BuiltInRegistries.DATA_COMPONENT_INITIALIZERS.add(builtInRegistryHolder.key(), initializer.asInitializer(type)); return (BlockEntityType) (Object) this; } public @NonNull BlockEntityType cowponents$delayedHolderComponent(@NonNull DataComponentType> type, @NonNull ResourceKey valueKey) { - cowponents_instances$componentInitializer.andThen((components, context, _) -> components.set(type, context.getOrThrow(valueKey))); - return (BlockEntityType) (Object) this; - } - - public @NonNull BlockEntityType cowponents$buildComponents() { - BuiltInRegistries.DATA_COMPONENT_INITIALIZERS.add(builtInRegistryHolder.key(), cowponents_instances$componentInitializer); + BuiltInRegistries.DATA_COMPONENT_INITIALIZERS.add(builtInRegistryHolder.key(), (components, context, _) -> components.set(type, context.getOrThrow(valueKey))); return (BlockEntityType) (Object) this; } }