| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- using System;
- using System.IO;
- namespace OpenVIII.Fields
- {
- public static partial class Field
- {
- #region Classes
- public sealed class FsDataProvider : IDataProvider
- {
- #region Fields
- private readonly string _fieldDirectory;
- private readonly string _fieldPath;
- #endregion Fields
- #region Constructors
- public FsDataProvider(string fieldPath)
- {
- if (!File.Exists(fieldPath))
- throw new FileNotFoundException(fieldPath);
- _fieldPath = Path.ChangeExtension(fieldPath, extension: null);
- _fieldDirectory = Path.GetDirectoryName(fieldPath);
- }
- #endregion Constructors
- #region Methods
- public byte[] FindPart(Part part)
- {
- var 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());
- }
- }
- #endregion Methods
- }
- #endregion Classes
- }
- }
|