From c8fee33ca5fbbe56a60656aef728935fd12e1aed Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Thu, 7 Mar 2024 18:58:30 +0100 Subject: [PATCH] fixed pipe network --- .../de/ellpeck/prettypipes/network/PipeNetwork.java | 7 ++++--- .../java/de/ellpeck/prettypipes/pipe/PipeBlock.java | 5 +++++ .../de/ellpeck/prettypipes/pipe/PipeBlockEntity.java | 12 ------------ 3 files changed, 9 insertions(+), 15 deletions(-) diff --git a/src/main/java/de/ellpeck/prettypipes/network/PipeNetwork.java b/src/main/java/de/ellpeck/prettypipes/network/PipeNetwork.java index 08fab16..58efab7 100644 --- a/src/main/java/de/ellpeck/prettypipes/network/PipeNetwork.java +++ b/src/main/java/de/ellpeck/prettypipes/network/PipeNetwork.java @@ -39,7 +39,6 @@ import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.Stream; -// TODO it appears that this doesn't save properly yet :( public class PipeNetwork extends SavedData implements GraphListener { private static final Factory FACTORY = new Factory<>(PipeNetwork::new, PipeNetwork::new); @@ -518,11 +517,13 @@ public class PipeNetwork extends SavedData implements GraphListener PrettyPipes.ID + ":pipe_network_" + name); + if (this.level != null) + this.level.getProfiler().push(() -> PrettyPipes.ID + ":pipe_network_" + name); } public void endProfile() { - this.level.getProfiler().pop(); + if (this.level != null) + this.level.getProfiler().pop(); } public static PipeNetwork get(Level level) { diff --git a/src/main/java/de/ellpeck/prettypipes/pipe/PipeBlock.java b/src/main/java/de/ellpeck/prettypipes/pipe/PipeBlock.java index afb7d25..48af08b 100644 --- a/src/main/java/de/ellpeck/prettypipes/pipe/PipeBlock.java +++ b/src/main/java/de/ellpeck/prettypipes/pipe/PipeBlock.java @@ -268,6 +268,11 @@ public class PipeBlock extends BaseEntityBlock { var network = PipeNetwork.get(worldIn); network.removeNode(pos); network.onPipeChanged(pos, state); + if (worldIn.getBlockEntity(pos) instanceof PipeBlockEntity pipe) { + pipe.getItems().clear(); + for (var lock : pipe.craftIngredientRequests) + network.resolveNetworkLock(lock); + } super.onRemove(state, worldIn, pos, newState, isMoving); } } diff --git a/src/main/java/de/ellpeck/prettypipes/pipe/PipeBlockEntity.java b/src/main/java/de/ellpeck/prettypipes/pipe/PipeBlockEntity.java index 2e6ae60..3b44bdb 100644 --- a/src/main/java/de/ellpeck/prettypipes/pipe/PipeBlockEntity.java +++ b/src/main/java/de/ellpeck/prettypipes/pipe/PipeBlockEntity.java @@ -33,9 +33,6 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.phys.AABB; -import net.neoforged.api.distmarker.Dist; -import net.neoforged.api.distmarker.OnlyIn; import net.neoforged.neoforge.capabilities.BlockCapability; import net.neoforged.neoforge.capabilities.Capabilities; import net.neoforged.neoforge.common.util.Lazy; @@ -391,15 +388,6 @@ public class PipeBlockEntity extends BlockEntity implements MenuProvider, IPipeC }).filter(Objects::nonNull).collect(Collectors.toList()); } - @Override - public void setRemoved() { - super.setRemoved(); - this.getItems().clear(); - var network = PipeNetwork.get(this.level); - for (var lock : this.craftIngredientRequests) - network.resolveNetworkLock(lock); - } - @Override public Component getDisplayName() { return Component.translatable("container." + PrettyPipes.ID + ".pipe");