From b20f022ba3d68b8e4898d9b42699da723acadff0 Mon Sep 17 00:00:00 2001
From: ms622 <ms622@hdm-stuttgart.de>
Date: Thu, 18 Jan 2024 15:03:36 +0100
Subject: [PATCH] update: TileManager.java, RuntimeInfo.java,
 GameSceneController.java texture and world generation update #85

---
 .../Controller/GameSceneController.java       |  65 ++++++--------
 .../DataStorage/Classes/RuntimeInfo.java      |  11 +++
 .../battlearena/Model/Map/Biom.java           |   8 ++
 .../battlearena/Model/Map/TileManager.java    |  79 +++++++++++-------
 src/main/resources/textures/map/NoTexture.png | Bin 0 -> 1523 bytes
 .../textures/map/{ => bomberman}/box.png      | Bin
 .../map/{ => bomberman}/solidstone.png        | Bin
 .../building/StoneDarkLand00.png              | Bin 0 -> 1855 bytes
 .../building/StoneEndLeftDarkLand01.png       | Bin 0 -> 2016 bytes
 .../building/StoneEndRightDarkLand02.png      | Bin 0 -> 1916 bytes
 .../building/StoneGateDarkLand04.png          | Bin 0 -> 2005 bytes
 .../building/StoneWindowDarkLand03.png        | Bin 0 -> 2005 bytes
 .../ground/GrassDarkLand00.png                | Bin 0 -> 1835 bytes
 .../ground/GrassDarkLand01.png                | Bin 0 -> 1974 bytes
 .../ground/GrassDarkLand03.png                | Bin 0 -> 2008 bytes
 .../ground/GrassPathDarkLand02.png            | Bin 0 -> 1981 bytes
 .../ground/GrassWoodLand00.png}               | Bin 1802 -> 1818 bytes
 .../forrest_biom/ground/GrassWoodLand01.png   | Bin 0 -> 1902 bytes
 .../building/StoneEndLeftGrassLand01.png}     | Bin 1953 -> 1985 bytes
 .../building/StoneEndRightGrassLand02.png     | Bin 0 -> 1977 bytes
 .../building/StoneGateGrassLand04.png         | Bin 0 -> 2096 bytes
 .../building/StoneGrassLand00.png}            | Bin 1859 -> 1877 bytes
 .../grass_biom/building/StoneGrassLand05.png  | Bin 0 -> 2091 bytes
 .../building/StoneWindowGrassLand03.png       | Bin 0 -> 2136 bytes
 .../ground/GrassGrassLand00.png}              | Bin 1800 -> 1818 bytes
 .../ground/GrassGrassLand01.png}              | Bin 1956 -> 1972 bytes
 .../grass_biom/ground/GrassGrassLand03.png    | Bin 0 -> 1933 bytes
 .../grass_biom/ground/GrassGrassLand04.png    | Bin 0 -> 1976 bytes
 .../ground/GrassPathGrassLand02.png           | Bin 0 -> 1949 bytes
 .../{map => objects/big_bomb}/bigbomb.png     | Bin
 .../textures/{map => objects/bomb}/bomb.png   | Bin
 .../textures/{map => objects/heal}/heart.png  | Bin
 .../{map => objects/vfx}/bigexplosion.png     | Bin
 .../{map => objects/vfx}/middleexplosion.png  | Bin
 .../{map => objects/vfx}/smallexplosion.png   | Bin
 35 files changed, 95 insertions(+), 68 deletions(-)
 create mode 100644 src/main/java/de/hdm_stuttgart/battlearena/Model/Map/Biom.java
 create mode 100644 src/main/resources/textures/map/NoTexture.png
 rename src/main/resources/textures/map/{ => bomberman}/box.png (100%)
 rename src/main/resources/textures/map/{ => bomberman}/solidstone.png (100%)
 create mode 100644 src/main/resources/textures/map/dark_lands_biom/building/StoneDarkLand00.png
 create mode 100644 src/main/resources/textures/map/dark_lands_biom/building/StoneEndLeftDarkLand01.png
 create mode 100644 src/main/resources/textures/map/dark_lands_biom/building/StoneEndRightDarkLand02.png
 create mode 100644 src/main/resources/textures/map/dark_lands_biom/building/StoneGateDarkLand04.png
 create mode 100644 src/main/resources/textures/map/dark_lands_biom/building/StoneWindowDarkLand03.png
 create mode 100644 src/main/resources/textures/map/dark_lands_biom/ground/GrassDarkLand00.png
 create mode 100644 src/main/resources/textures/map/dark_lands_biom/ground/GrassDarkLand01.png
 create mode 100644 src/main/resources/textures/map/dark_lands_biom/ground/GrassDarkLand03.png
 create mode 100644 src/main/resources/textures/map/dark_lands_biom/ground/GrassPathDarkLand02.png
 rename src/main/resources/textures/map/{Grass01.png => forrest_biom/ground/GrassWoodLand00.png} (84%)
 create mode 100644 src/main/resources/textures/map/forrest_biom/ground/GrassWoodLand01.png
 rename src/main/resources/textures/map/{Stone02.png => grass_biom/building/StoneEndLeftGrassLand01.png} (85%)
 create mode 100644 src/main/resources/textures/map/grass_biom/building/StoneEndRightGrassLand02.png
 create mode 100644 src/main/resources/textures/map/grass_biom/building/StoneGateGrassLand04.png
 rename src/main/resources/textures/map/{Stone01.png => grass_biom/building/StoneGrassLand00.png} (85%)
 create mode 100644 src/main/resources/textures/map/grass_biom/building/StoneGrassLand05.png
 create mode 100644 src/main/resources/textures/map/grass_biom/building/StoneWindowGrassLand03.png
 rename src/main/resources/textures/map/{Grass02.png => grass_biom/ground/GrassGrassLand00.png} (84%)
 rename src/main/resources/textures/map/{Grass04.png => grass_biom/ground/GrassGrassLand01.png} (63%)
 create mode 100644 src/main/resources/textures/map/grass_biom/ground/GrassGrassLand03.png
 create mode 100644 src/main/resources/textures/map/grass_biom/ground/GrassGrassLand04.png
 create mode 100644 src/main/resources/textures/map/grass_biom/ground/GrassPathGrassLand02.png
 rename src/main/resources/textures/{map => objects/big_bomb}/bigbomb.png (100%)
 rename src/main/resources/textures/{map => objects/bomb}/bomb.png (100%)
 rename src/main/resources/textures/{map => objects/heal}/heart.png (100%)
 rename src/main/resources/textures/{map => objects/vfx}/bigexplosion.png (100%)
 rename src/main/resources/textures/{map => objects/vfx}/middleexplosion.png (100%)
 rename src/main/resources/textures/{map => objects/vfx}/smallexplosion.png (100%)

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 0c6e24ee..9f8d05f8 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java
@@ -9,6 +9,7 @@ import de.hdm_stuttgart.battlearena.Model.Entity.EntityFactory;
 import de.hdm_stuttgart.battlearena.Model.Entity.EntityType;
 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 javafx.animation.AnimationTimer;
@@ -47,47 +48,31 @@ 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 6 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 =  "4 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 " +
-                            "4 1 9 1 9 1 9 1 9 1 9 1 9 1 9 1 9 3 " +
-                            "4 9 10 9 10 9 10 9 10 9 10 9 10 9 10 9 10 3 " +
-                            "4 1 9 1 9 1 9 1 9 1 9 1 9 1 9 1 9 3 " +
-                            "4 9 10 9 10 9 10 9 10 9 10 9 10 9 10 9 10 3 " +
-                            "4 1 9 1 9 1 9 1 9 1 9 1 9 1 9 1 9 3 " +
-                            "4 9 10 9 10 9 10 9 10 9 10 9 10 9 10 9 10 3 " +
-                            "4 1 9 1 9 1 9 1 9 1 9 1 9 1 9 1 9 3 " +
-                            "4 9 10 9 10 9 10 9 10 9 10 9 10 9 10 9 10 3 " +
-                            "4 1 9 1 9 1 9 1 9 1 9 1 9 1 9 1 9 3 " +
-                            "4 9 10 9 10 9 10 9 10 9 10 9 10 9 10 9 10 3 " +
-                            "4 1 9 1 9 1 9 1 9 1 9 1 9 1 9 1 9 3 " +
-                            "4 9 10 9 10 9 10 9 10 9 10 9 10 9 10 9 10 3 " +
-                            "4 1 9 1 9 1 9 1 9 1 9 1 9 1 9 1 9 3 " +
-                            "4 9 10 9 10 9 10 9 10 9 10 9 10 9 10 9 10 3 " +
-                            "4 1 9 1 9 1 9 1 9 1 9 1 9 1 9 1 9 3 " +
-                            "4 9 10 9 10 9 10 9 10 9 10 9 10 9 10 9 10 3 " +
-                            "4 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 ";
+
+    String mapString = "4 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 " +
+            "4 1 9 1 9 1 9 1 9 1 9 1 9 1 9 1 9 3 " +
+            "4 9 10 9 10 9 10 9 10 9 10 9 10 9 10 9 10 3 " +
+            "4 1 9 1 9 1 9 1 9 1 9 1 9 1 9 1 9 3 " +
+            "4 9 10 9 10 9 10 9 10 9 10 9 10 9 10 9 10 3 " +
+            "4 1 9 1 9 1 9 1 9 1 9 1 9 1 9 1 9 3 " +
+            "4 9 10 9 10 9 10 9 10 9 10 9 10 9 10 9 10 3 " +
+            "4 1 9 1 9 1 9 1 9 1 9 1 9 1 9 1 9 3 " +
+            "4 9 10 9 10 9 10 9 10 9 10 9 10 9 10 9 10 3 " +
+            "4 1 9 1 9 1 9 1 9 1 9 1 9 1 9 1 9 3 " +
+            "4 9 10 9 10 9 10 9 10 9 10 9 10 9 10 9 10 3 " +
+            "4 1 9 1 9 1 9 1 9 1 9 1 9 1 9 1 9 3 " +
+            "4 9 10 9 10 9 10 9 10 9 10 9 10 9 10 9 10 3 " +
+            "4 1 9 1 9 1 9 1 9 1 9 1 9 1 9 1 9 3 " +
+            "4 9 10 9 10 9 10 9 10 9 10 9 10 9 10 9 10 3 " +
+            "4 1 9 1 9 1 9 1 9 1 9 1 9 1 9 1 9 3 " +
+            "4 9 10 9 10 9 10 9 10 9 10 9 10 9 10 9 10 3 " +
+            "4 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 ";
+
     int horizontalTileCount = 18;
     int verticalTileCount = 18;
-    int diffTileCount = 12;
+    int diffTileCount = 30;
     int scaledTileSize = 48;
-
+    private final Biom biom = runtimeInfo.getMapBiom();
 
     @Override
     public void initialize(URL url, ResourceBundle resourceBundle) {
@@ -104,7 +89,8 @@ 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);
 
         runtimeInfo.setGameState(GameState.PLAYING);
 
