Explorar o código

more generated water frames, water borders, new swamp tile

Kajetan Johannes Hammerle %!s(int64=4) %!d(string=hai) anos
pai
achega
c02ca52124
Modificáronse 65 ficheiros con 70 adicións e 14 borrados
  1. BIN=BIN
      resources/waves/wave10.png
  2. BIN=BIN
      resources/waves/wave11.png
  3. BIN=BIN
      resources/waves/wave12.png
  4. BIN=BIN
      resources/waves/wave13.png
  5. BIN=BIN
      resources/waves/wave14.png
  6. BIN=BIN
      resources/waves/wave15.png
  7. BIN=BIN
      resources/waves/wave16.png
  8. BIN=BIN
      resources/waves/wave17.png
  9. BIN=BIN
      resources/waves/wave18.png
  10. BIN=BIN
      resources/waves/wave19.png
  11. BIN=BIN
      resources/waves/wave2.png
  12. BIN=BIN
      resources/waves/wave20.png
  13. BIN=BIN
      resources/waves/wave21.png
  14. BIN=BIN
      resources/waves/wave22.png
  15. BIN=BIN
      resources/waves/wave23.png
  16. BIN=BIN
      resources/waves/wave24.png
  17. BIN=BIN
      resources/waves/wave25.png
  18. BIN=BIN
      resources/waves/wave26.png
  19. BIN=BIN
      resources/waves/wave27.png
  20. BIN=BIN
      resources/waves/wave28.png
  21. BIN=BIN
      resources/waves/wave29.png
  22. BIN=BIN
      resources/waves/wave3.png
  23. BIN=BIN
      resources/waves/wave30.png
  24. BIN=BIN
      resources/waves/wave31.png
  25. BIN=BIN
      resources/waves/wave32.png
  26. BIN=BIN
      resources/waves/wave33.png
  27. BIN=BIN
      resources/waves/wave34.png
  28. BIN=BIN
      resources/waves/wave35.png
  29. BIN=BIN
      resources/waves/wave36.png
  30. BIN=BIN
      resources/waves/wave37.png
  31. BIN=BIN
      resources/waves/wave38.png
  32. BIN=BIN
      resources/waves/wave39.png
  33. BIN=BIN
      resources/waves/wave4.png
  34. BIN=BIN
      resources/waves/wave40.png
  35. BIN=BIN
      resources/waves/wave41.png
  36. BIN=BIN
      resources/waves/wave42.png
  37. BIN=BIN
      resources/waves/wave43.png
  38. BIN=BIN
      resources/waves/wave44.png
  39. BIN=BIN
      resources/waves/wave45.png
  40. BIN=BIN
      resources/waves/wave46.png
  41. BIN=BIN
      resources/waves/wave47.png
  42. BIN=BIN
      resources/waves/wave48.png
  43. BIN=BIN
      resources/waves/wave49.png
  44. BIN=BIN
      resources/waves/wave5.png
  45. BIN=BIN
      resources/waves/wave50.png
  46. BIN=BIN
      resources/waves/wave51.png
  47. BIN=BIN
      resources/waves/wave52.png
  48. BIN=BIN
      resources/waves/wave53.png
  49. BIN=BIN
      resources/waves/wave54.png
  50. BIN=BIN
      resources/waves/wave55.png
  51. BIN=BIN
      resources/waves/wave56.png
  52. BIN=BIN
      resources/waves/wave57.png
  53. BIN=BIN
      resources/waves/wave58.png
  54. BIN=BIN
      resources/waves/wave59.png
  55. BIN=BIN
      resources/waves/wave6.png
  56. BIN=BIN
      resources/waves/wave60.png
  57. BIN=BIN
      resources/waves/wave7.png
  58. BIN=BIN
      resources/waves/wave8.png
  59. BIN=BIN
      resources/waves/wave9.png
  60. 6 2
      src/pathgame/rendering/Camera.java
  61. 0 1
      src/pathgame/rendering/LevelRenderer.java
  62. 54 4
      src/pathgame/rendering/TileMapRenderer.java
  63. 1 0
      src/pathgame/rendering/TileRenderer.java
  64. 8 7
      src/pathgame/tilemap/TileMapGenerator.java
  65. 1 0
      src/pathgame/tilemap/Tiles.java

