diff --git a/PetNicknames/Configuration.cs b/PetNicknames/Configuration.cs index 720af99a..6c01e938 100644 --- a/PetNicknames/Configuration.cs +++ b/PetNicknames/Configuration.cs @@ -46,7 +46,6 @@ internal class Configuration : IPluginConfiguration public bool showOnTargetBars = true; public bool showOnPartyList = true; // --------------------------- UI SETTINGS --------------------------- - public bool quickButtonsToggle = false; public bool showKofiButton = true; public float petNicknamesUIScale = 1.5f; public bool uiFlare = true; diff --git a/PetNicknames/PetNicknames.csproj b/PetNicknames/PetNicknames.csproj index 3b06f1bc..7f258405 100644 --- a/PetNicknames/PetNicknames.csproj +++ b/PetNicknames/PetNicknames.csproj @@ -3,7 +3,7 @@ Glyceri - 2.0.0.0 + 2.0.0.1 A pet nickname plugin. https://github.com/Glyceri/FFXIVPetRenamer diff --git a/PetNicknames/PetNicknames/Hooking/HookTypes/SimpleTextHook.cs b/PetNicknames/PetNicknames/Hooking/HookTypes/SimpleTextHook.cs index bce1eebd..f73dda9e 100644 --- a/PetNicknames/PetNicknames/Hooking/HookTypes/SimpleTextHook.cs +++ b/PetNicknames/PetNicknames/Hooking/HookTypes/SimpleTextHook.cs @@ -55,15 +55,11 @@ public virtual void Setup(DalamudServices services, IPettableUserList userList, void OnName(INamesDatabase nameDatabase) { - if (lastPettableUser == null) return; - if (lastPettableUser.DataBaseEntry.ActiveDatabase != nameDatabase) return; SetDirty(); } void OnEntry(IPettableDatabaseEntry entry) { - if (lastPettableUser == null) return; - if (lastPettableUser.DataBaseEntry != entry) return; SetDirty(); } diff --git a/PetNicknames/PetNicknames/PettableDatabase/PettableDirtyHandler.cs b/PetNicknames/PetNicknames/PettableDatabase/PettableDirtyHandler.cs index aef9fc84..b5daf64a 100644 --- a/PetNicknames/PetNicknames/PettableDatabase/PettableDirtyHandler.cs +++ b/PetNicknames/PetNicknames/PettableDatabase/PettableDirtyHandler.cs @@ -1,5 +1,4 @@ using PetRenamer.PetNicknames.PettableDatabase.Interfaces; -using PetRenamer.PetNicknames.Services; using System; namespace PetRenamer.PetNicknames.PettableDatabase; @@ -11,13 +10,6 @@ internal class PettableDirtyHandler : IPettableDirtyListener, IPettableDirtyCall Action? OnClear = _ => { }; Action? OnName = _ => { }; - readonly DalamudServices DalamudServices; - - public PettableDirtyHandler(DalamudServices dalamudServices) - { - DalamudServices = dalamudServices; - } - public void ClearEntry(in IPettableDatabaseEntry entry) { OnClear?.Invoke(entry); diff --git a/PetNicknames/PetNicknames/PettableDatabase/PettableNameDatabase.cs b/PetNicknames/PetNicknames/PettableDatabase/PettableNameDatabase.cs index fcdf6434..cd77f1d0 100644 --- a/PetNicknames/PetNicknames/PettableDatabase/PettableNameDatabase.cs +++ b/PetNicknames/PetNicknames/PettableDatabase/PettableNameDatabase.cs @@ -8,11 +8,11 @@ namespace PetRenamer.PetNicknames.PettableDatabase; internal class PettableNameDatabase : INamesDatabase { - public int[] IDs { get; private set; } = new int[0]; - public string[] Names { get; private set; } = new string[0]; + public int[] IDs { get; private set; } = []; + public string[] Names { get; private set; } = []; public int Length { get => IDs.Length; } - IPettableDirtyCaller? DirtyCaller = null; + readonly IPettableDirtyCaller? DirtyCaller = null; public PettableNameDatabase(int[] ids, string[] names, in IPettableDirtyCaller dirtyCaller) { diff --git a/PetNicknames/PetNicknames/Serialization/SaveHandler.cs b/PetNicknames/PetNicknames/Serialization/SaveHandler.cs index d1183bd6..4e214635 100644 --- a/PetNicknames/PetNicknames/Serialization/SaveHandler.cs +++ b/PetNicknames/PetNicknames/Serialization/SaveHandler.cs @@ -1,22 +1,19 @@ using PetRenamer.PetNicknames.IPC.Interfaces; using PetRenamer.PetNicknames.PettableDatabase.Interfaces; using PetRenamer.PetNicknames.PettableUsers.Interfaces; -using PetRenamer.PetNicknames.Services; using System; namespace PetRenamer.PetNicknames.Serialization; internal class SaveHandler : IDisposable { - readonly DalamudServices DalamudServices; readonly Configuration Configuration; readonly IPettableUserList UserList; readonly IIpcProvider IpcProvider; readonly IPettableDirtyListener DirtyListener; - public SaveHandler(in DalamudServices dalamudServices, in Configuration configuration, in IPettableUserList userList, in IIpcProvider ipcProvider, in IPettableDirtyListener dirtyListener) + public SaveHandler(in Configuration configuration, in IPettableUserList userList, in IIpcProvider ipcProvider, in IPettableDirtyListener dirtyListener) { - DalamudServices = dalamudServices; Configuration = configuration; UserList = userList; IpcProvider = ipcProvider; diff --git a/PetNicknames/PetNicknames/Services/ServiceWrappers/Structs/PetSheetData.cs b/PetNicknames/PetNicknames/Services/ServiceWrappers/Structs/PetSheetData.cs index eb72c4e1..c7645bd6 100644 --- a/PetNicknames/PetNicknames/Services/ServiceWrappers/Structs/PetSheetData.cs +++ b/PetNicknames/PetNicknames/Services/ServiceWrappers/Structs/PetSheetData.cs @@ -98,20 +98,17 @@ readonly string GermanReplace(string baseString, sbyte pronoun) { try { - baseString = baseString.Replace("[p]", ""); - baseString = baseString.Replace("[a]", checked(pronounList[pronoun])); - return baseString; - } - catch - { - return baseString; - } + baseString = baseString.Replace("[p]", "", System.StringComparison.InvariantCultureIgnoreCase); + baseString = baseString.Replace("[a]", checked(pronounList[pronoun]), System.StringComparison.InvariantCultureIgnoreCase); + } catch { } + + return baseString; } readonly string[] pronounList = ["er", "e", "es", "en"]; readonly string[] englishStarters = ["the ", string.Empty]; readonly string[] germanStarters = ["den ", "des ", "dem ", "die ", "der ", "das ", string.Empty]; - readonly string[] frenchStarters = ["le ", "la ", string.Empty]; + readonly string[] frenchStarters = ["le ", "la ", "l'", string.Empty]; readonly string[] japaneseStarters = [string.Empty]; readonly string[] GetList(ClientLanguage clientLanguage) => clientLanguage switch diff --git a/PetNicknames/PetNicknames/TranslatorSystem/Translator.cs b/PetNicknames/PetNicknames/TranslatorSystem/Translator.cs index 42dd0fa7..383f7fb8 100644 --- a/PetNicknames/PetNicknames/TranslatorSystem/Translator.cs +++ b/PetNicknames/PetNicknames/TranslatorSystem/Translator.cs @@ -28,6 +28,8 @@ internal static class Translator { "PetRenameNode.Clear", "Clear" }, { "PetRenameNode.Save", "Save" }, { "PetRenameNode.Cancel", "Cancel" }, + { "PetRenameNode.PleaseSummonWarningLabel", "Warning" }, + { "PetRenameNode.PleaseSummonWarning", "Please summon a pet" }, { "WindowHandler.Title", "Pet Passport" }, { "PetList.Title", "Pet List" }, { "PetList.Navigation", "Navigation" }, @@ -116,314 +118,17 @@ internal static class Translator static Dictionary GermanTranslations = new Dictionary() { - { "...", "..." }, - { "Name", "Nutzername" }, - { "Homeworld", "Stammwelt" }, - { "Petcount", "Spitznamenanzahl" }, - { "Search", "Durchsuchung" }, - { "DateTime.Unkown", "Datum unbekannt" }, - { "Version.Unkown", "Version unbekannt" }, - { "ContextMenu.Rename", "Spitznamen vergeben" }, - { "PetRenameNode.Species", "Begleiter" }, - { "PetRenameNode.Race", "Rasse" }, - { "PetRenameNode.Behaviour", "Verhalten" }, - { "PetRenameNode.Nickname", "Spitzname" }, - { "PetRenameNode.Edit", "Bearbeiten" }, - { "PetRenameNode.Clear", "Löschen" }, - { "PetRenameNode.Save", "Speichern" }, - { "PetRenameNode.Cancel", "Abbrechen" }, - { "WindowHandler.Title", "Heimtierausweis" }, - { "PetList.Title", "Spitznamenliste" }, - { "PetList.Navigation", "Navigation" }, - { "PetList.UserList", "Benutzerliste" }, - { "PetList.MyList", "Meine Liste" }, - { "PetList.Sharing", "Teilen" }, - { "PetListWindow.ListHeaderPersonalMinion", "Ihre Begleiter" }, - { "PetListWindow.ListHeaderPersonalBattlePet", "Ihre Kampftiere" }, - { "PetListWindow.ListHeaderOtherMinion", "Begleiter von {0}" }, - { "PetListWindow.ListHeaderOtherBattlePet", "Kampftiere von {0}" }, - { "ClearButton.Label", "Halten Sie die Tasten „Linke Strg“ + „Linke Umschalttaste“ gedrückt,\num einen Eintrag zu löschen." }, - { "UserListElement.WarningClear", "Sie können sich nicht selbst entfernen." }, - { "UserListElement.WarningIPC", "Dieser Benutzer wird über ein externes Plugin\nvorübergehend hinzugefügt und nicht gespeichert." }, - { "UserListElement.WarningOldUser", "Dieser Benutzer stammt aus Ihrer alten Sicherungsdatei.\nTreffen Sie ihn im Spiel, damit es aktualisiert wird." }, - { "PVPWarning", "„Pet Nicknames“ ist in PVP-Zonen mit Ausnahme des Wolfshöhlen-Pier deaktiviert." }, - { "ShareWindow.Export", "Exportieren" }, - { "ShareWindow.Import", "Importieren" }, - { "ShareWindow.ExportError", "Keine Daten verfügbar.\nSie müssen sich mit einem Charakter anmelden, um Ihre Daten zu exportieren." }, - { "ShareWindow.ExportSuccess", "Daten erfolgreich kopiert." }, - { "ShareWindow.ImportError", "Fehler beim Importieren der Daten:\n{0}" }, - { "ShareWindow.ImportSuccess", "Daten erfolgreich importiert von {0}" }, - { "Config.Title", "Einstellungen" }, - { "Config.Header.GeneralSettings", "Allgemeine Einstellungen" }, - { "Config.Header.UISettings", "UI Einstellungen" }, - { "Config.Header.NativeSettings", "Native Einstellungen" }, - { "Config.PVPMessage", "PVP-Warnmeldung deaktivieren." }, - { "Config.ProfilePictures", "Profilbilder automatisch herunterladen." }, - { "Config.UISettings.UIScale.Header.Title", "Benutzerdefinierte UI-Skalierung" }, - { "Config.Toggle", "Schnelltasten werden umgeschaltet statt geöffnet." }, - { "Config.Kofi", "Ko-Fi-Button anzeigen." }, - { "Config.TransparentBackground", "Der Hintergrund wird bei Inaktivität transparent." }, - { "Config.UIFlare", "Zusätzliche UI-Dekorationen anzeigen." }, - { "Config.Nameplate", "Spitznamen auf „Nameplate“ anzeigen." }, - { "Config.Castbar", "Spitznamen auf „Castbar“ anzeigen." }, - { "Config.BattleChat", "Spitznamen im „Battle-Chat“ anzeigen." }, - { "Config.Emote", "Spitznamen für „Emotes“ anzeigen." }, - { "Config.Tooltip", "Spitznamen in „Tooltips“ anzeigen." }, - { "Config.Notebook", "Spitznamen im „Begleiter-Verzeichnis“ anzeigen." }, - { "Config.ActionLog", "Spitznamen in der „Kommandoliste“ anzeigen." }, - { "Config.Targetbar", "Spitznamen für Ziele anzeigen." }, - { "Config.Partylist", "Spitznamen auf der „Partyliste“ anzeigen." }, - { "Config.ContextMenu", "Kontextmenüs zulassen." }, - - { "Kofi.Title", "Ko-fi" }, - { "Kofi.Line1", "Hier geht es um echtes Geld." }, - { "Kofi.Line2", "Es wird für den Kauf von Hundespielzeug verwendet!" }, - { "Kofi.TakeMe", "Los geht's" }, - - { "Command.Petname", "Öffnet das Fenster „Haustierausweis“." }, - { "Command.Petlist", "Öffnet das Fenster „Spitznamenliste“." }, - { "Command.PetSettings", "Öffnet das Fenster „Einstellungen“." }, - { "Command.PetSharing", "Öffnet das Fenster „Teilen“." }, - { "Command.PetTheme", "Öffnet das Fenster „Farbeditor“." }, - { "Style.Title.Default", "Standard" }, - - { "ColourEditorWindow.Name", "Name" }, - { "ColourEditorWindow.Author", "Autor" }, - - { "ColourSetting.Outline", "Konturen" }, - { "ColourSetting.Outline:Fade", "Konturen Verblassen" }, - { "ColourSetting.Window.Background", "Fensterhintergrund" }, - { "ColourSetting.Window.BackgroundLight", "Verblasster Fensterhintergrund" }, - { "ColourSetting.BackgroundImageColour", "Fensterhintergrund Bildfarbe" }, - { "ColourSetting.SearchBarBackground", "Suchleiste" }, - { "ColourSetting.ListElementBackground", "Listenelement Hintergrund" }, - { "ColourSetting.Window.TextOutline", "Textumriss" }, - { "ColourSetting.Window.TextOutlineButton", "Textumriss Deaktiviert" }, - { "ColourSetting.Window.Text", "Text Deaktiviert" }, - { "ColourSetting.Window.TextLight", "Text" }, - { "ColourSetting.WindowBorder:Active", "Rahmen Aktiv" }, - { "ColourSetting.WindowBorder:Inactive", "Rahmen Inaktiv" }, - { "ColourSetting.Button.Background", "Schaltfläche" }, - { "ColourSetting.Button.Background:Hover", "Schaltfläche Schweben" }, - { "ColourSetting.Button.Background:Inactive", "Schaltfläche Deaktiviert" }, - { "ColourSetting.FlareImageColour", "Bild" }, - - { "ColourEditorWindow.Title", "Farbeditor" }, - { "ColourSettings.PresetListHeader", "Presets" }, - { "ColourSettings.Header", "Farbeinstellungen" }, - - { "Config.LanguageSettingsBar.Header.Title", "Spracheinstellungen (Plugin neu starten, damit sie wirksam werden)" }, - { "Language.Game", "Game Language" }, - { "Language.English", "English" }, - { "Language.German", "Deutsch" }, - { "Language.French", "Français" }, - { "Language.Japanese", "日本語" }, }; - static Dictionary FrenchTranslations = new Dictionary() { - { "...", "..." }, - { "Name", "Nom d'utilisateur" }, - { "Homeworld", "Monde d'origine" }, - { "Petcount", "Nombre de surnoms" }, - { "Search", "Chercher" }, - { "DateTime.Unkown", "Date inconnue" }, - { "Version.Unkown", "Version inconnue" }, - { "ContextMenu.Rename", "Donner un surnom" }, - { "PetRenameNode.Species", "Mascotte" }, - { "PetRenameNode.Race", "Race" }, - { "PetRenameNode.Behaviour", "Comportement" }, - { "PetRenameNode.Nickname", "Surnom" }, - { "PetRenameNode.Edit", "Modifier" }, - { "PetRenameNode.Clear", "Effacer" }, - { "PetRenameNode.Save", "Enregistrer" }, - { "PetRenameNode.Cancel", "Annuler" }, - { "WindowHandler.Title", "Passeport pour animaux" }, - { "PetList.Title", "Liste de surnoms" }, - { "PetList.Navigation", "Navigation" }, - { "PetList.UserList", "Liste des utilisateurs" }, - { "PetList.MyList", "Ma liste" }, - { "PetList.Sharing", "Partager" }, - { "PetListWindow.ListHeaderPersonalMinion", "Vos mascottes" }, - { "PetListWindow.ListHeaderPersonalBattlePet", "Vos animaux de combat" }, - { "PetListWindow.ListHeaderOtherMinion", "Mascottes de {0}" }, - { "PetListWindow.ListHeaderOtherBattlePet", "Animaux de combat de {0}" }, - { "ClearButton.Label", "Maintenez les touches « Ctrl gauche » + « Maj gauche »\npour supprimer une entrée." }, - { "UserListElement.WarningClear", "Vous ne pouvez pas vous retirer." }, - { "UserListElement.WarningIPC", "Cet utilisateur est temporairement ajouté via un plugin externe et n'est pas enregistré." }, - { "UserListElement.WarningOldUser", "Cet utilisateur provient de votre ancien fichier de sauvegarde.\nRencontrez-le dans le jeu pour le mettre à jour." }, - { "PVPWarning", "« Pet Nicknames » est désactivé dans les zones PVP, sauf sur la Jetée des l'Antre des Loups." }, - { "ShareWindow.Export", "Exporter" }, - { "ShareWindow.Import", "Importer" }, - { "ShareWindow.ExportError", "Aucune donnée disponible.\nVous devez vous connecter avec un personnage pour exporter vos données." }, - { "ShareWindow.ExportSuccess", "Données copiées avec succès." }, - { "ShareWindow.ImportError", "Erreur lors de l'importation des données :\n{0}" }, - { "ShareWindow.ImportSuccess", "Données importées avec succès de {0}" }, - { "Config.Title", "Paramètres" }, - { "Config.Header.GeneralSettings", "Paramètres généraux" }, - { "Config.Header.UISettings", "Paramètres de l'interface utilisateur" }, - { "Config.Header.NativeSettings", "Paramètres natifs" }, - { "Config.PVPMessage", "Désactiver le message d'avertissement PVP." }, - { "Config.ProfilePictures", "Télécharger automatiquement les photos de profil." }, - { "Config.UISettings.UIScale.Header.Title", "Échelle personnalisée de l'interface utilisateur" }, - { "Config.Toggle", "Les raccourcis sont basculés au lieu d'être ouverts." }, - { "Config.Kofi", "Afficher le bouton Ko-Fi." }, - { "Config.TransparentBackground", "L'arrière-plan devient transparent en cas d'inactivité." }, - { "Config.UIFlare", "Afficher des décorations supplémentaires de l'interface utilisateur." }, - { "Config.Nameplate", "Afficher les surnoms sur la « Nameplate »." }, - { "Config.Castbar", "Afficher les surnoms sur la « Castbar »." }, - { "Config.BattleChat", "Afficher les surnoms dans le chat de combat." }, - { "Config.Emote", "Afficher les surnoms pour « Emote »." }, - { "Config.Tooltip", "Afficher les surnoms dans les infobulles." }, - { "Config.Notebook", "Afficher les surnoms dans le carnet de Mascottes." }, - { "Config.ActionLog", "Afficher les surnoms dans la liste de Actions et traits." }, - { "Config.Targetbar", "Afficher les surnoms pour les « Target »." }, - { "Config.Partylist", "Afficher les surnoms sur la « Party List »." }, - { "Config.ContextMenu", "Autoriser les menus contextuels." }, - - { "Kofi.Title", "Ko-fi" }, - { "Kofi.Line1", "Ceci concerne de l'argent réel." }, - { "Kofi.Line2", "Il est utilisé pour acheter des jouets pour chiens !" }, - { "Kofi.TakeMe", "Allons-y" }, - - { "Command.Petname", "Ouvre la fenêtre « Passeport pour animaux »." }, - { "Command.Petlist", "Ouvre la fenêtre « Liste de surnoms »." }, - { "Command.PetSettings", "Ouvre la fenêtre « Paramètres »." }, - { "Command.PetSharing", "Ouvre la fenêtre « Partager »." }, - { "Command.PetTheme", "Ouvre la fenêtre « Éditeur de Couleur »." }, - - { "Style.Title.Default", "Standard" }, - - { "ColourEditorWindow.Name", "Nom" }, - { "ColourEditorWindow.Author", "Auteur" }, - - { "ColourSetting.Outline", "Contours" }, - { "ColourSetting.Outline:Fade", "Estompe des Contours" }, - { "ColourSetting.Window.Background", "Arrière-plan de la Fenêtre" }, - { "ColourSetting.Window.BackgroundLight", "Arrière-plan Estompé de la Fenêtre" }, - { "ColourSetting.BackgroundImageColour", "Couleur de l'Image de Fond de la Fenêtre" }, - { "ColourSetting.SearchBarBackground", "Barre de Recherche" }, - { "ColourSetting.ListElementBackground", "Arrière-plan de l'Élément de la Liste" }, - { "ColourSetting.Window.TextOutline", "Contour du Texte" }, - { "ColourSetting.Window.TextOutlineButton", "Contour du Texte Désactivé" }, - { "ColourSetting.Window.Text", "Texte Désactivé" }, - { "ColourSetting.Window.TextLight", "Texte" }, - { "ColourSetting.WindowBorder:Active", "Bordure Active" }, - { "ColourSetting.WindowBorder:Inactive", "Bordure Inactive" }, - { "ColourSetting.Button.Background", "Bouton" }, - { "ColourSetting.Button.Background:Hover", "Bouton Survolé" }, - { "ColourSetting.Button.Background:Inactive", "Bouton Désactivé" }, - { "ColourSetting.FlareImageColour", "Image" }, - - { "ColourEditorWindow.Title", "Éditeur de Couleur" }, - { "ColourSettings.PresetListHeader", "Préréglages" }, - { "ColourSettings.Header", "Paramètres de Couleur" }, - - { "Config.LanguageSettingsBar.Header.Title", "Paramètres de langue (redémarrez le plugin pour prendre effet)" }, + }; static Dictionary JapaneseTranslations = new Dictionary() { - { "...", "。。。" }, - { "Name", "ユーザーネーム" }, - { "Homeworld", "ホームワールド" }, - { "Petcount", "ニックネーム数" }, - { "Search", "検索" }, - { "DateTime.Unkown", "日付不明" }, - { "Version.Unkown", "バージョン不明" }, - { "ContextMenu.Rename", "ニックネームを付ける" }, - { "PetRenameNode.Species", "ミニオン" }, - { "PetRenameNode.Race", "種" }, - { "PetRenameNode.Behaviour", "行動" }, - { "PetRenameNode.Nickname", "ニックネーム" }, - { "PetRenameNode.Edit", "編集" }, - { "PetRenameNode.Clear", "クリア" }, - { "PetRenameNode.Save", "セーブ" }, - { "PetRenameNode.Cancel", "キャンセル" }, - { "WindowHandler.Title", "ペットパスポート" }, - { "PetList.Title", "ニックネームリスト" }, - { "PetList.Navigation", "ナビゲーション" }, - { "PetList.UserList", "ユーザーリスト" }, - { "PetList.MyList", "私のリスト" }, - { "PetList.Sharing", "共有" }, - { "PetListWindow.ListHeaderPersonalMinion", "あなたのミニオン" }, - { "PetListWindow.ListHeaderPersonalBattlePet", "あなたのバトルペット" }, - { "PetListWindow.ListHeaderOtherMinion", "{0}のミニオン" }, - { "PetListWindow.ListHeaderOtherBattlePet", "{0}のバトルペット" }, - { "ClearButton.Label", "エントリーを削除するには、「左Ctrl」+「左Shift」キーを押し続けてください。" }, - { "UserListElement.WarningClear", "削除できない。" }, - { "UserListElement.WarningIPC", "このユーザーは外部プラグインを介して一時的に追加され、保存されません。" }, - { "UserListElement.WarningOldUser", "このユーザーは古いバックアップファイルから来ています。更新するにはゲーム内で彼に会ってください。" }, - { "PVPWarning", "「Pet Nicknames」は、ウルヴズジェイル係船場くPVPゾーンでは無効です。" }, - { "ShareWindow.Export", "エクスポート" }, - { "ShareWindow.Import", "インポート" }, - { "ShareWindow.ExportError", "利用可能なデータがありません。データをエクスポートするには、キャラクターでログインする必要があります。" }, - { "ShareWindow.ExportSuccess", "データが正常にコピーされました。" }, - { "ShareWindow.ImportError", "データのインポートエラー:\n{0}" }, - { "ShareWindow.ImportSuccess", "{0}からのデータが正常にインポートされました。" }, - { "Config.Title", "設定" }, - { "Config.Header.GeneralSettings", "一般設定" }, - { "Config.Header.UISettings", "UI設定" }, - { "Config.Header.NativeSettings", "プラグイン設定" }, - { "Config.PVPMessage", "PVP警告メッセージを無効にする。" }, - { "Config.ProfilePictures", "プロフィール写真を自動ダウンロードする。" }, - { "Config.UISettings.UIScale.Header.Title", "カスタムUIスケーリング" }, - { "Config.Toggle", "ショートカットボタンを切り替える" }, - { "Config.Kofi", "Ko-Fiボタンを表示する。" }, - { "Config.TransparentBackground", "非アクティブ時に背景を透明にする。" }, - { "Config.UIFlare", "追加のUIデコレーションを表示する。" }, - { "Config.Nameplate", "ネームプレートにニックネームを表示する。" }, - { "Config.Castbar", "キャストバーにニックネームを表示する。" }, - { "Config.BattleChat", "バトルチャットにニックネームを表示する。" }, - { "Config.Emote", "エモートにニックネームを表示する。" }, - { "Config.Tooltip", "ツールチップにニックネームを表示する。" }, - { "Config.Notebook", "ミニオンリストにニックネームを表示する。" }, - { "Config.ActionLog", "アクションログにニックネームを表示する。" }, - { "Config.Targetbar", "ターゲットバーにニックネームを表示する。" }, - { "Config.Partylist", "パーティリストにニックネームを表示する。" }, - { "Config.ContextMenu", "コンテキストメニューを許可する。" }, - - { "Kofi.Title", "Ko-fi" }, - { "Kofi.Line1", "これは実際のお金に関することです。" }, - { "Kofi.Line2", "それは犬のおもちゃの購入に使用されます!" }, - { "Kofi.TakeMe", "行きましょう" }, - - { "Command.Petname", "「ペットパスポート」ウィンドウを開く。" }, - { "Command.Petlist", "「ニックネームリスト」ウィンドウを開く。" }, - { "Command.PetSettings", "「設定」ウィンドウを開く。" }, - { "Command.PetSharing", "「共有」ウィンドウを開く。" }, - { "Command.PetTheme", "「カラーエディター」ウィンドウを開く。" }, - - { "Style.Title.Default", "標準" }, - - { "ColourEditorWindow.Name", "名前" }, - { "ColourEditorWindow.Author", "著者" }, - - { "ColourSetting.Outline", "輪郭" }, - { "ColourSetting.Outline:Fade", "輪郭のフェード" }, - { "ColourSetting.Window.Background", "ウィンドウの背景" }, - { "ColourSetting.Window.BackgroundLight", "フェードしたウィンドウの背景" }, - { "ColourSetting.BackgroundImageColour", "ウィンドウの背景画像の色" }, - { "ColourSetting.SearchBarBackground", "検索バー" }, - { "ColourSetting.ListElementBackground", "リスト要素の背景" }, - { "ColourSetting.Window.TextOutline", "テキストの輪郭" }, - { "ColourSetting.Window.TextOutlineButton", "テキストの輪郭無効" }, - { "ColourSetting.Window.Text", "テキスト無効" }, - { "ColourSetting.Window.TextLight", "テキスト" }, - { "ColourSetting.WindowBorder:Active", "枠のアクティブ" }, - { "ColourSetting.WindowBorder:Inactive", "枠の非アクティブ" }, - { "ColourSetting.Button.Background", "ボタン" }, - { "ColourSetting.Button.Background:Hover", "ボタンのホバー" }, - { "ColourSetting.Button.Background:Inactive", "ボタンの無効" }, - { "ColourSetting.FlareImageColour", "画像" }, - - { "ColourEditorWindow.Title", "カラーエディター" }, - { "ColourSettings.PresetListHeader", "プリセット" }, - { "ColourSettings.Header", "カラー設定" }, - - { "Config.LanguageSettingsBar.Header.Title", "言語設定(有効にするにはプラグインを再起動してください)" }, + }; internal static void Initialise(DalamudServices dalamudServices, Configuration configuration) diff --git a/PetNicknames/PetNicknames/Windowing/Base/PetWindow.cs b/PetNicknames/PetNicknames/Windowing/Base/PetWindow.cs index 97c318b4..bfc19a55 100644 --- a/PetNicknames/PetNicknames/Windowing/Base/PetWindow.cs +++ b/PetNicknames/PetNicknames/Windowing/Base/PetWindow.cs @@ -62,7 +62,7 @@ protected PetWindow(in WindowHandler windowHandler, in DalamudServices dalamudSe ClassList = ["window--titlebar-text"], NodeValue = Title, }, - HeaderBar = new HeaderBarButtonNode(in DalamudServices, this, in configuration, in windowHandler, HasExtraButtons), + HeaderBar = new HeaderBarButtonNode(in DalamudServices, this, in windowHandler, HasExtraButtons), ContentNode = new Node() { ClassList = ["window--content"], diff --git a/PetNicknames/PetNicknames/Windowing/Base/Style/WindowStyles.cs b/PetNicknames/PetNicknames/Windowing/Base/Style/WindowStyles.cs index c5a0591a..84098db1 100644 --- a/PetNicknames/PetNicknames/Windowing/Base/Style/WindowStyles.cs +++ b/PetNicknames/PetNicknames/Windowing/Base/Style/WindowStyles.cs @@ -57,30 +57,30 @@ internal static class WindowStyles public static readonly ColourProfile DefaultColourProfile = new ColourProfile(Translator.GetLine("Style.Title.Default"), "Glyceri", new() { - new("Outline", new Color(176, 169, 120).ToUInt()), - new("Outline:Fade", new Color(176, 169, 120, 100).ToUInt()), + new("Outline", new Color(255, 255, 255).ToUInt()), + new("Outline:Fade", new Color(255, 255, 255, 100).ToUInt()), new("Titlebar.Minion", new Color(255, 194, 63, 150).ToUInt()), new("Titlebar.Minion:Dark", new Color(110, 78, 10).ToUInt()), new("Titlebar.BattlePet", new Color(37, 112, 37, 150).ToUInt()), new("Titlebar.BattlePet:Dark", new Color(26, 84, 26).ToUInt()), new("Titlebar.Base", new Color(255, 255, 255).ToUInt()), - new("Window.Background", new Color(26, 20, 0, 255).ToUInt()), - new("Window.BackgroundLight", new Color(26, 20, 0, 150).ToUInt()), - new("BackgroundImageColour", new Color(40, 40, 0, 230).ToUInt()), - new("ListElementBackground", new Color(26, 20, 0, 130).ToUInt()), - new("SearchBarBackground", new Color(150, 150, 150, 150).ToUInt()), - new("ModeToggleInactive", new Color(15, 15, 15).ToUInt()), - new("Window.TextOutline", new Color(189, 141, 6, 190).ToUInt()), - new("Window.TextOutlineButton", new Color(194, 82, 17, 190).ToUInt()), + new("Window.Background", new Color(0, 0, 0, 255).ToUInt()), + new("Window.BackgroundLight", new Color(0, 0, 0, 150).ToUInt()), + new("BackgroundImageColour", new Color(67, 67, 0, 230).ToUInt()), + new("ListElementBackground", new Color(0, 0, 0).ToUInt()), + new("SearchBarBackground", new Color(150, 150, 150, 150).ToUInt()), + new("ModeToggleInactive", new Color(100, 0, 0, 0.01f).ToUInt()), + new("Window.TextOutline", new Color(0, 0, 0, 255).ToUInt()), + new("Window.TextOutlineButton", new Color(86, 86, 86, 255).ToUInt()), new("PetNicknamesButton", new Color(91, 120, 83, 150).ToUInt()), new("PetNicknamesButton:Hover", new Color(47, 69, 41, 150).ToUInt()), - new("Window.Text", 0xFFD0D0D0), - new("Window.TextLight", 0xFFFFFFFF), - new("WindowBorder:Active", new Color(224, 183, 18).ToUInt()), - new("WindowBorder:Inactive", 0xFF404040), - new("Button.Background", new Color(76, 69, 20, 200).ToUInt()), - new("Button.Background:Hover", new Color(76, 69, 20, 250).ToUInt()), - new("Button.Background:Inactive", new Color(76, 69, 20, 100).ToUInt()), + new("Window.Text", new Color(0, 0, 0, 255).ToUInt()), + new("Window.TextLight", new Color(255, 255, 255, 255).ToUInt()), + new("WindowBorder:Active", new Color(117, 117, 0).ToUInt()), + new("WindowBorder:Inactive", new Color(0, 0, 0, 0).ToUInt()), + new("Button.Background", new Color(168, 168, 168, 200).ToUInt()), + new("Button.Background:Hover", new Color(158, 158, 158, 250).ToUInt()), + new("Button.Background:Inactive", new Color(193, 193, 193, 100).ToUInt()), new("FlareImageColour", new Color(255, 255, 0).ToUInt()), }); } diff --git a/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/Buttons/KofiButton.cs b/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/Buttons/KofiButton.cs index 7f097d91..cd3dad10 100644 --- a/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/Buttons/KofiButton.cs +++ b/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/Buttons/KofiButton.cs @@ -1,12 +1,13 @@ using Dalamud.Interface; using PetRenamer.PetNicknames.Windowing.Componenents.PetNicknames.HeaderBar.Helper; +using PetRenamer.PetNicknames.Windowing.Interfaces; using PetRenamer.PetNicknames.Windowing.Windows.PetShareWindow; namespace PetRenamer.PetNicknames.Windowing.Componenents.PetNicknames.Buttons; internal class KofiButton : WindowOpenerButton { - public KofiButton(in Configuration configuration, in WindowHandler windowHandler) : base(configuration, windowHandler) + public KofiButton(in WindowHandler windowHandler, in IPetWindow petWindow) : base(windowHandler, petWindow) { NodeValue = FontAwesomeIcon.Coffee.ToIconString(); Tooltip = "Ko-fi"; diff --git a/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/HeaderBar/HeaderBarButtonNode.cs b/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/HeaderBar/HeaderBarButtonNode.cs index 7d15abe0..49852084 100644 --- a/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/HeaderBar/HeaderBarButtonNode.cs +++ b/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/HeaderBar/HeaderBarButtonNode.cs @@ -1,6 +1,7 @@ using PetRenamer.PetNicknames.Services; using PetRenamer.PetNicknames.Windowing.Base; using PetRenamer.PetNicknames.Windowing.Componenents.PetNicknames.Buttons; +using PetRenamer.PetNicknames.Windowing.Interfaces; using Una.Drawing; namespace PetRenamer.PetNicknames.Windowing.Componenents.PetNicknames.HeaderBar; @@ -8,19 +9,18 @@ namespace PetRenamer.PetNicknames.Windowing.Componenents.PetNicknames.HeaderBar; internal class HeaderBarButtonNode : Node { public readonly CloseButton CloseButton; - public readonly PetListButton PetListSquare; public readonly PetRenameButton PetRenameSquare; public readonly PetShareButton PetShareSquare; public readonly PetConfigButton PetConfigSquare; - readonly Configuration Configuration; readonly WindowHandler WindowHandler; + readonly IPetWindow PetWindow; readonly bool HasExtraButtons; - public HeaderBarButtonNode(in DalamudServices DalamudServices, in PetWindow petWindow, in Configuration configuration, in WindowHandler windowHandler, bool hasExtraButtons) + public HeaderBarButtonNode(in DalamudServices DalamudServices, in PetWindow petWindow, in WindowHandler windowHandler, bool hasExtraButtons) { - Configuration = configuration; + PetWindow = petWindow; WindowHandler = windowHandler; HasExtraButtons = hasExtraButtons; @@ -34,16 +34,14 @@ public HeaderBarButtonNode(in DalamudServices DalamudServices, in PetWindow petW ChildNodes = [ CloseButton = new CloseButton(in DalamudServices, petWindow), - PetRenameSquare = new PetRenameButton(in configuration, in windowHandler), - PetListSquare = new PetListButton(in configuration, in windowHandler), - PetShareSquare = new PetShareButton(in configuration, in windowHandler), - PetConfigSquare = new PetConfigButton(in configuration, in windowHandler), + PetRenameSquare = new PetRenameButton(in windowHandler, petWindow), + PetShareSquare = new PetShareButton(in windowHandler, petWindow), + PetConfigSquare = new PetConfigButton(in windowHandler, petWindow), ]; if (hasExtraButtons) return; RemoveChild(PetRenameSquare, true); - RemoveChild(PetListSquare, true); RemoveChild(PetConfigSquare, true); RemoveChild(PetShareSquare, true); } @@ -58,7 +56,7 @@ public void SetKofiButton(bool value) kofiMode = value; - if (kofiMode && HasExtraButtons) ChildNodes.Add(kofiButton = new KofiButton(in Configuration, in WindowHandler)); + if (kofiMode && HasExtraButtons) ChildNodes.Add(kofiButton = new KofiButton(in WindowHandler, PetWindow)); else { if (kofiButton != null) diff --git a/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/HeaderBar/Helper/WindowOpenerButton.cs b/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/HeaderBar/Helper/WindowOpenerButton.cs index 87c8cf6c..04639cb0 100644 --- a/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/HeaderBar/Helper/WindowOpenerButton.cs +++ b/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/HeaderBar/Helper/WindowOpenerButton.cs @@ -1,17 +1,16 @@ using PetRenamer.PetNicknames.Windowing.Base; using PetRenamer.PetNicknames.Windowing.Componenents.PetNicknames.Buttons; +using PetRenamer.PetNicknames.Windowing.Interfaces; using Una.Drawing; namespace PetRenamer.PetNicknames.Windowing.Componenents.PetNicknames.HeaderBar.Helper; internal class WindowOpenerButton : QuickSquareButton where T : PetWindow { - readonly Configuration Configuration; readonly WindowHandler WindowHandler; - public WindowOpenerButton(in Configuration configuration, in WindowHandler windowHandler) + public WindowOpenerButton(in WindowHandler windowHandler, in IPetWindow petWindow) { - Configuration = configuration; WindowHandler = windowHandler; Style = new Style() @@ -22,16 +21,8 @@ public WindowOpenerButton(in Configuration configuration, in WindowHandler windo Margin = new EdgeSize(6, 0), }; - OnClick = () => - { - if (Configuration.quickButtonsToggle) - { - WindowHandler.Toggle(); - } - else - { - WindowHandler.Open(); - } - }; + if (typeof(T) == petWindow.GetType()) Style.IsVisible = false; + + OnClick = WindowHandler.Open; } } diff --git a/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/HeaderBar/ModeToggleNode.cs b/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/HeaderBar/ModeToggleNode.cs index c2d74c9f..ee53f156 100644 --- a/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/HeaderBar/ModeToggleNode.cs +++ b/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/HeaderBar/ModeToggleNode.cs @@ -66,26 +66,29 @@ public void SetActivePetMode(PetWindowMode mode) { Anchor = Anchor.MiddleLeft, Size = new Size(32, 15), - BackgroundColor = new("ModeToggleInactive"), + BackgroundColor = new(0, 0, 0, 120), }), new(".ModeToggleUnavailableBattlePet", new() { Anchor = Anchor.MiddleLeft, Size = new Size(32, 15), - BackgroundColor = new("ModeToggleInactive"), + BackgroundColor = new(0, 0, 0, 120), }), new(".BattlePetModeActive", new() { Anchor = Anchor.MiddleLeft, Size = new Size(32, 15), + StrokeColor = new("Outline"), + StrokeWidth = 1, BackgroundColor = new("Titlebar.BattlePet"), }), new(".BattlePetModeActive:hover", new() { BackgroundColor = new("Titlebar.BattlePet:Dark"), + StrokeWidth = 2, }), new(".MinionModeActive", new() @@ -93,11 +96,14 @@ public void SetActivePetMode(PetWindowMode mode) Anchor = Anchor.MiddleLeft, Flow = Flow.Vertical, Size = new Size(32, 15), + StrokeColor = new("Outline"), + StrokeWidth = 1, BackgroundColor = new("Titlebar.Minion"), }), new(".MinionModeActive:hover", new() { + StrokeWidth = 2, BackgroundColor = new("Titlebar.Minion:Dark"), } ), diff --git a/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/HeaderBar/PetConfigButton.cs b/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/HeaderBar/PetConfigButton.cs index f9e3625a..5fffefb3 100644 --- a/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/HeaderBar/PetConfigButton.cs +++ b/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/HeaderBar/PetConfigButton.cs @@ -4,10 +4,11 @@ using PetRenamer.PetNicknames.Windowing; using PetRenamer; using PetRenamer.PetNicknames.TranslatorSystem; +using PetRenamer.PetNicknames.Windowing.Interfaces; internal class PetConfigButton : WindowOpenerButton { - public PetConfigButton(in Configuration configuration, in WindowHandler windowHandler) : base(configuration, windowHandler) + public PetConfigButton(in WindowHandler windowHandler, in IPetWindow petWindow) : base(windowHandler, petWindow) { Tooltip = Translator.GetLine("Config.Title"); NodeValue = FontAwesomeIcon.Cogs.ToIconString(); diff --git a/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/HeaderBar/PetListButton.cs b/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/HeaderBar/PetListButton.cs deleted file mode 100644 index 07491d57..00000000 --- a/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/HeaderBar/PetListButton.cs +++ /dev/null @@ -1,15 +0,0 @@ -using Dalamud.Interface; -using PetRenamer.PetNicknames.TranslatorSystem; -using PetRenamer.PetNicknames.Windowing.Componenents.PetNicknames.HeaderBar.Helper; -using PetRenamer.PetNicknames.Windowing.Windows.PetListWindow; - -namespace PetRenamer.PetNicknames.Windowing.Componenents.PetNicknames.HeaderBar; - -internal class PetListButton : WindowOpenerButton -{ - public PetListButton(in Configuration configuration, in WindowHandler windowHandler) : base(configuration, windowHandler) - { - NodeValue = FontAwesomeIcon.ListUl.ToIconString(); - Tooltip = Translator.GetLine("PetList.Title"); - } -} diff --git a/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/HeaderBar/PetRenameButton.cs b/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/HeaderBar/PetRenameButton.cs index f99d2eda..39d58dd2 100644 --- a/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/HeaderBar/PetRenameButton.cs +++ b/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/HeaderBar/PetRenameButton.cs @@ -1,13 +1,14 @@ using Dalamud.Interface; using PetRenamer.PetNicknames.TranslatorSystem; using PetRenamer.PetNicknames.Windowing.Componenents.PetNicknames.HeaderBar.Helper; +using PetRenamer.PetNicknames.Windowing.Interfaces; using PetRenamer.PetNicknames.Windowing.Windows.TempWindow; namespace PetRenamer.PetNicknames.Windowing.Componenents.PetNicknames.HeaderBar; internal class PetRenameButton : WindowOpenerButton { - public PetRenameButton(in Configuration configuration, in WindowHandler windowHandler) : base(configuration, windowHandler) + public PetRenameButton(in WindowHandler windowHandler, in IPetWindow petWindow) : base(windowHandler, petWindow) { NodeValue = FontAwesomeIcon.PenSquare.ToIconString(); Tooltip = Translator.GetLine("ContextMenu.Rename"); diff --git a/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/HeaderBar/PetShareButton.cs b/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/HeaderBar/PetShareButton.cs index 8b211488..e59e97a2 100644 --- a/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/HeaderBar/PetShareButton.cs +++ b/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/HeaderBar/PetShareButton.cs @@ -1,13 +1,14 @@ using Dalamud.Interface; using PetRenamer.PetNicknames.TranslatorSystem; using PetRenamer.PetNicknames.Windowing.Componenents.PetNicknames.HeaderBar.Helper; +using PetRenamer.PetNicknames.Windowing.Interfaces; using PetRenamer.PetNicknames.Windowing.Windows.PetListWindow; namespace PetRenamer.PetNicknames.Windowing.Componenents.PetNicknames.HeaderBar; internal class PetShareButton : WindowOpenerButton { - public PetShareButton(in Configuration configuration, in WindowHandler windowHandler) : base(configuration, windowHandler) + public PetShareButton(in WindowHandler windowHandler, in IPetWindow petWindow) : base(windowHandler, in petWindow) { Tooltip = Translator.GetLine("PetList.Sharing"); NodeValue = FontAwesomeIcon.FileExport.ToIconString(); diff --git a/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/RenameTitleNode.cs b/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/RenameTitleNode.cs index 8a4463eb..ea5d92f3 100644 --- a/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/RenameTitleNode.cs +++ b/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/RenameTitleNode.cs @@ -44,6 +44,11 @@ public RenameTitleNode(in DalamudServices dalamudServices, string label, string ]; } + public void SetLabel(string text) + { + LabelNode.NodeValue = text; + } + public void SetText(string text) { TextNode.NodeValue = text; diff --git a/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/WindowNodes/PetRenameNode.cs b/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/WindowNodes/PetRenameNode.cs index 4dc5355d..76a2de4b 100644 --- a/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/WindowNodes/PetRenameNode.cs +++ b/PetNicknames/PetNicknames/Windowing/Componenents/PetNicknames/WindowNodes/PetRenameNode.cs @@ -41,43 +41,20 @@ public PetRenameNode(string? customName, in IPetSheetData? activePet, in Dalamud // Rename Node part HolderNode = new Node() { + Stylesheet = stylesheet, Style = new Style() { Flow = Flow.Vertical, Margin = new EdgeSize(10, 0, 0, 0), }, + ChildNodes = [ - SpeciesNode = new RenameTitleNode(in DalamudServices, $"{Translator.GetLine("PetRenameNode.Species")}:", ActivePet?.BaseSingular ?? Translator.GetLine("...")) - { - Stylesheet = stylesheet, - ClassList = ["MarginSheet"], - Interactable = true, - }, - IDNode = new RenameTitleNode(in DalamudServices, "ID:", ActivePet?.Model.ToString() ?? Translator.GetLine("...")) - { - Stylesheet = stylesheet, - ClassList = ["MarginSheet"], - Interactable = true, - }, - RaceNode = new RenameTitleNode(in DalamudServices, $"{Translator.GetLine("PetRenameNode.Race")}:", ActivePet?.RaceName ?? Translator.GetLine("...")) - { - Stylesheet = stylesheet, - ClassList = ["MarginSheet"], - Interactable = true, - }, - BehaviourNode = new RenameTitleNode(in DalamudServices, $"{Translator.GetLine("PetRenameNode.Behaviour")}:", ActivePet?.BehaviourName ?? Translator.GetLine("...")) - { - Stylesheet = stylesheet, - ClassList = ["MarginSheet"], - Interactable = true, - }, - NicknameNode = new NicknameEditNode(in DalamudServices, $"{Translator.GetLine("PetRenameNode.Nickname")}:", CurrentValue) - { - Stylesheet = stylesheet, - ClassList = ["MarginSheet"], - Interactable = true, - }, + SpeciesNode = new RenameTitleNode(in DalamudServices, $"{Translator.GetLine("PetRenameNode.Species")}:", ActivePet?.BaseSingular ?? Translator.GetLine("...")) { ClassList = ["MarginSheet"] }, + IDNode = new RenameTitleNode(in DalamudServices, "ID:", ActivePet?.Model.ToString() ?? Translator.GetLine("...")) { ClassList = ["MarginSheet"] }, + RaceNode = new RenameTitleNode(in DalamudServices, $"{Translator.GetLine("PetRenameNode.Race")}:", ActivePet?.RaceName ?? Translator.GetLine("...")) { ClassList = ["MarginSheet"] }, + BehaviourNode = new RenameTitleNode(in DalamudServices, $"{Translator.GetLine("PetRenameNode.Behaviour")}:", ActivePet?.BehaviourName ?? Translator.GetLine("...")) { ClassList = ["MarginSheet"] }, + NicknameNode = new NicknameEditNode(in DalamudServices, $"{Translator.GetLine("PetRenameNode.Nickname")}:", CurrentValue) { ClassList = ["MarginSheet"] }, ] }, // This is the node that holds the image together @@ -100,15 +77,45 @@ public PetRenameNode(string? customName, in IPetSheetData? activePet, in Dalamud public void Setup(string? customName, in IPetSheetData? activePet) { ActivePet = activePet; + + if (ActivePet != null) + { + SpeciesNode.SetLabel($"{Translator.GetLine("PetRenameNode.Species")}:"); + SpeciesNode.SetText(activePet?.BaseSingular ?? Translator.GetLine("...")); + AppendNodes(); + } + else + { + SpeciesNode.SetLabel($"{Translator.GetLine("PetRenameNode.PleaseSummonWarningLabel")}:"); + SpeciesNode.SetText(Translator.GetLine("PetRenameNode.PleaseSummonWarning")); + RemoveNodes(); + } + CurrentValue = customName; IconNode.IconID = activePet?.Icon ?? 66310; - SpeciesNode.SetText(activePet?.BaseSingular ?? Translator.GetLine("...")); + RaceNode.SetText(activePet?.RaceName ?? Translator.GetLine("...")); BehaviourNode.SetText(activePet?.BehaviourName ?? Translator.GetLine("...")); IDNode.SetText(ActivePet?.Model.ToString() ?? Translator.GetLine("...")); NicknameNode.SetPet(customName, activePet); } + void RemoveNodes() + { + HolderNode.RemoveChild(IDNode); + HolderNode.RemoveChild(RaceNode); + HolderNode.RemoveChild(BehaviourNode); + HolderNode.RemoveChild(NicknameNode); + } + + void AppendNodes() + { + HolderNode.AppendChild(IDNode); + HolderNode.AppendChild(RaceNode); + HolderNode.AppendChild(BehaviourNode); + HolderNode.AppendChild(NicknameNode); + } + protected override void OnDraw(ImDrawListPtr drawList) { if (!Configuration.uiFlare) return; diff --git a/PetNicknames/PetNicknames/Windowing/Windows/ColourEditorWindow/ColourEditorWindow.cs b/PetNicknames/PetNicknames/Windowing/Windows/ColourEditorWindow/ColourEditorWindow.cs index b1339877..b4201dab 100644 --- a/PetNicknames/PetNicknames/Windowing/Windows/ColourEditorWindow/ColourEditorWindow.cs +++ b/PetNicknames/PetNicknames/Windowing/Windows/ColourEditorWindow/ColourEditorWindow.cs @@ -103,7 +103,6 @@ public ColourEditorWindow(in WindowHandler windowHandler, in DalamudServices dal Register("Button.Background"); Register("Button.Background:Hover"); Register("Button.Background:Inactive"); - Register("FlareImageColour"); OnPresetListChanged(); } diff --git a/PetNicknames/PetNicknames/Windowing/Windows/PetConfigWindow/PetConfigWindow.cs b/PetNicknames/PetNicknames/Windowing/Windows/PetConfigWindow/PetConfigWindow.cs index 52667b27..9c6f5720 100644 --- a/PetNicknames/PetNicknames/Windowing/Windows/PetConfigWindow/PetConfigWindow.cs +++ b/PetNicknames/PetNicknames/Windowing/Windows/PetConfigWindow/PetConfigWindow.cs @@ -75,7 +75,6 @@ public PetConfigWindow(in WindowHandler windowHandler, in DalamudServices dalamu UISettingsNode.ContentNode.ChildNodes = [ new UIScaleSettingsBar(in Configuration), - new ToggleConfig(in Configuration, Translator.GetLine("Config.Toggle"), Configuration.quickButtonsToggle, (value) => { Configuration.quickButtonsToggle = value; }), new ToggleConfig(in Configuration, Translator.GetLine("Config.Kofi"), Configuration.showKofiButton, (value) => { Configuration.showKofiButton = value; WindowHandler.SetKofiMode(Configuration.showKofiButton); }), new ToggleConfig(in Configuration, Translator.GetLine("Config.TransparentBackground"), Configuration.transparentBackground, (value) => Configuration.transparentBackground = value), new ToggleConfig(in Configuration, Translator.GetLine("Config.UIFlare"), Configuration.uiFlare, (value) => Configuration.uiFlare = value), diff --git a/PetNicknames/PetRenamerPlugin.cs b/PetNicknames/PetRenamerPlugin.cs index ead49006..8200d8e4 100644 --- a/PetNicknames/PetRenamerPlugin.cs +++ b/PetNicknames/PetRenamerPlugin.cs @@ -73,7 +73,7 @@ public PetRenamerPlugin(IDalamudPluginInterface dalamud) LodestoneNetworkerInterface = LodestoneNetworker = new LodestoneNetworker(); - DirtyHandler = new PettableDirtyHandler(_DalamudServices); + DirtyHandler = new PettableDirtyHandler(); ColourProfileHandler = new ColourProfileHandler(_PetServices.Configuration); @@ -110,7 +110,7 @@ public PetRenamerPlugin(IDalamudPluginInterface dalamud) _PetServices.Configuration.Initialise(_DalamudServices.PetNicknamesPlugin, PettableDatabase, LegacyDatabase, ColourProfileHandler); IpcProvider.Prepare(); - SaveHandler = new SaveHandler(_DalamudServices, _PetServices.Configuration, in PettableUserList, IpcProvider, DirtyHandler); + SaveHandler = new SaveHandler(_PetServices.Configuration, in PettableUserList, IpcProvider, DirtyHandler); } public void Dispose()