@@ -135,7 +121,6 @@ public class GameSceneController implements Initializable {
         tileManager.renderMap();
         player.renderEntity(graphicsContext);
         enemy.renderEntity(graphicsContext);
-
     }
 
     public IEntity getEnemy() {
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/RuntimeInfo.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/RuntimeInfo.java
index c1d4f746..876b1330 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/RuntimeInfo.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/RuntimeInfo.java
@@ -6,6 +6,7 @@ import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Exceptions.ParserE
 import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Utilities.HashGenerator;
 import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Utilities.Parser;
 import de.hdm_stuttgart.battlearena.Model.Entity.EntityClass;
+import de.hdm_stuttgart.battlearena.Model.Map.Biom;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
@@ -26,6 +27,8 @@ public class RuntimeInfo {
     private EntityClass playerOneClass = EntityClass.HUMAN;
     private EntityClass playerTwoClass = EntityClass.HUMAN;
 
+    private Biom mapBiom = Biom.GRASS; //Default value: GRASS
+
 
     private RuntimeInfo(){};
 
@@ -90,6 +93,14 @@ public class RuntimeInfo {
         this.playerTwoClass = playerTwoClass;
     }
 
+    public Biom getMapBiom() {
+        return mapBiom;
+    }
+
+    public void setMapBiom(Biom mapBiom) {
+        this.mapBiom = mapBiom;
+    }
+
     public int gameTimeInHours(){
         return persistenceInst.getStatistics().getGameTime() / 3600;
     }
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Map/Biom.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Map/Biom.java
new file mode 100644
index 00000000..ee6ca402
--- /dev/null
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Map/Biom.java
@@ -0,0 +1,8 @@
+package de.hdm_stuttgart.battlearena.Model.Map;
+
+public enum Biom {
+    BOMBERMAN,
+    DARK_LANDS,
+    FORREST,
+    GRASS
+}
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 81bdb3cd..9b1347d9 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
@@ -20,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;
@@ -28,36 +28,59 @@ 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"))));
-            tileSet[1] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE,
-                    new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/Grass02.png"))));
-            tileSet[2] = TileFactory.createTile(TileType.WALKABLE, TileType.NON_DESTRUCTIBLE,
-                    new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/Grass04.png"))));
-            tileSet[3] = TileFactory.createTile(TileType.NON_WALKABLE, TileType.DESTRUCTIBLE,
-                    new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/Stone01.png"))));
-            tileSet[4] = TileFactory.createTile(TileType.NON_WALKABLE, TileType.DESTRUCTIBLE,
-                    new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/Stone02.png"))));
-            tileSet[5] = TileFactory.createTile(TileType.WALKABLE,TileType.NON_DESTRUCTIBLE,
-                    new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/heart.png"))));
-            tileSet[6] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE,
-                    new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/bomb.png"))));
-            tileSet[7] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE,
-                    new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/bigbomb.png"))));
-            tileSet[8] = TileFactory.createTile(TileType.WALKABLE,TileType.NON_DESTRUCTIBLE,
-                    new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/middleexplosion.png"))));
-            tileSet[9] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.DESTRUCTIBLE,
-                    new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/box.png"))));
-            tileSet[10] = TileFactory.createTile(TileType.NON_WALKABLE,TileType.NON_DESTRUCTIBLE,
-                    new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/map/solidstone.png"))));
-        } catch (Exception e) {
-            log.error(e);
+    //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
+                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"))));
+            } catch (Exception e) {
+                log.error(e);
+            }
         }
     }
 
diff --git a/src/main/resources/textures/map/NoTexture.png b/src/main/resources/textures/map/NoTexture.png
new file mode 100644
index 0000000000000000000000000000000000000000..97d81e90559b742fa2098131248ce24bc7675069
GIT binary patch
literal 1523
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKU@Xmab`HpPc6ZLt$u9~nNK8(3
z$t*6&NvsSoW?;~mSUO>^_u&AMqyDRdE?9N&$;udYI$ycORaTgxE#hhr!n!(mRvl+<
zjf!Sap>Vk75BZ3Lkp&w%LJA5C1YFn!@6NH(+>udnZ+gfrrF+Mp{<WA>yffy2bbzGx
zHztjj(<b^HS+e!Yt|!&a?el_HrEOZVNQdj+-`%f2U;KK{za!FjcbULV|Cs6L^rn~1
zV+yYS8+&#B$yri=?_Y83l@xn0v2$u}H|IT7Il~OiN2?y}Ieon8vfg~_c~ev7{FoMT
zi7TsZho{bR>n}Cz)4NjFZf(ACZ~oQr=|^Q=1)fP1R+H!o2yA3weOUkJa-V&lZc%tb
zfL=e7&M6m9LE%kDK3`avC}dQ~;rMF8j^fvK{A+)o%*}l-IwQB>oc^s_PRtf_7f!x<
z`&I>ugcL*GD<9Jk_g4$QJu5o!o6}$hQ`>uu&56$rDVA5)^Sr2j_$Qg?gDg|o)X(dc
z&%Kpuo!_Yamt9;lYfmtn<7r?#RHR0Druq6ZXaU(A46KZ749q|lBLfqVkYZp3vl$q?
z7^UItAVv*@n)XZv7O0viAPoX7K+FiInHDg?RR}C#MzBFj4W%+?0x8Y{kH}&M1`%Hn
zW}I@WSD%4_xgawnq9nrC$0|8LS1&OoKPgqOBDVmfi@~PC3dqb&ElE_U$j!+swyLmI
z0;{kBvO&W7N(x{lCE2!05xxNm&iO^D3TAo+dIm~%TnY*bHbp6ERzWUqQ0+jTtx`rw
zNr9EVetCJhUb(Seeo?x<p{1pzzJZaxk&!M?g>G?WUP)qwZeFo6#1NP{E~&-IMVSR9
znfZANAafIw@=Hr>m6Sjh!2!gbDamkq3QCJ|z_z3$>!;?V=BDPA6zd!68R}!xSCW~A
zaA96CG&q0(qYsh+YBRv9&9k5+*#sC;t`$J{K>Y`FXfoK|;*u17BnA3L1_l<o21dF@
zmilo20iAD?l5ACyS(1|q4mh}fz#-_EQ-UfAQV$A(oJ>&2TID3>rQ0f1=%%EmC6?xt
zDB1bthon}NloqAh=tGpDYKMrTnrfqu#Q`=TZ(BtMr55Msl!5}@&d}J%1{@eDqKGJf
z=!n3o16dSZM?gk?Nj@-16=f!S=9Q!t6%+xJ7uZIaeYjPin}x7EG%vHn4rTzFFp@5$
z=&^DvDk;w|$_@cX1yVTTR0A~!5~fIL6p{hJ;SbCKc3d|4@Z4m_^)i_6Gcbdxc)B=-
zSO_NnQU37Ro|(0wlWA|l+Qn=J20d*DGb9>}4j)*~%uvV3tdc!5?KLPzdb;|#taD0e
F0szlD>+b*n

literal 0
HcmV?d00001

diff --git a/src/main/resources/textures/map/box.png b/src/main/resources/textures/map/bomberman/box.png
similarity index 100%
rename from src/main/resources/textures/map/box.png
rename to src/main/resources/textures/map/bomberman/box.png
diff --git a/src/main/resources/textures/map/solidstone.png b/src/main/resources/textures/map/bomberman/solidstone.png
similarity index 100%
rename from src/main/resources/textures/map/solidstone.png
rename to src/main/resources/textures/map/bomberman/solidstone.png
diff --git a/src/main/resources/textures/map/dark_lands_biom/building/StoneDarkLand00.png b/src/main/resources/textures/map/dark_lands_biom/building/StoneDarkLand00.png
new file mode 100644
index 0000000000000000000000000000000000000000..7141744f6029a09af2e65b7af0f5f766042ca75b
GIT binary patch
literal 1855
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKU@Xmab`HpPc6ZLt$u9~nNK8(3
z$t*6&NvsSoW?;~mSUO>^_u&AMqyDRdE?9N&$;udYI$ycORaTgxE#hhr!n!(mRvl+<
zjf!Sap>Vk75BZ3Lkp&w%LJA5C1YFn!@6NH(+>udnZ+gfrrF+Mp{<WA>yffy2bbzGx
zHztjj(<b^HS+e!Yt|!&a?el_HrEOZVNQdj+-`%f2U;KK{za!FjcbULV|Cs6L^rn~1
zV+yYS8+&#B$yri=?_Y83l@xn0v2$u}H|IT7Il~OiN2?y}Ieon8vfg~_c~ev7{FoMT
zi7TsZho{bR>n}Cz)4NjFZf(ACZ~oQr=|^Q=1)fP1R+H!o2yA3weOUkJa-V&lZc%tb
zfL=e7&M6m9LE%kDK3`avC}dQ~;rMF8j^fvK{A+)o%*}l-IwQB>oc^s_PRtf_7f!x<
z`&I>ugcL*GD<9Jk_g4$QJu5o!o6}$hQ`>uu&56$rDVA5)^Sr2j_$Qg?gDg|o)X(dc
z&%Kpuo!_Yamt9;lYfmtn<7r?#RHR0Druq6ZXaU(A46KZ749q|lBLfqVkYZp3vl$q?
z7^UItAVv*@n)XZv7O0viAPoX7K+FiInHDg?RR}C#MzBFj4W%+?0x8Y{kH}&M1`%Hn
zW}I@WSD%4_xh69tq9nrC$0|8LS1&OoKPgqOBDVmfi@~PC3dqb&ElE_U$j!+swyLmI
z0;{kBvO&W7N(x{lCE2!05xxNm&iO^D3TAo+dIm~%TnY*bHbp6ERzWUqQ0+jTtx`rw
zNr9EVetCJhUb(Seeo?x<p{1pzzJZaxk&!M?g>G?WUP)qwZeFo6#1NP{E~&-IMVSR9
znfZANAafIw@=Hr>m6Sjh!2!gbDamkq3QCJ|z_z3$>!;?V=BDPA6zd!68R}!xSCW~A
zaA96CG&q0(qYsh+YBRv9&9k5+*#sC;t`$J{K>Y`FXfoK|;*u17BnA3L1_l<o21dF@
zmilo20iAD?l5ACyS(1|q4mh}fz#-_EQ-UfAQV$A(oJ>&2TID3>rQ0f1=%%EmC6?xt
zDA@&<<maWjBo<}+B<7_U7})4T6r&mf5k)oIMjwkaY(Sp3iVR9E&d(_Y1;3r4v5^fp
zNKix(5dqN=fmH{xD7ub-jQo;(V8SZOO!mwxNi8ZU0wyxBjWGLgt3WpkVR>j?W{Dll
z05oAFT}Y8+<ycfwo?nz50*(-j(8Q?{Y8oVDk<u$9Gk{|Om>cZ4Z1mwd%Z{tdYi}7a
zC#QJ2IEGjVrcU<tJ8U4(dVFGFHKW*u6;WO)FAQ&NbV@ocY9Sq6Ces||wNRA%+=Ney
zALO6$o?Eu)M)LXd)y9)s+IJs6H)+jwZ?o)s)5GFpcAxw7@n*#Ic@yTv{=R(s)y+e@
z)@{B~{ZD&w;TIK|i=2}tRB#CBG}Tz1?N~5X!}<9fH%|*eaZal#+uxpgc3FG(-ktU)
zl`B<Gb1ZuGC#!z%v5;F6SGX@_Y}>d*CARvdPHfLdN2QDa(WVzuJ$FoA;eN&6XHEL=
zi6=dG2Q0|SoHEVrr0hXOmiw#ICO`L|@M7WPBi#ZfQuBA5V=}tWAQY^$KVXAKQb^>B
zj#H<X?`hk7xpTQvfYPfur;p4@y=?v{S%>#RU0r37$-DBm<x$0NrPh1BKHjldZz1p1
zGb_A1xX<WiS@60f1TUO&Fd$5xgH6?6@w>~xu8%AWK21CL`5?<T`-shzrg5H2eRf^g
n=l6JOZc&`P?*a8GxBjyWt-kg6*r6BUpwi9L)z4*}Q$iB}^)HqJ

literal 0
HcmV?d00001

diff --git a/src/main/resources/textures/map/dark_lands_biom/building/StoneEndLeftDarkLand01.png b/src/main/resources/textures/map/dark_lands_biom/building/StoneEndLeftDarkLand01.png
new file mode 100644
index 0000000000000000000000000000000000000000..b71227d4148111cc979cfa08e68deac7236530b2
GIT binary patch
literal 2016
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKU@Xmab`HpPc6ZLt$u9~nNK8(3
z$t*6&NvsSoW?;~mSUO>^_u&AMqyDRdE?9N&$;udYI$ycORaTgxE#hhr!n!(mRvl+<
zjf!Sap>Vk75BZ3Lkp&w%LJA5C1YFn!@6NH(+>udnZ+gfrrF+Mp{<WA>yffy2bbzGx
zHztjj(<b^HS+e!Yt|!&a?el_HrEOZVNQdj+-`%f2U;KK{za!FjcbULV|Cs6L^rn~1
zV+yYS8+&#B$yri=?_Y83l@xn0v2$u}H|IT7Il~OiN2?y}Ieon8vfg~_c~ev7{FoMT
zi7TsZho{bR>n}Cz)4NjFZf(ACZ~oQr=|^Q=1)fP1R+H!o2yA3weOUkJa-V&lZc%tb
zfL=e7&M6m9LE%kDK3`avC}dQ~;rMF8j^fvK{A+)o%*}l-IwQB>oc^s_PRtf_7f!x<
z`&I>ugcL*GD<9Jk_g4$QJu5o!o6}$hQ`>uu&56$rDVA5)^Sr2j_$Qg?gDg|o)X(dc
z&%Kpuo!_Yamt9;lYfmtn<7r?#RHR0Druq6ZXaU(A46KZ749q|lBLfqVkYZp3vl$q?
z7^UItAVv*@n)XZv7O0viAPoX7K+FiInHDg?RR}C#MzBFj4W%+?0x8Y{kH}&M1`%Hn
zW}I@WSD%4_xhpdyq9nrC$0|8LS1&OoKPgqOBDVmfi@~PC3dqb&ElE_U$j!+swyLmI
z0;{kBvO&W7N(x{lCE2!05xxNm&iO^D3TAo+dIm~%TnY*bHbp6ERzWUqQ0+jTtx`rw
zNr9EVetCJhUb(Seeo?x<p{1pzzJZaxk&!M?g>G?WUP)qwZeFo6#1NP{E~&-IMVSR9
znfZANAafIw@=Hr>m6Sjh!2!gbDamkq3QCJ|z_z3$>!;?V=BDPA6zd!68R}!xSCW~A
zaA96CG&q0(qYsh+YBRv9&9k5+*#sC;t`$J{K>Y`FXfoK|;*u17BnA3L1_l<o21dF@
zmilo20iAD?l5ACyS(1|q4mh}fz#-_EQ-UfAQV$A(oJ>&2TID3>rQ0f1=%%EmC6?xt
zDA@&<<maWj=B4<grj@uP7G?V+=A{@I+UP^{pqd2{MYY04AB$^jKw)4N8I)R_pHm8o
z1v^7yBO7qYpok*k1EM1Ws}5vQbR7X1`6c<l^i`CZ?3q`RT2xR3Olx2pVfNuxfo>MU
z^3c4@5<8dyXu?RkkmAb9v8bdxzbHEd951*66{iNMp^yMZO1+S*0gen{-mv4c(TC?V
zJFcleexC*A>+hZ}jv*F;xswihMLUYL{jYw0YlX(ri(Oo<0m4Db8QrbZc4;2fb6FTt
zvV8V8#$Ozjvb#&4JMS>c@>#_ltHSH1wNzm8>#u*(Ev{dvQkXo``uYF#bLQ$dZvL3Z
z!XWfB^!%w6S5EDERg(WPwN!ffr?XAfujg;eS@~bk^*`Iu+CaCX_b#MAS@wLx_Wj+B
z2YKxD>e=}DHXWX9W7F%my?5syZ57X^TR%6>s|d2b^7qgi8;kYxWEa+d;0()n#QVb0
z-i>LuU3g*5^7|I)elHGf37NIy=%d@0GRk<~PqR}H=wBTstk)B;PUgg|#3wgbTtD?<
z&gIJ2yH-}-_3P0vkM$AGxffj?dg{b^5y7tAjmsKrB>J7M$Vx_NEAu!@+G@>Of6_bR
zV820wLB?z0RZ(qw|H_+%R_Gr~cU-_@K0#8;mf_2zpNFzn*7^urY+!jT{MGW#pUj2D
zw^?uQJo`0YHBU%MxPD%E!2i<D={sAmG+f^+R3Ks^RVr}r{<nP7&K)zwC+uxlv88>h
zpUDQc{u;ekrY_SG^c@TjTU}|{t1EMSqmhDiqlIF-<Yjg?wI`iyXYyQ`Uw8hGnz=mM
z`uFS~%TumTv^&gWDc%t;x~TNA>)x*277mLmJD)2HSNuO#uJKUt&gF$`4lS7>SU6**
rmPh~YEqQgXd7aWW=rnD9;QNm8QO*;_>=Z^3Q1R>O>gTe~DWM4fh{oRW

literal 0
HcmV?d00001

diff --git a/src/main/resources/textures/map/dark_lands_biom/building/StoneEndRightDarkLand02.png b/src/main/resources/textures/map/dark_lands_biom/building/StoneEndRightDarkLand02.png
new file mode 100644
index 0000000000000000000000000000000000000000..7dfab3fb95f3017893cc077b665dfc96a4736bda
GIT binary patch
literal 1916
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKU@Xmab`HpPc6ZLt$u9~nNK8(3
z$t*6&NvsSoW?;~mSUO>^_u&AMqyDRdE?9N&$;udYI$ycORaTgxE#hhr!n!(mRvl+<
zjf!Sap>Vk75BZ3Lkp&w%LJA5C1YFn!@6NH(+>udnZ+gfrrF+Mp{<WA>yffy2bbzGx
zHztjj(<b^HS+e!Yt|!&a?el_HrEOZVNQdj+-`%f2U;KK{za!FjcbULV|Cs6L^rn~1
zV+yYS8+&#B$yri=?_Y83l@xn0v2$u}H|IT7Il~OiN2?y}Ieon8vfg~_c~ev7{FoMT
zi7TsZho{bR>n}Cz)4NjFZf(ACZ~oQr=|^Q=1)fP1R+H!o2yA3weOUkJa-V&lZc%tb
zfL=e7&M6m9LE%kDK3`avC}dQ~;rMF8j^fvK{A+)o%*}l-IwQB>oc^s_PRtf_7f!x<
z`&I>ugcL*GD<9Jk_g4$QJu5o!o6}$hQ`>uu&56$rDVA5)^Sr2j_$Qg?gDg|o)X(dc
z&%Kpuo!_Yamt9;lYfmtn<7r?#RHR0Druq6ZXaU(A46KZ749q|lBLfqVkYZp3vl$q?
z7^UItAVv*@n)XZv7O0viAPoX7K+FiInHDg?RR}C#MzBFj4W%+?0x8Y{kH}&M1`%Hn
zW}I@WSD%4_xhFFuq9nrC$0|8LS1&OoKPgqOBDVmfi@~PC3dqb&ElE_U$j!+swyLmI
z0;{kBvO&W7N(x{lCE2!05xxNm&iO^D3TAo+dIm~%TnY*bHbp6ERzWUqQ0+jTtx`rw
zNr9EVetCJhUb(Seeo?x<p{1pzzJZaxk&!M?g>G?WUP)qwZeFo6#1NP{E~&-IMVSR9
znfZANAafIw@=Hr>m6Sjh!2!gbDamkq3QCJ|z_z3$>!;?V=BDPA6zd!68R}!xSCW~A
zaA96CG&q0(qYsh+YBRv9&9k5+*#sC;t`$J{K>Y`FXfoK|;*u17BnA3L1_l<o21dF@
zmilo20iAD?l5ACyS(1|q4mh}fz#-_EQ-UfAQV$A(oJ>&2TID3>rQ0f1=%%EmC6?xt
zDA@&<<maWj=A{H>re~D6Bo<}+B<7_U7}@AUG@%*>5k<AbMjwlFY(Rlv6&aLToS#z)
ziUvDFW1yKBqKF8A=!n3o16dSZM?gk?Nj@-v6=f!S=9Q!t6%+vz8`wseeYjPin}x7E
zG%vHn4rTzFFp@5$$g*-QDk;w|$_@cX49-x+sRL>%B!rRDFC=q-V*{8w?6_?7;W^EY
z>$U804q(on=;`7ZVj);M+1HENQJ^*3Xs&%Pw|P@{2cvL^z>%fw1+N+RG_~_`c%H~m
z;@VX(bH&M&w!(dV`db*~&wTL@-Mg;ps%&ihT@kT_DK<C!Rwuf*$DZDFXHIvn!Mo_I
zSNDYPjr^Ouy5yGaV{1M8f?Inxtp9l^?w+tbPv?Z^JNb`&`)2s@_QktzYXw~=iXOF^
zm}2#%F@;HiB~eVE(W39HZ~XB(M=?bajYZe)tvj1Oe|8WD+r@)*yDeVM$$ceyGI=KF
z3iCM=XE!ZnOl5F4IM?IQxYbBti?`vyglpdy*GW$l^i+`$?O+bb%wX8!&vqvE`}dT5
z-TD*-Ay(xzCLU_cJEcCC&J)Wuo4KU>jPOe1H=fMT6lLC=QnHa<zWn*b@4n&Q>+P8G
z4i{d|P&J*n>&V2#d5f-Ha>y2+*JZdS+D~fweeHUIx~$|@zJSkW8s1Cie%H&Ly7V5a
z(2-;xaqaFeGfudaE2><!dn>0_n|)>W!kd4hFO*I*Rz9)m%zhuEKmH!~-Cnh|h<k2$
l=eYKb(bqP9&PM?!<RdQKHECLRT@6$;db;|#taD0e0svYup)mje

literal 0
HcmV?d00001

diff --git a/src/main/resources/textures/map/dark_lands_biom/building/StoneGateDarkLand04.png b/src/main/resources/textures/map/dark_lands_biom/building/StoneGateDarkLand04.png
new file mode 100644
index 0000000000000000000000000000000000000000..ee9984315fc1f60ff9606ea8c2ca1fd89005887e
GIT binary patch
literal 2005
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKU@Xmab`HpPc6ZLt$u9~nNK8(3
z$t*6&NvsSoW?;~mSUO>^_u&AMqyDRdE?9N&$;udYI$ycORaTgxE#hhr!n!(mRvl+<
zjf!Sap>Vk75BZ3Lkp&w%LJA5C1YFn!@6NH(+>udnZ+gfrrF+Mp{<WA>yffy2bbzGx
zHztjj(<b^HS+e!Yt|!&a?el_HrEOZVNQdj+-`%f2U;KK{za!FjcbULV|Cs6L^rn~1
zV+yYS8+&#B$yri=?_Y83l@xn0v2$u}H|IT7Il~OiN2?y}Ieon8vfg~_c~ev7{FoMT
zi7TsZho{bR>n}Cz)4NjFZf(ACZ~oQr=|^Q=1)fP1R+H!o2yA3weOUkJa-V&lZc%tb
zfL=e7&M6m9LE%kDK3`avC}dQ~;rMF8j^fvK{A+)o%*}l-IwQB>oc^s_PRtf_7f!x<
z`&I>ugcL*GD<9Jk_g4$QJu5o!o6}$hQ`>uu&56$rDVA5)^Sr2j_$Qg?gDg|o)X(dc
z&%Kpuo!_Yamt9;lYfmtn<7r?#RHR0Druq6ZXaU(A46KZ749q|lBLfqVkYZp3vl$q?
z7^UItAVv*@n)XZv7O0viAPoX7K+FiInHDg?RR}C#MzBFj4W%+?0x8Y{kH}&M1`%Hn
zW}I@WSD%4_xg|3sq9nrC$0|8LS1&OoKPgqOBDVmfi@~PC3dqb&ElE_U$j!+swyLmI
z0;{kBvO&W7N(x{lCE2!05xxNm&iO^D3TAo+dIm~%TnY*bHbp6ERzWUqQ0+jTtx`rw
zNr9EVetCJhUb(Seeo?x<p{1pzzJZaxk&!M?g>G?WUP)qwZeFo6#1NP{E~&-IMVSR9
znfZANAafIw@=Hr>m6Sjh!2!gbDamkq3QCJ|z_z3$>!;?V=BDPA6zd!68R}!xSCW~A
zaA96CG&q0(qYsh+YBRv9&9k5+*#sC;t`$J{K>Y`FXfoK|;*u17BnA3L1_l<o21dF@
zmilo20iAD?l5ACyS(1|q4mh}fz#-_EQ-UfAQV$A(oJ>&2TID3>rQ0f1=%%EmC6?xt
zDA@&<<maWjCzhnTBo<}+B<7_UnAqq;G@u#;5k)oMMjwk)Y(N2E6&aLToS#z)iUK=B
zV<Q`Iu%L({A_Jl$0;>*WQFI*v8Tlpoz{FLQne3TYl3G+y1WagP8)5e0R)KC7!t&6(
z%o0180cgTVx{xBu%CV@VJijPA1RN<?LlmcKsELr!MM}4jOaYDwV6L#^veAd<FgvcA
zoLo?0@X6D~F~mZ!H`v=-#!+D1yyNR4-5<$?um~!xTg0Iz$NEu?gG=s<yadxuj;2NK
zC-pzX&!~RK=-4lHW5J`YN4FJTo$6a`&42q}*0$qwD>g1zy=#A!&t5kk{$9^jizlBJ
z3YBN(a+?3E+D`c1tUITeZ-%vT#r~C2;@*Dgp&!!&rsw+(DZG7?Z~V^0QuA-zN)OBB
zjfNLzy`NC`U^!36qa``orz-@)UVmxYe4#-xn^hrp`O3hDL6RvyGZz0ce=}jBnlneB
z_jmrCqUMEr^yXhYb3If_;;-NLd-mJh6=K7_HTzmH`Px|AN@ccRQB-xyvEKD`|4y@i
zRz`1g^bK+v%IjY(KCa%+XwmPl`>8gird2HL+D|?o_G42VW=v@0e4*(Qc%-XQUs$KQ
zy6WY-Z%VBT-Cr=)2y`6h;J$1k8ZO(Lyy5cCk7C{ivKow8;_n<K+_uz5giKI5um3-P
za@BLA%6Vazm{&f_nB|t+($t&&{F>0pYKAl4AKzN&^4H?p%d3p7i7Q^Mj2H8gEH*i6
zBpF?}@|f&;lVceR1kX3Rd|i{WFe1n2OZo5VZTDEd-cc9QJuCZ0I{$ig)rB=o`_^r4
zH1V;%+noQ|{^x3M`)i!+CYF282%YPj{8+bT{nFi>Z#k!)*u8VH#-us#jy=miq}O1e
g>AUXr$Mt>Rxl8nJiG53!Ed`aip00i_>zopr0NYs7x&QzG

literal 0
HcmV?d00001

diff --git a/src/main/resources/textures/map/dark_lands_biom/building/StoneWindowDarkLand03.png b/src/main/resources/textures/map/dark_lands_biom/building/StoneWindowDarkLand03.png
new file mode 100644
index 0000000000000000000000000000000000000000..ca334756581f2cc2a55fbacc90f76d9b264b3bec
GIT binary patch
literal 2005
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKU@Xmab`HpPc6ZLt$u9~nNK8(3
z$t*6&NvsSoW?;~mSUO>^_u&AMqyDRdE?9N&$;udYI$ycORaTgxE#hhr!n!(mRvl+<
zjf!Sap>Vk75BZ3Lkp&w%LJA5C1YFn!@6NH(+>udnZ+gfrrF+Mp{<WA>yffy2bbzGx
zHztjj(<b^HS+e!Yt|!&a?el_HrEOZVNQdj+-`%f2U;KK{za!FjcbULV|Cs6L^rn~1
zV+yYS8+&#B$yri=?_Y83l@xn0v2$u}H|IT7Il~OiN2?y}Ieon8vfg~_c~ev7{FoMT
zi7TsZho{bR>n}Cz)4NjFZf(ACZ~oQr=|^Q=1)fP1R+H!o2yA3weOUkJa-V&lZc%tb
zfL=e7&M6m9LE%kDK3`avC}dQ~;rMF8j^fvK{A+)o%*}l-IwQB>oc^s_PRtf_7f!x<
z`&I>ugcL*GD<9Jk_g4$QJu5o!o6}$hQ`>uu&56$rDVA5)^Sr2j_$Qg?gDg|o)X(dc
z&%Kpuo!_Yamt9;lYfmtn<7r?#RHR0Druq6ZXaU(A46KZ749q|lBLfqVkYZp3vl$q?
z7^UItAVv*@n)XZv7O0viAPoX7K+FiInHDg?RR}C#MzBFj4W%+?0x8Y{kH}&M1`%Hn
zW}I@WSD%4_xg#?qq9nrC$0|8LS1&OoKPgqOBDVmfi@~PC3dqb&ElE_U$j!+swyLmI
z0;{kBvO&W7N(x{lCE2!05xxNm&iO^D3TAo+dIm~%TnY*bHbp6ERzWUqQ0+jTtx`rw
zNr9EVetCJhUb(Seeo?x<p{1pzzJZaxk&!M?g>G?WUP)qwZeFo6#1NP{E~&-IMVSR9
znfZANAafIw@=Hr>m6Sjh!2!gbDamkq3QCJ|z_z3$>!;?V=BDPA6zd!68R}!xSCW~A
zaA96CG&q0(qYsh+YBRv9&9k5+*#sC;t`$J{K>Y`FXfoK|;*u17BnA3L1_l<o21dF@
zmilo20iAD?l5ACyS(1|q4mh}fz#-_EQ-UfAQV$A(oJ>&2TID3>rQ0f1=%%EmC6?xt
zDA@&<<maV^XXd5km%AhuW&0%Nr5G67=tH!i8U+zWwZTRoi(_m+L0}ablv<phQwoX%
zJ40h58*sp&h$5l`q9X#U4rEbu9RV5nCHcVQRg{_RnOBlpR8Ry=YG4~-_Tg56ZWhAw
z(7enNJD34z!brN1qRPs#sH8l<C_4lkEjYpyr+TQFknlxHyO4|ljtgMUu;a4Phvzao
zt}oSD-oRY_&eO#)#6mE1@?9_KK!M}w<^EZd^P=pd6oaZJ3T<rCXfm&D*w^-DmAR<=
zk=ai37yPhr`l{8aqT#ZERd?@+ET7G@FMpnWcXL|1PWm(Z^nL%*g=+5nPf2xj+s|e+
z_e{#Pf0NIC>$`I&&TCd$l8?&CA8}dFW|rK#o!a6k9aHAb(E5OXZtP25J(2#|g-6f-
zU0QWk)lW4dciWpgX;ZnC!ZzjTJw7SlxhP=P*R8De3t}r2dKP(neS6lnbGCkn`h@d4
z9vo1-ckHCC)tOCuGCZ`m+<qIsLsD4M{!XTlwbfbw;{jD)o0q8+dhY&Pd{p{lv8-~<
z^;ajpzE2Fid$oA~&GYM%{?8L!Y<B$3okUg#$45V$=4cqaQH`+tu&S?taoXAEUHt2-
zsy-zx`^B`bCF~^g4Ef1<6Ev30n|l1^k{Zj$Cm%4KVb?pwE+b#dc<oif4*`FhT{mC7
zDbVV)kre&Qaetrus`pQd*B;UMl=X9IU+?7`b0k#*D+?rR*i(}8gqoJ>-3U*w^F6?=
zpxU|4SDvBy%-XlRRZ2M6>y}0`9=>Pa8G7wBUx7$*_y(nh8xPKYiavJj?WH$)ks=H(
znnDRmKcno|ZeGZn;+b_TDyDvInOy9Osmc>9@=hH4RsHnv2A4RuNy5!%=e*e~?k`m_
h$)@AxiT}?38S6`*DT(cynguFzJzf1=);T3K0RV7h-EaT^

literal 0
HcmV?d00001

diff --git a/src/main/resources/textures/map/dark_lands_biom/ground/GrassDarkLand00.png b/src/main/resources/textures/map/dark_lands_biom/ground/GrassDarkLand00.png
new file mode 100644
index 0000000000000000000000000000000000000000..1d2c1ca9eaab73d2d221f59f1264e68f1ab354b7
GIT binary patch
literal 1835
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKU@Xmab`HpPc6ZLt$u9~nNK8(3
z$t*6&NvsSoW?;~mSUO>^_u&AMqyDRdE?9N&$;udYI$ycORaTgxE#hhr!n!(mRvl+<
zjf!Sap>Vk75BZ3Lkp&w%LJA5C1YFn!@6NH(+>udnZ+gfrrF+Mp{<WA>yffy2bbzGx
zHztjj(<b^HS+e!Yt|!&a?el_HrEOZVNQdj+-`%f2U;KK{za!FjcbULV|Cs6L^rn~1
zV+yYS8+&#B$yri=?_Y83l@xn0v2$u}H|IT7Il~OiN2?y}Ieon8vfg~_c~ev7{FoMT
zi7TsZho{bR>n}Cz)4NjFZf(ACZ~oQr=|^Q=1)fP1R+H!o2yA3weOUkJa-V&lZc%tb
zfL=e7&M6m9LE%kDK3`avC}dQ~;rMF8j^fvK{A+)o%*}l-IwQB>oc^s_PRtf_7f!x<
z`&I>ugcL*GD<9Jk_g4$QJu5o!o6}$hQ`>uu&56$rDVA5)^Sr2j_$Qg?gDg|o)X(dc
z&%Kpuo!_Yamt9;lYfmtn<7r?#RHR0Druq6ZXaU(A46KZ749q|lBLfqVkYZp3vl$q?
z7^UItAVv*@n)XZv7O0viAPoX7K+FiInHDg?RR}C#MzBFj4W%+?0x8Y{kH}&M1`%Hn
zW}I@WSD%4_xh69tq9nrC$0|8LS1&OoKPgqOBDVmfi@~PC3dqb&ElE_U$j!+swyLmI
z0;{kBvO&W7N(x{lCE2!05xxNm&iO^D3TAo+dIm~%TnY*bHbp6ERzWUqQ0+jTtx`rw
zNr9EVetCJhUb(Seeo?x<p{1pzzJZaxk&!M?g>G?WUP)qwZeFo6#1NP{E~&-IMVSR9
znfZANAafIw@=Hr>m6Sjh!2!gbDamkq3QCJ|z_z3$>!;?V=BDPA6zd!68R}!xSCW~A
zaA96CG&q0(qYsh+YBRv9&9k5+*#sC;t`$J{K>Y`FXfoK|;*u17BnA3L1_l<o21dF@
zmilo20iAD?l5ACyS(1|q4mh}fz#-_EQ-UfAQV$A(oJ>&2TID3>rQ0f1=%%EmC6?xt
zDA~CeB^DREBo<}+B<7_U7})4T6r&mf5k)oIMjwkaY(Sp3iVR9E&d(_Y1;3r4v5^fp
zNKix(5dqN=fmH{xD7ub-jQo;(V8SZOO!mwxNi8ZU0wyxBjWGLgt3WpkVR>j?W{Dll
z05oAFT}Y8+<ycfwo?nz50*(-j(8Q?{Y8oVDk<u$9Gk{|Om>cZ4Z1mwd%Z{rog>MBg
zCkJ@CIEGjV=1$(|ci2I|<$9QkK#`VI%5+ap?+4B+fAaieyy(QP+99&iK*PlF`>``G
zi;`4-@7cY1b8+?aXYan%-Ky_voLiFq(YP-A==bu=TNs~}+&pR`>(QF5%g5Qn)br%`
z>&1_1l8@b}udWR6iHs<}{hVh}LPY##m#mfVG(IqQe&#-1p0Lg`#Z>8M^~R&O(rPuc
z${0#C4xVsdSadOC>n7HD?T2~F<oyM2tF>KyR^ff}et&#%;YTsXeY@wy$7u21XjTpo
z`@N+jn|mH}<0TP)=OYTA9}72WXfyQusoNXK*kv-kKIQxB)jgSs9}j3Oo4~H@7yew-
zNB_RK6vs;@p?#SRZzr2iJlT`Yt94V=cH?Z8`Ln~NQ)V@aUSZgE>sQ{r?N4_<dm$pR
z=zFZ#>?6?+gDSa$90X4$Rwn1fO^labo}l_ug7wjH&AzkDt2twQ{)mh1J;-zZ(>-%g
ON#^P5=d#Wzp$P!@NP$cM

literal 0
HcmV?d00001

diff --git a/src/main/resources/textures/map/dark_lands_biom/ground/GrassDarkLand01.png b/src/main/resources/textures/map/dark_lands_biom/ground/GrassDarkLand01.png
new file mode 100644
index 0000000000000000000000000000000000000000..2699381fb84e425ae3b20b119ed4b12a5cfc4d71
GIT binary patch
literal 1974
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKU@Xmab`HpPc6ZLt$u9~nNK8(3
z$t*6&NvsSoW?;~mSUO>^_u&AMqyDRdE?9N&$;udYI$ycORaTgxE#hhr!n!(mRvl+<
zjf!Sap>Vk75BZ3Lkp&w%LJA5C1YFn!@6NH(+>udnZ+gfrrF+Mp{<WA>yffy2bbzGx
zHztjj(<b^HS+e!Yt|!&a?el_HrEOZVNQdj+-`%f2U;KK{za!FjcbULV|Cs6L^rn~1
zV+yYS8+&#B$yri=?_Y83l@xn0v2$u}H|IT7Il~OiN2?y}Ieon8vfg~_c~ev7{FoMT
zi7TsZho{bR>n}Cz)4NjFZf(ACZ~oQr=|^Q=1)fP1R+H!o2yA3weOUkJa-V&lZc%tb
zfL=e7&M6m9LE%kDK3`avC}dQ~;rMF8j^fvK{A+)o%*}l-IwQB>oc^s_PRtf_7f!x<
z`&I>ugcL*GD<9Jk_g4$QJu5o!o6}$hQ`>uu&56$rDVA5)^Sr2j_$Qg?gDg|o)X(dc
z&%Kpuo!_Yamt9;lYfmtn<7r?#RHR0Druq6ZXaU(A46KZ749q|lBLfqVkYZp3vl$q?
z7^UItAVv*@n)XZv7O0viAPoX7K+FiInHDg?RR}C#MzBFj4W%+?0x8Y{kH}&M1`%Hn
zW}I@WSD%4_xh69tq9nrC$0|8LS1&OoKPgqOBDVmfi@~PC3dqb&ElE_U$j!+swyLmI
z0;{kBvO&W7N(x{lCE2!05xxNm&iO^D3TAo+dIm~%TnY*bHbp6ERzWUqQ0+jTtx`rw
zNr9EVetCJhUb(Seeo?x<p{1pzzJZaxk&!M?g>G?WUP)qwZeFo6#1NP{E~&-IMVSR9
znfZANAafIw@=Hr>m6Sjh!2!gbDamkq3QCJ|z_z3$>!;?V=BDPA6zd!68R}!xSCW~A
zaA96CG&q0(qYsh+YBRv9&9k5+*#sC;t`$J{K>Y`FXfoK|;*u17BnA3L1_l<o21dF@
zmilo20iAD?l5ACyS(1|q4mh}fz#-_EQ-UfAQV$A(oJ>&2TID3>rQ0f1=%%EmC6?xt
zDA~CeB^DREBo<}+B<7_U7~1GV6r&mf5k)oIMjwkaY(Sp3iVR9E&d(_Y1;3r4v5^fp
zNKix(5dqN=fmH{xD7ub-jQo;(V8SZOO!mwxNi8ZU0wyxBjWGLgt3WpkVR>j?W{Dll
z05oAFT}Y8+<ycfwo?nz50*(-j(8Q?{Y8oVDk<u$9Gk{|Om>cZ4Z1mwd%Z@9*TInA!
zC*SsTaSX8#ES<dDPsUNeb@lOYpYE_vP_S-b;rPJ*VS-LK3zN|Vj|dfEVS$gF-`E+>
z9cbc-U}5yIC~QbQ!|%W#$aupefmd#x(7kVSq_U1UPuX(Sbo;A&w{N{Gn{TiC%g1-B
z!146<po+ldrkSr_i@%hVnf&^N)1jgj6^a^5YP+T{dHljdsyIKWD0LfK#L1{5Cp)e=
zPvP*G@Sfeb?r(m%C||9{ABE`twqiX&gMtO09oi*idS1W$8YOz*!NyLrSDQN-4j=h+
zUai!1!VHP}xpkYR3({hp{eJ)ZlCKod)u|SA_mY-#Ec+oV^ZLcwd!N2dQ@!i2tSl;2
z@m|zeP`o~L+m@3xK5iYNhR=LB(v5inB=y2pbnG<Z`KN#JnjDKy*U_FyGhJ;ih}@o~
z^!n+)c`>f)UMhjkZc{3ogcZI>Z0!<mUbivs-1j=kC9D7cRaZ@3U_E#DwYUZ$7Y}dk
zNY>L&Tk@UOocUs!v%2wZ)9sbk4Kr%5uVW7Q{QkD;tvjBERp(u+xSsJ%Y)CP^uNDz?
z_T}yab6@{`V1L8nZNfKCm;2?R7km`1-L<tcH{SVd|I}qmR)25Sy1lq^Q4#x}8#AW9
z+ZVX^(}z1>j<e?XAMr@H^Evm*EP29{_)zufs;-kB*`HkbvHwE+LrGAf>gnp|vd$@?
F2>_Me#)|*|

literal 0
HcmV?d00001

diff --git a/src/main/resources/textures/map/dark_lands_biom/ground/GrassDarkLand03.png b/src/main/resources/textures/map/dark_lands_biom/ground/GrassDarkLand03.png
new file mode 100644
index 0000000000000000000000000000000000000000..ff59e764b05b97b000573b245368329779b96823
GIT binary patch
literal 2008
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKU@Xmab`HpPc6ZLt$u9~nNK8(3
z$t*6&NvsSoW?;~mSUO>^_u&AMqyDRdE?9N&$;udYI$ycORaTgxE#hhr!n!(mRvl+<
zjf!Sap>Vk75BZ3Lkp&w%LJA5C1YFn!@6NH(+>udnZ+gfrrF+Mp{<WA>yffy2bbzGx
zHztjj(<b^HS+e!Yt|!&a?el_HrEOZVNQdj+-`%f2U;KK{za!FjcbULV|Cs6L^rn~1
zV+yYS8+&#B$yri=?_Y83l@xn0v2$u}H|IT7Il~OiN2?y}Ieon8vfg~_c~ev7{FoMT
zi7TsZho{bR>n}Cz)4NjFZf(ACZ~oQr=|^Q=1)fP1R+H!o2yA3weOUkJa-V&lZc%tb
zfL=e7&M6m9LE%kDK3`avC}dQ~;rMF8j^fvK{A+)o%*}l-IwQB>oc^s_PRtf_7f!x<
z`&I>ugcL*GD<9Jk_g4$QJu5o!o6}$hQ`>uu&56$rDVA5)^Sr2j_$Qg?gDg|o)X(dc
z&%Kpuo!_Yamt9;lYfmtn<7r?#RHR0Druq6ZXaU(A46KZ749q|lBLfqVkYZp3vl$q?
z7^UItAVv*@n)XZv7O0viAPoX7K+FiInHDg?RR}C#MzBFj4W%+?0x8Y{kH}&M1`%Hn
zW}I@WSD%4_xh69tq9nrC$0|8LS1&OoKPgqOBDVmfi@~PC3dqb&ElE_U$j!+swyLmI
z0;{kBvO&W7N(x{lCE2!05xxNm&iO^D3TAo+dIm~%TnY*bHbp6ERzWUqQ0+jTtx`rw
zNr9EVetCJhUb(Seeo?x<p{1pzzJZaxk&!M?g>G?WUP)qwZeFo6#1NP{E~&-IMVSR9
znfZANAafIw@=Hr>m6Sjh!2!gbDamkq3QCJ|z_z3$>!;?V=BDPA6zd!68R}!xSCW~A
zaA96CG&q0(qYsh+YBRv9&9k5+*#sC;t`$J{K>Y`FXfoK|;*u17BnA3L1_l<o21dF@
zmilo20iAD?l5ACyS(1|q4mh}fz#-_EQ-UfAQV$A(oJ>&2TID3>rQ0f1=%%EmC6?xt
zDA~CeB^DREBo<}+B<7_U7~AMW6r&mf5k)oIMjwkaY(Sp3iVR9E&d(_Y1;3r4v5^fp
zNKix(5dqN=fmH{xD7ub-jQo;(V8SZOO!mwxNi8ZU0wyxBjWGLgt3WpkVR>j?W{Dll
z05oAFT}Y8+<ycfwo?nz50*(-j(8Q?{Y8oVDk<u$9Gk{|Om>cZ4Z1mwd%Z@A7wF+2d
zGye5-aSX8#3=Q7zFXAZjFU`{NUD-}+!=21My(JP>O$!abTzG7ss8XU9rglLxxo7Fx
zV?w>U8yhbOz0q)dC-i_XuP?q)_WpOX{3+XS&aM1>w)%5z{=Hr2<?Gu{&tuQk(0zPr
z{%eo>&(5hnnD;xfOQ6VU!`2o)Mk(eDmgwcbcb&6bJG;Ep<bOhb^hcranWY<ybQ<;4
zBv;#BV_+<N`Fn+`Y3e~2zj>V}BaeD7F?&;gGHAka#+Svu6@O}%dMMm4`M36*=ElZN
zMkWD2V?8c-d}g$`<fmh?U$Dxd{&BC7%CXCu{xeTLe0TZQ_JpH}yc(_3I=)$LyHHsC
zYW9>vn){|K=DD?;-K$$<{crJKLFGKt{(d>TqyN~h48hf&S2tKMj*E?Q{QZVs>MG~a
zzH8GjPCm4&p!?#{a#tp$srve%;cDg=qpRfC3#H$!V7_y_$?S6MmcJr*4%n(J`TXH{
zc9PH%=1uF@mt2yNbl?0-!z`?kN%y~qbL6t?tAze^^S?5=EL-wHCr-FKN`?Q#l3yuq
zk9U=(boPlZeY%|0&RzZef_Ya;KVLkwD&XEh&l#!H?-(A_WESfbHQk(${Za3k%8noG
z6$)pgqSjw*y2+fnUohS~L%DgzmmPn9&u3{`k|g<gqwAH!X>S;R2mhaL`Y%Q8pRv|K
qzYTfTEZGl}b3111obzRSUeD;t_3Y|I*1G|qV%O8v&t;ucLK6T*H{GHD

literal 0
HcmV?d00001

diff --git a/src/main/resources/textures/map/dark_lands_biom/ground/GrassPathDarkLand02.png b/src/main/resources/textures/map/dark_lands_biom/ground/GrassPathDarkLand02.png
new file mode 100644
index 0000000000000000000000000000000000000000..75b3a83c783fcb392b405d5c42879db3dfecc72c
GIT binary patch
literal 1981
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKU@Xmab`HpPc6ZLt$u9~nNK8(3
z$t*6&NvsSoW?;~mSUO>^_u&AMqyDRdE?9N&$;udYI$ycORaTgxE#hhr!n!(mRvl+<
zjf!Sap>Vk75BZ3Lkp&w%LJA5C1YFn!@6NH(+>udnZ+gfrrF+Mp{<WA>yffy2bbzGx
zHztjj(<b^HS+e!Yt|!&a?el_HrEOZVNQdj+-`%f2U;KK{za!FjcbULV|Cs6L^rn~1
zV+yYS8+&#B$yri=?_Y83l@xn0v2$u}H|IT7Il~OiN2?y}Ieon8vfg~_c~ev7{FoMT
zi7TsZho{bR>n}Cz)4NjFZf(ACZ~oQr=|^Q=1)fP1R+H!o2yA3weOUkJa-V&lZc%tb
zfL=e7&M6m9LE%kDK3`avC}dQ~;rMF8j^fvK{A+)o%*}l-IwQB>oc^s_PRtf_7f!x<
z`&I>ugcL*GD<9Jk_g4$QJu5o!o6}$hQ`>uu&56$rDVA5)^Sr2j_$Qg?gDg|o)X(dc
z&%Kpuo!_Yamt9;lYfmtn<7r?#RHR0Druq6ZXaU(A46KZ749q|lBLfqVkYZp3vl$q?
z7^UItAVv*@n)XZv7O0viAPoX7K+FiInHDg?RR}C#MzBFj4W%+?0x8Y{kH}&M1`%Hn
zW}I@WSD%4_xg|3sq9nrC$0|8LS1&OoKPgqOBDVmfi@~PC3dqb&ElE_U$j!+swyLmI
z0;{kBvO&W7N(x{lCE2!05xxNm&iO^D3TAo+dIm~%TnY*bHbp6ERzWUqQ0+jTtx`rw
zNr9EVetCJhUb(Seeo?x<p{1pzzJZaxk&!M?g>G?WUP)qwZeFo6#1NP{E~&-IMVSR9
znfZANAafIw@=Hr>m6Sjh!2!gbDamkq3QCJ|z_z3$>!;?V=BDPA6zd!68R}!xSCW~A
zaA96CG&q0(qYsh+YBRv9&9k5+*#sC;t`$J{K>Y`FXfoK|;*u17BnA3L1_l<o21dF@
zmilo20iAD?l5ACyS(1|q4mh}fz#-_EQ-UfAQV$A(oJ>&2TID3>rQ0f1=%%EmC6?xt
zDA~CeB^DP4B$i~jBo<}+B<7_U7}@AUG@u#;5k)oMMjwk)Y(N2E6&aLToS#z)iUK=B
zW1yKBqKL?V=!n3o16dSZM?gk?Nj@-f6=f!S=9Q!t6%+vz8rVjdeYjPin}x7EG%vHn
z4rTzFFp@5$h_Z4lDk;w|$_@cX3f2(CsTyh`By^F|EhJNbV*;2f?6_?7;W^BXE82LH
zG%!cs@^o<wu@H<6_V#896tOez@XFK|@0^ya)tr{NO|abc^tOxpSNy+Z^-GlPU6WX%
zljgz}*989fmj0l_Omp9rA2ar?D~Nx7@AI#7J8!)_xzqB+H;#;J+*dvvTk$7Kd3)sI
z02RMk%O+;d3aQ+;^n=$NF?P$SKDA5}BhD%-k-c^D)9P>ZyuF<sxQ#_h`?|IMn&WH*
zg;VVoe~5CbJTW=?b@0b`llDI1o9E51D%Y{$TZ!+%ogC{t+$AJ-v%7~>o+;p}S*)h9
zZ)$!<ouZ0ToS@x;*HSwxma9Eve1755s<(eXSI^?wDU$25eI~a{hezZ3{&lGgG8TKS
zi~ZEfR@_~6>r~@{L~CajD>d~As~x_5_hMVjq$s;`hr!=3ziZmv?f55dObu1o<@cuc
z*yZ#{XIH1MHd8M}-m<oNmSw>1#N{EZkn@qt@*I<ZUV-n~UpIpqc((N!iGJ3cy7?=M
zO55@EfxT|tvLRa?RFs~J9FgL1>R4hGkg%X-mGteiT^(;kCl<^52z81J*?n8|#)r9R
z!pXTBG7cI7b{CkFe8MW5r}BCTm$rFaXqvKto$uI_Bv<9BpCT*2eV-|C?!(@!?VJ3k
z@-0yfQD*deud%R(@wf3!wd2wir&IKH)J(2t)YbXH%CqDDJN@`A-$7-or>mdKI;Vst
E0O#+#8~^|S

literal 0
HcmV?d00001

diff --git a/src/main/resources/textures/map/Grass01.png b/src/main/resources/textures/map/forrest_biom/ground/GrassWoodLand00.png
similarity index 84%
rename from src/main/resources/textures/map/Grass01.png
rename to src/main/resources/textures/map/forrest_biom/ground/GrassWoodLand00.png
index e835d4676d2f80105626ece4d99b485a30b289fe..48584467f86445ad1f78925eb9f9cf219d1a46c4 100644
GIT binary patch
delta 55
zcmeC;o5i=mj)}2mvpv%dMy~Mu{1l(Wyc7e2&5|rG$o$FitN|>khdnQC-pm@#2mt14
B5#;~?

delta 39
tcmbQm*TuKNj)^g6vpv%dMkWKp&5A58AbN5>YXHk5d$whp53`0d0s!6h3rPR~

diff --git a/src/main/resources/textures/map/forrest_biom/ground/GrassWoodLand01.png b/src/main/resources/textures/map/forrest_biom/ground/GrassWoodLand01.png
new file mode 100644
index 0000000000000000000000000000000000000000..5d13544cd45bf4968df0444b75d688e198ceb805
GIT binary patch
literal 1902
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKU@Xmab`HpPc6ZLt$u9~nNK8(3
z$t*6&NvsSoW?;~mSUO>^_u&AMqyDRdE?9N&$;udYI$ycORaTgxE#hhr!n!(mRvl+<
zjf!Sap>Vk75BZ3Lkp&w%LJA5C1YFn!@6NH(+>udnZ+gfrrF+Mp{<WA>yffy2bbzGx
zHztjj(<b^HS+e!Yt|!&a?el_HrEOZVNQdj+-`%f2U;KK{za!FjcbULV|Cs6L^rn~1
zV+yYS8+&#B$yri=?_Y83l@xn0v2$u}H|IT7Il~OiN2?y}Ieon8vfg~_c~ev7{FoMT
zi7TsZho{bR>n}Cz)4NjFZf(ACZ~oQr=|^Q=1)fP1R+H!o2yA3weOUkJa-V&lZc%tb
zfL=e7&M6m9LE%kDK3`avC}dQ~;rMF8j^fvK{A+)o%*}l-IwQB>oc^s_PRtf_7f!x<
z`&I>ugcL*GD<9Jk_g4$QJu5o!o6}$hQ`>uu&56$rDVA5)^Sr2j_$Qg?gDg|o)X(dc
z&%Kpuo!_Yamt9;lYfmtn<7r?#RHR0Druq6ZXaU(A46KZ749q|lBLfqVkYZp3vl$q?
z7^UItAVv*@n)XZv7O0viAPoX7K+FiInHDg?RR}C#MzBFj4W%+?0x8Y{kH}&M1`%Hn
zW}I@WSD%4_xh69tq9nrC$0|8LS1&OoKPgqOBDVmfi@~PC3dqb&ElE_U$j!+swyLmI
z0;{kBvO&W7N(x{lCE2!05xxNm&iO^D3TAo+dIm~%TnY*bHbp6ERzWUqQ0+jTtx`rw
zNr9EVetCJhUb(Seeo?x<p{1pzzJZaxk&!M?g>G?WUP)qwZeFo6#1NP{E~&-IMVSR9
znfZANAafIw@=Hr>m6Sjh!2!gbDamkq3QCJ|z_z3$>!;?V=BDPA6zd!68R}!xSCW~A
zaA96CG&q0(qYsh+YBRv9&9k5+*#sC;t`$J{K>Y`FXfoK|;*u17BnA3L1_l<o21dF@
zmilo20iAD?l5ACyS(1|q4mh}fz#-_EQ-UfAQV$A(oJ>&2TID3>rQ0f1=%%EmC6?xt
zDA~CeB^DQl=jW&RB<7_U7~1GV6r&mf5k)oIMjwkaY(Sp3iVR9E&d(_Y1;3r4v5^fp
zNKix(5dqN=fmH{xD7ub-jQo;(V8SZOO!mwxNi8ZU0wyxBjWGLgt3WpkVR>j?W{Dll
z05oAFT}Y8+<ycfwo?nz50*(-j(8Q?{Y8oVDk<u$9Gk{|Om>cZ4Z1mwd%Z{t&PAV`f
zGfwt&aSX8#ES<dDk10@~t)1DWCnm{Bahh1rjTs&}z1#1#f3U4#h(8wh;gXb3j?RV+
zN=c4R4XRS9vFFWaM~ZLycQWzWnWytDH#@)k^GQjl|5aApC%t~H#W$yW<wRy&Ib|eq
z{>sx!jJ>yJwb(D5lsLbp<(1p5pWVyzRMzbb^cMQHIP=l*eP3&|L%f+6-TNKE`Eln#
z3y-E(cVDY~+g+@B^s({%tOcwJF~_>qFR2Ugw5=6hS$^B|_2u8vdxJYA(wxFQ{Eo`2
zN^J8p6_|A1DYSXQ!FT)at(E?BU|wilRR^a*RB6d1ZFYCBt|xpi`qF3im2CJ>7NIM6
z{L8v#kA&C{Iwh|!EWNEFm7ZxQc=G9_lquKeIxEiXyA*MQS>{@v7002o_ZIIl{Vujj
zc(X&on={JXHH=&iDc;Wl3?3|~?NmzC3ki+3uFDr&s5i-SO_gTP_K8m_#0pykjf~40
zI6vMmG}F2^+3_zsho{+^>ETQ4rMwewuh%%q=COi-sXk-#3iJB!*|{^?i$l5p+?u!f
h`{@&#1ep!@#aqofqvTfF^bk}Sdb;|#taD0e0swh?qYnT8

literal 0
HcmV?d00001

diff --git a/src/main/resources/textures/map/Stone02.png b/src/main/resources/textures/map/grass_biom/building/StoneEndLeftGrassLand01.png
similarity index 85%
rename from src/main/resources/textures/map/Stone02.png
rename to src/main/resources/textures/map/grass_biom/building/StoneEndLeftGrassLand01.png
index 2ac41bee77062960aa2d8cfc921f66e45de629ba..afc98f647c69ff41538c540ad5f81dbddc9df2fd 100644
GIT binary patch
delta 71
zcmZ3;e~^EJ9TQ{EW_zX^j6$w?DL$!bCGJIu#l=2}c_{{ln<ZIXu!&EOXANMPWqOEn
J^Jdm}i~wCo7)JmA

delta 39
tcmX@ezmR`}9TQ{DW_zX^j7$bbn>ATnK=kB#)&Q2fN36v*UuJ#B2mtJz3~vAc

diff --git a/src/main/resources/textures/map/grass_biom/building/StoneEndRightGrassLand02.png b/src/main/resources/textures/map/grass_biom/building/StoneEndRightGrassLand02.png
new file mode 100644
index 0000000000000000000000000000000000000000..41fdeb5b6fb3096837434f98e0b779ec548779d2
GIT binary patch
literal 1977
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKU@Xmab`HpPc6ZLt$u9~nNK8(3
z$t*6&NvsSoW?;~mSUO>^_u&AMqyDRdE?9N&$;udYI$ycORaTgxE#hhr!n!(mRvl+<
zjf!Sap>Vk75BZ3Lkp&w%LJA5C1YFn!@6NH(+>udnZ+gfrrF+Mp{<WA>yffy2bbzGx
zHztjj(<b^HS+e!Yt|!&a?el_HrEOZVNQdj+-`%f2U;KK{za!FjcbULV|Cs6L^rn~1
zV+yYS8+&#B$yri=?_Y83l@xn0v2$u}H|IT7Il~OiN2?y}Ieon8vfg~_c~ev7{FoMT
zi7TsZho{bR>n}Cz)4NjFZf(ACZ~oQr=|^Q=1)fP1R+H!o2yA3weOUkJa-V&lZc%tb
zfL=e7&M6m9LE%kDK3`avC}dQ~;rMF8j^fvK{A+)o%*}l-IwQB>oc^s_PRtf_7f!x<
z`&I>ugcL*GD<9Jk_g4$QJu5o!o6}$hQ`>uu&56$rDVA5)^Sr2j_$Qg?gDg|o)X(dc
z&%Kpuo!_Yamt9;lYfmtn<7r?#RHR0Druq6ZXaU(A46KZ749q|lBLfqVkYZp3vl$q?
z7^UItAVv*@n)XZv7O0viAPoX7K+FiInHDg?RR}C#MzBFj4W%+?0x8Y{kH}&M1`%Hn
zW}I@WSD%4_xi2#$q9nrC$0|8LS1&OoKPgqOBDVmfi@~PC3dqb&ElE_U$j!+swyLmI
z0;{kBvO&W7N(x{lCE2!05xxNm&iO^D3TAo+dIm~%TnY*bHbp6ERzWUqQ0+jTtx`rw
zNr9EVetCJhUb(Seeo?x<p{1pzzJZaxk&!M?g>G?WUP)qwZeFo6#1NP{E~&-IMVSR9
znfZANAafIw@=Hr>m6Sjh!2!gbDamkq3QCJ|z_z3$>!;?V=BDPA6zd!68R}!xSCW~A
zaA96CG&q0(qYsh+YBRv9&9k5+*#sC;t`$J{K>Y`FXfoK|;*u17BnA3L1_l<o21dF@
zmilo20iAD?l5ACyS(1|q4mh}fz#-_EQ-UfAQV$A(oJ>&2TID3>rQ0f1=%%EmC6?xt
zDA@&<<maWj=A{H>re~D67bO-K`y}S27#P{;Lv*2<1`$QI#6};Bdu%|VU=<mZTAZI#
z3W^6iLt~(s7@~+6f#`_9ssmXRT}MDhen~zsg%xEcd*+p-78Mi$QybVun0>fapqquT
zJTxz}#13WvnlO?sq}Z}@EGj9_FUk%9#|-XZ#i<2qEF_4LQZOWYfTIJLKkT?{^x=8U
zjw^rK&3<6sKI7@)7-Auq8+_XDP=LVPSy|=+a<j7-a-ARMKZ!pmU$B_7lvgdFLolS^
zXcO<1CFd-+Z@+R};MWZ6;<R%!SAPCbG2ip#q@O;kuCDqqJ-qdMp2;M)#fp*BJSEsJ
zWtAT(l-W1mkW1i~yTg^&r|b4lfBUT2{gwa6gw+Z^bN5dA`fBR)bMN^Wn7+6gr8}6v
z`e-M`ca!zpsc-BKw=Fc9(wiMPJ*RrPKKjwA@QtV3+%rwc_3xzfD!2I-u;<wHExnoJ
zC2%Kz`9i}^4>yD8vrjfeoQaebO%w_Kd#jbb>e{Wj*><~jC|Rz5p=fw{{`=P=I<f9t
zUIKz_f|k5p8I7il4h(?}`m6<O|J<7Cv+Vq(71u>?Xl^(w5qL7}vU^XU@D15j2h}EP
zPFBp&4AGwRX2n%~o$?*UQAVz*u}chiuKd2t)6li$=Dx}MyV{Ogy3gqEzT{kL{NJZi
z`eOmhV~MSrlX>n{8u@?j_7scMi+{m*;(3{J<}5Dpl>&Uf*WcAR=~UXaV#!C_D_N#x
zNsNYJT{qr-)0lHeerC_gC-p1%cgymmY`^`ndZDwvh>84T$NRP{)61F)1w?}%iu@D2
wbjC9OrrLD%M&F*TwQCH`17B{5T7LegwEm8ZQ>HvlaR!yEp00i_>zopr01)HDdH?_b

literal 0
HcmV?d00001

diff --git a/src/main/resources/textures/map/grass_biom/building/StoneGateGrassLand04.png b/src/main/resources/textures/map/grass_biom/building/StoneGateGrassLand04.png
new file mode 100644
index 0000000000000000000000000000000000000000..ee4e9538c461e7cd81843211bedfa1459863f098
GIT binary patch
literal 2096
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
Z#=R4H+U9@gdkQMfJzf1=);T3K0RY?e0384T

literal 0
HcmV?d00001

diff --git a/src/main/resources/textures/map/Stone01.png b/src/main/resources/textures/map/grass_biom/building/StoneGrassLand00.png
similarity index 85%
rename from src/main/resources/textures/map/Stone01.png
rename to src/main/resources/textures/map/grass_biom/building/StoneGrassLand00.png
index b6cf13f66633060803264739b889f64c32877a0e..e31b2ac22af757240fd1a2d1fdf155161886866f 100644
GIT binary patch
delta 57
zcmX@ica?909TQ{SW_zX^jNI-;iN(b}iFqjo2Ad^WTu=li$Fl~ocr+KB-@KW10wVw>
C@)Iin

delta 39
tcmcc0cbIR39TQ{DW_zX^j7$cGo0V8xK=kB7)&Lf_R}M!uA7!1u2mtZ^3}OHP

diff --git a/src/main/resources/textures/map/grass_biom/building/StoneGrassLand05.png b/src/main/resources/textures/map/grass_biom/building/StoneGrassLand05.png
new file mode 100644
index 0000000000000000000000000000000000000000..1c93eef9343e85ccaf5f27ee57acf8af255530cd
GIT binary patch
literal 2091
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
Zl>HX#xWwe`zMKG+<esj6F6*2UngG6Q1v~%%

literal 0
HcmV?d00001

diff --git a/src/main/resources/textures/map/grass_biom/building/StoneWindowGrassLand03.png b/src/main/resources/textures/map/grass_biom/building/StoneWindowGrassLand03.png
new file mode 100644
index 0000000000000000000000000000000000000000..ae7119eeb0a21560093f3dc8fcb52a33bdb40708
GIT binary patch
literal 2136
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
N@9FC2vd$@?2>{^N6pjD@

literal 0
HcmV?d00001

diff --git a/src/main/resources/textures/map/Grass02.png b/src/main/resources/textures/map/grass_biom/ground/GrassGrassLand00.png
similarity index 84%
rename from src/main/resources/textures/map/Grass02.png
rename to src/main/resources/textures/map/grass_biom/ground/GrassGrassLand00.png
index 144fad81f75b681454b58768081394cb40aaeead..42f20fb577ca233a64f9e570ca2c448a125ce2cd 100644
GIT binary patch
delta 57
zcmeC+o5i=mj)}2uvpv%dMsD|_#NuL~#Jm&(gUymGE+_(%<5>e(HntVCZQjfp$_M}s
CzY?7Q

delta 39
scmbQm*TJ{Jj)^g6vpv%dMkWKJ%}OjTAbN5kYXD27U~S3fqpYEf0NVHp`Tzg`

diff --git a/src/main/resources/textures/map/Grass04.png b/src/main/resources/textures/map/grass_biom/ground/GrassGrassLand01.png
similarity index 63%
rename from src/main/resources/textures/map/Grass04.png
rename to src/main/resources/textures/map/grass_biom/ground/GrassGrassLand01.png
index 4ce012b5eac6c41488efe96c5f66eb43c28c98ce..c0f799dfc6e5857b5cefa31c3b3732d4f1a84770 100644
GIT binary patch
delta 550
zcmV+>0@?kf53~=kJ^}%Lvp)jZ0SiZRVRLg#VQyqFF|!#2L;(v&a$$3GOkr+hFfo%~
z1yFyNH@RH^00GxYL_t(I5p|PYFI-U+hSwR#43eTFHG{-QWN0!%Z%Jq(B<1(`8BO>n
zTxk>B5PDlJMobtHf<zQY2{Ur+XC3QgO8O?V*XR4Lz0d6J%`eY}0^IsOm61P>=Nhtn
z-@KNY=^@!VIh1rVqxs9KItkzNJW1DPr0su0oi>sj=;+2c>lRO4F{0HF1%4QY(%xFH
zfh|@XsVU1%HYY8~td^>WSg()s`?#d>up<PH02<GVvhh?a1I~x2c-c)9L_19oFbVu{
z1c<hS$&Wp8toh?Z?X5nB3NXn;8ghLy>X!w(v|Cb3jh@$-a066;!bT+$VV8Beep!EZ
zWQ4GY0TW_}HZXz8cz=(6ZJWx6CI1xt!T*rSL#7w;gf4EZDPr%6dvYIKD3Jx9BS5Af
z@b`oG2m~~G*|gm5of5_f&n_c!q4Z$WmkI}3R{@BS)=vUWx)Uf&2usi4!BL6<whL~j
z3P5}}mY2c(BPBL|&P%Ym9p|Y15Ak*pY&t{$$$VlHq>st`xZbe<O}~0OF>es8?Wmv)
zfoN~TD;DO%uZx@VWvD4u<z@1SoGCkFH>l#W{<oi3GWDrh9~?YyVP!7Nw|B+Ym+|Rj
o_5oW-L?0FZ=Ke3DDg0_Y1Du@jJrm;dEdT%j07*qoM6N<$f)LvK8~^|S

delta 534
zcmV+x0_pv<52O#UJ^}%3vp)jZ0Rk{IvmyjU0Rk{IlW_%5f0R6okpKVz*-1n}R5%fJ
zliNyLQ4oe_r)eTWV~rFemeL@pf;RTH1zV5`>htt5`Y!cK1-)ufZ#~3D5^I77v{Y>C
z_E4M1?tBwwH!A*+%&eLD|CzP+TEX_#OcY5ZrM<dzr+ek+-|ym>U;8Z|rbnf8P?v0~
z*TN@l`H}wTe-c#7pQ6Jbf28k8hZRyqB1Rxm+ONk;&mjtuI4_^(ZQ*~OeDk0or@4ak
zq;i&OZ{oE{oQ?gOtzRo4R07BxRb~15p^T^x(V)|`gJ}{3=mb`j0MRFy7|O?Mi|baX
zZQq6o(8)zQ3om3W*%0i)R?RFqYHs7bHZTDa%gvSue^Yi824zvn2w@QeF2sc1FoDYW
zpdO+!y=$Z&miTpKyc=ZVkf}vHVSh??MeIejBA4ND%*JO6kf{ejz^w9r3oIxMa#=a6
z9I}iN9i6nu<=T~ZUnuWb-p&9bq@{z<g1Q5P3t_1#?(C*%;8SorO#tGfx5HBWwrj-9
zyI~1GcyGora`(XmNP2gO0FwKxU649D^W$B_0u-$eJj2{U_~ok!dJ~BLsO&L)oL!U2
z(XLokAE$j*H4Qy$zd=onCg)av$<(XIb{pZD04@Fc;%8I2D{M2-I#m4A%X382_`t98
YKWbI_PKaQc<NyEw07*qoM6N<$f;UV6GXMYp

diff --git a/src/main/resources/textures/map/grass_biom/ground/GrassGrassLand03.png b/src/main/resources/textures/map/grass_biom/ground/GrassGrassLand03.png
new file mode 100644
index 0000000000000000000000000000000000000000..abdfbc8114e9e5a233757bf77a764fc1e753365b
GIT binary patch
literal 1933
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKU@Xmab`HpPc6ZLt$u9~nNK8(3
z$t*6&NvsSoW?;~mSUO>^_u&AMqyDRdE?9N&$;udYI$ycORaTgxE#hhr!n!(mRvl+<
zjf!Sap>Vk75BZ3Lkp&w%LJA5C1YFn!@6NH(+>udnZ+gfrrF+Mp{<WA>yffy2bbzGx
zHztjj(<b^HS+e!Yt|!&a?el_HrEOZVNQdj+-`%f2U;KK{za!FjcbULV|Cs6L^rn~1
zV+yYS8+&#B$yri=?_Y83l@xn0v2$u}H|IT7Il~OiN2?y}Ieon8vfg~_c~ev7{FoMT
zi7TsZho{bR>n}Cz)4NjFZf(ACZ~oQr=|^Q=1)fP1R+H!o2yA3weOUkJa-V&lZc%tb
zfL=e7&M6m9LE%kDK3`avC}dQ~;rMF8j^fvK{A+)o%*}l-IwQB>oc^s_PRtf_7f!x<
z`&I>ugcL*GD<9Jk_g4$QJu5o!o6}$hQ`>uu&56$rDVA5)^Sr2j_$Qg?gDg|o)X(dc
z&%Kpuo!_Yamt9;lYfmtn<7r?#RHR0Druq6ZXaU(A46KZ749q|lBLfqVkYZp3vl$q?
z7^UItAVv*@n)XZv7O0viAPoX7K+FiInHDg?RR}C#MzBFj4W%+?0x8Y{kH}&M1`%Hn
zW}I@WSD%4_xh^v#q9nrC$0|8LS1&OoKPgqOBDVmfi@~PC3dqb&ElE_U$j!+swyLmI
z0;{kBvO&W7N(x{lCE2!05xxNm&iO^D3TAo+dIm~%TnY*bHbp6ERzWUqQ0+jTtx`rw
zNr9EVetCJhUb(Seeo?x<p{1pzzJZaxk&!M?g>G?WUP)qwZeFo6#1NP{E~&-IMVSR9
znfZANAafIw@=Hr>m6Sjh!2!gbDamkq3QCJ|z_z3$>!;?V=BDPA6zd!68R}!xSCW~A
zaA96CG&q0(qYsh+YBRv9&9k5+*#sC;t`$J{K>Y`FXfoK|;*u17BnA3L1_l<o21dF@
zmilo20iAD?l5ACyS(1|q4mh}fz#-_EQ-UfAQV$A(oJ>&2TID3>rQ0f1=%%EmC6?xt
zDA~CeB^DQh37^Eg6a!-$eTZsQQy`+KhTG_4afc1a_g0ZXsm1v@rJ(S)Gc-1`0fz~S
zC?X~xIwG*@Ko&*U5s;Bzk`GK-MVZN-c_pbu1x3JA2DTAqA8r-sW+5yO&C4vYgBgG(
zjHC-GmaH6$O3L$#vO~Zzf*G7Rl|qe!1T9jEg=7bCGywC19hZ$hJa5@?-3rlq4b00M
zJY5_^ECgdG?e$^~6li^ZjKfPsFgHhuGc!rK)2?CZzOGs=)u{=h8$@e4vK`;#^hRVp
z<lnflbHaj*h3mf0zPnk6FQxeXnK?6y)ADxgvGP=#FW(mWT+8h5uMhR_tlAUY{Brjt
zc{&~O*(W5<B*D=0;Oyt!zb%tbU99~v<=9?^Q2F@DHk=OIcOIC3al*T!@~$HK-TyxQ
zUEKRF*rBxAHvMtvCVrvy{A?4GUfp=}U1v_LOzJA7AMegORiB)Bz-!V1{-=J*o4OvH
z{BShu?k->D%|=^I=49S}qv*x?E${2)WK$#SH<9XIObr)Z(&sl?C#Py`3u|irsJdTs
z=f`^r><`rapYd!_vP}QIyUs-@#P}rFZke_YAAN@wr3>#D8B0x`=i<5O)wws1H=ii-
zx*(`}fMIL)pEK@-q8AG?U-7U=%)S4tB)t4mD3jVc$Ng{lb$<TaSXg=NRN$)h6IBiz
zyKurSM)Ss_FmK<#3p;<MSafZU{2Fo2;baxJ%S)}-CYOZ29KKbgclr8?>n8-V=k8+e
zP7s|aGS61UFkNA;^w}$se^ymoY!~4*idW_o(OviU|Cdmggm?A!KaXCBySKOoR91Sr
L`njxgN@xNADjT>{

literal 0
HcmV?d00001

diff --git a/src/main/resources/textures/map/grass_biom/ground/GrassGrassLand04.png b/src/main/resources/textures/map/grass_biom/ground/GrassGrassLand04.png
new file mode 100644
index 0000000000000000000000000000000000000000..2ea95c178f078c9adceba8de2a8d1af544200ca5
GIT binary patch
literal 1976
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKU@Xmab`HpPc6ZLt$u9~nNK8(3
z$t*6&NvsSoW?;~mSUO>^_u&AMqyDRdE?9N&$;udYI$ycORaTgxE#hhr!n!(mRvl+<
zjf!Sap>Vk75BZ3Lkp&w%LJA5C1YFn!@6NH(+>udnZ+gfrrF+Mp{<WA>yffy2bbzGx
zHztjj(<b^HS+e!Yt|!&a?el_HrEOZVNQdj+-`%f2U;KK{za!FjcbULV|Cs6L^rn~1
zV+yYS8+&#B$yri=?_Y83l@xn0v2$u}H|IT7Il~OiN2?y}Ieon8vfg~_c~ev7{FoMT
zi7TsZho{bR>n}Cz)4NjFZf(ACZ~oQr=|^Q=1)fP1R+H!o2yA3weOUkJa-V&lZc%tb
zfL=e7&M6m9LE%kDK3`avC}dQ~;rMF8j^fvK{A+)o%*}l-IwQB>oc^s_PRtf_7f!x<
z`&I>ugcL*GD<9Jk_g4$QJu5o!o6}$hQ`>uu&56$rDVA5)^Sr2j_$Qg?gDg|o)X(dc
z&%Kpuo!_Yamt9;lYfmtn<7r?#RHR0Druq6ZXaU(A46KZ749q|lBLfqVkYZp3vl$q?
z7^UItAVv*@n)XZv7O0viAPoX7K+FiInHDg?RR}C#MzBFj4W%+?0x8Y{kH}&M1`%Hn
zW}I@WSD%4_xh^v#q9nrC$0|8LS1&OoKPgqOBDVmfi@~PC3dqb&ElE_U$j!+swyLmI
z0;{kBvO&W7N(x{lCE2!05xxNm&iO^D3TAo+dIm~%TnY*bHbp6ERzWUqQ0+jTtx`rw
zNr9EVetCJhUb(Seeo?x<p{1pzzJZaxk&!M?g>G?WUP)qwZeFo6#1NP{E~&-IMVSR9
znfZANAafIw@=Hr>m6Sjh!2!gbDamkq3QCJ|z_z3$>!;?V=BDPA6zd!68R}!xSCW~A
zaA96CG&q0(qYsh+YBRv9&9k5+*#sC;t`$J{K>Y`FXfoK|;*u17BnA3L1_l<o21dF@
zmilo20iAD?l5ACyS(1|q4mh}fz#-_EQ-UfAQV$A(oJ>&2TID3>rQ0f1=%%EmC6?xt
zDA~CeB^DQh37^Eg6ay0*eTZsQQy`+KhTG_4afc1a_g0ZXsm1v@rJ(S)Gc-1`0fz~S
zC?X~xIwG*@Ko&*U5s;Bzk`GK-MVZN-c_pbu1x3JA2DTAqA8r-sW+5yO&C4vYgBgG(
zjHC-GmaH6$O3L$#vO~Zzf*G7Rl|qe!1T9jEg=7bCGywC19hZ$hJa5@?X*-6$0_Nr0
zo-U3d7J|N$ZT*=X1=`yCofb2`$$5HV-i3_iYEc({>;GYm^3HaC>ObKSU(z2P6RE`q
z<=&fYTo~NxB5m`0W~%x3xV-#wyZbY5o{qgIw=~{9nQ`e%OUb`|Z%^+my()OJ^G*I6
z4zs5>Ej@!xw8AVm*|3W+q&Iwe@G9cfZQjmB9^dCCH1mCl-|w5o*fEReazcyq+OWz0
zZcaW@_@*hQOh-AAGbn!6b_ZAg``kXOyjMm|^pHOg7Z=m1c0y<8<j;pQL;Y^;d+im{
zt+TnJH*HOrvgf3TZ(HO;8nc$<bnW>0>_YPt_pMj_o&|pD>})<&c<NA9L&L6H-(y$X
zUflI~x`oAM_H!npZ9b<DOZ*V5R8(b{^MG4AA?M4VKi_hFTQU<07Q`;|JH1Sjv9U&z
z<?+)ywXbK&T|25HD}6rfu#upK!*&*K+l9?s(l3vm4ZOAMoky&!yubXC3HmIj4j#O@
z`{WC`=yxaHWd(PY)O|AFxJLW5c3Rff&6jWbU+NSoVx7%5o%_eh1NYuBCNE(>U~Vwm
zcK7##-_6U<*!d)uuhrZb_dM>6luC2v!Wq0@&SoDMvG^o!z*v>W)6;c%w&3aX|FQep
z<b&d3Hsq(??G=*!_V2hc8waE1X7jVwvyC=aq`Ul2eDG5!>68el6lU;r^>bP0l+XkK
D72?ZP

literal 0
HcmV?d00001

diff --git a/src/main/resources/textures/map/grass_biom/ground/GrassPathGrassLand02.png b/src/main/resources/textures/map/grass_biom/ground/GrassPathGrassLand02.png
new file mode 100644
index 0000000000000000000000000000000000000000..7a8050dfd2e9188c0c72d7000ae205c55864e6d8
GIT binary patch
literal 1949
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKU@Xmab`HpPc6ZLt$u9~nNK8(3
z$t*6&NvsSoW?;~mSUO>^_u&AMqyDRdE?9N&$;udYI$ycORaTgxE#hhr!n!(mRvl+<
zjf!Sap>Vk75BZ3Lkp&w%LJA5C1YFn!@6NH(+>udnZ+gfrrF+Mp{<WA>yffy2bbzGx
zHztjj(<b^HS+e!Yt|!&a?el_HrEOZVNQdj+-`%f2U;KK{za!FjcbULV|Cs6L^rn~1
zV+yYS8+&#B$yri=?_Y83l@xn0v2$u}H|IT7Il~OiN2?y}Ieon8vfg~_c~ev7{FoMT
zi7TsZho{bR>n}Cz)4NjFZf(ACZ~oQr=|^Q=1)fP1R+H!o2yA3weOUkJa-V&lZc%tb
zfL=e7&M6m9LE%kDK3`avC}dQ~;rMF8j^fvK{A+)o%*}l-IwQB>oc^s_PRtf_7f!x<
z`&I>ugcL*GD<9Jk_g4$QJu5o!o6}$hQ`>uu&56$rDVA5)^Sr2j_$Qg?gDg|o)X(dc
z&%Kpuo!_Yamt9;lYfmtn<7r?#RHR0Druq6ZXaU(A46KZ749q|lBLfqVkYZp3vl$q?
z7^UItAVv*@n)XZv7O0viAPoX7K+FiInHDg?RR}C#MzBFj4W%+?0x8Y{kH}&M1`%Hn
zW}I@WSD%4_xh*p!q9nrC$0|8LS1&OoKPgqOBDVmfi@~PC3dqb&ElE_U$j!+swyLmI
z0;{kBvO&W7N(x{lCE2!05xxNm&iO^D3TAo+dIm~%TnY*bHbp6ERzWUqQ0+jTtx`rw
zNr9EVetCJhUb(Seeo?x<p{1pzzJZaxk&!M?g>G?WUP)qwZeFo6#1NP{E~&-IMVSR9
znfZANAafIw@=Hr>m6Sjh!2!gbDamkq3QCJ|z_z3$>!;?V=BDPA6zd!68R}!xSCW~A
zaA96CG&q0(qYsh+YBRv9&9k5+*#sC;t`$J{K>Y`FXfoK|;*u17BnA3L1_l<o21dF@
zmilo20iAD?l5ACyS(1|q4mh}fz#-_EQ-UfAQV$A(oJ>&2TID3>rQ0f1=%%EmC6?xt
zDA~CeB^DP4B$i}=89s@5DF#M1`VbwcCP73|EwItY;uafF2v|i1r55Msl!D^G&d?ZW
zCWa^?HXu48u<Ae-Mb{CKkzbMzOkG8p$)0&7sYL}vz?25I5oRB573gLmEDz1gEU|+b
zfF_Kj3n`|o9E(cI^NX@Wz_EfoNO3BM8VLzrq?8NE7T~A=<_kM68+~{lv*W7UT7CkU
zr+0X|IEGjV=1%hUKja|Lw!GKyf{=v*<5Q*?8H<v>y#JNFr_!wMNVDLFAm)$CjTf5a
z*8DzGwnEKs)9%gk@84Lz_bI3>op?TcWy0pp69odR?dPgpdRcNcebe8w!CLLdH?lNx
z?3i%c?P~LfVzu<Yw)>5wCFB*#Y$LV&n4j>O&U;o=AaeSz#nhays_!$s8*SP+(|aD)
z>Gbojobx?9#*?G>=q>qz!k{GwR2}Npvv5XlZEDD^<$B}8F6VMJH}XvU*TB8|l+Ww`
z>-l_p;`N4*gE=3$cz^u0XPmv&yi-YE?ZLSPe|XkpH6**uOM8}n^SK-UyH`_#N>UTP
zoD}~oT2QxDd-eNuI%1t)%I2z7uF>pSytJ$1hm=ELp4RJm8W)(h&7G0GdVO{Iwa=mp
zmME4;yxn(VuC}6C;UY;1LEoQQGfrd%y4}ll+45|I!ePgojSU7tjhklvRJ2Wy-koB~
z_G2b<^6Nc3XXKtmu_hl_IP;~W)n=!dCMiyX9{W&<on`ApC4-%$mfy>G>6OrQi92$N
zb~cj+^NI^TTSGTws#$G(^eO+?KIQu5E}|Z_%8M?hg?8mV+TMR<vw`AU*@VsVB9m?<
UOi7$@5ma`1y85}Sb4q9e0Cw)V;{X5v

literal 0
HcmV?d00001

diff --git a/src/main/resources/textures/map/bigbomb.png b/src/main/resources/textures/objects/big_bomb/bigbomb.png
similarity index 100%
rename from src/main/resources/textures/map/bigbomb.png
rename to src/main/resources/textures/objects/big_bomb/bigbomb.png
diff --git a/src/main/resources/textures/map/bomb.png b/src/main/resources/textures/objects/bomb/bomb.png
similarity index 100%
rename from src/main/resources/textures/map/bomb.png
rename to src/main/resources/textures/objects/bomb/bomb.png
diff --git a/src/main/resources/textures/map/heart.png b/src/main/resources/textures/objects/heal/heart.png
similarity index 100%
rename from src/main/resources/textures/map/heart.png
rename to src/main/resources/textures/objects/heal/heart.png
diff --git a/src/main/resources/textures/map/bigexplosion.png b/src/main/resources/textures/objects/vfx/bigexplosion.png
similarity index 100%
rename from src/main/resources/textures/map/bigexplosion.png
rename to src/main/resources/textures/objects/vfx/bigexplosion.png
diff --git a/src/main/resources/textures/map/middleexplosion.png b/src/main/resources/textures/objects/vfx/middleexplosion.png
similarity index 100%
rename from src/main/resources/textures/map/middleexplosion.png
rename to src/main/resources/textures/objects/vfx/middleexplosion.png
diff --git a/src/main/resources/textures/map/smallexplosion.png b/src/main/resources/textures/objects/vfx/smallexplosion.png
similarity index 100%
rename from src/main/resources/textures/map/smallexplosion.png
rename to src/main/resources/textures/objects/vfx/smallexplosion.png
-- 
GitLab