Persistent unit IDs
This commit is contained in:
84
core/src/mindustry/io/versions/LegacyIO.java
Normal file
84
core/src/mindustry/io/versions/LegacyIO.java
Normal file
@@ -0,0 +1,84 @@
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user