30 return new DateTime(2000, 1, 1);
36 throw new InvalidOperationException(
"Cannot import furniture packs in trial mode.");
41 name = $
"{fileNameWithoutExtension}.scfpack";
47 throw new InvalidOperationException(
"Duplicate name. Delete existing content with conflicting names.");
49 name = $
"{fileNameWithoutExtension} ({num}).scfpack";
53 stream.CopyTo(destination);
60 stream2.CopyTo(stream);
65 MemoryStream memoryStream =
new();
69 XElement xElement =
new(
"FurnitureDesigns");
70 valuesDictionary.
Save(xElement);
71 MemoryStream memoryStream2 =
new();
72 xElement.Save(memoryStream2);
73 memoryStream2.Position = 0L;
74 zipArchive.
AddStream(
"FurnitureDesigns.xml", memoryStream2);
76 memoryStream.Position = 0L;
113 || list[0].FilenameInZip !=
"FurnitureDesigns.xml") {
114 throw new InvalidOperationException(
"Invalid furniture pack.");
116 MemoryStream memoryStream =
new();
118 memoryStream.Position = 0L;
119 XElement overridesNode = XElement.Load(memoryStream);
static void CreateDirectory(string path)
static IEnumerable< string > ListFileNames(string path)
static Stream OpenFile(string path, OpenFileMode openFileMode)
static string GetExtension(string path)
static DateTime GetFileLastWriteTime(string path)
static bool FileExists(string path)
static string GetFileNameWithoutExtension(string path)
static void DeleteFile(string path)
static string CombinePaths(params string[] paths)
static void ReportExceptionToUser(string additionalMessage, Exception e)
static DateTime GetCreationDate(string name)
static void ExportFurniturePack(string name, Stream stream)
static Action< string > FurniturePackDeleted
static ReadOnlyList< string > FurniturePackNames
static void ValidateFurniturePack(Stream stream)
static string GetDisplayName(string name)
static string GetFileName(string name)
static void DeleteFurniturePack(string name)
static string CreateFurniturePack(string name, ICollection< FurnitureDesign > designs)
static FurniturePacksManager()
static List< string > m_furniturePackNames
static string FurniturePacksDirectoryName
static string ImportFurniturePack(string name, Stream stream)
static List< FurnitureDesign > LoadFurniturePack(SubsystemTerrain subsystemTerrain, string name)
static void UpdateFurniturePacksList()
static List< FurnitureDesign > LoadFurniturePack(SubsystemTerrain subsystemTerrain, Stream stream)
static List< FurnitureDesign > LoadFurnitureDesigns(SubsystemTerrain subsystemTerrain, ValuesDictionary valuesDictionary)
static void SaveFurnitureDesigns(ValuesDictionary valuesDictionary, ICollection< FurnitureDesign > designs)
static ZipArchive Create(Stream stream, bool keepStreamOpen=false)
void ExtractFile(ZipArchiveEntry zfe, Stream stream)
void AddStream(string filenameInZip, Stream source)
List< ZipArchiveEntry > ReadCentralDir()
static ZipArchive Open(Stream stream, bool keepStreamOpen=false)
static string FurniturePacksDirectoryName
void ApplyOverrides(ValuesDictionary overridesValuesDictionary)