Ignore:
Timestamp:
Mar 23, 2015, 7:26:24 PM (10 years ago)
Author:
alloc
Message:

Should support plain files in normal mod packages, but only copies those within GDF. (Refs #89)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • java/installer2/src/net/oni2/aeinstaller/backend/oni/management/Installer.java

    r988 r1016  
    2929import net.oni2.aeinstaller.backend.oni.PersistDat;
    3030import net.oni2.aeinstaller.backend.oni.XMLTools;
     31import net.oni2.aeinstaller.backend.oni.management.tools.ToolFileIterator;
     32import net.oni2.aeinstaller.backend.oni.management.tools.ToolFileIteratorEntry;
    3133import net.oni2.aeinstaller.backend.oni.management.tools.ToolInstallationList;
    3234import net.oni2.aeinstaller.backend.packages.EBSLInstallType;
     
    247249                combineBSLFolders(mods, listener, log);
    248250
     251                copyPlainFiles (log, mods, listener);
     252               
    249253                copyVideos(log);
    250254
     
    600604        }
    601605
     606        private static void copyPlainFiles(final Logger log, TreeSet<Package> mods, InstallProgressListener listener) {
     607                listener.installProgressUpdate(97, 100, "Copying plain files");
     608                log.println();
     609                log.println("Copying plain files from mods");
     610
     611                for (Package p : mods) {
     612                        ToolFileIterator.iteratePlatformToolFiles(p,
     613                                        new ToolFileIteratorEntry() {
     614                                                @Override
     615                                                public void toolFile(File source, File target) {
     616                                                        copyPlainFile(source, target, log);
     617                                                }
     618                                        });
     619                }
     620        }
     621
     622        private static void copyPlainFile(File src, File target, Logger log) {
     623                try {
     624                        if (!src.getAbsolutePath().toLowerCase().contains("gamedatafolder")) {
     625                                File targetFile = CaseInsensitiveFile.getCaseInsensitiveFile(
     626                                                target.getParentFile(), target.getName());
     627
     628                                // Case mismatch?
     629                                if (!targetFile.getName().equals(src.getName()))
     630                                        targetFile.delete();
     631
     632                                FileUtils.copyFile(src, target);
     633                        } else {
     634                                log.printlnFmt("Not copying \"%s\": Not within GameDataFolder", src.getPath());
     635                        }
     636                } catch (IOException e) {
     637                        e.printStackTrace();
     638                }
     639        }
     640
     641
    602642        private static void unlockLevels(TreeSet<Integer> unlockLevels, Logger log) {
    603643                File dat = new File(Paths.getEditionBasePath(), "persist.dat");
Note: See TracChangeset for help on using the changeset viewer.