diff --git a/src/main/java/com/simibubi/create/content/fluids/FlowSource.java b/src/main/java/com/simibubi/create/content/fluids/FlowSource.java index 6c2d3a6905..084d00f69a 100644 --- a/src/main/java/com/simibubi/create/content/fluids/FlowSource.java +++ b/src/main/java/com/simibubi/create/content/fluids/FlowSource.java @@ -12,6 +12,7 @@ import net.createmod.catnip.math.BlockFace; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; + import net.neoforged.neoforge.capabilities.BlockCapabilityCache; import net.neoforged.neoforge.capabilities.Capabilities; import net.neoforged.neoforge.fluids.FluidStack; @@ -76,19 +77,18 @@ public abstract class FlowSource { } public void manageSource(Level world) { - // TODO 1.21: is it even necessary to periodically reset the cache? - if (fluidHandlerCache != null && world.getGameTime() % 20 != 0) - return; - BlockEntity blockEntity = world.getBlockEntity(location.getConnectedPos()); - if (blockEntity != null && world instanceof ServerLevel serverLevel) - fluidHandlerCache = ICapabilityProvider.of(BlockCapabilityCache.create( + if (fluidHandlerCache == null) { + BlockEntity blockEntity = world.getBlockEntity(location.getConnectedPos()); + if (blockEntity != null && world instanceof ServerLevel serverLevel) + fluidHandlerCache = ICapabilityProvider.of(BlockCapabilityCache.create( Capabilities.FluidHandler.BLOCK, serverLevel, blockEntity.getBlockPos(), location.getOppositeFace(), () -> !blockEntity.isRemoved(), - () -> {} - )); + () -> fluidHandlerCache = EMPTY + )); + } } @Override diff --git a/src/main/java/com/simibubi/create/foundation/utility/HashableCapabilityInvalidationListener.java b/src/main/java/com/simibubi/create/foundation/utility/HashableCapabilityInvalidationListener.java deleted file mode 100644 index e8606cfb5b..0000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/HashableCapabilityInvalidationListener.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.simibubi.create.foundation.utility; - -import java.util.Objects; - -import net.neoforged.neoforge.capabilities.ICapabilityInvalidationListener; - -public class HashableCapabilityInvalidationListener implements ICapabilityInvalidationListener { - private final ICapabilityInvalidationListener listener; - private final H hashKey; - - public HashableCapabilityInvalidationListener(ICapabilityInvalidationListener listener, H hashKey) { - this.listener = listener; - this.hashKey = hashKey; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - HashableCapabilityInvalidationListener that = (HashableCapabilityInvalidationListener) o; - return Objects.equals(hashKey, that.hashKey); - } - - @Override - public int hashCode() { - return Objects.hash(hashKey); - } - - @Override - public boolean onInvalidate() { - return listener.onInvalidate(); - } -}