From e7d3ec2c5b54274a1dbbebcffb1b6b16f608937b Mon Sep 17 00:00:00 2001 From: Billy Gallagher Date: Fri, 19 Feb 2016 19:07:51 -0500 Subject: [PATCH] More structural things, level loading is almost done. Rendering coming soon. --- src/game/Launcher.java | 1 + src/level/LevelHandler.java | 24 +++++++++++++++++++++--- src/level/tiles/Tile.java | 10 +++++----- 3 files changed, 27 insertions(+), 8 deletions(-) diff --git a/src/game/Launcher.java b/src/game/Launcher.java index 502c9ea..ac7240f 100644 --- a/src/game/Launcher.java +++ b/src/game/Launcher.java @@ -9,5 +9,6 @@ public class Launcher { // Testing file loading LevelHandler test = new LevelHandler("res/levels/test.txt"); + test.printTiles(); } } diff --git a/src/level/LevelHandler.java b/src/level/LevelHandler.java index 628c206..df9a8e8 100644 --- a/src/level/LevelHandler.java +++ b/src/level/LevelHandler.java @@ -10,7 +10,7 @@ import level.tiles.Tile; // Creates and manages the level when the game is running. public class LevelHandler { - private Tile[][] tiles; + private Tile[][] tiles = new Tile[30][30]; private List entities; private int width; private int height; @@ -24,13 +24,22 @@ public class LevelHandler { } } - // TODO: Change this to use and XML file instead of a text file + // TODO: Make work, preferably using JSON private void loadLevelFromFile() { try { FileReader fileReader = new FileReader(levelPath); BufferedReader bufferedReader = new BufferedReader(fileReader); levelName = bufferedReader.readLine(); - + String line = ""; + int yMarker = 0; + while((line = bufferedReader.readLine()) != null) { + int xMarker = 0; + for (String currentID : line.split("\\s")) { + tiles[yMarker][xMarker] = Tile.getTile(Integer.parseInt(currentID)); + xMarker++; + } + yMarker++; + } bufferedReader.close(); } catch (IOException e) { System.err.println(e.getMessage()); @@ -52,4 +61,13 @@ public class LevelHandler { public String getLevelName() { return levelName; } + + public void printTiles() { + for (Tile[] y : tiles) { + for (Tile x : y) { + System.out.print(x + " "); + } + System.out.println(); + } + } } diff --git a/src/level/tiles/Tile.java b/src/level/tiles/Tile.java index 20504c1..8ac3a46 100644 --- a/src/level/tiles/Tile.java +++ b/src/level/tiles/Tile.java @@ -10,7 +10,7 @@ public abstract class Tile { private Color color; // Contains all tiles in the game, where the index is the tile ID. - private Tile[] gameTiles = new Tile[32]; + private static Tile[] gameTiles = new Tile[32]; public Tile(int id, boolean isFloor, boolean isWall, Color color) { this.id = id; @@ -19,7 +19,7 @@ public abstract class Tile { this.color = color; // Populate this with all tiles that exist -// gameTiles[1] = + gameTiles[1] = new SmoothFloor(); } public int getId() { @@ -34,9 +34,9 @@ public abstract class Tile { return isWall; } -// public Tile getTile(int tileID) { -// -// } + public static Tile getTile(int tileID) { + return gameTiles[tileID]; + } public abstract void tick();