Skip to content

Commit 9a6d9d4

Browse files
committed
Progress
1 parent 9b98a2e commit 9a6d9d4

3 files changed

Lines changed: 16 additions & 12 deletions

File tree

src/main/java/de/dafuqs/spectrum/blocks/pastel_network/network/PastelNetwork.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ public boolean equals(Object other) {
8888
return false;
8989
}
9090

91+
//TODO: make this into a CODEC after the 1.21.1 port is done.
9192
public NbtCompound graphToNbt() {
9293
var vertices = new ArrayList<>(graph.vertexSet());
9394
var graphStorage = new NbtCompound();

src/main/java/de/dafuqs/spectrum/blocks/pastel_network/network/ServerPastelNetwork.java

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -165,16 +165,8 @@ protected void addNode(PastelNodeBlockEntity node) {
165165
* Note: this does not check if the nodes can connect, that should be done before calling this method.
166166
*/
167167
protected void addNodeAndConnect(PastelNodeBlockEntity newNode, PastelNodeBlockEntity existing) {
168-
if (addLoadedNode(newNode))
169-
return;
170-
171-
this.graph.addVertex(newNode.getPos());
168+
addNode(newNode);
172169
getGraph().addEdge(newNode.getPos(), existing.getPos());
173-
174-
// check for priority
175-
addPriorityNode(newNode);
176-
177-
newNode.setNetworkUUID(this.getUUID());
178170
PastelNetworkEdgeSyncPayload.send(this, newNode.getPos());
179171
}
180172

src/main/java/de/dafuqs/spectrum/blocks/pastel_network/network/ServerPastelNetworkManager.java

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ else if(childNetwork.get() != parentNetwork.get()) {
7575
private static void addAndSync(PastelNodeBlockEntity newNode, PastelNodeBlockEntity reference) {
7676
assert reference.getServerNetwork().isPresent();
7777
var parentNetwork = reference.getServerNetwork().get();
78-
parentNetwork.addNode(newNode);
78+
parentNetwork.addNodeAndConnect(newNode, reference);
7979
parentNetwork.markDirty(reference.getPos());
8080
}
8181

@@ -96,7 +96,13 @@ public Optional<ServerPastelNetwork> getNetwork(UUID uuid) {
9696
public NbtCompound writeNbt(NbtCompound nbt, RegistryWrapper.WrapperLookup registryLookup) {
9797
NbtList networkList = new NbtList();
9898
for (ServerPastelNetwork network : this.networks) {
99-
CodecHelper.toNbt(ServerPastelNetwork.CODEC, network, networkList::add);
99+
var opt = ServerPastelNetwork.CODEC.encodeStart(NbtOps.INSTANCE, network).result();
100+
if (opt.isPresent()) {
101+
var wrapper = new NbtCompound();
102+
wrapper.put("network", opt.get());
103+
wrapper.put("graph", network.graphToNbt());
104+
networkList.add(wrapper);
105+
}
100106
}
101107
nbt.put("Networks", networkList);
102108
return nbt;
@@ -105,8 +111,13 @@ public NbtCompound writeNbt(NbtCompound nbt, RegistryWrapper.WrapperLookup regis
105111
public static ServerPastelNetworkManager fromNbt(NbtCompound nbt) {
106112
ServerPastelNetworkManager manager = new ServerPastelNetworkManager();
107113
for (NbtElement element : nbt.getList("Networks", NbtElement.COMPOUND_TYPE)) {
108-
Optional<ServerPastelNetwork> network = CodecHelper.fromNbt(ServerPastelNetwork.CODEC, element);
114+
var comp = (NbtCompound) element;
115+
var netNbt = comp.get("network");
116+
var graphNbt = comp.get("graph");
117+
118+
Optional<ServerPastelNetwork> network = CodecHelper.fromNbt(ServerPastelNetwork.CODEC, netNbt);
109119
if (network.isPresent()) {
120+
network.get().setGraph(PastelNetwork.graphFromNbt((NbtCompound) graphNbt));
110121
manager.networks.add(network.get());
111122
}
112123
}

0 commit comments

Comments
 (0)