Skip to content
This repository has been archived by the owner on Aug 28, 2024. It is now read-only.

Commit

Permalink
fix: remove territory choice feature.
Browse files Browse the repository at this point in the history
  • Loading branch information
ArchiDog1998 committed Jul 13, 2024
1 parent b17d0e1 commit 7cb7e6c
Show file tree
Hide file tree
Showing 6 changed files with 79 additions and 166 deletions.
19 changes: 8 additions & 11 deletions ActionTimelineEx/Configurations/RotationsSetting.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

public class RotationsSetting
{
public string Choice { get; set; } = "Default";
public int ChoiceIndex { get; set; } = 0;

public List<RotationSetting> RotationSettings { get; set; } = [];

Expand All @@ -11,18 +11,15 @@ public RotationSetting RotationSetting
{
get
{
var result = RotationSettings.FirstOrDefault(r => r.Name == Choice);
if (result != null) return result;

result = RotationSettings.FirstOrDefault();
if (result == null)
if (RotationSettings.Count == 0)
{
result = new();
RotationSettings.Add(result);
RotationSettings.Add(new());
return RotationSettings[0];
}
else
{
return RotationSettings[ChoiceIndex % RotationSettings.Count];
}

Choice = result.Name;
return result;
}
}
}
38 changes: 17 additions & 21 deletions ActionTimelineEx/Configurations/Settings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ internal class TimelineChoicesAttribute : ChoicesAttribute
{
protected override Pair[] GetChoices()
{
return [.. Plugin.Settings.EditSetting?.RotationSettings.Select(i => i.Name)];
return [.. Plugin.Settings.RotationHelper?.RotationSettings.Select(i => i.Name)];
}
}

Expand Down Expand Up @@ -82,40 +82,36 @@ public class Settings : IPluginConfiguration

[JsonIgnore]
[TimelineChoices]
[UI("Rotation Choice", Parent = nameof(DrawRotation))]
public string RotationChoice
[UI("Rotation Choice", 3)]
public int RotationChoice
{
get => EditSetting?.Choice ?? "Default";
set
{
if (EditSetting == null) return;
EditSetting.Choice = value;
}
get => RotationHelper.ChoiceIndex;
set => RotationHelper.ChoiceIndex = value;
}

[JsonIgnore]
[UI("Record Rotation", 2)]
public bool RecordRotation { get; set; } = false;

[JsonProperty]
private Dictionary<uint, Dictionary<Job, RotationsSetting>> _rotationHelpers = [];
[JsonProperty()]
private Dictionary<Job, RotationsSetting> _rotationHelpers = [];

[JsonIgnore]
internal RotationsSetting? EditSetting { get; set; } = null;

private static readonly RotationsSetting EmptyHolder = new();
public RotationsSetting GetSetting(uint territoryId)
internal RotationsSetting RotationHelper
{
if (!_rotationHelpers.TryGetValue(territoryId, out var dict)) _rotationHelpers[territoryId] = dict = [];

if (!Player.Available) return EmptyHolder;
get
{
if (!Player.Available) return EmptyHolder;

var job = Player.Job;
if (!dict.TryGetValue(job, out var result)) dict[job] = result = new();
var job = Player.Job;
if (!_rotationHelpers.TryGetValue(job, out var result)) _rotationHelpers[job] = result = new();

return result;
return result;
}
}

private static readonly RotationsSetting EmptyHolder = new();

public int Version { get; set; } = 6;

public void Save()
Expand Down
22 changes: 4 additions & 18 deletions ActionTimelineEx/Helpers/RotationHelper.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
using ActionTimelineEx.Configurations;
using ActionTimelineEx.Timeline;
using ActionTimelineEx.Windows;
using ECommons.DalamudServices;
using ECommons.GameHelpers;
using ECommons.Hooks;
Expand All @@ -17,7 +16,7 @@ internal static class RotationHelper

public static IEnumerable<ActionSetting> Actions => RotationSetting.Actions.Skip((int)Count);

public static RotationSetting RotationSetting => Plugin.Settings.GetSetting(Svc.ClientState.TerritoryType).RotationSetting;
public static RotationSetting RotationSetting => Plugin.Settings.RotationHelper.RotationSetting;