BIN=BIN
resources/waves/wave10.png


BIN=BIN
resources/waves/wave11.png


BIN=BIN
resources/waves/wave12.png


BIN=BIN
resources/waves/wave13.png


BIN=BIN
resources/waves/wave14.png


BIN=BIN
resources/waves/wave15.png


BIN=BIN
resources/waves/wave16.png


BIN=BIN
resources/waves/wave17.png


BIN=BIN
resources/waves/wave18.png


BIN=BIN
resources/waves/wave19.png


BIN=BIN
resources/waves/wave2.png


BIN=BIN
resources/waves/wave20.png


BIN=BIN
resources/waves/wave21.png


BIN=BIN
resources/waves/wave22.png


BIN=BIN
resources/waves/wave23.png


BIN=BIN
resources/waves/wave24.png


BIN=BIN
resources/waves/wave25.png


BIN=BIN
resources/waves/wave26.png


BIN=BIN
resources/waves/wave27.png


BIN=BIN
resources/waves/wave28.png


BIN=BIN
resources/waves/wave29.png


BIN=BIN
resources/waves/wave3.png


BIN=BIN
resources/waves/wave30.png


BIN=BIN
resources/waves/wave31.png


BIN=BIN
resources/waves/wave32.png


BIN=BIN
resources/waves/wave33.png


BIN=BIN
resources/waves/wave34.png


BIN=BIN
resources/waves/wave35.png


BIN=BIN
resources/waves/wave36.png


BIN=BIN
resources/waves/wave37.png


BIN=BIN
resources/waves/wave38.png


BIN=BIN
resources/waves/wave39.png


BIN=BIN
resources/waves/wave4.png


BIN=BIN
resources/waves/wave40.png


BIN=BIN
resources/waves/wave41.png


BIN=BIN
resources/waves/wave42.png


BIN=BIN
resources/waves/wave43.png


BIN=BIN
resources/waves/wave44.png


BIN=BIN
resources/waves/wave45.png


BIN=BIN
resources/waves/wave46.png


BIN=BIN
resources/waves/wave47.png


BIN=BIN
resources/waves/wave48.png


BIN=BIN
resources/waves/wave49.png


BIN=BIN
resources/waves/wave5.png


BIN=BIN
resources/waves/wave50.png


BIN=BIN
resources/waves/wave51.png


BIN=BIN
resources/waves/wave52.png


BIN=BIN
resources/waves/wave53.png


BIN=BIN
resources/waves/wave54.png


BIN=BIN
resources/waves/wave55.png


BIN=BIN
resources/waves/wave56.png


BIN=BIN
resources/waves/wave57.png


BIN=BIN
resources/waves/wave58.png


BIN=BIN
resources/waves/wave59.png


BIN=BIN
resources/waves/wave6.png


BIN=BIN
resources/waves/wave60.png


BIN=BIN
resources/waves/wave7.png


BIN=BIN
resources/waves/wave8.png


BIN=BIN
resources/waves/wave9.png


+ 6 - 2
src/pathgame/gameplay/Camera.java → src/pathgame/rendering/Camera.java

