diff options
author | Nao Pross <naopross@thearcway.org> | 2018-11-25 16:33:21 +0100 |
---|---|---|
committer | Nao Pross <naopross@thearcway.org> | 2018-11-25 16:33:21 +0100 |
commit | 248292905ea424a5bec18c34cb056b60bb813a76 (patch) | |
tree | 87d0527d11b81d053bc8bc97d0afb56fa85f949b | |
parent | Remove super dangerous pack recipe from makefile (diff) | |
download | Subconscious-java-248292905ea424a5bec18c34cb056b60bb813a76.tar.gz Subconscious-java-248292905ea424a5bec18c34cb056b60bb813a76.zip |
Add jar recipe in Makefile, move res folder inside package
MapLoader was update accordingly to load maps as resources
-rw-r--r-- | Makefile | 9 | ||||
-rw-r--r-- | manifest.txt | 2 | ||||
-rw-r--r-- | src/subconscious/Game.java | 2 | ||||
-rw-r--r-- | src/subconscious/MapLoader.java | 41 | ||||
-rw-r--r-- | src/subconscious/res/maps/testmap.json (renamed from res/maps/testmap.json) | 0 |
5 files changed, 25 insertions, 29 deletions
@@ -28,18 +28,23 @@ endif # recipes -.PHONY: all run pack classes dirs clean +.PHONY: all run jar classes dirs clean all: classes classes: dirs $(JAVAC) $(JAVAC_ARGS) -d build $(SOURCES) + # copy resources folder + cp -r src/subconscious/res build/subconscious/res .ONESHELL: run: classes cd build $(JAVA) $(JAVA_ARGS) $(MAINCLASS) -# TODO: recipe for jar file +.ONESHELL: +jar: classes + cd build + jar cfm subconscious.jar ../manifest.txt `find . -type f` dirs: mkdir -p build diff --git a/manifest.txt b/manifest.txt new file mode 100644 index 0000000..9ecb5af --- /dev/null +++ b/manifest.txt @@ -0,0 +1,2 @@ +Main-Class: subconscious.Subconscious +Class-Path: ../lib/gson-2.6.2.jar diff --git a/src/subconscious/Game.java b/src/subconscious/Game.java index 6f14def..7ef3e8d 100644 --- a/src/subconscious/Game.java +++ b/src/subconscious/Game.java @@ -45,7 +45,7 @@ public class Game { // TODO: this will be replaced with a dynamic mechanism based // on the progress within the game - Map testMap = this.mapLoader.parse("../res/maps/testmap.json"); + Map testMap = this.mapLoader.get("/subconscious/res/maps/testmap.json"); this.currentMap = testMap; this.maps.add(testMap); diff --git a/src/subconscious/MapLoader.java b/src/subconscious/MapLoader.java index 3ece7f0..b7e97d2 100644 --- a/src/subconscious/MapLoader.java +++ b/src/subconscious/MapLoader.java @@ -1,18 +1,16 @@ package subconscious; import java.lang.String; +import java.lang.ClassLoader; // TODO: use java.nio? http://tutorials.jenkov.com/java-nio/nio-vs-io.html -import java.io.File; -import java.io.PrintWriter; -import java.io.FileReader; -import java.io.BufferedReader; -import java.io.FileNotFoundException; +import java.io.InputStream; import java.io.IOException; import java.awt.Dimension; import com.google.gson.Gson; +import com.google.gson.GsonBuilder; // TODO: remove import java.lang.UnsupportedOperationException; @@ -21,7 +19,7 @@ import java.lang.UnsupportedOperationException; // TODO: this class loads AND saves classes, refractor name public class MapLoader { - private Gson gson = new Gson(); + private Gson gson = new GsonBuilder().setPrettyPrinting().create();; public MapLoader() { @@ -32,35 +30,26 @@ public class MapLoader { throw new UnsupportedOperationException(); } - public Map parse(String path) { - File file = new File(path); + public Map get(final String resourceName) { + InputStream is = MapLoader.class.getResourceAsStream(resourceName); + assert is != null; - String mapText = ""; - String line = null; - FileReader fr = null; - BufferedReader bf = null; + int b; + String content = ""; try { - fr = new FileReader(file); - bf = new BufferedReader(fr); - // TODO: read all at once - while ((line = bf.readLine()) != null) { - mapText = mapText + line; + while ((b = is.read()) != -1) { + content += (char) b; } - bf.close(); } catch (IOException ex) { ex.printStackTrace(); } - Map importMap = this.gson.fromJson(mapText, Map.class); - - // TODO: ask @mafaldo why is there a copy? - // update map with new classes - // Map map = new Map(new Dimension(importMap.getSize(), importMap.getSize())); - // map.update(importMap.getActors(), importMap.getGrid()); - // return map; + return this.parse(content); + } - return importMap; + public Map parse(final String json) { + return this.gson.fromJson(json, Map.class); } diff --git a/res/maps/testmap.json b/src/subconscious/res/maps/testmap.json index 1bfb65e..1bfb65e 100644 --- a/res/maps/testmap.json +++ b/src/subconscious/res/maps/testmap.json |