Skip to content

Commit 2b37671

Browse files
committed
More mass changes
1 parent 6e6e13c commit 2b37671

27 files changed

+830
-303
lines changed

BadRotations.lua

Lines changed: 7 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ function br.Run()
6262
br.engines:ObjectTracker()
6363
-- Complete Loadin
6464
br.ui.chatOverlay:Show("-= BadRotations Loaded =-")
65-
br._G.print("Initialization Complete, Finding Previous Settings.")
65+
br._G.print("Initialization Complete.")
6666
loadedIn = true
6767
end
6868
end
@@ -89,7 +89,7 @@ function br.load()
8989
br.data.settings[br.loader.selectedSpec] = {}
9090
end
9191
if not br.unlocked then
92-
br.settingsManagement.initializeSettings = true
92+
br.ui.settingsManagement.initializeSettings = true
9393
print(br.ui.colors.class .. "[BadRotations] |cffFFFFFFInitializing Please Wait...")
9494
end
9595
if not loadedIn then
@@ -107,7 +107,6 @@ local frame = br._G.CreateFrame("FRAME")
107107
-- Registering events
108108
frame:RegisterEvent("PLAYER_LOGOUT")
109109
frame:RegisterEvent("PLAYER_ENTERING_WORLD")
110-
frame:RegisterEvent("PLAYER_LEAVING_WORLD")
111110
frame:RegisterEvent("LOADING_SCREEN_ENABLED")
112111
frame:RegisterEvent("LOADING_SCREEN_DISABLED")
113112

@@ -126,38 +125,22 @@ local function OnEvent(self, event)
126125
br._G.RunMacroText("/console SpellQueueWindow " .. br._G.GetCVar("SpellQueueWindow"))
127126
end
128127
br.ui:saveWindowPosition()
129-
br.settingsManagement:cleanSettings()
128+
br.ui.settingsManagement:cleanSettings()
130129
table.wipe(br.data.settings[br.loader.selectedSpec][br.loader.selectedProfile]["PageList"])
131-
table.wipe(br.ui)
132130
if br.functions.misc:getOptionCheck("Reset Options") then
133131
-- Reset Settings
134-
br.settingsManagement:saveSettings(nil, nil, br.loader.selectedSpec, br.loader.selectedProfileName, true)
132+
br.ui.settingsManagement:saveSettings(nil, nil, br.loader.selectedSpec, br.loader.selectedProfileName, true)
135133
else
136134
-- Save Settings
137-
br.settingsManagement:saveSettings(nil, nil, br.loader.selectedSpec, br.loader.selectedProfileName)
135+
br.ui.settingsManagement:saveSettings(nil, nil, br.loader.selectedSpec, br.loader.selectedProfileName)
138136
end
139-
br.settingsManagement:saveLastProfileTracker()
137+
br.ui.settingsManagement:saveLastProfileTracker()
138+
table.wipe(br.ui)
140139
end
141140
end
142141
if event == "PLAYER_ENTERING_WORLD" then
143142
br.load()
144143
end
145-
if event == "PLAYER_LEAVING_WORLD" then
146-
if br.unlocked then
147-
br.ui:saveWindowPosition()
148-
-- br.settingsManagement:cleanSettings()
149-
-- table.wipe(br.data.settings[br.loader.selectedSpec][br.loader.selectedProfile]["PageList"])
150-
-- table.wipe(br.ui)
151-
if br.functions.misc:getOptionCheck("Reset Options") then
152-
-- Reset Settings
153-
br.settingsManagement:saveSettings(nil, nil, br.loader.selectedSpec, br.loader.selectedProfileName, true)
154-
else
155-
-- Save Settings
156-
br.settingsManagement:saveSettings(nil, nil, br.loader.selectedSpec, br.loader.selectedProfileName)
157-
end
158-
br.settingsManagement:saveLastProfileTracker()
159-
end
160-
end
161144
end
162145

