FrameSort

FrameSort

88.4k Downloads

Add support for ElvUI party frames

OperationXen opened this issue ยท 22 comments

commented

Not sure how possible this is, but it would be a brilliant addition to be able to reorder their party frames for arena - they're significantly more customisable than the blizzard defaults

commented

I'll repeat my testing this evening against the latest version - want me to raise a new issue for the GEX thing to keep your merges from getting weird?

commented

Looking forward to hearing the results!

Probably best to track it separately yeah, so I've just raised #17 for it.

commented

When ElvUI is installed and even if player uses some of the functionalities, the Health checks fail. For example I use Blizzard UI Except for raid and in ElvUI you have the following line:

if disable.party or disable.raid then
    -- calls to UpdateRaidAndPartyFrames, which as of writing this is used to show/hide the
    -- Raid Utility and update Party frames via PartyFrame.UpdatePartyFrames not raid frames.
    _G.UIParent:UnregisterEvent('GROUP_ROSTER_UPDATE')
end

This results in failed health check, which results in non-working addon. I am currently on version 5.4.0, because its health checks are lower compared to the latest versions and works just ok.

commented

Thanks for letting me know, I'll fix this in the next update.

commented

I've just released 5.6.0 that has the ability to sort ElvUI party frames!
Would be great if someone could test it out and see if it's working properly.

I tried adding in ElvUI arena frames as well but I ran into problems so will revisit that later.

Also added a "FrameSort" section inside ElvUI itself where you can completely disable FrameSort from touching ElvUI frames if need be.

commented

Ok, so I've encountered a few issues which I've attempted to understand (ElvUI version 13.38 - which is latest):

On first loading into the arena my frames sort in the default elvui pattern, player -> party 1 -> party2 (with sorting set to "group" in ElvUI)

If I open framesort up in the prep room, it rearranges as expected (player middle, party 1 top, party 2 bottom)

As soon as the gates open, the frames re-order back to the ElvUI pattern

So I suspect that ElvUI is handling the events (plus the arena gate event) after framesort is done with them and putting stuff back how it was

commented

On the bright side the GladiusEx sorting appears to be working flawlessly

commented

This is great feedback, thanks!

Guess I need to find a way to disable/turn off ElvUI sorting if FrameSort sorting is enabled.

commented

Ok I've just published a new release 5.6.2 that might prevent ElvUI from undoing FrameSort's sorting. Haven't had a chance to test this in a real arena so I'm not sure how well it works.

I've made two changes:

  1. Handle more events for FrameSort to perform re-sorting on ElvUI frames.
  2. Added some "FrameSort" override options inside ElvUI's "Grouping & Sorting" section for party frames. This hopefully disables/prevents ElvUI sorting.

image

I am not sure if change #2 is actually needed or not and it feels a bit dodgy/hacky, but have added it anyway so we can test. I haven't automatically set these values as default in ElvUI so try manually setting these values to see if they make any difference.

Would you mind trying this out @OperationXen?

commented

Test 1 - Skirmish with ElvUI options set to sort by group (as previous test): Some change, loaded into arena with frames in ElvUI order, opening framesort and making changes made those change immediately but they reset back to ElvUI as the gates opened (so far, as before) then about 10 seconds into the match I get stunned and my frames reorder to framesort order where they stay for the 5 minutes of the match

Test 2 - Skirmish with ElvUI options set to group by FrameSort: Theres a little fighting on frame order as the arena loads, but it settles in the ready room for the framesort dictated order, as the gates open it flicks to an order I've not seen before, with me at the bottom, then back to framesort order, after a few seconds it reverts back to this order of DPS2, DPS1, Player (top to bottom), then as I'm stunned it goes back to the framesort order.

I think there's possibly another ElvUI event handler that you've missed, but it proves that the approach is viable. I have video of these tests I can send if you need more details

Noticed that the GEX reorder also seems to happen at gate opening rather than in the ready room, but thats probably its own issue?

commented

Thanks for the detailed testing!

Looking deeper into ElvUI and Blizzard's code I've found more triggers for when FrameSort should override sorting. Release 5.6.4 has more fixes in this space and from my basic testing it's looking quite promising.

Have now removed the FrameSort values from the Grouping & Sorting ElvUI options as I think even with these dummy values it still performs sorting using some default rules, so even with these in there I'd still have to cover the triggers/events.

Thanks for letting me know about the GEX issue, I'll look into that too.

commented

I shall look into it!

commented

It looks like ElvUI has built-in functionality for sorting frames albeit I don't see an option for specifying the player's position:

image

I could add in macro and frame targeting support, but I'm a little bit hesitant to move ElvUI frames considering it's such a massive complex addon with so many scenarios/configurations I'd need to cover.

Do you think the ElvUI built-in sorting feature is sufficient? Or is there something you think FrameSort could offer?

commented

So, the specific behaviour I'm after is for (in arena only) to place the frames in the specific order party1, player, party2 - in this context I'm the healer.

Now I've not seen a way to do this within Elvui itself, I'm hesitant to raise an issue against the project because they seem to lean towards the pve world

commented

Roger that, I'll see what I can do.

commented

Actually came here to ask the same thing, Elvui support for this would be massive! I remember a year or so ago asking in the Elvui discord for similar functionality, they basically just shrugged it off as 'maybe someday' but that day never came.

Would be great if you could find a way to retain Elvui's sorting but pin/anchor a player's specific position.

In my case, I use horizontal unitframes for party. Imagine they were sorted left to right, 1-5. In arena, I want to always pin myself to 2, with 1 and 3 on either side of me. Since I use mouse tilt left for target party1, and mouse tilt right for party2 and caplock for target self. Added a screenshot below that might make better sense;
image

commented

... I think you've done it.

Just played a skirmish and the bars behaved exactly as I wanted them to, no fighting, no reordering, just sweet sweet order.

Ship it.

commented

I am sorry I am on vacation and cannot test it at the moment, but I am sure everything will be fine.

commented

No worries, enjoy your holiday :)

commented

Awesome!

I'll keep the ticket open for a few days in case any bugs arise.

@soeron @Sherlockell is it working for you as well?

commented

Hey mate, sorry been away for a few days and only just got around to testing. Things seem to be working great in arena!

Will queue a few solo-shuffles tomorrow but the few skirmishes I've tested have worked perfectly. Quality work bud and thanks for the fast turnaround

commented

Wicked, sounds like it's all working well.