Crash fixes

This commit is contained in:
Anuken 2018-08-15 16:26:08 -04:00
parent d07fd1bbfe
commit 3746344cba
4 changed files with 7 additions and 5 deletions

View File

@ -119,7 +119,7 @@ public class BlockIndexer{
* Get all allied blocks with a flag.
*/
public ObjectSet<Tile> getAllied(Team team, BlockFlag type){
return (state.teams.get(team).ally ? allyMap : enemyMap).get(type, emptyArray);
return state.teams.has(team) ? (state.teams.get(team).ally ? allyMap : enemyMap).get(type, emptyArray) : emptyArray;
}
/**
@ -142,7 +142,7 @@ public class BlockIndexer{
for(int ty = ry * structQuadrantSize; ty < (ry + 1) * structQuadrantSize && ty < world.height(); ty++){
Tile other = world.tile(tx, ty);
if(other == null || other.entity == null || other.getTeam() != team || !pred.test(other)) continue;
if(other == null || other.entity == null || !pred.test(other)) continue;
TileEntity e = other.entity;

View File

@ -93,7 +93,7 @@ public abstract class InputHandler extends InputAdapter{
ItemTransfer.create(stack.item,
player.x + Angles.trnsx(player.rotation + 180f, backTrns), player.y + Angles.trnsy(player.rotation + 180f, backTrns),
new Translator(tile.drawx() + stackTrns.x, tile.drawy() + stackTrns.y), () -> {
if(tile.block() != block) return;
if(tile.block() != block || tile.entity == null) return;
tile.block().handleStack(stack.item, removed, tile, player);
remaining[1] -= removed;

View File

@ -74,7 +74,9 @@ public class JoinDialog extends FloatingDialog{
add.shown(() -> {
add.getTitleLabel().setText(renaming != null ? "$text.server.edit" : "$text.server.add");
field.setText(renaming.ip);
if(renaming != null){
field.setText(renaming.ip);
}
});
shown(() -> {

View File

@ -224,7 +224,7 @@ public class PowerNode extends PowerBlock{
}
protected boolean shouldDistribute(Tile tile, Tile other){
return other.getTeamID() == tile.getTeamID() && other.entity.power.amount / other.block().powerCapacity <= tile.entity.power.amount / powerCapacity &&
return other != null && other.getTeamID() == tile.getTeamID() && other.entity.power.amount / other.block().powerCapacity <= tile.entity.power.amount / powerCapacity &&
!(other.block() instanceof PowerGenerator); //do not distribute to power generators
}