Fixed remaining errors with teleporting

closes #6
This commit is contained in:
Bokros Bálint 2016-05-13 20:27:05 +02:00
parent d14ce39ee1
commit e3ce590d1d
2 changed files with 9 additions and 12 deletions

View File

@ -12,6 +12,7 @@ public class Stargate {
public Stargate other;
private boolean isSpawned;
private Wall currentWall;
private Direction exitDirection;
private String name;
private static Map<Color, Stargate> stargates = new HashMap<>();
@ -42,8 +43,10 @@ public class Stargate {
return currentWall;
}
public void setCurrentWall(Wall wall) {
public void setCurrentWall(Wall wall, Direction direction) {
currentWall = wall;
if(direction != null)
exitDirection = Direction.invert(direction);
if(wall != null) {
isSpawned = true;
}
@ -60,18 +63,12 @@ public class Stargate {
}
private Direction getExitDirection() {
if(currentWall.getAdjacentTile(Direction.EAST) == null)
return Direction.WEST;
else if(currentWall.getAdjacentTile(Direction.WEST) == null)
return Direction.EAST;
else if(currentWall.getAdjacentTile(Direction.NORTH) == null)
return Direction.SOUTH;
else
return Direction.NORTH;
return exitDirection;
}
public void teleport(PlayerBase player) {
player.setCurrentTile(other.getCurrentWall().getAdjacentTile(getExitDirection()));
if(isOpen())
player.setCurrentTile(other.getCurrentWall().getAdjacentTile(other.getExitDirection()));
}
@Override

View File

@ -13,7 +13,7 @@ public class Wall extends Tile {
stargate.getCurrentWall().clearStargate();
if (sg == null) {
sg = stargate;
sg.setCurrentWall(this);
sg.setCurrentWall(this, direction);
Game.instance.updateDisplay();
}
else
@ -30,7 +30,7 @@ public class Wall extends Tile {
public void clearStargate() {
if(sg != null) {
sg.setCurrentWall(null);
sg.setCurrentWall(null, null);
sg = null;
}
}