123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- using System.Globalization;
- using System.IO;
- namespace MeidoPhotoStudio.Plugin;
- public class ModItem : MenuItem
- {
- public ModItem()
- {
- }
- public ModItem(string menuFile) =>
- MenuFile = menuFile;
- public string MenuFile { get; set; }
- public string BaseMenuFile { get; set; }
- public string Name { get; set; }
- public string Category { get; set; }
- public float Priority { get; set; }
- public bool IsMod { get; private set; }
- public bool IsOfficialMod { get; private set; }
- public static ModItem OfficialMod(string menuFile) =>
- new()
- {
- MenuFile = menuFile,
- IsMod = true,
- IsOfficialMod = true,
- Priority = 1000f,
- };
- public static ModItem Mod(string menuFile) =>
- new()
- {
- MenuFile = menuFile,
- IsMod = true,
- };
- public static ModItem Deserialize(BinaryReader binaryReader) =>
- new()
- {
- MenuFile = binaryReader.ReadNullableString(),
- BaseMenuFile = binaryReader.ReadNullableString(),
- IconFile = binaryReader.ReadNullableString(),
- Name = binaryReader.ReadNullableString(),
- Category = binaryReader.ReadNullableString(),
- Priority = float.Parse(binaryReader.ReadNullableString()),
- IsMod = binaryReader.ReadBoolean(),
- IsOfficialMod = binaryReader.ReadBoolean(),
- };
- public override string ToString() =>
- IsOfficialMod ? $"{Path.GetFileName(MenuFile)}#{BaseMenuFile}" : MenuFile;
- public void Serialize(BinaryWriter binaryWriter)
- {
- if (IsOfficialMod)
- return;
- binaryWriter.WriteNullableString(MenuFile);
- binaryWriter.WriteNullableString(BaseMenuFile);
- binaryWriter.WriteNullableString(IconFile);
- binaryWriter.WriteNullableString(Name);
- binaryWriter.WriteNullableString(Category);
- binaryWriter.WriteNullableString(Priority.ToString(CultureInfo.InvariantCulture));
- binaryWriter.Write(IsMod);
- binaryWriter.Write(IsOfficialMod);
- }
- }
|