@@ -88,6 +88,7 @@ function ST:init_visuals_template(hand)
88
88
89
89
-- Create the attack speed/swing timer texts and init them
90
90
visuals_frame .left_text = visuals_frame :CreateFontString (nil , " OVERLAY" )
91
+ visuals_frame .center_text = visuals_frame :CreateFontString (nil , " OVERLAY" )
91
92
visuals_frame .right_text = visuals_frame :CreateFontString (nil , " OVERLAY" )
92
93
93
94
-- Create the line markers
@@ -229,10 +230,13 @@ function ST:configure_texts(hand)
229
230
local opt_string = self .outlines [db .text_outline_key ]
230
231
local w , h = self :get_bar_visuals_width_and_height (hand )
231
232
233
+ ---- ---------------------------------
234
+ -- Left text
235
+ ---- ---------------------------------
232
236
-- The best center point for the x offset seems to be about 1% above normal.
233
237
local left_text_x_offset = ((db .left_text_x_percent_offset + 1 )/ 100 ) * w
234
238
-- 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
236
240
frame .left_text :SetPoint (
237
241
" LEFT" ,
238
242
left_text_x_offset ,
@@ -248,8 +252,31 @@ function ST:configure_texts(hand)
248
252
frame .left_text :Hide ()
249
253
end
250
254
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
+ ---- ---------------------------------
251
278
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
253
280
frame .right_text :SetPoint (
254
281
" RIGHT" ,
255
282
right_text_x_offset ,
@@ -587,6 +614,18 @@ function ST:set_gcd_marker_positions(hand)
587
614
end
588
615
end
589
616
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
+
590
629
function ST :set_bar_texts (hand )
591
630
-- Function to set the requisite texts on the bar.
592
631
if self [hand ].is_paused then return end
@@ -596,9 +635,27 @@ function ST:set_bar_texts(hand)
596
635
local speed = self [hand ].speed
597
636
local timer = max (0 , self [hand ].ends_at - t )
598
637
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 )),
601
640
}
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
+
602
659
if db .left_text_enabled then
603
660
if db .left_text_hide_inactive and self [hand ].is_full then
604
661
frame .left_text :Hide ()
@@ -610,6 +667,19 @@ function ST:set_bar_texts(hand)
610
667
else
611
668
frame .left_text :Hide ()
612
669
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
+
613
683
if db .right_text_enabled then
614
684
if db .right_text_hide_inactive and self [hand ].is_full then
615
685
frame .right_text :Hide ()
0 commit comments