Reduced reflection usage / Improved event system
This commit is contained in:
@@ -50,18 +50,18 @@ public class BlockIndexer{
|
||||
private Array<Tile> returnArray = new ThreadArray<>();
|
||||
|
||||
public BlockIndexer(){
|
||||
Events.on(TileChangeEvent.class, tile -> {
|
||||
if(typeMap.get(tile.packedPosition()) != null){
|
||||
TileIndex index = typeMap.get(tile.packedPosition());
|
||||
Events.on(TileChangeEvent.class, event -> {
|
||||
if(typeMap.get(event.tile.packedPosition()) != null){
|
||||
TileIndex index = typeMap.get(event.tile.packedPosition());
|
||||
for(BlockFlag flag : index.flags){
|
||||
getFlagged(index.team)[flag.ordinal()].remove(tile);
|
||||
getFlagged(index.team)[flag.ordinal()].remove(event.tile);
|
||||
}
|
||||
}
|
||||
process(tile);
|
||||
updateQuadrant(tile);
|
||||
process(event.tile);
|
||||
updateQuadrant(event.tile);
|
||||
});
|
||||
|
||||
Events.on(WorldLoadEvent.class, () -> {
|
||||
Events.on(WorldLoadEvent.class, event -> {
|
||||
flagMap = new ObjectSet[Team.all.length][BlockFlag.all.length];
|
||||
for(int i = 0; i < flagMap.length; i++){
|
||||
for(int j = 0; j < BlockFlag.all.length; j++){
|
||||
|
||||
@@ -25,18 +25,18 @@ public class Pathfinder{
|
||||
private IntArray blocked = new IntArray();
|
||||
|
||||
public Pathfinder(){
|
||||
Events.on(WorldLoadEvent.class, this::clear);
|
||||
Events.on(TileChangeEvent.class, tile -> {
|
||||
Events.on(WorldLoadEvent.class, event -> clear());
|
||||
Events.on(TileChangeEvent.class, event -> {
|
||||
if(Net.client()) return;
|
||||
|
||||
for(Team team : Team.all){
|
||||
TeamData data = state.teams.get(team);
|
||||
if(state.teams.isActive(team) && data.team != tile.getTeam() && paths[data.team.ordinal()].weights[tile.x][tile.y] >= Float.MAX_VALUE){
|
||||
update(tile, data.team);
|
||||
if(state.teams.isActive(team) && data.team != event.tile.getTeam() && paths[data.team.ordinal()].weights[event.tile.x][event.tile.y] >= Float.MAX_VALUE){
|
||||
update(event.tile, data.team);
|
||||
}
|
||||
}
|
||||
|
||||
update(tile, tile.getTeam());
|
||||
update(event.tile, event.tile.getTeam());
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -163,7 +163,7 @@ public class WaveSpawner{
|
||||
}
|
||||
}
|
||||
|
||||
private void reset(){
|
||||
private void reset(WorldLoadEvent event){
|
||||
flySpawns.clear();
|
||||
groundSpawns.clear();
|
||||
quadrants = new GridBits(quadWidth(), quadHeight());
|
||||
|
||||
Reference in New Issue
Block a user