Sector refactoring, invasions and cleanup

This commit is contained in:
Anuken
2020-10-16 11:02:24 -04:00
parent 5ee4101ba4
commit 2f54edf34f
27 changed files with 319 additions and 376 deletions

View File

@@ -14,12 +14,10 @@ public class SaveMeta{
public Map map;
public int wave;
public Rules rules;
public SectorInfo secinfo;
public StringMap tags;
public String[] mods;
public boolean hasProduction;
public SaveMeta(int version, long timestamp, long timePlayed, int build, String map, int wave, Rules rules, SectorInfo secinfo, StringMap tags){
public SaveMeta(int version, long timestamp, long timePlayed, int build, String map, int wave, Rules rules, StringMap tags){
this.version = version;
this.build = build;
this.timestamp = timestamp;
@@ -29,8 +27,5 @@ public class SaveMeta{
this.rules = rules;
this.tags = tags;
this.mods = JsonIO.read(String[].class, tags.get("mods", "[]"));
this.secinfo = secinfo;
secinfo.production.each((e, amount) -> hasProduction |= amount.mean > 0.001f);
}
}

View File

@@ -40,7 +40,6 @@ public abstract class SaveVersion extends SaveFileReader{
map.get("mapname"),
map.getInt("wave"),
JsonIO.read(Rules.class, map.get("rules", "{}")),
JsonIO.read(SectorInfo.class, map.get("secinfo", "{}")),
map
);
}
@@ -74,6 +73,7 @@ public abstract class SaveVersion extends SaveFileReader{
//prepare campaign data for writing
if(state.isCampaign()){
state.secinfo.prepare();
state.rules.sector.saveInfo();
}
//flush tech node progress
@@ -89,7 +89,6 @@ public abstract class SaveVersion extends SaveFileReader{
"wave", state.wave,
"wavetime", state.wavetime,
"stats", JsonIO.write(state.stats),
"secinfo", state.isCampaign() ? JsonIO.write(state.secinfo) : "{}",
"rules", JsonIO.write(state.rules),
"mods", JsonIO.write(mods.getModStrings().toArray(String.class)),
"width", world.width(),
@@ -107,14 +106,13 @@ public abstract class SaveVersion extends SaveFileReader{
state.wave = map.getInt("wave");
state.wavetime = map.getFloat("wavetime", state.rules.waveSpacing);
state.stats = JsonIO.read(Stats.class, map.get("stats", "{}"));
state.secinfo = JsonIO.read(SectorInfo.class, map.get("secinfo", "{}"));
state.rules = JsonIO.read(Rules.class, map.get("rules", "{}"));
if(state.rules.spawns.isEmpty()) state.rules.spawns = defaultWaves.get();
lastReadBuild = map.getInt("build", -1);
//load time spent on sector into state
//load in sector info
if(state.rules.sector != null){
state.secinfo.internalTimeSpent = state.rules.sector.getStoredTimeSpent();
state.secinfo = state.rules.sector.info;
}
if(!headless){