From 52a59d2808335afaa965e6197553d51632c094b1 Mon Sep 17 00:00:00 2001 From: Asecave Date: Mon, 28 Jun 2021 22:27:58 +0200 Subject: [PATCH] doors always lead to other rooms --- Zoelda/src/main/DoorTile.java | 8 ++++++-- Zoelda/src/main/World.java | 8 +++----- Zoelda/src/main/maps/ImageMap.java | 21 ++++++++++++--------- 3 files changed, 21 insertions(+), 16 deletions(-) diff --git a/Zoelda/src/main/DoorTile.java b/Zoelda/src/main/DoorTile.java index 95f627b..9089a18 100644 --- a/Zoelda/src/main/DoorTile.java +++ b/Zoelda/src/main/DoorTile.java @@ -29,7 +29,6 @@ public class DoorTile extends Tile implements Ticker { if (dist < 0.5f) { if (!waitForLeave) { Main.instance.getWorld().changeMap(this); - waitForLeave = true; } } else { waitForLeave = false; @@ -62,10 +61,15 @@ public class DoorTile extends Tile implements Ticker { } @Override - public Tile clone() { + public DoorTile clone() { DoorTile t = new DoorTile(posX, posY, map); t.setConnectedDoor(connected); t.side = side; + t.map = map; return t; } + + public void setMap(ImageMap map) { + this.map = map; + } } diff --git a/Zoelda/src/main/World.java b/Zoelda/src/main/World.java index c00b6f5..38be69e 100644 --- a/Zoelda/src/main/World.java +++ b/Zoelda/src/main/World.java @@ -27,11 +27,9 @@ public class World extends Knoten { ImageMap start = new ImageMap("/res/images/maps/map2.png"); dungeon.add(start); currentMap = start; - currentMap.start(); - start.generate(dungeon, DoorTile.BOTTOM); System.out.println("generated!"); - + currentMap.start(); player = new Player(); currentMap.getEntities().add(player); @@ -55,10 +53,10 @@ public class World extends Knoten { currentMap.entfernen(player.actionFigur); entfernen(currentMap); currentMap = door.getConnectedDoor().getMap(); - currentMap.add(player.actionFigur); add(currentMap); + currentMap.add(player.actionFigur); currentMap.start(); - door.getConnectedDoor().waitForLeave(); player.setPos(door.getConnectedDoor().posX + 0.5f, door.getConnectedDoor().posY + 0.5f); + door.getConnectedDoor().waitForLeave(); } } diff --git a/Zoelda/src/main/maps/ImageMap.java b/Zoelda/src/main/maps/ImageMap.java index 6067249..9d2a92f 100644 --- a/Zoelda/src/main/maps/ImageMap.java +++ b/Zoelda/src/main/maps/ImageMap.java @@ -88,21 +88,24 @@ public class ImageMap extends Map { tiles[x][y] = map.getTile(x, y).clone(); if (tiles[x][y] instanceof DoorTile) { DoorTile dt = (DoorTile) tiles[x][y]; - switch (dt.getSide()) { - case DoorTile.TOP: + if (dt.getSide() == DoorTile.TOP) { topDoor = dt; - break; - case DoorTile.BOTTOM: + topDoor.setMap(this); + } + if (dt.getSide() == DoorTile.BOTTOM) { bottomDoor = dt; - break; - case DoorTile.LEFT: + bottomDoor.setMap(this); + } + if (dt.getSide() == DoorTile.LEFT) { leftDoor = dt; - break; - case DoorTile.RIGHT: + leftDoor.setMap(this); + } + if (dt.getSide() == DoorTile.RIGHT) { rightDoor = dt; - break; + rightDoor.setMap(this); } } + add(tiles[x][y]); } } }