private static uint _count;
public static uint Count
Expand Down Expand Up @@ -93,11 +92,6 @@ public static void Dispose()

private static void ClientState_TerritoryChanged(ushort obj)
{
var territory = Svc.Data.GetExcelSheet<TerritoryType>()?.GetRow(obj);
if (IsTerritoryTypeValid(territory))
{
RotationHelperItem._territoryId = obj;
}
Clear();
}

Expand All @@ -109,7 +103,7 @@ private static void DutyState_DutyWiped(object? sender, ushort e)
private static void ActionFromSelf(ActionEffectSet set)
{
if (!Player.Available) return;
if (set.Source.EntityId != Player.Object.EntityId || !Plugin.Settings.DrawRotation) return;
if (set.Source.EntityId != Player.Object.EntityId) return;
if ((ActionCate)(set.Action?.ActionCategory.Value?.RowId ?? 0) is ActionCate.AutoAttack) return; //Auto Attack.

var actionSettingType = (ActionSettingType)(byte)set.Header.ActionType;
Expand All @@ -122,6 +116,8 @@ private static void ActionFromSelf(ActionEffectSet set)
return;
}

if (!Plugin.Settings.DrawRotation) return;

var action = ActiveAction;
if (action == null) return;

Expand Down Expand Up @@ -155,14 +151,4 @@ public static void Clear()
{
Count = 0;
}

