| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- using System;
- using System.IO;
- namespace OpenVIII.Fields
- {
- public static partial class Field
- {
- public sealed class FsDataProvider : IDataProvider
- {
- private readonly String _fieldPath;
- private readonly String _fieldDirectory;
- public FsDataProvider(String fieldPath)
- {
- if (!File.Exists(fieldPath))
- throw new FileNotFoundException(fieldPath);
- _fieldPath = Path.ChangeExtension(fieldPath, extension: null);
- _fieldDirectory = Path.GetDirectoryName(fieldPath);
- }
- public Byte[] FindPart(Part part)
- {
- String filePath = GetFilePath(part);
- if (File.Exists(filePath))
- return File.ReadAllBytes(filePath);
- return null;
- }
- private String GetFilePath(Part part)
- {
- switch (part)
- {
- case Part.One: return Path.Combine(_fieldDirectory, "chara.one");
- case Part.Ca: return _fieldPath + ".ca";
- case Part.Id: return _fieldPath + ".id";
- case Part.Inf: return _fieldPath + ".inf";
- case Part.Jsm: return _fieldPath + ".jsm";
- case Part.Map: return _fieldPath + ".map";
- case Part.Mim: return _fieldPath + ".mim";
- case Part.Mrt: return _fieldPath + ".mrt";
- case Part.Msd: return _fieldPath + ".msd";
- case Part.Pcb: return _fieldPath + ".pcb";
- case Part.Pmd: return _fieldPath + ".pmd";
- case Part.Pmp: return _fieldPath + ".pmp";
- case Part.Pvp: return _fieldPath + ".pvp";
- case Part.Rat: return _fieldPath + ".rat";
- case Part.Sfx: return _fieldPath + ".sfx";
- case Part.Sym: return _fieldPath + ".sym";
- case Part.Tdw: return _fieldPath + ".tdw";
- default: throw new NotSupportedException(part.ToString());
- }
- }
- }
- }
- }
|