diff --git a/ActionTimelineEx/Configurations/ActionSetting.cs b/ActionTimelineEx/Configurations/ActionSetting.cs index dabe0d9..a2841d6 100644 --- a/ActionTimelineEx/Configurations/ActionSetting.cs +++ b/ActionTimelineEx/Configurations/ActionSetting.cs @@ -1,4 +1,4 @@ -using ActionTimeline.Helpers; +using ActionTimelineEx.Helpers; using ECommons.DalamudServices; using ImGuiNET; using System.Numerics; diff --git a/ActionTimelineEx/Configurations/Settings.cs b/ActionTimelineEx/Configurations/Settings.cs index 36d4e76..0bbb078 100644 --- a/ActionTimelineEx/Configurations/Settings.cs +++ b/ActionTimelineEx/Configurations/Settings.cs @@ -1,18 +1,17 @@ -using ActionTimelineEx.Configurations; -using Dalamud.Configuration; +using Dalamud.Configuration; using ECommons.DalamudServices; using ECommons.ExcelServices; using ECommons.GameHelpers; using System.Numerics; using XIVConfigUI.Attributes; -namespace ActionTimeline; +namespace ActionTimelineEx.Configurations; internal class TimelineChoicesAttribute : ChoicesAttribute { protected override Pair[] GetChoices() { - return [..Plugin.Settings.EditSetting?.RotationSettings.Select(i => i.Name)]; + return [.. Plugin.Settings.EditSetting?.RotationSettings.Select(i => i.Name)]; } } @@ -109,12 +108,12 @@ public string RotationName [JsonIgnore] internal RotationsSetting? EditSetting { get; set; } = null; - private static readonly RotationsSetting EmptyHolder = new (); + private static readonly RotationsSetting EmptyHolder = new(); public RotationsSetting GetSetting(uint territoryId) { if (!_rotationHelpers.TryGetValue(territoryId, out var dict)) _rotationHelpers[territoryId] = dict = []; - if(!Player.Available) return EmptyHolder; + if (!Player.Available) return EmptyHolder; var job = Player.Job; if (!dict.TryGetValue(job, out var result)) dict[job] = result = new(); diff --git a/ActionTimelineEx/Helpers/DrawHelper.cs b/ActionTimelineEx/Helpers/DrawHelper.cs index f2c96bb..2d6fb4b 100644 --- a/ActionTimelineEx/Helpers/DrawHelper.cs +++ b/ActionTimelineEx/Helpers/DrawHelper.cs @@ -6,7 +6,7 @@ using System.Numerics; using XIVConfigUI; -namespace ActionTimeline.Helpers; +namespace ActionTimelineEx.Helpers; internal static class DrawHelper { @@ -28,11 +28,11 @@ public static void DrawActionIcon(this ImDrawListPtr drawList, uint iconId, bool } public static IDalamudTextureWrap? GetTextureFromIconId(uint iconId, bool highQuality = true) - => ImageLoader.GetTexture(new GameIconLookup( iconId, false, highQuality), out var texture) ? texture + => ImageLoader.GetTexture(new GameIconLookup(iconId, false, highQuality), out var texture) ? texture : ImageLoader.GetTexture(new GameIconLookup(0, false, highQuality), out texture) ? texture : null; private static readonly Dictionary textureColorCache = []; - private static readonly Queue calculating = new (); + private static readonly Queue calculating = new(); public static uint GetTextureAverageColor(uint iconId) { if (textureColorCache.TryGetValue(iconId, out var color)) return color; @@ -51,10 +51,10 @@ private static void CalculateColor() Task.Run(() => { - while(calculating.TryDequeue(out var icon)) + while (calculating.TryDequeue(out var icon)) { - var tex = Svc.Data.GetFile($"ui/icon/{icon/1000:D3}000/{icon:D6}.tex"); - if(tex == null) + var tex = Svc.Data.GetFile($"ui/icon/{icon / 1000:D3}000/{icon:D6}.tex"); + if (tex == null) { textureColorCache[icon] = uint.MaxValue; continue; diff --git a/ActionTimelineEx/Helpers/RotationHelper.cs b/ActionTimelineEx/Helpers/RotationHelper.cs index 5ade97c..efa1a64 100644 --- a/ActionTimelineEx/Helpers/RotationHelper.cs +++ b/ActionTimelineEx/Helpers/RotationHelper.cs @@ -1,5 +1,4 @@ -using ActionTimeline; -using ActionTimelineEx.Configurations; +using ActionTimelineEx.Configurations; using ActionTimelineEx.Windows; using ECommons.DalamudServices; using ECommons.GameHelpers; diff --git a/ActionTimelineEx/Localization/Localization.json b/ActionTimelineEx/Localization/Localization.json index fbfe8e1..110cbef 100644 --- a/ActionTimelineEx/Localization/Localization.json +++ b/ActionTimelineEx/Localization/Localization.json @@ -1,133 +1,14 @@ { "ActionTimelineEx.DescriptionAboutCommand": "Opens the ActionTimelineEx configuration window.\n `/atle reset` to reset the rotation helper count.", - "ActionTimeline.SettingsName.Record": "Record Data", - "ActionTimeline.SettingsName.ShowTimelineOnlyInDuty": "Show Only In Duty", - "ActionTimeline.SettingsName.ShowTimelineOnlyInCombat": "Show Only In Combat", - "ActionTimeline.SettingsName.HideTimelineInCutscene": "Hide In Cutscene", - "ActionTimeline.SettingsName.HideTimelineInQuestEvent": "Hide In Quest Event", - "ActionTimeline.SettingsName.SayClipping": "Say Clipping Time", - "ActionTimeline.SettingsName.ClippintTime": "Clipping Range", - "ActionTimeline.SettingsName.RecordTargetStatus": "Record Target Status", - "ActionTimeline.SettingsName.ShowDonate": "Show the donate link.", - "ActionTimelineEx.Configurations.DrawingSettingsName.Name": "The timeline Name", - "ActionTimelineEx.Configurations.DrawingSettingsName.Enable": "Enable", - "ActionTimelineEx.Configurations.DrawingSettingsName.IsRotation": "Is Rotation", - "ActionTimelineEx.Configurations.DrawingSettingsName.IsHorizonal": "Is Horizonal", - "ActionTimelineEx.Configurations.DrawingSettingsName.IsReverse": "Is Reverse", - "ActionTimelineEx.Configurations.DrawingSettingsName.Locked": "Locked", - "ActionTimelineEx.Configurations.DrawingSettingsName.LockedBackgroundColor": "Locked Background Color", - "ActionTimelineEx.Configurations.DrawingSettingsName.UnlockedBackgroundColor": "Unlocked Background Color", - "ActionTimelineEx.Configurations.DrawingSettingsName.SizePerSecond": "Size per second", - "ActionTimelineEx.Configurations.DrawingSettingsDescription.SizePerSecond": "This is the width of every second drawn on the window.", - "ActionTimelineEx.Configurations.DrawingSettingsName.TimeOffsetSetting": "Offset Time", - "ActionTimelineEx.Configurations.DrawingSettingsDescription.TimeOffsetSetting": "If your Is Rotation is on, this means the Offset time of rotation, or this is the advanced time about action using.", - "ActionTimelineEx.Configurations.DrawingSettingsName.CenterOffset": "Center Offset", - "ActionTimelineEx.Configurations.DrawingSettingsName.GCDIconSize": "GCD Icon Size", - "ActionTimelineEx.Configurations.DrawingSettingsName.ShowOGCD": "Show Off GCD", - "ActionTimelineEx.Configurations.DrawingSettingsName.OGCDIconSize": "Off GCD Icon Size", - "ActionTimelineEx.Configurations.DrawingSettingsName.OGCDOffset": "Off GCD Vertical Offset", - "ActionTimelineEx.Configurations.DrawingSettingsName.ShowAutoAttack": "Show Auto Attack", - "ActionTimelineEx.Configurations.DrawingSettingsName.AutoAttackIconSize": "Auto Attack Icon Size", - "ActionTimelineEx.Configurations.DrawingSettingsName.AutoAttackOffset": "Auto Attack Offset", - "ActionTimelineEx.Configurations.DrawingSettingsName.ShowStatus": "Show Status Gain Lose", - "ActionTimelineEx.Configurations.DrawingSettingsName.StatusIconSize": "Status Icon Size", - "ActionTimelineEx.Configurations.DrawingSettingsName.StatusIconAlpha": "Status Icon Alpha", - "ActionTimelineEx.Configurations.DrawingSettingsName.StatusGainColor": "Status Gain Color", - "ActionTimelineEx.Configurations.DrawingSettingsName.StatusLoseColor": "Status Lose Color", - "ActionTimelineEx.Configurations.DrawingSettingsName.StatusOffset": "Status Offset", - "ActionTimelineEx.Configurations.DrawingSettingsName.ShowDamageType": "Show Damage Type", - "ActionTimelineEx.Configurations.DrawingSettingsName.DirectColor": "Direct Damage Color", - "ActionTimelineEx.Configurations.DrawingSettingsName.CriticalColor": "Critical Damage Color", - "ActionTimelineEx.Configurations.DrawingSettingsName.CriticalDirectColor": "Critical Direct Damage Color", - "ActionTimelineEx.Configurations.DrawingSettingsName.BackgroundColor": "Bar Background Color", - "ActionTimelineEx.Configurations.DrawingSettingsName.GCDBorderColor": "GCD Border Color", - "ActionTimelineEx.Configurations.DrawingSettingsName.GCDThickness": "GCD Border Thickness", - "ActionTimelineEx.Configurations.DrawingSettingsName.GCDRound": "GCD Border Round", - "ActionTimelineEx.Configurations.DrawingSettingsName.GCDHeight": "GCD Bar Height", - "ActionTimelineEx.Configurations.DrawingSettingsName.CastInProgressColor": "Cast In Progress Color", - "ActionTimelineEx.Configurations.DrawingSettingsName.CastFinishedColor": "Cast Finished Color", - "ActionTimelineEx.Configurations.DrawingSettingsName.CastCanceledColor": "Cast Canceled Color", - "ActionTimelineEx.Configurations.DrawingSettingsName.ShowAnimationLock": "Show Animation Lock Time", - "ActionTimelineEx.Configurations.DrawingSettingsName.AnimationLockColor": "Animation Lock Color", - "ActionTimelineEx.Configurations.DrawingSettingsName.ShowStatusLine": "Show Status Line", - "ActionTimelineEx.Configurations.DrawingSettingsName.StatusLineSize": "Status Line Height", - "ActionTimelineEx.Configurations.DrawingSettingsName.ShowGrid": "Show Grid", - "ActionTimelineEx.Configurations.DrawingSettingsName.GridStartLineWidth": "Start Line Width", - "ActionTimelineEx.Configurations.DrawingSettingsName.GridStartLineColor": "Start Line Color", - "ActionTimelineEx.Configurations.DrawingSettingsName.ShowGridCenterLine": "Show Center Line", - "ActionTimelineEx.Configurations.DrawingSettingsName.GridCenterLineWidth": "Center Line Width", - "ActionTimelineEx.Configurations.DrawingSettingsName.GridCenterLineColor": "Center Line Color", - "ActionTimelineEx.Configurations.DrawingSettingsName.GridLineWidth": "Line Width", - "ActionTimelineEx.Configurations.DrawingSettingsName.GridLineColor": "Line Color", - "ActionTimelineEx.Configurations.DrawingSettingsName.GridDivideBySeconds": "Divide By Seconds", - "ActionTimelineEx.Configurations.DrawingSettingsName.GridShowSecondsText": "Show Text", - "ActionTimelineEx.Configurations.DrawingSettingsName.GridSubdivideSeconds": "Sub-Divide By Seconds", - "ActionTimelineEx.Configurations.DrawingSettingsName.GridSubdivisionCount": "Sub-Division Count", - "ActionTimelineEx.Configurations.DrawingSettingsName.GridSubdivisionLineWidth": "Sub-Division Line Width", - "ActionTimelineEx.Configurations.DrawingSettingsName.GridSubdivisionLineColor": "Sub-Division Line Color", - "ActionTimelineEx.Configurations.DrawingSettingsName.GCDClippingThreshold": "Threshold", - "ActionTimelineEx.Configurations.DrawingSettingsDescription.GCDClippingThreshold": "This can be used filter out \"false positives\" due to latency or other factors. Any GCD clipping detected that is shorter than this value will be ignored.\nIt is strongly recommended that you test out different values and find out what works best for your setup.", - "ActionTimelineEx.Configurations.DrawingSettingsName.GCDClippingMaxTime": "Max Time", - "ActionTimelineEx.Configurations.DrawingSettingsDescription.GCDClippingMaxTime": "Any GCD clip longer than this will be capped", - "ActionTimelineEx.Configurations.DrawingSettingsName.GCDClippingColor": "Color", - "ActionTimelineEx.Configurations.DrawingSettingsName.GCDClippingTextColor": "Text Color", - "ActionTimelineEx.Configurations.GroupItem.General": "General", - "ActionTimelineEx.Configurations.GroupItem.Icons": "Icons", - "ActionTimelineEx.Configurations.GroupItem.Bar": "Bar", - "ActionTimelineEx.Configurations.GroupItem.Grid": "Grid", - "ActionTimelineEx.Configurations.GroupItem.GcdClipping": "GCD Clipping", - "ActionTimelineEx.Configurations.UiString.Setting": "Setting", - "ActionTimelineEx.Configurations.UiString.ShowedStatuses": "Showed Statuses", - "ActionTimelineEx.Configurations.UiString.NotStatues": "Don't record these statuses", - "ActionTimelineEx.Configurations.UiString.Wait": "Please wait for a second.", - "ActionTimelineEx.Configurations.UiString.Confirm": "Are you sure to remove this timeline?", - "ActionTimelineEx.Configurations.UiString.Remove": "Click to remove this timeline.", - "ActionTimelineEx.Configurations.UiString.AddOne": "Add One Timeline", - "ActionTimelineEx.Configurations.UiString.RemoveDesc": "Remove this Item:", - "XIVConfigUI.LocalString.Search_Result": "Search Result", - "XIVConfigUI.LocalString.Searching": "Search... ", - "XIVConfigUI.LocalString.Search": "Search", - "XIVConfigUI.LocalString.ResetToDefault": "Reset to Default Value.", - "XIVConfigUI.LocalString.ExecuteCommand": "Execute \"{0}\"", - "XIVConfigUI.LocalString.CopyCommand": "Copy \"{0}\"", - "XIVConfigUI.LocalString.Localization": "Click to open the crowdin for modifying localization!", - "XIVConfigUI.LocalString.SourceCode": "Click to see the source code!", - "XIVConfigUI.LocalString.Remove": "Remove", - "XIVConfigUI.LocalString.MoveUp": "Move Up", - "XIVConfigUI.LocalString.MoveDown": "Move Down", - "XIVConfigUI.LocalString.CopyToClipboard": "Copy to Clipboard", - "XIVConfigUI.LocalString.FromClipboard": "From Clipboard", - "XIVConfigUI.LocalString.List": "List", - "XIVConfigUI.LocalString.Nothing": "No items in Combo", - "XIVConfigUI.Attributes.ConfigUnitType.Seconds": "Time Unit, in seconds.", - "XIVConfigUI.Attributes.ConfigUnitType.Degree": "Angle Unit, in degrees.", - "XIVConfigUI.Attributes.ConfigUnitType.Yalms": "Distance Unit, in yalms.", - "XIVConfigUI.Attributes.ConfigUnitType.Percent": "Ratio Unit, as percentage.", - "XIVConfigUI.Attributes.ConfigUnitType.Pixels": "Display Unit, in pixels.", "ActionTimelineEx.Punchline": "Show your actions in real-time.", - "ActionTimelineEx.Description": "Configurable timeline display of all the actions you use.", - "ActionTimelineEx.Windows.ChangeLogItem": "ChangeLog", - "ActionTimeline.SettingsName.DrawRotation": "Draw Rotation", - "ActionTimeline.SettingsName.RotationChoice": "Rotation Choice", - "ActionTimeline.SettingsName.RotationName": "Rotation Name", - "ActionTimeline.SettingsName.RotationCount": "Rotation Count", - "ActionTimeline.SettingsName.RotationHighlightColor": "Rotation Highlight Color", - "ActionTimeline.SettingsName.Position": "Rotation Position", - "ActionTimeline.SettingsName.RotationLocked": "Locked", - "ActionTimeline.SettingsName.RotationLockedBackgroundColor": "Locked Background Color", - "ActionTimeline.SettingsName.RotationUnlockedBackgroundColor": "Unlocked Background Color", - "ActionTimeline.SettingsName.GCDIconSize": "GCD Icon Size", - "ActionTimeline.SettingsName.OGCDIconSize": "Off GCD Icon Size", - "ActionTimeline.SettingsName.IconSpacing": "Icon Spacing", - "ActionTimelineEx.Configurations.UiString.RotationSetting": "Rotation Setting", - "ActionTimelineEx.Configurations.UiString.Rotation": "Rotation", + "XIVConfigUI.LocalString.Searching": "Search... ", "ActionTimelineEx.Windows.RotationHelperItem": "Rotation Helper", - "ActionTimelineEx.Configurations.ActionSetting": "ActionSetting", - "ActionTimelineEx.Configurations.ActionSettingType.Action": "Action", - "ActionTimelineEx.Configurations.ActionSettingType.Item": "Item", - "ActionTimelineEx.Configurations.ActionSettingName.Type": "Type", - "ActionTimelineEx.Configurations.ActionSettingName.Id": "Id", - "ActionTimelineEx.Configurations.ActionSettingDescription": "Maim (GCD)", - "ActionTimelineEx.Configurations.UiString.RotationReset": "Reset Count", - "ActionTimeline.SettingsName.ShowWrongClick": "Show the wrong clicking" + "ActionTimelineEx.Windows.ChangeLogItem": "ChangeLog", + "ActionTimelineEx.Description": "Configurable timeline display of all the actions you use.", + "XIVConfigUI.LocalString.SourceCode": "Click to see the source code!", + "XIVConfigUI.LocalString.Localization": "Click to open the crowdin for modifying localization!", + "ActionTimelineEx.Configurations.UiString.AddOne": "Add One Timeline", + "ActionTimelineEx.Configurations.UiString.Setting": "Setting", + "ActionTimelineEx.Configurations.UiString.ShowedStatuses": "Showed Statuses", + "ActionTimelineEx.Configurations.UiString.NotStatues": "Don't record these statuses" } \ No newline at end of file diff --git a/ActionTimelineEx/Plugin.cs b/ActionTimelineEx/Plugin.cs index 6344a13..72d97ee 100644 --- a/ActionTimelineEx/Plugin.cs +++ b/ActionTimelineEx/Plugin.cs @@ -1,7 +1,6 @@ -using ActionTimeline.Timeline; -using ActionTimeline.Windows; -using ActionTimelineEx.Configurations; +using ActionTimelineEx.Configurations; using ActionTimelineEx.Helpers; +using ActionTimelineEx.Timeline; using ActionTimelineEx.Windows; using Dalamud.Game.ClientState.Conditions; using Dalamud.Interface.Windowing; @@ -12,7 +11,7 @@ using XIVConfigUI; using XIVDrawer; -namespace ActionTimeline; +namespace ActionTimelineEx; public class Plugin : IDalamudPlugin { @@ -156,16 +155,16 @@ private static bool ShowTimeline() return false; } - if (Settings.HideTimelineInCutscene - && (Svc.Condition[ConditionFlag.WatchingCutscene] + if (Settings.HideTimelineInCutscene + && (Svc.Condition[ConditionFlag.WatchingCutscene] || Svc.Condition[ConditionFlag.WatchingCutscene78] || Svc.Condition[ConditionFlag.OccupiedInCutSceneEvent])) { return false; } - if (Settings.HideTimelineInQuestEvent - && (Svc.Condition[ConditionFlag.OccupiedInQuestEvent])) + if (Settings.HideTimelineInQuestEvent + && Svc.Condition[ConditionFlag.OccupiedInQuestEvent]) { return false; } diff --git a/ActionTimelineEx/Timeline/ActionCate.cs b/ActionTimelineEx/Timeline/ActionCate.cs index 56f1a59..db175fb 100644 --- a/ActionTimelineEx/Timeline/ActionCate.cs +++ b/ActionTimelineEx/Timeline/ActionCate.cs @@ -1,4 +1,4 @@ -namespace RotationSolver.Basic.Data; +namespace ActionTimelineEx.Timeline; /// /// The action Category. diff --git a/ActionTimelineEx/Timeline/StatusLineItem.cs b/ActionTimelineEx/Timeline/StatusLineItem.cs index e1b0c40..91b2def 100644 --- a/ActionTimelineEx/Timeline/StatusLineItem.cs +++ b/ActionTimelineEx/Timeline/StatusLineItem.cs @@ -1,5 +1,5 @@ -using ActionTimeline.Helpers; -using ActionTimelineEx.Configurations; +using ActionTimelineEx.Configurations; +using ActionTimelineEx.Helpers; using Dalamud.Interface.Textures.TextureWraps; using ImGuiNET; using System.Numerics; diff --git a/ActionTimelineEx/Timeline/TimelineItem.cs b/ActionTimelineEx/Timeline/TimelineItem.cs index ecb3dc7..a1d0826 100644 --- a/ActionTimelineEx/Timeline/TimelineItem.cs +++ b/ActionTimelineEx/Timeline/TimelineItem.cs @@ -1,5 +1,5 @@ -using ActionTimeline.Helpers; -using ActionTimelineEx.Configurations; +using ActionTimelineEx.Configurations; +using ActionTimelineEx.Helpers; using Dalamud.Interface; using Dalamud.Interface.Textures.TextureWraps; using ImGuiNET; diff --git a/ActionTimelineEx/Timeline/TimelineManager.cs b/ActionTimelineEx/Timeline/TimelineManager.cs index 30cd83c..79e5635 100644 --- a/ActionTimelineEx/Timeline/TimelineManager.cs +++ b/ActionTimelineEx/Timeline/TimelineManager.cs @@ -1,4 +1,4 @@ -using ActionTimelineEx.Timeline; +using ActionTimelineEx; using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Hooking; using Dalamud.Utility.Signatures; @@ -8,11 +8,10 @@ using ECommons.Hooks.ActionEffectTypes; using FFXIVClientStructs.FFXIV.Client.Game; using Lumina.Excel.GeneratedSheets; -using RotationSolver.Basic.Data; using Action = Lumina.Excel.GeneratedSheets.Action; using Status = Lumina.Excel.GeneratedSheets.Status; -namespace ActionTimeline.Timeline; +namespace ActionTimelineEx.Timeline; public class TimelineManager : IDisposable { @@ -57,7 +56,7 @@ public void Dispose() [Signature("E8 ?? ?? ?? ?? 0F B7 0B 83 E9 64", DetourName = nameof(OnActorControl))] private readonly Hook? _onActorControlHook = null; - private delegate void OnCastDelegate(uint sourceId, IntPtr sourceCharacter); + private delegate void OnCastDelegate(uint sourceId, nint sourceCharacter); [Signature("40 56 41 56 48 81 EC ?? ?? ?? ?? 48 8B F2", DetourName = nameof(OnCast))] private readonly Hook? _onCastHook = null; @@ -87,7 +86,7 @@ private void AddItem(TimelineItem item) private void UpdateEndTime(DateTime endTime) { - if(endTime > EndTime) EndTime = endTime; + if (endTime > EndTime) EndTime = endTime; } public List GetItems(DateTime time, out DateTime lastEndTime) @@ -112,7 +111,7 @@ public List GetStatus(DateTime time, out DateTime lastEndTime) return GetItems(_statusItems, time, out lastEndTime); } - private static List GetItems(IEnumerable items, DateTime time, out DateTime lastEndTime) where T : ITimelineItem + private static List GetItems(IEnumerable items, DateTime time, out DateTime lastEndTime) where T : ITimelineItem { var result = new List(); lastEndTime = DateTime.Now; @@ -123,7 +122,7 @@ private static List GetItems(IEnumerable items, DateTime time, out Date { result.Add(item); } - else if(item is TimelineItem tItem && tItem.Type == TimelineItemType.GCD) + else if (item is TimelineItem tItem && tItem.Type == TimelineItemType.GCD) { lastEndTime = item.EndTime; } @@ -162,6 +161,7 @@ private static TimelineItemType GetActionType(uint actionId, ActionType type) var item = Svc.Data.GetExcelSheet()?.GetRow(actionId); return item?.CastTimes > 0 ? TimelineItemType.GCD : TimelineItemType.OGCD; + case ActionType.KeyItem: case ActionType.Mount: return TimelineItemType.GCD; } @@ -196,7 +196,7 @@ private static uint GetStatusIcon(ushort id, bool isGain, out string? name, byte } else { - if(stack == byte.MaxValue) + if (stack == byte.MaxValue) { stack = Player.Object.StatusList.FirstOrDefault(s => s.StatusId == id)?.StackCount ?? 0; stack++; @@ -220,7 +220,7 @@ private void ActionFromSelf(ActionEffectSet set) for (int i = 0; i < set.Header.TargetCount; i++) { var effect = set.TargetEffects[i]; - var recordTarget = Plugin.Settings.RecordTargetStatus + var recordTarget = Plugin.Settings.RecordTargetStatus || effect.TargetID == Player.Object.EntityId; if (effect[0].type is ActionEffectType.Damage or ActionEffectType.Heal) @@ -228,7 +228,7 @@ private void ActionFromSelf(ActionEffectSet set) var flag = effect[0].param0; var hasDirect = (flag & 64) == 64; var hasCritical = (flag & 32) == 32; - damage |= hasCritical ? (hasDirect ? DamageType.CriticalDirect : DamageType.Critical) + damage |= hasCritical ? hasDirect ? DamageType.CriticalDirect : DamageType.Critical : hasDirect ? DamageType.Direct : DamageType.None; } @@ -257,10 +257,10 @@ private void ActionFromSelf(ActionEffectSet set) if (Plugin.Settings.SayClipping && type == TimelineItemType.GCD) { var lastGcd = _items.LastOrDefault(i => i.Type == TimelineItemType.GCD); - if(lastGcd != null) + if (lastGcd != null) { var time = (int)(now - lastGcd.EndTime).TotalMilliseconds; - if(time >= Plugin.Settings.ClippintTime.X && time <= Plugin.Settings.ClippintTime.Y) + if (time >= Plugin.Settings.ClippintTime.X && time <= Plugin.Settings.ClippintTime.Y) { Svc.Chat.Print($"Clipping: {time}ms ({lastGcd.Name} - {set.Name})"); } @@ -437,7 +437,7 @@ private async void OnActorControl(uint entityId, ActorControlCategory type, uint } } - private unsafe void OnCast(uint sourceId, IntPtr ptr) + private unsafe void OnCast(uint sourceId, nint ptr) { _onCastHook?.Original(sourceId, ptr); @@ -451,8 +451,8 @@ private unsafe void OnCast(uint sourceId, IntPtr ptr) AddItem(new TimelineItem() { - Name = action?.Name ?? string.Empty, - Icon = actionId == 4 ? (ushort)118 //Mount + Name = action?.Name ?? string.Empty, + Icon = actionId == 4 ? (ushort)118 //Mount : action?.Icon ?? 0, StartTime = DateTime.Now, GCDTime = GCD, @@ -461,7 +461,7 @@ private unsafe void OnCast(uint sourceId, IntPtr ptr) State = TimelineItemState.Casting, }); } - catch(Exception ex) + catch (Exception ex) { Svc.Log.Warning(ex, "Something wrong with OnCast!"); } diff --git a/ActionTimelineEx/Windows/RotationHelperItem.cs b/ActionTimelineEx/Windows/RotationHelperItem.cs index 54e7414..454bb65 100644 --- a/ActionTimelineEx/Windows/RotationHelperItem.cs +++ b/ActionTimelineEx/Windows/RotationHelperItem.cs @@ -1,5 +1,4 @@ -using ActionTimeline; -using ActionTimelineEx.Configurations; +using ActionTimelineEx.Configurations; using ActionTimelineEx.Helpers; using Dalamud.Interface.Colors; using Dalamud.Interface.Textures.TextureWraps; diff --git a/ActionTimelineEx/Windows/RotationHelperWindow.cs b/ActionTimelineEx/Windows/RotationHelperWindow.cs index a1103c4..7fb49ad 100644 --- a/ActionTimelineEx/Windows/RotationHelperWindow.cs +++ b/ActionTimelineEx/Windows/RotationHelperWindow.cs @@ -1,6 +1,4 @@ -using ActionTimeline; -using ActionTimeline.Windows; -using ActionTimelineEx.Helpers; +using ActionTimelineEx.Helpers; using Dalamud.Interface.Utility; using ImGuiNET; using System.Numerics; diff --git a/ActionTimelineEx/Windows/SettingsWindow.cs b/ActionTimelineEx/Windows/SettingsWindow.cs index 3de2118..d55478c 100644 --- a/ActionTimelineEx/Windows/SettingsWindow.cs +++ b/ActionTimelineEx/Windows/SettingsWindow.cs @@ -1,7 +1,7 @@ -using ActionTimeline.Helpers; -using ActionTimeline.Timeline; +using ActionTimelineEx; using ActionTimelineEx.Configurations; -using ActionTimelineEx.Windows; +using ActionTimelineEx.Helpers; +using ActionTimelineEx.Timeline; using Dalamud.Interface; using Dalamud.Interface.GameFonts; using Dalamud.Interface.Utility; @@ -12,7 +12,7 @@ using XIVConfigUI; using XIVConfigUI.SearchableConfigs; -namespace ActionTimeline.Windows; +namespace ActionTimelineEx.Windows; public class SettingsWindow : ConfigWindow { @@ -22,7 +22,7 @@ public override IEnumerable Searchables { if (ActiveItem is TimelineItem item) { - return [..base.Searchables, ..item.Collection]; + return [.. base.Searchables, .. item.Collection]; } else { @@ -86,7 +86,7 @@ private void DrawSetting() protected override ConfigWindowItem[] GetItems() { - return + return [ new RotationHelperItem(), ..Settings.TimelineSettings.Select(i => new TimelineItem(i, ClearItems)), diff --git a/ActionTimelineEx/Windows/TimelineItem.cs b/ActionTimelineEx/Windows/TimelineItem.cs index 392c4de..decd3fa 100644 --- a/ActionTimelineEx/Windows/TimelineItem.cs +++ b/ActionTimelineEx/Windows/TimelineItem.cs @@ -1,5 +1,4 @@ -using ActionTimeline; -using ActionTimelineEx.Configurations; +using ActionTimelineEx.Configurations; using Dalamud.Interface; using Dalamud.Interface.Colors; using Dalamud.Interface.Textures.TextureWraps; @@ -43,8 +42,13 @@ public override void Draw(ConfigWindow window) private DateTime _lastTime = DateTime.MinValue; private bool RemoveValue(string name) { - bool isLast = name == _undoName && DateTime.Now - _lastTime < TimeSpan.FromSeconds(2); - bool isTime = DateTime.Now - _lastTime > TimeSpan.FromSeconds(0.5); + bool isLast = false, isTime = false; + + if (_lastTime != DateTime.MinValue) + { + isLast = name == _undoName && DateTime.Now - _lastTime < TimeSpan.FromSeconds(2); + isTime = DateTime.Now - _lastTime > TimeSpan.FromSeconds(0.5); + } bool result = false; diff --git a/ActionTimelineEx/Windows/TimelineWindow.cs b/ActionTimelineEx/Windows/TimelineWindow.cs index f3bd844..d6d6175 100644 --- a/ActionTimelineEx/Windows/TimelineWindow.cs +++ b/ActionTimelineEx/Windows/TimelineWindow.cs @@ -1,11 +1,10 @@ -using ActionTimeline.Timeline; -using ActionTimelineEx.Configurations; +using ActionTimelineEx.Configurations; using ActionTimelineEx.Timeline; using Dalamud.Interface.Utility; using ImGuiNET; using System.Numerics; -namespace ActionTimeline.Windows; +namespace ActionTimelineEx.Windows; internal static class TimelineWindow { @@ -56,9 +55,9 @@ private static void DrawContent(DrawingSettings setting) var pos = ImGui.GetWindowPos(); var size = ImGui.GetWindowSize(); - var now = setting.IsRotation ? (TimelineManager.Instance?.EndTime ?? DateTime.Now - TimeSpan.FromSeconds(setting.TimeOffset)) : DateTime.Now; + var now = setting.IsRotation ? TimelineManager.Instance?.EndTime ?? DateTime.Now - TimeSpan.FromSeconds(setting.TimeOffset) : DateTime.Now; - var endTime = now - TimeSpan.FromSeconds((setting.IsHorizonal ? size.X : size.Y )/ setting.SizePerSecond - setting.TimeOffset); + var endTime = now - TimeSpan.FromSeconds((setting.IsHorizonal ? size.X : size.Y) / setting.SizePerSecond - setting.TimeOffset); var last = now; var list = TimelineManager.Instance?.GetItems(endTime, out last); @@ -85,12 +84,12 @@ private static void DrawContent(DrawingSettings setting) { var drawingLeftTop = pos + timeDirWhole - (setting.TimeOffset + (float)(now - last).TotalSeconds) * setting.TimeDirectionPerSecond; - + ImGui.GetWindowDrawList().AddRectFilled(drawingLeftTop, drawingLeftTop - + downDirWhole + (float)span.TotalSeconds * setting.TimeDirectionPerSecond + + downDirWhole + (float)span.TotalSeconds * setting.TimeDirectionPerSecond , gcdClippingColor); - ImGui.GetWindowDrawList().AddText(drawingLeftTop, + ImGui.GetWindowDrawList().AddText(drawingLeftTop, ImGui.ColorConvertFloat4ToU32(setting.GCDClippingTextColor), $"{(int)span.TotalMilliseconds}ms"); } diff --git a/XIVConfigUI b/XIVConfigUI index d189655..a2a053d 160000 --- a/XIVConfigUI +++ b/XIVConfigUI @@ -1 +1 @@ -Subproject commit d189655bea6d646c17b17a446dfbc8567ac51016 +Subproject commit a2a053dea1338c3bda0445c2306e9273e7ae3545