vrtc / chorus (public) (License: CC0) (since 2023-08-12) (hash sha1)
World of Warcraft add-on stub. The overall goal is to create a specialized raid frame.
List of commits:
Subject Hash Author Date (UTC)
feat: Hide auras out of frame bounds cb9ca55fb9dc361500e8b4f4c84320eb7d01b744 Vladyslav Bondarenko 2023-08-23 20:53:30
fix: Add text shadow to unit names 2b7d56c701ad81825a838c9faa818632bf38bfb6 Vladyslav Bondarenko 2023-08-23 17:30:23
fix: Further sanitize health bar 3318dee15eac9b8205e287997800c080b0aaf12d Vladyslav Bondarenko 2023-08-23 14:56:00
feat!: Correct range indcator for all characters 8ef1a987ac4431ce90131c354d1a1775b653f3e3 Vladyslav Bondarenko 2023-08-22 15:05:35
fix: Improve health bar robustness 2be053184653a6cd282437f8190e9196af495d81 Vladyslav Bondarenko 2023-08-22 13:24:12
fix: Upgrade aura sorting a2132995674f81e0775def67b0f5786945b0bba3 Vladyslav Bondarenko 2023-08-22 13:21:37
feat: Add threat percentage for hostiles 590bc95167dfc0f22a135fe173182104b6f5b923 Vladyslav Bondarenko 2023-08-22 13:17:57
feat: Add threat for hostiles 22562481a0c9dfb297ebbe47da4aa19046cf6eeb Vladyslav Bondarenko 2023-08-21 22:28:50
fix(build): Add more luacheck definitions aac4bb444d894b5d565af3abe417cbafd4f966f5 Vladyslav Bondarenko 2023-08-21 18:09:50
fix: Ensure TargetFrame is hidden 98bd355e604bf1c51791d5f5874ef33ab640123c Vladyslav Bondarenko 2023-08-21 14:04:40
fix: Show only meaningful numbers for health 37217b1dc78c0a2b4711dc45ada0c4873e904a1f Vladyslav Bondarenko 2023-08-21 13:32:19
fix: Remove testing range frame 4fcfd5c7bf4626137a1251cbcbe54157055ac875 Vladyslav Bondarenko 2023-08-21 13:10:16
fix: Place solo frames range frame correctly f926b1fb857a48b14a706926f14b5da730d210f1 Vladyslav Bondarenko 2023-08-21 13:08:42
feat!: Re-add player solo frames bf5346aa96a3daeadafeb3a723f7821012f1d5e5 Vladyslav Bondarenko 2023-08-21 12:22:48
fix: Render raid target icon on correct layer 890bb5340a3876b611f67ac1277cc009e5e4df5b Vladyslav Bondarenko 2023-08-20 18:12:31
feat: Display health deficit 0620038bf95d2c8e77eb088f2345764f428563d4 Vladyslav Bondarenko 2023-08-20 17:55:49
fix(build): Update rockspec dcffb9897deb97fa4039cd4513a51e397ebc4ab7 Vladyslav Bondarenko 2023-08-20 17:16:25
feat!: Update raid frame layout ad51f7e37e8babd30ee45c5b87d931a09c1fc0f3 Vladyslav Bondarenko 2023-08-20 14:45:38
fix: Do not show range to oneself c055a76806c5646e4027698c6a105f06199be4ae Vladyslav Bondarenko 2023-08-20 04:29:32
feat!: Add raid targeting icons 53121d5d75fb55d745734337ab70283496e46e7c Vladyslav Bondarenko 2023-08-19 23:22:01
Commit cb9ca55fb9dc361500e8b4f4c84320eb7d01b744 - feat: Hide auras out of frame bounds
All auras in aura frames are arranged in a single row from left to
right. All aura frames have fixed width. Only aura buttons that are
contained within these bounds are shown.

This is a primitive mechanism to limit the quantity of effects shown in
different user relevant contexts.

For example, there is no need for detailed information on every buff of
a single member from a 40 men raid. In this case, create a narrow aura
frame that only allows for a single aura button to be fit (<32 points
size). The aura frame aura sorting algorithm will then only show the
most relevant aura in that limited space.

