浏览代码

Don't go through everything twice. Also, those were horrible variable
names.

GJ 12 年之前
父节点
当前提交
2a57d7007d
共有 1 个文件被更改,包括 27 次插入66 次删除
  1. 27 66
      src/main/java/com/gmail/nossr50/util/spout/SpoutUtils.java

+ 27 - 66
src/main/java/com/gmail/nossr50/util/spout/SpoutUtils.java

@@ -114,25 +114,24 @@ public class SpoutUtils {
     /**
      * Write file to disk.
      *
-     * @param theFileName The name of the file
-     * @param theFilePath The name of the file path
+     * @param fileName The name of the file
+     * @param filePath The name of the file path
      */
-    private static void writeFile(String theFileName, String theFilePath) {
+    private static File writeFile(String fileName, String filePath) {
+        File currentFile = new File(filePath + fileName);
         BufferedOutputStream os = null;
         JarFile jar = null;
 
-        try {
-            File currentFile = new File(theFilePath + theFileName);
-
-            // No point in writing the file again if it already exists.
-            if (currentFile.exists()) {
-                return;
-            }
+        // No point in writing the file again if it already exists.
+        if (currentFile.exists()) {
+            return currentFile;
+        }
 
+        try {
             jar = new JarFile(mcMMO.mcmmo);
 
             @SuppressWarnings("resource")
-            InputStream is = jar.getInputStream(jar.getJarEntry("resources/" + theFileName));
+            InputStream is = jar.getInputStream(jar.getJarEntry("resources/" + fileName));
 
             byte[] buf = new byte[2048];
             int nbRead;
@@ -167,12 +166,16 @@ public class SpoutUtils {
                 }
             }
         }
+
+        return currentFile;
     }
 
     /**
      * Extract Spout files to the Resources directory.
      */
-    public static void extractFiles() {
+    public static ArrayList<File> extractFiles() {
+        ArrayList<File> files = new ArrayList<File>();
+
         // Setup directories
         new File(spoutDirectory).mkdir();
         new File(hudDirectory).mkdir();
@@ -182,19 +185,19 @@ public class SpoutUtils {
 
         // XP Bar images
         for (int x = 0; x < 255; x++) {
-            String theFileName;
+            String fileName;
 
             if (x < 10) {
-                theFileName = "xpbar_inc00" + x + ".png";
+                fileName = "xpbar_inc00" + x + ".png";
             }
             else if (x < 100) {
-                theFileName = "xpbar_inc0" + x + ".png";
+                fileName = "xpbar_inc0" + x + ".png";
             }
             else {
-                theFileName = "xpbar_inc" + x + ".png";
+                fileName = "xpbar_inc" + x + ".png";
             }
 
-            writeFile(theFileName, hudStandardDirectory);
+            files.add(writeFile(fileName, hudStandardDirectory));
         }
 
         // Standard XP Icons
@@ -203,59 +206,18 @@ public class SpoutUtils {
                 continue;
             }
 
-            String skillTypeString = StringUtils.getCapitalized(skillType.toString());
+            String skillName = StringUtils.getCapitalized(skillType.toString());
 
-            writeFile(skillTypeString + ".png", hudStandardDirectory);
-            writeFile(skillTypeString + "_r.png", hudRetroDirectory);
+            files.add(writeFile(skillName + ".png", hudStandardDirectory));
+            files.add(writeFile(skillName + "_r.png", hudRetroDirectory));
         }
 
         // Blank icons
-        writeFile("Icon.png", hudStandardDirectory);
-        writeFile("Icon_r.png", hudRetroDirectory);
+        files.add(writeFile("Icon.png", hudStandardDirectory));
+        files.add(writeFile("Icon_r.png", hudRetroDirectory));
 
         // Sound FX
-        writeFile("level.wav", soundDirectory);
-    }
-
-    /**
-     * Get all the Spout files in the Resources folder.
-     *
-     * @return a list of all files is the Resources folder
-     */
-    public static ArrayList<File> getFiles() {
-        ArrayList<File> files = new ArrayList<File>();
-
-        // XP BAR
-        for (int x = 0; x < 255; x++) {
-            if (x < 10) {
-                files.add(new File(hudStandardDirectory + "xpbar_inc00" + x + ".png"));
-            }
-            else if (x < 100) {
-                files.add(new File(hudStandardDirectory + "xpbar_inc0" + x + ".png"));
-            }
-            else {
-                files.add(new File(hudStandardDirectory + "xpbar_inc" + x + ".png"));
-            }
-        }
-
-        // Standard XP Icons
-        for (SkillType skillType : SkillType.values()) {
-            if (skillType.isChildSkill()) {
-                continue;
-            }
-
-            String skillTypeString = StringUtils.getCapitalized(skillType.toString());
-
-            files.add(new File(hudStandardDirectory + skillTypeString + ".png"));
-            files.add(new File(hudRetroDirectory + skillTypeString + "_r.png"));
-        }
-
-        // Blank icons
-        files.add(new File(hudStandardDirectory + "Icon.png"));
-        files.add(new File(hudRetroDirectory + "Icon_r.png"));
-
-        // Level SFX
-        files.add(new File(soundDirectory + "level.wav"));
+        files.add(writeFile("level.wav", soundDirectory));
 
         return files;
     }
@@ -459,7 +421,6 @@ public class SpoutUtils {
     }
 
     public static void preCacheFiles() {
-        extractFiles();
-        SpoutManager.getFileManager().addToPreLoginCache(mcMMO.p, getFiles());
+        SpoutManager.getFileManager().addToPreLoginCache(mcMMO.p, extractFiles());
     }
 }