Skip to content

Commit c99f926

Browse files
Timer bars now support an additional central text, that hunters can use for range finding
1 parent 29d9736 commit c99f926

File tree

2 files changed

+86
-8
lines changed

2 files changed

+86
-8
lines changed

bars.lua

+74-4
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ function ST:init_visuals_template(hand)
8888

8989
-- Create the attack speed/swing timer texts and init them
9090
visuals_frame.left_text = visuals_frame:CreateFontString(nil, "OVERLAY")
91+
visuals_frame.center_text = visuals_frame:CreateFontString(nil, "OVERLAY")
9192
visuals_frame.right_text = visuals_frame:CreateFontString(nil, "OVERLAY")
9293

9394
-- Create the line markers
@@ -229,10 +230,13 @@ function ST:configure_texts(hand)
229230
local opt_string = self.outlines[db.text_outline_key]
230231
local w, h = self:get_bar_visuals_width_and_height(hand)
231232

233+
-------------------------------------
234+
-- Left text
235+
-------------------------------------
232236
-- The best center point for the x offset seems to be about 1% above normal.
233237
local left_text_x_offset = ((db.left_text_x_percent_offset + 1)/ 100) * w
234238
-- The best center point for the y offset seems to be about 5% below normal.
235-
local left_text_y_offset = ((db.left_text_y_percent_offset - 5)/ 100) * h
239+
local left_text_y_offset = ((db.left_text_y_percent_offset - 1)/ 100) * h
236240
frame.left_text:SetPoint(
237241
"LEFT",
238242
left_text_x_offset,
@@ -248,8 +252,31 @@ function ST:configure_texts(hand)
248252
frame.left_text:Hide()
249253
end
250254

255+
-------------------------------------
256+
-- Center text
257+
-------------------------------------
258+
local center_text_x_offset = ((db.center_text_x_percent_offset + 1)/ 100) * w
259+
local center_text_y_offset = ((db.center_text_y_percent_offset - 1)/ 100) * h
260+
frame.center_text:SetPoint(
261+
"CENTER",
262+
center_text_x_offset,
263+
center_text_y_offset
264+
)
265+
frame.center_text:SetFont(font_path, db.text_size, opt_string)
266+
frame.center_text:SetTextColor(
267+
self:convert_color(db.text_color)
268+
)
269+
if db.center_text_enabled then
270+
frame.center_text:Show()
271+
else
272+
frame.center_text:Hide()
273+
end
274+
275+
-------------------------------------
276+
-- Right text
277+
-------------------------------------
251278
local right_text_x_offset = ((db.right_text_x_percent_offset -1)/ 100) * w
252-
local right_text_y_offset = ((db.right_text_y_percent_offset - 5)/ 100) * h
279+
local right_text_y_offset = ((db.right_text_y_percent_offset - 1)/ 100) * h
253280
frame.right_text:SetPoint(
254281
"RIGHT",
255282
right_text_x_offset,
@@ -587,6 +614,18 @@ function ST:set_gcd_marker_positions(hand)
587614
end
588615
end
589616

617+
function ST:needs_range_string(hand)
618+
local db = self:get_hand_table(hand)
619+
if db.left_text_enabled and db.left_text_key == "range_finder" then
620+
return true
621+
elseif db.center_text_enabled and db.center_text_key == "range_finder" then
622+
return true
623+
elseif db.right_text_enabled and db.right_text_key == "range_finder" then
624+
return true
625+
end
626+
return false
627+
end
628+
590629
function ST:set_bar_texts(hand)
591630
-- Function to set the requisite texts on the bar.
592631
if self[hand].is_paused then return end
@@ -596,9 +635,27 @@ function ST:set_bar_texts(hand)
596635
local speed = self[hand].speed
597636
local timer = max(0, self[hand].ends_at - t)
598637
local lookup = {
599-
attack_speed=format("%.1f", st.utils.simple_round(speed, 0.1)),
600-
swing_timer=format("%.1f", st.utils.simple_round(timer, 0.1)),
638+
attack_speed = format("%.1f", st.utils.simple_round(speed, 0.1)),
639+
swing_timer = format("%.1f", st.utils.simple_round(timer, 0.1)),
601640
}
641+
642+
if self:needs_range_string(hand) then
643+
local min_range = self.target_min_range or ""
644+
min_range = tostring(min_range)
645+
local max_range = self.target_max_range or ""
646+
max_range = tostring(max_range)
647+
648+
if self.target_min_range == nil and self.target_max_range == nil then
649+
lookup.range_finder = ""
650+
elseif self.target_min_range == nil then
651+
lookup.range_finder = format("N/A - %s", max_range)
652+
elseif self.target_max_range == nil then
653+
lookup.range_finder = format("%s - N/A", min_range)
654+
else
655+
lookup.range_finder = format("%s - %s", min_range, max_range)
656+
end
657+
end
658+
602659
if db.left_text_enabled then
603660
if db.left_text_hide_inactive and self[hand].is_full then
604661
frame.left_text:Hide()
@@ -610,6 +667,19 @@ function ST:set_bar_texts(hand)
610667
else
611668
frame.left_text:Hide()
612669
end
670+
671+
if db.center_text_enabled then
672+
if db.center_text_hide_inactive and self[hand].is_full then
673+
frame.center_text:Hide()
674+
else
675+
local text = lookup[db.center_text_key]
676+
frame.center_text:SetText(text)
677+
frame.center_text:Show()
678+
end
679+
else
680+
frame.center_text:Hide()
681+
end
682+
613683
if db.right_text_enabled then
614684
if db.right_text_hide_inactive and self[hand].is_full then
615685
frame.right_text:Hide()

config_presets.lua

+12-4
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,12 @@ ST.bar_defaults = {
6262
left_text_x_percent_offset = 0,
6363
left_text_y_percent_offset = 0,
6464

65+
center_text_key = "range_finder",
66+
center_text_enabled = false,
67+
center_text_hide_inactive = false,
68+
center_text_x_percent_offset = 0,
69+
center_text_y_percent_offset = 0,
70+
6571
right_text_key = "swing_timer",
6672
right_text_enabled = true,
6773
right_text_hide_inactive = true,
@@ -71,7 +77,7 @@ ST.bar_defaults = {
7177
-- GCD underlay
7278
show_gcd_underlay = true,
7379
bar_color_gcd = {140, 140, 140, 0.85},
74-
gcd_texture_key = "Solid",
80+
gcd_texture_key = "Minimalist",
7581

7682
-- GCD markers
7783
gcd1a_marker_enabled = true,
@@ -186,12 +192,14 @@ ST.HUNTER.defaults = {
186192
y = -158,
187193
},
188194
ranged = {
195+
enable_deadzone = true,
189196
require_in_range = false,
190197
force_show_in_combat = false,
191198
bar_color_default = {6, 143, 47, 0.8},
192-
show_gcd_underlay = false,
193-
show_gcd_markers = false,
194-
show_range_finder = true,
199+
gcd1a_marker_enabled = false,
200+
gcd1b_marker_enabled = false,
201+
show_gcd_underlay = true,
202+
center_text_enabled = true,
195203
},
196204
}
197205

0 commit comments

Comments
 (0)