From 312a5a02e358959b9d88ae85552d044f5f1632ba Mon Sep 17 00:00:00 2001 From: Justus Garbe Date: Tue, 9 Apr 2024 23:49:51 +0200 Subject: [PATCH] Fix removing conduits not removing from node graph --- .../refinedstorage/RSNetworkNode.java | 79 +------------------ .../refinedstorage/RSNodeHost.java | 13 ++- 2 files changed, 8 insertions(+), 84 deletions(-) diff --git a/src/conduits/java/com/enderio/conduits/common/integrations/refinedstorage/RSNetworkNode.java b/src/conduits/java/com/enderio/conduits/common/integrations/refinedstorage/RSNetworkNode.java index 0c8744fda7..17cff1861e 100644 --- a/src/conduits/java/com/enderio/conduits/common/integrations/refinedstorage/RSNetworkNode.java +++ b/src/conduits/java/com/enderio/conduits/common/integrations/refinedstorage/RSNetworkNode.java @@ -3,31 +3,20 @@ import com.enderio.EnderIO; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.api.network.INetwork; -import com.refinedmods.refinedstorage.api.network.INetworkNodeVisitor; -import com.refinedmods.refinedstorage.api.network.node.INetworkNode; +import com.refinedmods.refinedstorage.apiimpl.network.node.NetworkNode; import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.nbt.CompoundTag; import net.minecraft.resources.ResourceLocation; -import net.minecraft.server.level.ServerLevel; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.UUID; - -public class RSNetworkNode implements INetworkNode, INetworkNodeVisitor { +public class RSNetworkNode extends NetworkNode { public static final ResourceLocation ID = EnderIO.loc("rs_conduit"); - private final Level level; - private final BlockPos pos; - private INetwork network; - private UUID owner; public RSNetworkNode(Level level, BlockPos pos) { - this.level = level; - this.pos = pos; + super(level, pos); } @NotNull @@ -36,16 +25,6 @@ public ItemStack getItemStack() { return new ItemStack(RSIntegration.NORMAL_ITEM.get()); } - @Override - public void onConnected(INetwork network) { - this.network = network; - } - - @Override - public void onDisconnected(INetwork network) { - this.network = null; - } - @Override public boolean isActive() { return true; @@ -57,39 +36,6 @@ public INetwork getNetwork() { return network; } - @Override - public void update() { - - } - - @Override - public CompoundTag write(CompoundTag compoundTag) { - if (owner != null) - compoundTag.putUUID("owner", owner); - return compoundTag; - } - - public void read(CompoundTag compoundTag) { - if (compoundTag.contains("owner")) - owner = compoundTag.getUUID("owner"); - } - - @Override - public BlockPos getPos() { - return pos; - } - - @Override - public Level getLevel() { - return level; - } - - @Override - public void markDirty() { - if (!level.isClientSide()) - RSNodeHost.RSAPI.getNetworkNodeManager((ServerLevel) level).markForSaving(); - } - @Override public int getEnergyUsage() { return RS.SERVER_CONFIG.getCable().getUsage(); @@ -100,23 +46,4 @@ public ResourceLocation getId() { return ID; } - @Nullable - @Override - public UUID getOwner() { - return owner; - } - - @Override - public void setOwner(@Nullable UUID uuid) { - this.owner = uuid; - } - - @Override - public void visit(Operator operator) { - for (Direction value : Direction.values()) { - if (canConduct(value)) { - operator.apply(level, pos.relative(value), value); - } - } - } } diff --git a/src/conduits/java/com/enderio/conduits/common/integrations/refinedstorage/RSNodeHost.java b/src/conduits/java/com/enderio/conduits/common/integrations/refinedstorage/RSNodeHost.java index ce65720b0f..a4dd329783 100644 --- a/src/conduits/java/com/enderio/conduits/common/integrations/refinedstorage/RSNodeHost.java +++ b/src/conduits/java/com/enderio/conduits/common/integrations/refinedstorage/RSNodeHost.java @@ -20,8 +20,8 @@ public class RSNodeHost implements IExtendedConduitData, INetworkNod @RSAPIInject public static IRSAPI RSAPI; - private RSNetworkNode node; - private LazyOptional selfCap = LazyOptional.of(() -> this); + private final RSNetworkNode node; + private final LazyOptional selfCap = LazyOptional.of(() -> this); private final Level level; private final BlockPos pos; @@ -49,14 +49,13 @@ public RSNetworkNode getNode() { } public LazyOptional getSelfCap() { - if (!selfCap.isPresent()) { - selfCap = LazyOptional.of(() -> this); - } return selfCap; } @Override public void onRemoved(IConduitType type, Level level, BlockPos pos) { + selfCap.invalidate(); + INetworkNodeManager manager = RSAPI.getNetworkNodeManager((ServerLevel) level); INetworkNode node = manager.getNode(pos); @@ -65,10 +64,8 @@ public void onRemoved(IConduitType type, Level level, BlockPos pos) { manager.markForSaving(); if (node != null && node.getNetwork() != null) { - node.getNetwork().getNodeGraph().invalidate(Action.PERFORM, level, pos); + node.getNetwork().getNodeGraph().invalidate(Action.PERFORM, node.getNetwork().getLevel(), node.getNetwork().getPosition()); } - - selfCap.invalidate(); } @Override