Fixed some more bizarre bugs

This commit is contained in:
Anuken
2022-03-01 21:10:53 -05:00
parent 6df7106938
commit 76c972acfb
7 changed files with 31 additions and 8 deletions

View File

@@ -66,6 +66,15 @@ public class BlockIndexer{
quadHeight = Mathf.ceil(world.height() / (float)quadrantSize); quadHeight = Mathf.ceil(world.height() / (float)quadrantSize);
blocksPresent = new boolean[content.blocks().size]; blocksPresent = new boolean[content.blocks().size];
//so WorldLoadEvent gets called twice sometimes... ugh
for(Team team : Team.all){
var data = state.teams.get(team);
if(data != null){
if(data.buildings != null) data.buildings.clear();
if(data.turrets != null) data.turrets.clear();
}
}
for(Tile tile : world.tiles){ for(Tile tile : world.tiles){
process(tile); process(tile);

View File

@@ -603,6 +603,12 @@ public class World{
@Override @Override
public void end(){ public void end(){
applyFilters();
super.end();
}
public void applyFilters(){
Seq<GenerateFilter> filters = map.filters(); Seq<GenerateFilter> filters = map.filters();
if(!filters.isEmpty()){ if(!filters.isEmpty()){
@@ -615,8 +621,6 @@ public class World{
filter.apply(tiles, input); filter.apply(tiles, input);
} }
} }
super.end();
} }
} }
} }

View File

@@ -2,13 +2,11 @@ package mindustry.entities.units;
import arc.math.*; import arc.math.*;
import arc.math.geom.*; import arc.math.geom.*;
import arc.struct.*;
import arc.util.*; import arc.util.*;
import mindustry.*; import mindustry.*;
import mindustry.ai.*; import mindustry.ai.*;
import mindustry.entities.*; import mindustry.entities.*;
import mindustry.game.*; import mindustry.game.*;
import mindustry.game.Teams.*;
import mindustry.gen.*; import mindustry.gen.*;
import mindustry.type.*; import mindustry.type.*;
import mindustry.world.*; import mindustry.world.*;

View File

@@ -74,6 +74,10 @@ public class Teams{
return map[team.id] == null ? (map[team.id] = new TeamData(team)) : map[team.id]; return map[team.id] == null ? (map[team.id] = new TeamData(team)) : map[team.id];
} }
public @Nullable TeamData getOrNull(Team team){
return map[team.id];
}
public Seq<CoreBuild> playerCores(){ public Seq<CoreBuild> playerCores(){
return get(state.rules.defaultTeam).cores; return get(state.rules.defaultTeam).cores;
} }

View File

@@ -154,9 +154,11 @@ public abstract class SaveVersion extends SaveFileReader{
if(state.rules.spawns.isEmpty()) state.rules.spawns = waves.get(); if(state.rules.spawns.isEmpty()) state.rules.spawns = waves.get();
lastReadBuild = map.getInt("build", -1); lastReadBuild = map.getInt("build", -1);
state.rules.sector = context.getSector(); if(context.getSector() != null){
if(state.rules.sector != null){ state.rules.sector = context.getSector();
state.rules.sector.planet.ruleSetter.get(state.rules); if(state.rules.sector != null){
state.rules.sector.planet.ruleSetter.get(state.rules);
}
} }
if(!headless){ if(!headless){

View File

@@ -42,6 +42,12 @@ public class FileMapGenerator implements WorldGenerator{
public Sector getSector(){ public Sector getSector(){
return sector; return sector;
} }
@Override
public void end(){
applyFilters();
//no super.end(), don't call world load event twice
}
}); });
world.setGenerating(true); world.setGenerating(true);

View File

@@ -196,7 +196,7 @@ public class Tile implements Position, QuadTreeObject, Displayable{
} }
public boolean isCenter(){ public boolean isCenter(){
return build == null || build.tile() == this; return build == null || build.tile == this;
} }
public int centerX(){ public int centerX(){