@@ -1,4 +1,9 @@
-package pathgame.gameplay;
+package pathgame.rendering;
+
+import pathgame.gameplay.Gamestate;
+import pathgame.gameplay.Gamestates;
+import pathgame.gameplay.Keys;
+import pathgame.gameplay.Level;
 
 /**
  * A container for all camera specific functions
@@ -64,7 +69,6 @@ public class Camera
      *
      * @param zoomRestriction the lower zoom factor restriction (zooming out
      * restriction)
-     * @return a tile texture constructed from a given texture id
      */
     public void limitScale(float zoomRestriction)
     {

+ 0 - 1
src/pathgame/rendering/LevelRenderer.java

@@ -1,7 +1,6 @@
 package pathgame.rendering;
 
 import me.hammerle.snuviengine.api.Renderer;
-import pathgame.gameplay.Camera;
 import pathgame.gameplay.Gamestate;
 import pathgame.gameplay.Gamestates;
 import pathgame.gameplay.Level;

+ 54 - 4
src/pathgame/rendering/TileMapRenderer.java

@@ -9,6 +9,7 @@ import pathgame.gameplay.Player;
 import pathgame.tilemap.Tile;
 import pathgame.tilemap.TileMap;
 import pathgame.tilemap.TileRenderType;
+import pathgame.tilemap.TileType;
 
 /**
  * A renderer for tile maps.
@@ -24,8 +25,9 @@ public class TileMapRenderer
 
     private final Texture tileTexture = new Texture("resources/tiles.png");
     private final TextureRenderer textureRenderer = new TextureRenderer(20 * 20 * 2); // default to 20x20 map
-    private final TextureRenderer swampWaterOverlayRenderer = new TextureRenderer(20 * 20 * 2); // default to 20x20 map
+    private final TextureRenderer waterOverlayRenderer = new TextureRenderer(20 * 20 * 2); // default to 20x20 map
     private final TextureRenderer waveRenderer = new TextureRenderer(20 * 20 * 2); // default to 20x20 map
+    private final TextureRenderer swampWaterOverlayRenderer = new TextureRenderer(20 * 20 * 2); // default to 20x20 map
     private final TextureRenderer grassOverlayRenderer = new TextureRenderer(20 * 20 * 2); // default to 20x20 map
     private float scale = 1.0f;
     
@@ -36,7 +38,7 @@ public class TileMapRenderer
     
     private static String[] getWavePath()
     {
-        String[] path = new String[20];
+        String[] path = new String[60];
         for(int i = 0; i < path.length; i++)
         {
             path[i] = "resources/waves/wave" + (i + 1) + ".png";
@@ -120,6 +122,11 @@ public class TileMapRenderer
     {
         return x >= 0 && y >= 0 && x < map.getWidth() && y < map.getHeight();
     }
+    
+    private boolean isShallowWater(TileMap map, int x, int y)
+    {
+        return isInRange(map, x, y) && map.getTile(x, y).getType() == TileType.SHALLOW_WATER;
+    }
 
     private boolean isSwamp(TileMap map, int x, int y)
     {
@@ -171,6 +178,42 @@ public class TileMapRenderer
         }
         addTileOverlay(swampWaterOverlayRenderer, x, y, index, 15);
     }
+    
+    private void addDeepWaterOverlay(TileMap map, int x, int y)
+    {
+        boolean n = isShallowWater(map, x, y - 1);
+        boolean e = isShallowWater(map, x + 1, y);
+        boolean s = isShallowWater(map, x, y + 1);
+        boolean w = isShallowWater(map, x - 1, y);
+
+        if(!n && !w && isShallowWater(map, x - 1, y - 1)) // upper, left corner
+        {
+            addTileOverlay(waterOverlayRenderer, x, y, 11, 13);
+        }
+        if(!n && !e && isShallowWater(map, x + 1, y - 1)) // upper, right corner
+        {
+            addTileOverlay(waterOverlayRenderer, x, y, 10, 13);
+        }
+        if(!s && !w && isShallowWater(map, x - 1, y + 1)) // lower, left corner
+        {
+            addTileOverlay(waterOverlayRenderer, x, y, 9, 13);
+        }
+        if(!s && !e && isShallowWater(map, x + 1, y + 1)) // lower, right corner
+        {
+            addTileOverlay(waterOverlayRenderer, x, y, 8, 13);
+        }
+
+        int index = 0;
+        index += n ? 0 : 8;
+        index += e ? 0 : 4;
+        index += s ? 0 : 2;
+        index += w ? 0 : 1;
+        if(index == 15)
+        {
+            return;
+        }
+        addTileOverlay(waterOverlayRenderer, x, y, index, 12);
+    }
 
     private void addGrassOverlay(TileMap map, int x, int y)
     {
@@ -212,8 +255,9 @@ public class TileMapRenderer
     private void updateData(TileMap map)
     {
         textureRenderer.clear();
-        swampWaterOverlayRenderer.clear();
+        waterOverlayRenderer.clear();
         waveRenderer.clear();
+        swampWaterOverlayRenderer.clear();    
         grassOverlayRenderer.clear();
         for(int x = 0; x < map.getWidth(); x++)
         {
@@ -227,6 +271,10 @@ public class TileMapRenderer
                 }
                 if(t.getRenderType() == TileRenderType.WATER)
                 {
+                    if(t.getType() == TileType.DEEP_WATER)
+                    {
+                        addDeepWaterOverlay(map, x, y);
+                    }
                     addWaterSwampOverlay(map, x, y);
                     addGrassOverlay(map, x, y);
                     addTileOverlay(waveRenderer, x, y, 8, 2);
@@ -239,8 +287,9 @@ public class TileMapRenderer
             }
         }
         textureRenderer.build();
-        swampWaterOverlayRenderer.build();
+        waterOverlayRenderer.build();
         waveRenderer.build();
+        swampWaterOverlayRenderer.build();
         grassOverlayRenderer.build();
     }
 
@@ -291,6 +340,7 @@ public class TileMapRenderer
         r.scale(scale, scale);
         r.updateMatrix();
         textureRenderer.draw();
+        waterOverlayRenderer.draw();
         waveRenderer.draw();
         swampWaterOverlayRenderer.draw();
         grassOverlayRenderer.draw();

+ 1 - 0
src/pathgame/rendering/TileRenderer.java

@@ -42,6 +42,7 @@ public class TileRenderer
         register(Tiles.SWAMP, new StaticTextureProvider(TileTexture.fromTextureId(12)));
         register(Tiles.SWAMP_DECO, new StaticTextureProvider(TileTexture.fromTextureId(13)));
         register(Tiles.SWAMP_TREE, new StaticTextureProvider(TileTexture.fromTextureId(14)));
+        register(Tiles.SWAMP_BONES, new StaticTextureProvider(TileTexture.fromTextureId(41)));
         register(Tiles.TOWN, new StaticTextureProvider(TileTexture.fromTextureId(16)));
         register(Tiles.TOWN_BLOCKED_1, new StaticTextureProvider(TileTexture.fromTextureId(17)));
         register(Tiles.TOWN_BLOCKED_2, new StaticTextureProvider(TileTexture.fromTextureId(18)));

+ 8 - 7
src/pathgame/tilemap/TileMapGenerator.java

@@ -66,7 +66,7 @@ public class TileMapGenerator
         int forestSize = ((width + height) / 2) / 10;
         forestSize *= forestSize;
         generateForest(map, r, forestSize, 10, 2, Tiles.FOREST);
-        generateForest(map, r, forestSize, 5, 2, Tiles.SWAMP, Tiles.SWAMP, Tiles.SWAMP_DECO, Tiles.SWAMP_TREE);
+        generateForest(map, r, forestSize, 5, 2, Tiles.SWAMP, Tiles.SWAMP, Tiles.SWAMP_DECO, Tiles.SWAMP_TREE, Tiles.SWAMP_BONES);
         
         generateTowns(map, r, towns);
         generatePorts(map, r);
@@ -130,12 +130,13 @@ public class TileMapGenerator
         {
             for(int y = 0; y < map.getHeight(); y++)
             {
-               if(map.getTile(x, y) == Tiles.SWAMP_TREE && 
-                       ((x > 0 && map.getTile(x - 1, y).getRenderType() != TileRenderType.SWAMP) || 
-                       (y > 0 && map.getTile(x, y - 1).getRenderType() != TileRenderType.SWAMP)))
-               {
-                   map.setTile(x, y, Tiles.SWAMP);
-               }
+                Tile t = map.getTile(x, y);
+                if((t == Tiles.SWAMP_TREE || t == Tiles.SWAMP_BONES) && 
+                        ((x > 0 && map.getTile(x - 1, y).getRenderType() != TileRenderType.SWAMP) || 
+                        (y > 0 && map.getTile(x, y - 1).getRenderType() != TileRenderType.SWAMP)))
+                {
+                    map.setTile(x, y, Tiles.SWAMP);
+                }
             }
         }
     }

+ 1 - 0
src/pathgame/tilemap/Tiles.java

@@ -32,6 +32,7 @@ public class Tiles
     public final static Tile SWAMP = buildSwamp();
     public final static Tile SWAMP_DECO = buildSwamp();
     public final static Tile SWAMP_TREE = buildSwamp();
+    public final static Tile SWAMP_BONES = buildSwamp();
     public final static Tile SHALLOW_WATER = Tile.TileBuilder.create()
             .setEnergyCost(6)
             .setForestReplaceChance(0.0f)