diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java index 1b09b4b3a4fdc1bba073bae2f79fcd78c4ece9e1..81b0100dd193a1e737bfc684baffbbef13d7cc6b 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java @@ -7,8 +7,10 @@ import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.RuntimeInfo; import de.hdm_stuttgart.battlearena.Model.Entity.EntityClass; import de.hdm_stuttgart.battlearena.Model.Entity.EntityFactory; import de.hdm_stuttgart.battlearena.Model.Entity.EntityType; +import de.hdm_stuttgart.battlearena.Model.Entity.GameplayObjects.ObjectStatus; import de.hdm_stuttgart.battlearena.Model.Entity.IEntity; import de.hdm_stuttgart.battlearena.Model.Inputs.InputHandler; +import de.hdm_stuttgart.battlearena.Model.Map.Biom; import de.hdm_stuttgart.battlearena.Model.Map.TileManager; import de.hdm_stuttgart.battlearena.Model.Sound.SoundEffects; @@ -23,7 +25,9 @@ import org.apache.logging.log4j.LogManager; import java.io.IOException; import java.net.URL; +import java.util.List; import java.util.ResourceBundle; +import java.util.stream.Collectors; public class GameSceneController implements Initializable { @@ -38,8 +42,6 @@ public class GameSceneController implements Initializable { RuntimeInfo runtimeInfo = RuntimeInfo.getInstance(); - - GameMode gameMode = runtimeInfo.getGameMode(); IEntity player; @@ -51,29 +53,70 @@ public class GameSceneController implements Initializable { TileManager tileManager; //map data - String mapString = "4 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 " + - "4 1 2 1 1 1 1 2 2 2 1 1 1 1 1 1 1 3 " + - "4 2 1 1 1 1 1 2 2 2 1 1 1 1 2 1 1 3 " + - "4 1 1 1 2 2 4 3 3 1 4 3 3 3 3 2 2 3 " + - "4 1 1 1 2 2 4 1 1 1 1 1 1 1 3 1 2 3 " + - "4 1 1 1 2 2 4 1 3 3 3 1 1 1 3 2 2 3 " + - "4 1 1 1 2 2 4 1 1 1 1 1 1 1 3 2 1 3 " + - "4 1 5 1 2 2 4 3 3 1 4 3 3 3 3 2 1 3 " + - "4 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 3 " + - "4 1 1 1 2 2 4 3 3 1 3 3 3 3 3 2 1 3 " + - "4 1 1 1 1 2 4 3 3 1 3 3 3 3 3 1 1 3 " + - "4 1 1 1 1 2 4 3 3 1 3 3 3 3 3 2 2 3 " + - "4 1 1 1 1 1 4 3 3 1 3 3 3 3 3 1 2 3 " + - "4 1 2 1 1 1 1 2 2 2 1 1 1 1 1 1 1 3 " + - "4 1 1 2 1 1 1 2 2 2 1 1 1 1 1 1 1 3 " + - "4 1 1 1 2 2 4 3 3 1 3 3 3 3 3 2 2 3 " + - "4 1 1 1 2 2 4 3 3 1 3 3 3 3 3 2 2 3 " + - "4 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3"; + + String mapString = "10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 " + + "10 1 1 1 20 1 20 1 20 1 20 1 20 1 20 1 1 10 " + + "10 1 1 20 10 20 10 20 10 20 10 20 10 20 10 20 1 10 " + + "10 1 20 1 20 1 20 1 20 1 20 1 20 1 20 1 20 10 " + + "10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 10 " + + "10 1 20 1 20 1 20 1 20 1 20 1 20 1 20 1 20 10 " + + "10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 10 " + + "10 1 20 1 20 1 20 1 20 1 20 1 20 1 20 1 20 10 " + + "10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 10 " + + "10 1 20 1 20 1 20 1 20 1 20 1 20 1 20 1 20 10 " + + "10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 10 " + + "10 1 20 1 20 1 20 1 20 1 20 1 20 1 20 1 20 10 " + + "10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 10 " + + "10 1 20 1 20 1 20 1 20 1 20 1 20 1 20 1 20 10 " + + "10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 10 " + + "10 1 20 1 20 1 20 1 20 1 20 1 20 1 20 1 1 10 " + + "10 1 1 20 10 20 10 20 10 20 10 20 10 20 10 1 1 10 " + + "10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 "; + + /*String mapString = "10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 " + + "10 1 1 20 20 20 20 20 20 20 20 20 20 20 20 1 1 10 " + + "10 1 10 20 10 20 10 20 10 10 20 10 20 10 20 10 1 10 " + + "10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 10 " + + "10 20 10 20 10 20 10 20 10 10 20 10 20 10 20 10 20 10 " + + "10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 10 " + + "10 20 10 20 10 20 10 20 10 10 20 10 20 10 20 10 20 10 " + + "10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 10 " + + "10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 10 " + + "10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 10 " + + "10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 10 " + + "10 20 10 20 10 20 10 20 10 10 20 10 20 10 20 10 20 10 " + + "10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 10 " + + "10 20 10 20 10 20 10 20 10 10 20 10 20 10 20 10 20 10 " + + "10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 10 " + + "10 1 10 20 10 20 10 20 10 10 20 10 20 10 20 10 1 10 " + + "10 1 1 20 20 20 20 20 20 20 20 20 20 20 20 1 1 10 " + + "10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 ";*/ + + + /*String mapString = "11 10 13 10 13 10 10 12 14 14 11 10 10 13 10 13 10 12 " + + "11 0 0 0 0 0 16 0 2 2 0 3 0 0 0 3 0 12 " + + "11 0 16 0 0 0 0 0 1 2 0 0 0 0 16 0 1 12 " + + "11 16 0 0 3 0 16 0 2 2 0 0 3 0 0 0 0 12 " + + "11 0 3 0 0 16 0 1 1 2 0 0 0 0 16 0 0 12 " + + "11 0 0 16 16 0 0 0 1 2 0 0 0 0 3 16 0 12 " + + "11 16 0 0 12 10 10 15 12 2 11 15 16 15 15 11 0 12 " + + "11 0 0 0 12 0 1 1 0 2 0 0 0 0 0 11 0 12 " + + "11 0 0 16 12 5 5 5 5 4 5 5 5 5 0 11 1 12 " + + "11 0 0 0 12 11 10 10 10 2 12 0 0 1 0 11 0 12 " + + "11 0 0 0 12 1 0 0 11 2 12 16 0 1 0 11 0 12 " + + "11 0 0 0 12 0 1 0 11 2 12 0 16 0 0 11 0 12 " + + "11 0 1 0 12 0 0 12 11 2 12 11 13 10 13 11 0 12 " + + "11 0 0 0 12 0 0 0 0 2 0 0 0 0 0 0 0 12 " + + "11 0 0 0 12 15 13 10 12 14 11 10 13 10 13 12 0 12 " + + "11 1 0 0 1 0 0 0 0 2 0 0 1 1 0 0 0 12 " + + "11 0 0 1 0 0 1 0 0 2 0 0 1 0 0 1 0 12 " + + "11 10 15 15 10 10 15 10 12 14 11 10 10 15 10 15 10 12";*/ + int horizontalTileCount = 18; int verticalTileCount = 18; - int diffTileCount = 6; + int diffTileCount = 30; int scaledTileSize = 48; - + private final Biom biom = runtimeInfo.getMapBiom(); @Override public void initialize(URL url, ResourceBundle resourceBundle) { @@ -90,7 +133,7 @@ public class GameSceneController implements Initializable { playerTwoClass, this, PlayerMode.PLAYER_TWO); } - tileManager = new TileManager(graphicsContext2D, diffTileCount, horizontalTileCount, verticalTileCount, mapString); + tileManager = new TileManager(graphicsContext2D, diffTileCount, horizontalTileCount, verticalTileCount, mapString, biom); SoundEffects soundEffects = new SoundEffects(); @@ -108,9 +151,11 @@ public class GameSceneController implements Initializable { AnimationTimer gameLoop = new AnimationTimer() { @Override public void handle(long l) { - graphicsContext2D.clearRect(0, 0, canvas2D.getWidth(), canvas2D.getHeight()); - renderContent(graphicsContext2D); - updateContent(); + if (!inputHandler.isPause()) { + graphicsContext2D.clearRect(0, 0, canvas2D.getWidth(), canvas2D.getHeight()); + renderContent(graphicsContext2D); + updateContent(); + } } }; gameLoop.start(); @@ -122,14 +167,33 @@ public class GameSceneController implements Initializable { enemy.updateEntityMovement(this); player.attack(enemy, graphicsContext2D); enemy.attack(player, graphicsContext2D); + updateGameplayObjects(); + player.checkGameplayObjectInteraction(player, graphicsContext2D); + enemy.checkGameplayObjectInteraction(enemy, graphicsContext2D); + player.placeBomb(player, enemy, graphicsContext2D); + enemy.placeBomb(enemy, player, graphicsContext2D); } private void renderContent(GraphicsContext graphicsContext) { tileManager.renderMap(); player.renderEntity(graphicsContext); enemy.renderEntity(graphicsContext); - player.checkHealTile(player, graphicsContext2D); - enemy.checkHealTile(enemy, graphicsContext2D); + renderGameplayObjects(graphicsContext); + } + + private void renderGameplayObjects(GraphicsContext graphicsContext) { + List<IEntity> gameplayObjects = runtimeInfo.getGameplayObjects(); + for (IEntity gameplayObject : gameplayObjects) { + gameplayObject.renderEntity(graphicsContext); + } + } + + private void updateGameplayObjects() { + List<IEntity> gameplayObjects = runtimeInfo.getGameplayObjects(); + List<IEntity> updateList = gameplayObjects.stream().filter(obj -> obj.getOBJECT_STATUS() != ObjectStatus.USED) + .collect(Collectors.toList()); + runtimeInfo.setGameplayObjects(updateList); + log.debug("Gameplay objects updated"); } public IEntity getEnemy() { @@ -147,4 +211,4 @@ public class GameSceneController implements Initializable { public int getScaledTileSize() { return scaledTileSize; } -} +} \ No newline at end of file diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Map/TileManager.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Map/TileManager.java index 27e558d93ab99c6b8354abb6cd7983c8b279cc0f..ec85519531097e4467a1654832639b452bcbbea7 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Model/Map/TileManager.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Map/TileManager.java @@ -1,6 +1,5 @@ package de.hdm_stuttgart.battlearena.Model.Map; -import de.hdm_stuttgart.battlearena.Model.Sound.SFXLoop; import javafx.scene.canvas.GraphicsContext; import javafx.scene.image.Image; @@ -21,7 +20,7 @@ public class TileManager { private final int verticalTileCount; public TileManager(GraphicsContext graphicsContext2D, int diffTileCount, - int horizontalTileCount, int verticalTileCount, String mapString) { + int horizontalTileCount, int verticalTileCount, String mapString, Biom biom) { this.graphicsContext2D = graphicsContext2D; this.horizontalTileCount = horizontalTileCount; this.verticalTileCount = verticalTileCount; @@ -29,26 +28,284 @@ public class TileManager { tileSet = new BackgroundTile[diffTileCount]; tileMap = new int[horizontalTileCount][verticalTileCount]; - createTiles(); + createTiles(biom); generateMap(mapString, horizontalTileCount, verticalTileCount); } - private void createTiles() { - try { - tileSet[0] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, - new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/Grass01.png"))), SFXLoop.GRASS); - tileSet[1] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, - new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/Grass02.png"))),SFXLoop.GRASS); - tileSet[2] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, - new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/Grass04.png"))), SFXLoop.GRASS); - tileSet[3] = TileFactory.createTile(TileType.NON_WALKABLE, TileType.DESTRUCTIBLE, - new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/Stone01.png"))), SFXLoop.NONE); - tileSet[4] = TileFactory.createTile(TileType.NON_WALKABLE, TileType.DESTRUCTIBLE, - new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/Stone02.png"))), SFXLoop.NONE); - tileSet[5] = TileFactory.createTile(TileType.WALKABLE,TileType.NON_DESTRUCTIBLE, - new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/finalheart.png"))), SFXLoop.GRASS); + //index 0-9: WALKABLE + NON_DESTRUCTIBLE, index 10-19: NON_WALKABLE + NON_DESTRUCTIBLE, index 20-29: DESTRUCTIBLE + private void createTiles(Biom biom) { + if (biom == Biom.GRASS) { + try { + //Textures of walkable tiles + tileSet[0] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/grass_biom/ground/GrassGrassLand00.png")))); + tileSet[1] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/grass_biom/ground/GrassGrassLand01.png")))); + tileSet[2] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/grass_biom/ground/GrassPathGrassLand02.png")))); + tileSet[3] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/grass_biom/ground/GrassGrassLand03.png")))); + tileSet[4] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[5] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[6] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[7] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[8] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[9] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + //Textures of solid tiles + non destructible + tileSet[10] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/grass_biom/building/StoneGrassLand00.png")))); + tileSet[11] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/grass_biom/building/StoneEndLeftGrassLand01.png")))); + tileSet[12] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/grass_biom/building/StoneEndRightGrassLand02.png")))); + tileSet[13] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/grass_biom/building/StoneWindowGrassLand03.png")))); + tileSet[14] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/grass_biom/building/StoneGateGrassLand04.png")))); + tileSet[15] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/grass_biom/building/StoneGrassLand05.png")))); + tileSet[16] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/grass_biom/ground/GrassGrassLand04.png")))); + tileSet[17] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[18] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[19] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + //Textures of destructible tiles + tileSet[20] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/grass_biom/building/box.png")))); + tileSet[21] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[22] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[23] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[24] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[25] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[26] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[27] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[28] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[29] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + } catch (Exception e) { + log.error(e); + } + }else if(biom == Biom.DARK_LANDS){ + try { + //Textures of walkable tiles + tileSet[0] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/dark_lands_biom/ground/GrassDarkLand00.png")))); + tileSet[1] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/dark_lands_biom/ground/GrassDarkLand01.png")))); + tileSet[2] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/dark_lands_biom/ground/GrassPathDarkLand02.png")))); + tileSet[3] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/dark_lands_biom/ground/GrassDarkLand03.png")))); + tileSet[4] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[5] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[6] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[7] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[8] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[9] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + //Textures of solid tiles + tileSet[10] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/dark_lands_biom/building/StoneDarkLand00.png")))); + tileSet[11] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/dark_lands_biom/building/StoneEndLeftDarkLand01.png")))); + tileSet[12] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/dark_lands_biom/building/StoneEndRightDarkLand02.png")))); + tileSet[13] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/dark_lands_biom/building/StoneWindowDarkLand03.png")))); + tileSet[14] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/dark_lands_biom/building/StoneGateDarkLand04.png")))); + tileSet[15] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[16] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[17] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[18] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[19] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + //Textures of destructible tiles + tileSet[20] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/dark_lands_biom/building/box.png")))); + tileSet[21] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[22] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[23] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[24] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[25] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[26] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[27] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[28] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[29] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); } catch (Exception e) { - log.error(e); + log.error(e); + } + }else if(biom == Biom.BOMBERMAN){ + try { + //Textures of walkable tiles + tileSet[0] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/bomberman/ground/GrassBombLand00.png")))); + tileSet[1] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/bomberman/ground/GrassBombLand01.png")))); + tileSet[2] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[3] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/bomberman/ground/GrassBombLand03.png")))); + tileSet[4] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/bomberman/ground/GrassBombLand04.png")))); + tileSet[5] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[6] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[7] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[8] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[9] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + //Textures of solid tiles + tileSet[10] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/bomberman/building/StoneBombLand00.png")))); + tileSet[11] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/bomberman/building/StoneBombLand01.png")))); + tileSet[12] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[13] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[14] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[15] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[16] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[17] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[18] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[19] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + //Textures of destructible tiles + tileSet[20] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/bomberman/building/box.png")))); + tileSet[21] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[22] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[23] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[24] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[25] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[26] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[27] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[28] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[29] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + } catch (Exception e) { + log.error(e); + } + }else if(biom == Biom.FORREST){ + try { + //Textures of walkable tiles + tileSet[0] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/forrest_biom/ground/GrassWoodLand00.png")))); + tileSet[1] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/forrest_biom/ground/GrassWoodLand01.png")))); + tileSet[2] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/forrest_biom/ground/GrassPathWoodLand02.png")))); + tileSet[3] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/forrest_biom/ground/GrassWoodLand03.png")))); + tileSet[4] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[5] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[6] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[7] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[8] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[9] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + //Textures of solid tiles + tileSet[10] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[11] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[12] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[13] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[14] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[15] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[16] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[17] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[18] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[19] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + //Textures of destructible tiles + tileSet[20] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/forrest_biom/building/box.png")))); + tileSet[21] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[22] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[23] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[24] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[25] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[26] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[27] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[28] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + tileSet[29] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.DESTRUCTIBLE, + new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/NoTexture.png")))); + } catch (Exception e) { + log.error(e); + } } } diff --git a/src/main/resources/textures/map/dark_lands_biom/building/box.png b/src/main/resources/textures/map/dark_lands_biom/building/box.png new file mode 100644 index 0000000000000000000000000000000000000000..6c6cf965c67c4e8008c453bd87f27542d9ebe8a2 Binary files /dev/null and b/src/main/resources/textures/map/dark_lands_biom/building/box.png differ diff --git a/src/main/resources/textures/map/grass_biom/building/box.png b/src/main/resources/textures/map/grass_biom/building/box.png new file mode 100644 index 0000000000000000000000000000000000000000..6c6cf965c67c4e8008c453bd87f27542d9ebe8a2 Binary files /dev/null and b/src/main/resources/textures/map/grass_biom/building/box.png differ