163146
-- Setting the OnEvent script handler

BadRotations.toc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
## Author: CuteOne
55
## Version: 1.36.0
66
## Dependencies: SharedMedia
7-
## Enabled: false
7+
## Enabled: true
88

99
## Libs
1010

Libs/DiesalGUI-1.0/DiesalGUI-1.0.lua

Lines changed: 110 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -120,16 +120,43 @@ end
120120
-- ~~| Object Diesal Base |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
121121
ObjectBase.CreateRegion = function(self, regionType, regionName, parentRegion, defaultFontObject)
122122
if regionType == 'FontString' then
123-
local fontString = parentRegion:CreateFontString()
123+
-- Try creating with explicit parameters
124+
local fontString = parentRegion:CreateFontString(nil, "OVERLAY")
125+
126+
-- CRITICAL: Set font IMMEDIATELY and DON'T let anything override it if it fails
127+
-- Start with GameFontNormal which is guaranteed to work
128+
fontString:SetFontObject(_G.GameFontNormal)
129+
124130
-- set Default font properties
125131
if defaultFontObject then
126132
fontString.defaultFontObject = defaultFontObject
127133
else
128-
fontString.defaultFontObject = DiesalFontNormal
134+
fontString.defaultFontObject = _G.DiesalFontNormal or _G.GameFontNormal
135+
end
136+
137+
-- ONLY try to apply custom font if we can verify it's valid first
138+
if fontString.defaultFontObject and fontString.defaultFontObject ~= _G.GameFontNormal and type(fontString.defaultFontObject.GetFont) == "function" then
139+
local success, fontPath, fontSize, fontFlags = pcall(fontString.defaultFontObject.GetFont, fontString.defaultFontObject)
140+
-- Only apply if we got a valid font path
141+
if success and fontPath and fontPath ~= "" then
142+
local fontSuccess = pcall(fontString.SetFont, fontString, fontPath, fontSize or 12, fontFlags or "")
143+
-- If custom font failed, font object fallback is still active from SetFontObject above
144+
end
145+
end
146+
147+
-- Set colors and spacing safely
148+
if fontString.defaultFontObject and type(fontString.defaultFontObject.GetTextColor) == "function" then
149+
local success, r, g, b, a = pcall(fontString.defaultFontObject.GetTextColor, fontString.defaultFontObject)
150+
if success and r then
151+
pcall(fontString.SetTextColor, fontString, r, g, b, a or 1)
152+
end
153+
end
154+
if fontString.defaultFontObject and type(fontString.defaultFontObject.GetSpacing) == "function" then
155+
local success, spacing = pcall(fontString.defaultFontObject.GetSpacing, fontString.defaultFontObject)
156+
if success and spacing then
157+
pcall(fontString.SetSpacing, fontString, spacing)
158+
end
129159
end
130-
fontString:SetFont(fontString.defaultFontObject:GetFont())
131-
fontString:SetTextColor(fontString.defaultFontObject:GetTextColor())
132-
fontString:SetSpacing(fontString.defaultFontObject:GetSpacing())
133160