public static bool IsTerritoryTypeValid(TerritoryType? territory)
{
if (territory == null) return false;
if (territory.BattalionMode == 0) return false;
if (territory.IsPvpZone) return false;
if (territory.PlaceName.Row == 0) return false;

return true;
}
}
57 changes: 26 additions & 31 deletions ActionTimelineEx/Localization/Localization.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,33 +4,35 @@
"XIVConfigUI.LocalString.Searching": "Search... ",
"ActionTimelineEx.Windows.RotationHelperItem": "Rotation Helper",
"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",
"ActionTimelineEx.Configurations.UiString.RotationSetting": "Rotation Setting",
"ActionTimelineEx.Configurations.UiString.Rotation": "Rotation",
"ActionTimelineEx.Configurations.UiString.RotationReset": "Reset Count",
"ActionTimelineEx.Configurations.UiString.AddOneRotation": "Add One Rotation",
"XIVConfigUI.LocalString.CopyToClipboard": "Copy to Clipboard",
"XIVConfigUI.LocalString.FromClipboard": "From Clipboard",
"ActionTimelineEx.Configurations.SettingsName.RotationChoice": "Rotation Choice",
"ActionTimelineEx.Configurations.SettingsName.RecordRotation": "Record Rotation",
"XIVConfigUI.LocalString.ResetToDefault": "Reset to Default Value.",
"ActionTimelineEx.Configurations.SettingsName.RotationName": "Rotation Name",
"ActionTimelineEx.Configurations.RotationSettingName.Name": "Rotation Name",
"ActionTimelineEx.Configurations.RotationSettingName.Actions": "Actions",
"ActionTimelineEx.Configurations.RotationSettingName.IgnoreActions": "Ignore Actions",
"XIVConfigUI.LocalString.List": "List",
"ActionTimelineEx.Configurations.ActionSetting": "ActionSetting",
"XIVConfigUI.LocalString.Remove": "Remove",
"XIVConfigUI.LocalString.MoveUp": "Move Up",
"XIVConfigUI.LocalString.MoveDown": "Move Down",
"ActionTimelineEx.Configurations.ActionSettingDescription": "Fell Cleave (GCD)",
"ActionTimelineEx.Configurations.ActionSettingName.Id": "Id",
"ActionTimelineEx.Configurations.ActionSettingName.Type": "Type",
"ActionTimelineEx.Configurations.ActionSettingType.Action": "Action",
"ActionTimelineEx.Configurations.ActionSettingType.Item": "Item",
"ActionTimelineEx.Configurations.ActionSettingName.Type": "Type",
"ActionTimelineEx.Configurations.SettingsName.DrawRotation": "Draw Rotation",
"ActionTimelineEx.Configurations.SettingsName.RotationLocked": "Locked",
"ActionTimelineEx.Configurations.SettingsName.RotationLockedBackgroundColor": "Locked Background Color",
"ActionTimelineEx.Configurations.SettingsName.RotationUnlockedBackgroundColor": "Unlocked Background Color",
"ActionTimelineEx.Configurations.SettingsName.RotationHighlightColor": "Rotation Highlight Color",
"ActionTimelineEx.Configurations.SettingsName.GCDIconSize": "GCD Icon Size",
"ActionTimelineEx.Configurations.SettingsName.OGCDIconSize": "Off GCD Icon Size",
"ActionTimelineEx.Configurations.SettingsName.IconSpacing": "Icon Spacing",
"ActionTimelineEx.Configurations.SettingsName.ShowWrongClick": "Show the wrong clicking",
"ActionTimelineEx.Configurations.ActionSettingName.IsLast": "Is the Last Ability during GCD",
"ActionTimelineEx.Configurations.SettingsName.Record": "Record Data",
"ActionTimelineEx.Configurations.SettingsName.ShowTimelineOnlyInDuty": "Show Only In Duty",
"ActionTimelineEx.Configurations.SettingsName.ShowTimelineOnlyInCombat": "Show Only In Combat",
Expand All @@ -40,6 +42,17 @@
"ActionTimelineEx.Configurations.SettingsName.ClippintTime": "Clipping Range",
"ActionTimelineEx.Configurations.SettingsName.RecordTargetStatus": "Record Target Status",
"ActionTimelineEx.Configurations.SettingsName.ShowDonate": "Show the donate link.",
"ActionTimelineEx.Configurations.SettingsName.DrawRotation": "Draw Rotation",
"ActionTimelineEx.Configurations.SettingsName.RotationLocked": "Locked",
"ActionTimelineEx.Configurations.SettingsName.RotationLockedBackgroundColor": "Locked Background Color",
"ActionTimelineEx.Configurations.SettingsName.RotationUnlockedBackgroundColor": "Unlocked Background Color",
"ActionTimelineEx.Configurations.SettingsName.RotationHighlightColor": "Rotation Highlight Color",
"ActionTimelineEx.Configurations.SettingsName.GCDIconSize": "GCD Icon Size",
"ActionTimelineEx.Configurations.SettingsName.OGCDIconSize": "Off GCD Icon Size",
"ActionTimelineEx.Configurations.SettingsName.IconSpacing": "Icon Spacing",
"ActionTimelineEx.Configurations.SettingsName.ShowWrongClick": "Show the wrong clicking",
"ActionTimelineEx.Configurations.SettingsName.VerticalDraw": "Draw the rotation Vertically",
"ActionTimelineEx.Configurations.SettingsName.RotationChoice": "Rotation Choice",
"ActionTimelineEx.Configurations.DrawingSettingsName.Name": "The timeline Name",
"ActionTimelineEx.Configurations.DrawingSettingsName.Enable": "Enable",
"ActionTimelineEx.Configurations.DrawingSettingsName.IsRotation": "Is Rotation",
Expand Down Expand Up @@ -107,37 +120,19 @@
"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.Search": "Search",
"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.Nothing": "No items in Combo",
"XIVConfigUI.LocalString.None": "None",
"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.Configurations.SettingsName.RecordRotation": "Record Rotation",
"ActionTimelineEx.Description": "Configurable timeline display of all the actions you use.",
"ActionTimelineEx.Configurations.UiString.AddOneRotation": "Add One Rotation",
"XIVConfigUI.LocalString.Add": "Add",
"ActionTimelineEx.Configurations.ActionSettingName.IsLast": "Is the Last Ability during GCD",
"ActionTimelineEx.Configurations.RotationSettingName.Name": "Rotation Name",
"ActionTimelineEx.Configurations.RotationSettingName.Actions": "Actions",
"ActionTimelineEx.Configurations.RotationSettingName.IgnoreActions": "Ignore Actions",
"ActionTimelineEx.Configurations.ActionBaseName.Id": "Id",
"ActionTimelineEx.Configurations.ActionBaseName.Type": "Type",
"ActionTimelineEx.Configurations.ActionBase": "ActionBase",
"ActionTimelineEx.Configurations.SettingsName.VerticalDraw": "Draw the rotation Vertically"
"XIVConfigUI.Attributes.ConfigUnitType.Pixels": "Display Unit, in pixels."
}
Loading

0 comments on commit 7cb7e6c

Please sign in to comment.