This mechanism is applied every time aura is updated and will work
seamlessly at runtime, even when aura frame is resized. Emphasis, all
aura buttons are arranged in a single row from left to right. There is
no tesselation beyond that.
Author: Vladyslav Bondarenko
Author date (UTC): 2023-08-23 20:53
Committer name: Vladyslav Bondarenko
Committer date (UTC): 2023-08-23 20:53
Parent(s): 2b7d56c701ad81825a838c9faa818632bf38bfb6
Signer:
Signing key: EFF9624877D25D02
Signing status: E
Tree: 6bf299932908743154a20a93ecba318114ebfbee
File Lines added Lines deleted
src/ChorusAuraFrameTemplate.lua 7 1
src/ChorusAuraFrameTemplate.xml 29 14
File src/ChorusAuraFrameTemplate.lua changed (mode: 100644) (index 9ea2d2c..69dc29f)
... ... local function auraFrameEventProcessor(self, eventCategory, ...)
152 152 end end
153 153 end end
154 154
155 local filter = self.filter
155 local filter = self.filter or self:GetAttribute('filter')
156 156 assert(filter ~= nil) assert(filter ~= nil)
157 157 assert('string' == type(filter)) assert('string' == type(filter))
158 158 filter = string.upper(strtrim(filter)) filter = string.upper(strtrim(filter))
 
