diff options
Diffstat (limited to 'tools/tmwcon/src')
-rw-r--r-- | tools/tmwcon/src/Converter.java | 2 | ||||
-rw-r--r-- | tools/tmwcon/src/converter/Main.java | 5 | ||||
-rw-r--r-- | tools/tmwcon/src/converter/Process.java | 67 |
3 files changed, 65 insertions, 9 deletions
diff --git a/tools/tmwcon/src/Converter.java b/tools/tmwcon/src/Converter.java index b7082844..0f245aa3 100644 --- a/tools/tmwcon/src/Converter.java +++ b/tools/tmwcon/src/Converter.java @@ -9,7 +9,7 @@ import java.net.*; import java.util.*; public abstract class Converter { - static String[] tiledJars = {"tile-core.jar", "tiled.jar"}; + static String[] tiledJars = {"tiled-core.jar", "tiled.jar"}; static String[] wlkJars = {"plugins/tmw.jar", "tmw.jar"}; public static void main(String[] args) throws Exception { diff --git a/tools/tmwcon/src/converter/Main.java b/tools/tmwcon/src/converter/Main.java index 081468e3..c48ca286 100644 --- a/tools/tmwcon/src/converter/Main.java +++ b/tools/tmwcon/src/converter/Main.java @@ -86,18 +86,21 @@ public class Main extends Thread { folder = new File("tmwdata/maps/"); Collection<File> tmxs = getTMXFiles(folder); + Vector<String> folders = new Vector<String>(); String name; for (File f : tmxs) { name = getName(folder, f); System.out.printf("== %s ==\n", name); if (summary != null) summary.printf("== %s ==\n", name); - Process.processMap(name, loadMap(f), summary); + folders.add(Process.processMap(name, loadMap(f), summary)); } if (summary != null) { summary.flush(); summary.close(); } + + Process.writeMasterImport(folders.toArray(new String[0])); } public static void main(String[] args) { diff --git a/tools/tmwcon/src/converter/Process.java b/tools/tmwcon/src/converter/Process.java index 2d7cebd2..8f077d5c 100644 --- a/tools/tmwcon/src/converter/Process.java +++ b/tools/tmwcon/src/converter/Process.java @@ -10,11 +10,21 @@ import java.io.*; import java.util.Iterator; import java.util.Properties; import java.util.TreeSet; +import java.util.ArrayList; +import java.util.List; +import java.util.Collections; import tiled.core.*; import tiled.plugins.tmw.*; public class Process { + private static final String baseFolder = "server-data/"; + private static final File _baseFolder = new File(baseFolder); + private static final String scriptDirectory = "npc/"; + private static final String mobFile = "_mobs.txt"; + private static final String warpFile = "_warps.txt"; + private static final String importFile = "_import.txt"; + private static WLKInterface wlk = null; public static void prepWLK(File folder) { @@ -109,9 +119,19 @@ public class Process { } } - public static void processMap(String name, Map map, PrintWriter summary) { - if (name == null) return; - if (map == null) return; + private static void processFiles(File folder, List<String> out) { + for (File f : folder.listFiles()) { + if (f.isDirectory()) { + processFiles(folder, out); + } else if (!f.getName().equals(importFile)) { + out.add("npc: " + f.getPath().substring(_baseFolder.getPath().length() + 1)); + } + } + } + + public static String processMap(String name, Map map, PrintWriter summary) { + if (name == null) return null; + if (map == null) return null; Properties props = map.getProperties(); String title = getProp(props, "name", ""); @@ -120,7 +140,7 @@ public class Process { summary.printf("\tMusic: '%s'\n", getProp(props, "music", "")); summary.printf("\tMinimap: '%s'\n", getProp(props, "minimap", "")); } - String folderName = "server-data/npc/" + name; + String folderName = scriptDirectory + name; if (title.length() > 0) { folderName += "_" + title.replaceAll("\\s", "_"); title = name + " " + title; @@ -132,10 +152,10 @@ public class Process { if (wlk != null) wlk.write(name, map); - File folder = new File(folderName); + File folder = new File(baseFolder + folderName); folder.mkdirs(); - PrintWriter warpOut = Main.getWriter(new File(folder, "passages.txt")); - PrintWriter mobOut = Main.getWriter(new File(folder, "mobs.txt")); + PrintWriter warpOut = Main.getWriter(new File(folder, warpFile)); + PrintWriter mobOut = Main.getWriter(new File(folder, mobFile)); warpOut.printf("// %s warps\n\n", title); mobOut.printf("// %s mobs\n\n", title); @@ -162,5 +182,38 @@ public class Process { mobOut.flush(); mobOut.close(); + + File _import = new File(folder, importFile); + List<String> output_elements = new ArrayList<String>(); + processFiles(folder, output_elements); + PrintWriter importOut = Main.getWriter(_import); + importOut.printf("map: %s.gat\n", name); + Collections.sort(output_elements); + for (String s : output_elements) + importOut.println(s); + importOut.flush(); + importOut.close(); + + return folderName; + } + + public static void writeMasterImport(String[] folders) { + File master = new File(baseFolder + scriptDirectory + "_import.txt"); + PrintWriter out = Main.getWriter(master); + if (out == null) return; + + List<String> output_elements = new ArrayList<String>(); + + for (String folder : folders) { + if (folder == null) continue; + output_elements.add("import: " + folder + "/_import.txt"); + } + + Collections.sort(output_elements); + for (String s : output_elements) + out.println(s); + + out.flush(); + out.close(); } } |