From 306c2ffd10cda6e62e0d5a7510ded45445b6b35d Mon Sep 17 00:00:00 2001 From: Ottermandias Date: Sat, 17 Jun 2023 01:21:59 +0200 Subject: [PATCH] Some glamourer related changes. --- Penumbra.GameData/Data/StainData.cs | 4 ++- Penumbra.GameData/Enums/FullEquipType.cs | 33 ++++++++++++++------- Penumbra.GameData/Structs/CustomizeData.cs | 2 +- Penumbra/Configuration.cs | 11 ++++--- Penumbra/Services/ConfigMigrationService.cs | 3 +- 5 files changed, 33 insertions(+), 20 deletions(-) diff --git a/Penumbra.GameData/Data/StainData.cs b/Penumbra.GameData/Data/StainData.cs index f4c4080e..8ba69d89 100644 --- a/Penumbra.GameData/Data/StainData.cs +++ b/Penumbra.GameData/Data/StainData.cs @@ -34,7 +34,9 @@ public sealed class StainData : DataSharer, IReadOnlyDictionary } public IEnumerator> GetEnumerator() - => Data.Select(kvp => new KeyValuePair(new StainId(kvp.Key), new Stain())).GetEnumerator(); + => Data.Select(kvp + => new KeyValuePair(new StainId(kvp.Key), new Stain(kvp.Value.Name, kvp.Value.Dye, kvp.Key, kvp.Value.Gloss))) + .GetEnumerator(); IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); diff --git a/Penumbra.GameData/Enums/FullEquipType.cs b/Penumbra.GameData/Enums/FullEquipType.cs index 6220b1b8..d2054a7b 100644 --- a/Penumbra.GameData/Enums/FullEquipType.cs +++ b/Penumbra.GameData/Enums/FullEquipType.cs @@ -365,17 +365,28 @@ public static class FullEquipTypeExtensions public static FullEquipType Offhand(this FullEquipType type) => type switch { - FullEquipType.Fists => FullEquipType.FistsOff, - FullEquipType.Sword => FullEquipType.Shield, - FullEquipType.Wand => FullEquipType.Shield, - FullEquipType.Daggers => FullEquipType.DaggersOff, - FullEquipType.Gun => FullEquipType.GunOff, - FullEquipType.Orrery => FullEquipType.OrreryOff, - FullEquipType.Rapier => FullEquipType.RapierOff, - FullEquipType.Glaives => FullEquipType.GlaivesOff, - FullEquipType.Bow => FullEquipType.BowOff, - FullEquipType.Katana => FullEquipType.KatanaOff, - _ => FullEquipType.Unknown, + FullEquipType.Fists => FullEquipType.FistsOff, + FullEquipType.Sword => FullEquipType.Shield, + FullEquipType.Wand => FullEquipType.Shield, + FullEquipType.Daggers => FullEquipType.DaggersOff, + FullEquipType.Gun => FullEquipType.GunOff, + FullEquipType.Orrery => FullEquipType.OrreryOff, + FullEquipType.Rapier => FullEquipType.RapierOff, + FullEquipType.Glaives => FullEquipType.GlaivesOff, + FullEquipType.Bow => FullEquipType.BowOff, + FullEquipType.Katana => FullEquipType.KatanaOff, + FullEquipType.Saw => FullEquipType.ClawHammer, + FullEquipType.CrossPeinHammer => FullEquipType.File, + FullEquipType.RaisingHammer => FullEquipType.Pliers, + FullEquipType.LapidaryHammer => FullEquipType.GrindingWheel, + FullEquipType.Knife => FullEquipType.Awl, + FullEquipType.Needle => FullEquipType.SpinningWheel, + FullEquipType.Alembic => FullEquipType.Mortar, + FullEquipType.Frypan => FullEquipType.CulinaryKnife, + FullEquipType.Pickaxe => FullEquipType.Sledgehammer, + FullEquipType.Hatchet => FullEquipType.GardenScythe, + FullEquipType.FishingRod => FullEquipType.Gig, + _ => FullEquipType.Unknown, }; internal static string OffhandTypeSuffix(this FullEquipType type) diff --git a/Penumbra.GameData/Structs/CustomizeData.cs b/Penumbra.GameData/Structs/CustomizeData.cs index 37660c08..b7a92103 100644 --- a/Penumbra.GameData/Structs/CustomizeData.cs +++ b/Penumbra.GameData/Structs/CustomizeData.cs @@ -65,7 +65,7 @@ public unsafe struct CustomizeData : IEquatable< CustomizeData > } } - public string WriteBase64() + public readonly string WriteBase64() { fixed( byte* ptr = Data ) { diff --git a/Penumbra/Configuration.cs b/Penumbra/Configuration.cs index 12c24033..7266892a 100644 --- a/Penumbra/Configuration.cs +++ b/Penumbra/Configuration.cs @@ -110,14 +110,13 @@ public class Configuration : IPluginConfiguration, ISavable /// Load the current configuration. /// Includes adding new colors and migrating from old versions. /// - public Configuration(CharacterUtility utility, FilenameService fileNames, ConfigMigrationService migrator, SaveService saveService) + public Configuration(CharacterUtility utility, ConfigMigrationService migrator, SaveService saveService) { _saveService = saveService; - Load(utility, fileNames, migrator); - UI.Classes.Colors.SetColors(this); + Load(utility, migrator); } - public void Load(CharacterUtility utility, FilenameService fileNames, ConfigMigrationService migrator) + public void Load(CharacterUtility utility, ConfigMigrationService migrator) { static void HandleDeserializationError(object? sender, ErrorEventArgs errorArgs) { @@ -126,10 +125,10 @@ public class Configuration : IPluginConfiguration, ISavable errorArgs.ErrorContext.Handled = true; } - if (File.Exists(fileNames.ConfigFile)) + if (File.Exists(_saveService.FileNames.ConfigFile)) try { - var text = File.ReadAllText(fileNames.ConfigFile); + var text = File.ReadAllText(_saveService.FileNames.ConfigFile); JsonConvert.PopulateObject(text, this, new JsonSerializerSettings { Error = HandleDeserializationError, diff --git a/Penumbra/Services/ConfigMigrationService.cs b/Penumbra/Services/ConfigMigrationService.cs index 5d19dbe5..b9e58deb 100644 --- a/Penumbra/Services/ConfigMigrationService.cs +++ b/Penumbra/Services/ConfigMigrationService.cs @@ -12,7 +12,6 @@ using Penumbra.Mods; using Penumbra.Mods.Editor; using Penumbra.Mods.Manager; using Penumbra.UI.Classes; -using Penumbra.Util; namespace Penumbra.Services; @@ -48,6 +47,8 @@ public class ConfigMigrationService if (save || forceSave) config.Save(); + + Colors.SetColors(config); } public void Migrate(CharacterUtility utility, Configuration config)