public static void compileGafAssetsFile(String prjCompileDir, String prjGameName, String prjDir) {
        File selectedFile = new File(prjCompileDir + File.separator + prjGameName.toLowerCase() + ".assets.cache.jar");
        File content = new File(prjDir);
        File[] files = content.listFiles();
        assert files != null;
        Main.log.warning("Starting GafAssetsCompiler for " + selectedFile.toString());
        List<File> preparedFiles = new ArrayList<File>();
        for (File f : files) {
            if (!f.isDirectory()) {
                int code = checkAndAddFile(preparedFiles, f);
                if (code == 0) {
                    Main.log.severe("The compiler has returned error code 0 : invalid_argument_#size");
                    return;
                } else if (code == 1) {
                    Main.log.severe("The compiler has returned error code 1 : invalid_argument_#extention");
                    return;
                } else if (code == 2) {
                    Main.log.severe("The compiler has returned error code 2 : unknown_error");
                    return;
                } else if (code == 3) {
                    Main.log.severe("The compiler has returned error code 3 : file_load_failure");
                    return;
                }
            } else {
                addDirectoryToCompileList(f, preparedFiles);
            }
        }
        File[] finalFiles = new File[preparedFiles.size()];
        for (int i = 0; i < preparedFiles.size(); i++) {
            finalFiles[i] = preparedFiles.get(i);
        }
        try {
            craeteZip(finalFiles, selectedFile);
            File finalFile = new File(prjCompileDir + File.separator + prjGameName.toLowerCase() + ".assets.gaf");
            GAFCompiler.compileAssetsFileFromZip(selectedFile, finalFile);
            selectedFile.delete();
        } catch (IOException e1) {
            Main.log.warning("GafAssetsCompiler failure");
            Main.log.severe("Compiler has stopped running, closing...");
            return;
        }

        Main.log.fine("GafAssetsCompiler succeeded !");
    }