134161
self[regionName] = fontString
135162
self.fontStrings[regionName] = fontString
@@ -141,15 +168,47 @@ ObjectBase.CreateRegion = function(self, regionType, regionName, parentRegion, d
141168
end
142169
if regionType == 'EditBox' then
143170
local editBox = CreateFrame(regionType, nil, parentRegion)
171+
172+
-- CRITICAL: Set a font IMMEDIATELY with multiple fallbacks
173+
if _G.GameFontNormal then
174+
pcall(editBox.SetFontObject, editBox, _G.GameFontNormal)
175+
end
176+
pcall(editBox.SetFont, editBox, "Fonts\\FRIZQT__.TTF", 12, "")
177+
178+
local testFont = editBox:GetFont()
179+
if not testFont and _G.ChatFontNormal then
180+
pcall(editBox.SetFontObject, editBox, _G.ChatFontNormal)
181+
end
182+
144183
-- set Default font properties
145184
if defaultFontObject then
146185
editBox.defaultFontObject = defaultFontObject
147186
else
148-
editBox.defaultFontObject = DiesalFontNormal
187+
editBox.defaultFontObject = _G.DiesalFontNormal or _G.GameFontNormal
188+
end
189+
190+
-- Try to apply custom font if available
191+
if editBox.defaultFontObject and type(editBox.defaultFontObject.GetFont) == "function" then
192+
local success, fontPath, fontSize, fontFlags = pcall(editBox.defaultFontObject.GetFont, editBox.defaultFontObject)
193+
if success and fontPath then
194+
pcall(editBox.SetFont, editBox, fontPath, fontSize or 11, fontFlags or "")
195+
end
149196
end
150-
editBox:SetFont(editBox.defaultFontObject:GetFont())
151-
editBox:SetTextColor(editBox.defaultFontObject:GetTextColor())
152-
editBox:SetSpacing(editBox.defaultFontObject:GetSpacing())
197+
198+
-- Set colors and spacing safely
199+
if editBox.defaultFontObject and type(editBox.defaultFontObject.GetTextColor) == "function" then
200+
local success, r, g, b, a = pcall(editBox.defaultFontObject.GetTextColor, editBox.defaultFontObject)
201+
if success and r then
202+
pcall(editBox.SetTextColor, editBox, r, g, b, a or 1)
203+
end
204+
end
205+
if editBox.defaultFontObject and type(editBox.defaultFontObject.GetSpacing) == "function" then
206+
local success, spacing = pcall(editBox.defaultFontObject.GetSpacing, editBox.defaultFontObject)
207+
if success and spacing then
208+
pcall(editBox.SetSpacing, editBox, spacing)
209+
end
210+
end
211+
153212
editBox:HookScript('OnEscapePressed', function(this) DiesalGUI:ClearFocus(); end)
154213
editBox:HookScript('OnEditFocusGained', function(this)
155214
DiesalGUI:SetFocus(this); GameTooltip:Hide();
@@ -160,15 +219,46 @@ ObjectBase.CreateRegion = function(self, regionType, regionName, parentRegion, d
160219
end
161220
if regionType == 'ScrollingMessageFrame' then
162221
local srollingMessageFrame = CreateFrame(regionType, nil, parentRegion)
222+
223+
-- CRITICAL: Set a font IMMEDIATELY with multiple fallbacks
224+
if _G.GameFontNormal then
225+
pcall(srollingMessageFrame.SetFontObject, srollingMessageFrame, _G.GameFontNormal)
226+
end
227+
pcall(srollingMessageFrame.SetFont, srollingMessageFrame, "Fonts\\FRIZQT__.TTF", 12, "")
228+
229+
local testFont = srollingMessageFrame:GetFont()
230+
if not testFont and _G.ChatFontNormal then
231+
pcall(srollingMessageFrame.SetFontObject, srollingMessageFrame, _G.ChatFontNormal)
232+
end
233+
163234
-- set Default font properties
164235
if defaultFontObject then
165236
srollingMessageFrame.defaultFontObject = defaultFontObject
166237
else
167-
srollingMessageFrame.defaultFontObject = DiesalFontNormal
238+
srollingMessageFrame.defaultFontObject = _G.DiesalFontNormal or _G.GameFontNormal
239+
end
240+
241+
-- Try to apply custom font if available
242+
if srollingMessageFrame.defaultFontObject and type(srollingMessageFrame.defaultFontObject.GetFont) == "function" then
243+
local success, fontPath, fontSize, fontFlags = pcall(srollingMessageFrame.defaultFontObject.GetFont, srollingMessageFrame.defaultFontObject)
244+
if success and fontPath then
245+
pcall(srollingMessageFrame.SetFont, srollingMessageFrame, fontPath, fontSize or 11, fontFlags or "")
246+
end
247+
end
248+
249+
-- Set colors and spacing safely
250+
if srollingMessageFrame.defaultFontObject and type(srollingMessageFrame.defaultFontObject.GetTextColor) == "function" then
251+
local success, r, g, b, a = pcall(srollingMessageFrame.defaultFontObject.GetTextColor, srollingMessageFrame.defaultFontObject)
252+
if success and r then
253+
pcall(srollingMessageFrame.SetTextColor, srollingMessageFrame, r, g, b, a or 1)
254+
end
255+
end
256+
if srollingMessageFrame.defaultFontObject and type(srollingMessageFrame.defaultFontObject.GetSpacing) == "function" then
257+
local success, spacing = pcall(srollingMessageFrame.defaultFontObject.GetSpacing, srollingMessageFrame.defaultFontObject)
258+
if success and spacing then
259+
pcall(srollingMessageFrame.SetSpacing, srollingMessageFrame, spacing)
260+
end
168261
end
169-
srollingMessageFrame:SetFont(srollingMessageFrame.defaultFontObject:GetFont())
170-
srollingMessageFrame:SetTextColor(srollingMessageFrame.defaultFontObject:GetTextColor())
171-
srollingMessageFrame:SetSpacing(srollingMessageFrame.defaultFontObject:GetSpacing())
172262

173263
self[regionName] = srollingMessageFrame
174264
return srollingMessageFrame
@@ -179,7 +269,13 @@ ObjectBase.CreateRegion = function(self, regionType, regionName, parentRegion, d
179269
end
180270
ObjectBase.ResetFonts = function(self)
181271
for name, fontString in pairs(self.fontStrings) do
182-
fontString:SetFont(fontString.defaultFontObject:GetFont())
272+
-- Safe font initialization with fallback
273+
local fontPath, fontSize, fontFlags = fontString.defaultFontObject:GetFont()
274+
if not fontPath then
275+
-- Fallback to WoW default if GetFont returns nil
276+
fontPath, fontSize, fontFlags = "Fonts\\FRIZQT__.TTF", 11, ""
277+
end
278+
fontString:SetFont(fontPath, fontSize, fontFlags)
183279
fontString:SetTextColor(fontString.defaultFontObject:GetTextColor())
184280
fontString:SetSpacing(fontString.defaultFontObject:GetSpacing())
185281
end

Libs/DiesalGUI-1.0/DiesalGUI-1.0.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
..\FrameXML\UI.xsd">
33
<Script file="DiesalGUI-1.0.lua"/>
44
<!-- Objects -->
5+
<Script file="Objects\FontString.lua"/>
56
<Script file="Objects\Window.lua"/>
67
<Script file="Objects\ScrollFrame.lua"/>
78
<Script file="Objects\ScrollingEditBox.lua"/>
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
local DiesalGUI = LibStub("DiesalGUI-1.0")
2+
3+
local Type = "FontString"
4+
local Version = 1
5+
6+
local function Constructor()
7+
local self = DiesalGUI:CreateObjectBase(Type)
8+
9+
-- Create the actual FontString region
10+
local UIParent = _G.UIParent
11+
self.frame = CreateFrame("Frame", nil, UIParent)
12+
self:CreateRegion("FontString", "fontString", self.frame)
13+
14+
-- CRITICAL: Ensure font is set on the fontString widget
15+
if self.fontString then
16+
local testFont = self.fontString:GetFont()
17+
if not testFont then
18+
-- Font wasn't set in CreateRegion, set it now
19+
self.fontString:SetFontObject(_G.GameFontNormal)
20+
end
21+
end
22+
23+
function self:SetParent(parent)
24+
self.frame:SetParent(parent)
25+
end
26+
27+
return self
28+
end
29+
30+
DiesalGUI:RegisterObjectConstructor(Type, Constructor, Version)

0 commit comments

Comments
 (0)