feat: add option to import chat colours from game

This commit is contained in:
Anna
2022-02-01 19:54:17 -05:00
parent fb3ee2efe2
commit 20ee6d1278
4 changed files with 55 additions and 5 deletions
+12 -2
View File
@@ -1,26 +1,36 @@
using ChatTwo.Code;
using ChatTwo.Util;
using Dalamud.Interface;
using ImGuiNET;
namespace ChatTwo.Ui.SettingsTabs;
internal sealed class ChatColours : ISettingsTab {
private Configuration Mutable { get; }
private Plugin Plugin { get; }
public string Name => "Chat colours";
internal ChatColours(Configuration mutable) {
internal ChatColours(Configuration mutable, Plugin plugin) {
this.Mutable = mutable;
this.Plugin = plugin;
}
public void Draw() {
foreach (var type in Enum.GetValues<ChatType>()) {
if (ImGui.Button($"Default##{type}")) {
if (ImGuiUtil.IconButton(FontAwesomeIcon.UndoAlt, $"{type}", "Reset to default")) {
this.Mutable.ChatColours.Remove(type);
}
ImGui.SameLine();
if (ImGuiUtil.IconButton(FontAwesomeIcon.LongArrowAltDown, $"{type}", "Import from game")) {
var gameColour = this.Plugin.Functions.Chat.GetChannelColour(type);
this.Mutable.ChatColours[type] = gameColour ?? type.DefaultColour() ?? 0;
}
ImGui.SameLine();
var vec = this.Mutable.ChatColours.TryGetValue(type, out var colour)
? ColourUtil.RgbaToVector3(colour)
: ColourUtil.RgbaToVector3(type.DefaultColour() ?? 0);