예제 #1
0
파일: Acd.cs 프로젝트: gro-ove/actools
        public static Acd FromDirectory(string dir) {
            if (!Directory.Exists(dir)) {
                throw new DirectoryNotFoundException(dir);
            }

            var acd = new Acd(dir);
            foreach (var file in Directory.GetFiles(dir)) {
                acd.SetEntry(Path.GetFileName(file), File.ReadAllBytes(file));
            }

            return acd;
        }
예제 #2
0
파일: Acd.cs 프로젝트: gro-ove/actools
        public static Acd FromFile(string filename) {
            if (!File.Exists(filename)) {
                throw new FileNotFoundException(filename);
            }

            var acd = new Acd(filename);
            using (var reader = new AcdReader(filename)) {
                acd.FromFile_Entries(reader);
            }

            return acd;
        }
예제 #3
0
        protected AbstractDataFile(string carDir, string filename, Acd loadedAcd) {
            UnpackedFilename = filename;

            var acdFile = Path.Combine(carDir, "data.acd");
            if (loadedAcd != null || File.Exists(acdFile)) {
                Mode = StorageMode.AcdFile;
                SourceFilename = acdFile;
            } else {
                Mode = StorageMode.UnpackedFile;
                SourceFilename = Path.Combine(carDir, "data", filename);
            }

            Load(loadedAcd);
        }
예제 #4
0
        private DataWrapper(string carDirectory) {
            _carDirectory = carDirectory;
            _cache = new Dictionary<string, AbstractDataFile>();

            var dataAcd = Path.Combine(carDirectory, "data.acd");
            if (File.Exists(dataAcd)) {
                _acd = Acd.FromFile(dataAcd);
                IsPacked = true;
            } else {
                var dataDirectory = Path.Combine(carDirectory, "data");
                if (Directory.Exists(dataDirectory)) {
                    _acd = Acd.FromDirectory(dataDirectory);
                }
            }
        }
예제 #5
0
        public void Load(Acd acd = null) {
            if (Mode == StorageMode.UnpackedFile) {
                if (File.Exists(SourceFilename)) {
                    ParseString(File.ReadAllText(SourceFilename));
                } else {
                    Clear();
                }
            } else {
                if (acd == null) {
                    acd = Acd.FromFile(SourceFilename);
                }

                if (acd.Entries.ContainsKey(UnpackedFilename)) {
                    ParseString(acd.Entries[UnpackedFilename].ToString());
                } else {
                    Clear();
                }
            }
        }
예제 #6
0
 public LutDataFile(string carDir, string filename, Acd loadedAcd) : base(carDir, filename, loadedAcd) {}