Merge branch 'master' into port-field

This commit is contained in:
Anuken
2025-02-08 19:36:26 -05:00
committed by GitHub
2681 changed files with 151338 additions and 45271 deletions

View File

@@ -10,8 +10,10 @@ import mindustry.ctype.*;
import mindustry.game.*;
import mindustry.gen.*;
import mindustry.io.*;
import mindustry.logic.*;
import mindustry.maps.Map;
import mindustry.net.Administration.*;
import mindustry.type.*;
import java.io.*;
import java.nio.*;
@@ -29,24 +31,31 @@ public class NetworkIO{
state.rules.researched.clear();
for(ContentType type : ContentType.all){
for(Content c : content.getBy(type)){
if(c instanceof UnlockableContent u && u.unlocked() && TechTree.get(u) != null){
state.rules.researched.add(u.name);
if(c instanceof UnlockableContent u && u.unlocked() && u.techNode != null){
state.rules.researched.add(u);
}
}
}
}
stream.writeUTF(JsonIO.write(state.rules));
stream.writeUTF(JsonIO.write(state.mapLocales));
SaveIO.getSaveWriter().writeStringMap(stream, state.map.tags);
stream.writeInt(state.wave);
stream.writeFloat(state.wavetime);
stream.writeDouble(state.tick);
stream.writeLong(GlobalVars.rand.seed0);
stream.writeLong(GlobalVars.rand.seed1);
stream.writeInt(player.id);
player.write(Writes.get(stream));
player.write(new Writes(stream));
SaveIO.getSaveWriter().writeContentHeader(stream);
SaveIO.getSaveWriter().writeMap(stream);
SaveIO.getSaveWriter().writeTeamBlocks(stream);
SaveIO.getSaveWriter().writeMarkers(stream);
SaveIO.getSaveWriter().writeCustomChunks(stream, true);
}catch(IOException e){
throw new RuntimeException(e);
}
@@ -57,20 +66,29 @@ public class NetworkIO{
try(DataInputStream stream = new DataInputStream(is)){
Time.clear();
state.rules = JsonIO.read(Rules.class, stream.readUTF());
state.mapLocales = JsonIO.read(MapLocales.class, stream.readUTF());
state.map = new Map(SaveIO.getSaveWriter().readStringMap(stream));
state.wave = stream.readInt();
state.wavetime = stream.readFloat();
state.tick = stream.readDouble();
GlobalVars.rand.seed0 = stream.readLong();
GlobalVars.rand.seed1 = stream.readLong();
Reads read = new Reads(stream);
Groups.clear();
int id = stream.readInt();
player.reset();
player.read(Reads.get(stream));
player.read(read);
player.id = id;
player.add();
SaveIO.getSaveWriter().readContentHeader(stream);
SaveIO.getSaveWriter().readMap(stream, world.context);
SaveIO.getSaveWriter().readTeamBlocks(stream);
SaveIO.getSaveWriter().readMarkers(stream);
SaveIO.getSaveWriter().readCustomChunks(stream);
}catch(IOException e){
throw new RuntimeException(e);
}finally{
@@ -79,7 +97,7 @@ public class NetworkIO{
}
public static ByteBuffer writeServerData(){
String name = (headless ? Config.name.string() : player.name);
String name = (headless ? Config.serverName.string() : player.name);
String description = headless && !Config.desc.string().equals("off") ? Config.desc.string() : "";
String map = state.map.name();