public static void WriteOutHousingExteriorModels(ARealmReversed realm) { string inpath = FFXIVHSPaths.GetHousingExteriorJson(); if (!File.Exists(inpath)) { throw new FileNotFoundException(); } string outpath = FFXIVHSPaths.GetHousingExteriorObjectsDirectory(); string jsonText = File.ReadAllText(inpath); Dictionary <int, HousingExteriorFixture> fixtures = JsonConvert.DeserializeObject <Dictionary <int, HousingExteriorFixture> >(jsonText); foreach (HousingExteriorFixture fixture in fixtures.Values) { foreach (HousingExteriorFixtureVariant variant in fixture.variants) { foreach (HousingExteriorFixtureModel model in variant.models) { if (realm.Packs.TryGetFile(model.modelPath, out SaintCoinach.IO.File f)) { ObjectFileWriter.WriteObjectFile(outpath, (ModelFile)f); } } } } }
public static void WriteOutHousingExteriorInfo(ARealmReversed realm) { string outpath = FFXIVHSPaths.GetHousingExteriorJson(); if (File.Exists(outpath)) { WriteOutHousingExteriorModels(realm); return; } Dictionary <int, HousingExteriorFixture> fixtures = ReadHousingExteriorSheet(realm); AddDefaultFences(realm, ref fixtures); string json = JsonConvert.SerializeObject(fixtures, Formatting.Indented); File.WriteAllText(outpath, json); }
private static void LoadExteriorFixtures() { string jsonText = File.ReadAllText(FFXIVHSPaths.GetHousingExteriorJson()); _exteriorFixtures = JsonConvert.DeserializeObject <Dictionary <int, HousingExteriorFixture> >(jsonText); }