... ... local function auraFrameEventProcessor(self, eventCategory, ...)
172 172 break break
173 173 end end
174 174 assert(b ~= nil) assert(b ~= nil)
175
176 --[[ Hide button if it doesn't fit into the frame. ]]--
177 if (b:GetWidth() * i) > (self:GetWidth() + 3) then
178 break
179 end
180
175 181 b.unit = unitDesignation b.unit = unitDesignation
176 182 b.filter = filter b.filter = filter
177 183
File src/ChorusAuraFrameTemplate.xml changed (mode: 100644) (index 9f643a5..c0d8a79)
2 2 <Ui xmlns="http://www.blizzard.com/wow/ui/"> <Ui xmlns="http://www.blizzard.com/wow/ui/">
3 3 <Script file="ChorusAuraFrameTemplate.lua"/> <Script file="ChorusAuraFrameTemplate.lua"/>
4 4 <Frame name="ChorusAuraFrameTemplate" virtual="true"> <Frame name="ChorusAuraFrameTemplate" virtual="true">
5 <Size>
6 <AbsDimension x="216" y="36" />
7 </Size>
8 5 <Frames> <Frames>
9 <Frame name="$parentButton1" inherits="ChorusAuraButtonTemplate">
6 <Frame name="$parentButton1" inherits="ChorusAuraButtonTemplate" id="1">
10 7 <Anchors> <Anchors>
11 8 <Anchor point="BOTTOMLEFT" relativeTo="$parent" relativePoint="BOTTOMLEFT"> <Anchor point="BOTTOMLEFT" relativeTo="$parent" relativePoint="BOTTOMLEFT">
12 9 <Offset> <Offset>
 
15 12 </Anchor> </Anchor>
16 13 </Anchors> </Anchors>
17 14 </Frame> </Frame>
18 <Frame name="$parentButton2" inherits="ChorusAuraButtonTemplate">
15 <Frame name="$parentButton2" inherits="ChorusAuraButtonTemplate" id="2">
19 16 <Anchors> <Anchors>
20 17 <Anchor point="BOTTOMLEFT" relativeTo="$parentButton1" relativePoint="BOTTOMRIGHT"> <Anchor point="BOTTOMLEFT" relativeTo="$parentButton1" relativePoint="BOTTOMRIGHT">
21 18 <Offset> <Offset>
22 <AbsDimension x="4" y="0"/>
19 <AbsDimension x="0" y="0"/>
23 20 </Offset> </Offset>
24 21 </Anchor> </Anchor>
25 22 </Anchors> </Anchors>
26 23 </Frame> </Frame>
27 <Frame name="$parentButton3" inherits="ChorusAuraButtonTemplate">
24 <Frame name="$parentButton3" inherits="ChorusAuraButtonTemplate" id="3">
28 25 <Anchors> <Anchors>
29 26 <Anchor point="BOTTOMLEFT" relativeTo="$parentButton2" relativePoint="BOTTOMRIGHT"> <Anchor point="BOTTOMLEFT" relativeTo="$parentButton2" relativePoint="BOTTOMRIGHT">
30 27 <Offset> <Offset>
31 <AbsDimension x="4" y="0"/>
28 <AbsDimension x="0" y="0"/>
32 29 </Offset> </Offset>
33 30 </Anchor> </Anchor>
34 31 </Anchors> </Anchors>
35 32 </Frame> </Frame>
36 <Frame name="$parentButton4" inherits="ChorusAuraButtonTemplate">
33 <Frame name="$parentButton4" inherits="ChorusAuraButtonTemplate" id="4">
37 34 <Anchors> <Anchors>
38 35 <Anchor point="BOTTOMLEFT" relativeTo="$parentButton3" relativePoint="BOTTOMRIGHT"> <Anchor point="BOTTOMLEFT" relativeTo="$parentButton3" relativePoint="BOTTOMRIGHT">
39 36 <Offset> <Offset>
40 <AbsDimension x="4" y="0"/>
37 <AbsDimension x="0" y="0"/>
41 38 </Offset> </Offset>
42 39 </Anchor> </Anchor>
43 40 </Anchors> </Anchors>
44 41 </Frame> </Frame>
45 <Frame name="$parentButton5" inherits="ChorusAuraButtonTemplate">
42 <Frame name="$parentButton5" inherits="ChorusAuraButtonTemplate" id="5">
46 43 <Anchors> <Anchors>
47 44 <Anchor point="BOTTOMLEFT" relativeTo="$parentButton4" relativePoint="BOTTOMRIGHT"> <Anchor point="BOTTOMLEFT" relativeTo="$parentButton4" relativePoint="BOTTOMRIGHT">
48 45 <Offset> <Offset>
49 <AbsDimension x="4" y="0"/>
46 <AbsDimension x="0" y="0"/>
50 47 </Offset> </Offset>
51 48 </Anchor> </Anchor>
52 49 </Anchors> </Anchors>
53 50 </Frame> </Frame>
54 <Frame name="$parentButton6" inherits="ChorusAuraButtonTemplate">
51 <Frame name="$parentButton6" inherits="ChorusAuraButtonTemplate" id="6">
55 52 <Anchors> <Anchors>
56 53 <Anchor point="BOTTOMLEFT" relativeTo="$parentButton5" relativePoint="BOTTOMRIGHT"> <Anchor point="BOTTOMLEFT" relativeTo="$parentButton5" relativePoint="BOTTOMRIGHT">
57 54 <Offset> <Offset>
58 <AbsDimension x="4" y="0"/>
55 <AbsDimension x="0" y="0"/>
56 </Offset>
57 </Anchor>
58 </Anchors>
59 </Frame>
60 <Frame name="$parentButton7" inherits="ChorusAuraButtonTemplate" id="7">
61 <Anchors>
62 <Anchor point="BOTTOMLEFT" relativeTo="$parentButton6" relativePoint="BOTTOMRIGHT">
63 <Offset>
64 <AbsDimension x="0" y="0"/>
65 </Offset>
66 </Anchor>
67 </Anchors>
68 </Frame>
69 <Frame name="$parentButton8" inherits="ChorusAuraButtonTemplate" id="8">
70 <Anchors>
71 <Anchor point="BOTTOMLEFT" relativeTo="$parentButton7" relativePoint="BOTTOMRIGHT">
72 <Offset>
73 <AbsDimension x="0" y="0"/>
59 74 </Offset> </Offset>
60 75 </Anchor> </Anchor>
61 76 </Anchors> </Anchors>
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/vrtc/chorus

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/vrtc/chorus

Clone this repository using git:
git clone git://git.rocketgit.com/user/vrtc/chorus

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main