Fixed some more bizarre bugs
This commit is contained in:
@@ -66,6 +66,15 @@ public class BlockIndexer{
|
||||
quadHeight = Mathf.ceil(world.height() / (float)quadrantSize);
|
||||
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){
|
||||
process(tile);
|
||||
|
||||
|
||||
@@ -603,6 +603,12 @@ public class World{
|
||||
|
||||
@Override
|
||||
public void end(){
|
||||
applyFilters();
|
||||
|
||||
super.end();
|
||||
}
|
||||
|
||||
public void applyFilters(){
|
||||
Seq<GenerateFilter> filters = map.filters();
|
||||
|
||||
if(!filters.isEmpty()){
|
||||
@@ -615,8 +621,6 @@ public class World{
|
||||
filter.apply(tiles, input);
|
||||
}
|
||||
}
|
||||
|
||||
super.end();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,13 +2,11 @@ package mindustry.entities.units;
|
||||
|
||||
import arc.math.*;
|
||||
import arc.math.geom.*;
|
||||
import arc.struct.*;
|
||||
import arc.util.*;
|
||||
import mindustry.*;
|
||||
import mindustry.ai.*;
|
||||
import mindustry.entities.*;
|
||||
import mindustry.game.*;
|
||||
import mindustry.game.Teams.*;
|
||||
import mindustry.gen.*;
|
||||
import mindustry.type.*;
|
||||
import mindustry.world.*;
|
||||
|
||||
@@ -74,6 +74,10 @@ public class Teams{
|
||||
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(){
|
||||
return get(state.rules.defaultTeam).cores;
|
||||
}
|
||||
|
||||
@@ -154,9 +154,11 @@ public abstract class SaveVersion extends SaveFileReader{
|
||||
if(state.rules.spawns.isEmpty()) state.rules.spawns = waves.get();
|
||||
lastReadBuild = map.getInt("build", -1);
|
||||
|
||||
state.rules.sector = context.getSector();
|
||||
if(state.rules.sector != null){
|
||||
state.rules.sector.planet.ruleSetter.get(state.rules);
|
||||
if(context.getSector() != null){
|
||||
state.rules.sector = context.getSector();
|
||||
if(state.rules.sector != null){
|
||||
state.rules.sector.planet.ruleSetter.get(state.rules);
|
||||
}
|
||||
}
|
||||
|
||||
if(!headless){
|
||||
|
||||
@@ -42,6 +42,12 @@ public class FileMapGenerator implements WorldGenerator{
|
||||
public Sector getSector(){
|
||||
return sector;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void end(){
|
||||
applyFilters();
|
||||
//no super.end(), don't call world load event twice
|
||||
}
|
||||
});
|
||||
world.setGenerating(true);
|
||||
|
||||
|
||||
@@ -196,7 +196,7 @@ public class Tile implements Position, QuadTreeObject, Displayable{
|
||||
}
|
||||
|
||||
public boolean isCenter(){
|
||||
return build == null || build.tile() == this;
|
||||
return build == null || build.tile == this;
|
||||
}
|
||||
|
||||
public int centerX(){
|
||||
|
||||
Reference in New Issue
Block a user