Files
Mindustry/core/src/mindustry/io/versions/LegacyIO.java
2021-11-29 10:02:03 -05:00

85 lines
2.5 KiB
Java

package mindustry.io.versions;
import arc.*;
import arc.struct.*;
import arc.util.*;
import mindustry.*;
import mindustry.ctype.*;
import mindustry.ui.dialogs.JoinDialog.*;
import java.io.*;
public class LegacyIO{
/** Maps old unit names to new ones. */
public static final StringMap unitMap = StringMap.of(
"titan", "mace",
"chaos-array", "scepter",
"eradicator", "reign",
"eruptor", "atrax",
"wraith", "flare",
"ghoul", "horizon",
"revenant", "zenith",
"lich", "antumbra",
"reaper", "eclipse",
"draug", "mono",
"phantom", "poly",
"spirit", "poly"
);
public static Seq<Server> readServers(){
Seq<Server> arr = new Seq<>();
try{
byte[] bytes = Core.settings.getBytes("server-list");
DataInputStream stream = new DataInputStream(new ByteArrayInputStream(bytes));
int length = stream.readInt();
if(length > 0){
//name of type, irrelevant
stream.readUTF();
for(int i = 0; i < length; i++){
Server server = new Server();
server.ip = stream.readUTF();
server.port = stream.readInt();
arr.add(server);
}
}
}catch(Exception e){
e.printStackTrace();
}
return arr;
}
public static void readResearch(){
try{
byte[] bytes = Core.settings.getBytes("unlocks");
DataInputStream stream = new DataInputStream(new ByteArrayInputStream(bytes));
int length = stream.readInt();
if(length > 0){
stream.readUTF(); //name of key type
stream.readUTF(); //name of value type
//each element is an array list
for(int i = 0; i < length; i++){
ContentType type = ContentType.all[stream.readInt()];
int arrLength = stream.readInt();
if(arrLength > 0){
stream.readUTF(); //type of contents (String)
for(int j = 0; j < arrLength; j++){
String name = stream.readUTF();
Content out = Vars.content.getByName(type, name);
if(out instanceof UnlockableContent u){
u.quietUnlock();
}
}
}
}
}
}catch(Exception e){
Log.err(e);
}
}
}