From 48b8e6cfe2c14f6ddebdf9be55c61e1037cd057d Mon Sep 17 00:00:00 2001 From: Chrys Chrysanthemum Date: Thu, 9 Jul 2026 15:20:08 +1000 Subject: [PATCH] refactor: Move `blockEntityChanged` method call to `syncComponentChanges`. --- .../BlockEntityComponentInternals.java | 2 + .../impl/mixin/Mixin_BlockEntity.java | 50 +++++++------------ 2 files changed, 21 insertions(+), 31 deletions(-) diff --git a/block_entities/xplat/src/main/java/lgbt/greenhouse/cowponents/block_entities/impl/component/BlockEntityComponentInternals.java b/block_entities/xplat/src/main/java/lgbt/greenhouse/cowponents/block_entities/impl/component/BlockEntityComponentInternals.java index 3fe0379..673aab9 100644 --- a/block_entities/xplat/src/main/java/lgbt/greenhouse/cowponents/block_entities/impl/component/BlockEntityComponentInternals.java +++ b/block_entities/xplat/src/main/java/lgbt/greenhouse/cowponents/block_entities/impl/component/BlockEntityComponentInternals.java @@ -75,6 +75,8 @@ public class BlockEntityComponentInternals { if (changeList.isEmpty()) return oldPatchMap; + blockEntity.getLevel().blockEntityChanged(blockEntity.getBlockPos()); + SyncBlockEntityComponentPacketClientbound packet = new SyncBlockEntityComponentPacketClientbound( blockEntity.getBlockPos(), changeList diff --git a/block_entities/xplat/src/main/java/lgbt/greenhouse/cowponents/block_entities/impl/mixin/Mixin_BlockEntity.java b/block_entities/xplat/src/main/java/lgbt/greenhouse/cowponents/block_entities/impl/mixin/Mixin_BlockEntity.java index 949b076..78a5258 100644 --- a/block_entities/xplat/src/main/java/lgbt/greenhouse/cowponents/block_entities/impl/mixin/Mixin_BlockEntity.java +++ b/block_entities/xplat/src/main/java/lgbt/greenhouse/cowponents/block_entities/impl/mixin/Mixin_BlockEntity.java @@ -48,7 +48,7 @@ public abstract class Mixin_BlockEntity implements CowponentsBlockEntityComponen private HashedPatchMap cowponents_block_entities$hashedPatchMap; @Unique - private LoadingCache, Integer> cowponents_block_entities$componentCache = CacheBuilder.newBuilder() + private final LoadingCache, Integer> cowponents_block_entities$componentCache = CacheBuilder.newBuilder() .maximumSize(256L) .build(new CacheLoader<>() { public @NonNull Integer load(@NonNull TypedDataComponent component) { @@ -105,45 +105,36 @@ public abstract class Mixin_BlockEntity implements CowponentsBlockEntityComponen @Override public @Nullable T cowponents$set(@NonNull DataComponentType type, @Nullable T value) { T setValue = cowponents_block_entities$components.set(ComponentCastUtils.castComponentType(type), value); - if (!cowponents_block_entities$hashedPatchMap.matches(cowponents$getComponentsPatch(), cowponents_block_entities$componentCache::getUnchecked)) { - cowponents_block_entities$hashedPatchMap = BlockEntityComponentInternals.syncComponentChanges( - (BlockEntity) (Object) this, - cowponents_block_entities$components.asPatch(), - cowponents_block_entities$hashedPatchMap, - cowponents_block_entities$componentCache::getUnchecked - ); - } - getLevel().blockEntityChanged(getBlockPos()); + cowponents_block_entities$hashedPatchMap = BlockEntityComponentInternals.syncComponentChanges( + (BlockEntity) (Object) this, + cowponents_block_entities$components.asPatch(), + cowponents_block_entities$hashedPatchMap, + cowponents_block_entities$componentCache::getUnchecked + ); return setValue; } @Override public @Nullable T cowponents$set(@NonNull TypedDataComponent value) { T setValue = cowponents_block_entities$components.set(value); - if (!cowponents_block_entities$hashedPatchMap.matches(cowponents$getComponentsPatch(), cowponents_block_entities$componentCache::getUnchecked)) { - cowponents_block_entities$hashedPatchMap = BlockEntityComponentInternals.syncComponentChanges( - (BlockEntity) (Object) this, - cowponents_block_entities$components.asPatch(), - cowponents_block_entities$hashedPatchMap, - cowponents_block_entities$componentCache::getUnchecked - ); - } - getLevel().blockEntityChanged(getBlockPos()); + cowponents_block_entities$hashedPatchMap = BlockEntityComponentInternals.syncComponentChanges( + (BlockEntity) (Object) this, + cowponents_block_entities$components.asPatch(), + cowponents_block_entities$hashedPatchMap, + cowponents_block_entities$componentCache::getUnchecked + ); return setValue; } @Override public @Nullable T cowponents$remove(@NonNull DataComponentType type) { T removedValue = cowponents_block_entities$components.remove(type); - if (!cowponents_block_entities$hashedPatchMap.matches(cowponents$getComponentsPatch(), cowponents_block_entities$componentCache::getUnchecked)) { - cowponents_block_entities$hashedPatchMap = BlockEntityComponentInternals.syncComponentChanges( - (BlockEntity) (Object) this, - cowponents_block_entities$components.asPatch(), - cowponents_block_entities$hashedPatchMap, - cowponents_block_entities$componentCache::getUnchecked - ); - } - getLevel().blockEntityChanged(getBlockPos()); + cowponents_block_entities$hashedPatchMap = BlockEntityComponentInternals.syncComponentChanges( + (BlockEntity) (Object) this, + cowponents_block_entities$components.asPatch(), + cowponents_block_entities$hashedPatchMap, + cowponents_block_entities$componentCache::getUnchecked + ); return removedValue; } @@ -165,15 +156,12 @@ public abstract class Mixin_BlockEntity implements CowponentsBlockEntityComponen @Override public void cowponents$applyComponentsAndValidate(@NonNull DataComponentPatch patch) { cowponents_block_entities$applyComponentsAndValidate(patch, cowponents_block_entities$components.asPatch()); - cowponents_block_entities$hashedPatchMap = BlockEntityComponentInternals.syncComponentChanges( (BlockEntity) (Object) this, cowponents_block_entities$components.asPatch(), cowponents_block_entities$hashedPatchMap, cowponents_block_entities$componentCache::getUnchecked ); - - getLevel().blockEntityChanged(getBlockPos()); } @Override -- 2.51.2