From 8035eae53926afcee8c49cbb7aee626a49b5dddf Mon Sep 17 00:00:00 2001
From: yschl <ys037@hdm-stuttgart.de>
Date: Thu, 25 Jan 2024 15:23:11 +0100
Subject: [PATCH] TileManager destroyableboxes fix, added destroyable boxes to
 every Biom, added new map

# Conflicts:
#	src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java
#	src/main/java/de/hdm_stuttgart/battlearena/Model/Map/TileManager.java
---
 .../Controller/GameSceneController.java       | 122 ++++++--
 .../battlearena/Model/Map/TileManager.java    | 293 ++++++++++++++++--
 .../map/dark_lands_biom/building/box.png      | Bin 0 -> 210 bytes
 .../textures/map/grass_biom/building/box.png  | Bin 0 -> 210 bytes
 4 files changed, 368 insertions(+), 47 deletions(-)
 create mode 100644 src/main/resources/textures/map/dark_lands_biom/building/box.png
 create mode 100644 src/main/resources/textures/map/grass_biom/building/box.png

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 1b09b4b3..81b0100d 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 27e558d9..ec855195 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
GIT binary patch
literal 210
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|dOTemLoEE0
zQxXz>oOfVMV3GW=Be+FJIpy?yg9cs&Z}Sl0JFE(q9rPG4{tve_wAoqDsV}`u>?p&8
zg)JuM@BeRGn8(h1$4G>^<0{W4j@8^BDjCy^PY4~`P<w;-z*E+gvl})Xe8rR#cVOAf
z4E==5K3l{KGSyCTx0pQs%A|O9!vSYbmsKjMMLY|=(wG?LevuY<$8${?=q?6NS3j3^
HP6<r_cQH!9

literal 0
HcmV?d00001

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
GIT binary patch
literal 210
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|dOTemLoEE0
zQxXz>oOfVMV3GW=Be+FJIpy?yg9cs&Z}Sl0JFE(q9rPG4{tve_wAoqDsV}`u>?p&8
zg)JuM@BeRGn8(h1$4G>^<0{W4j@8^BDjCy^PY4~`P<w;-z*E+gvl})Xe8rR#cVOAf
z4E==5K3l{KGSyCTx0pQs%A|O9!vSYbmsKjMMLY|=(wG?LevuY<$8${?=q?6NS3j3^
HP6<r_cQH!9

literal 0
HcmV?d00001

-- 
GitLab