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);
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);

View File

@@ -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();
}
}
}

View File

@@ -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.*;

View File

@@ -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;
}

View File

@@ -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){

View File

@@ -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);

View File

@@ -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(){