mirror of
https://github.com/parnic/ice-hud.git
synced 2025-06-16 22:51:53 -05:00
Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
6325ed1ade
|
|||
a4c44a5809
|
|||
82db70969a
|
|||
47931922bd
|
232
IceHUD.lua
232
IceHUD.lua
@ -36,7 +36,7 @@ IceHUD.CanTrackOtherUnitBuffs = not IceHUD.WowClassic
|
|||||||
IceHUD.CanTrackGCD = not IceHUD.WowClassic
|
IceHUD.CanTrackGCD = not IceHUD.WowClassic
|
||||||
IceHUD.GetSpellInfoReturnsFunnel = IceHUD.WowMain and IceHUD.WowVer < 60000
|
IceHUD.GetSpellInfoReturnsFunnel = IceHUD.WowMain and IceHUD.WowVer < 60000
|
||||||
IceHUD.CanHookDestroyTotem = IceHUD.WowClassic or IceHUD.WowClassicBC
|
IceHUD.CanHookDestroyTotem = IceHUD.WowClassic or IceHUD.WowClassicBC
|
||||||
IceHUD.ShouldUpdateTargetHealthEveryTick = IceHUD.WowClassicBC and GetCVarBool("predictedHealth")
|
IceHUD.ShouldUpdateTargetHealthEveryTick = (IceHUD.WowClassic or IceHUD.WowClassicBC) and GetCVarBool("predictedHealth")
|
||||||
|
|
||||||
IceHUD.UnitPowerEvent = "UNIT_POWER_UPDATE"
|
IceHUD.UnitPowerEvent = "UNIT_POWER_UPDATE"
|
||||||
|
|
||||||
@ -684,134 +684,134 @@ function IceHUD:GetIsInLFGGroup()
|
|||||||
return IsInLFGGroup
|
return IsInLFGGroup
|
||||||
end
|
end
|
||||||
|
|
||||||
local BLACKLISTED_UNIT_MENU_OPTIONS = {
|
if UnitPopupButtons then
|
||||||
SET_FOCUS = "ICEHUD_SET_FOCUS",
|
local BLACKLISTED_UNIT_MENU_OPTIONS = {
|
||||||
CLEAR_FOCUS = "ICEHUD_CLEAR_FOCUS",
|
SET_FOCUS = "ICEHUD_SET_FOCUS",
|
||||||
PET_DISMISS = "ICEHUD_PET_DISMISS",
|
CLEAR_FOCUS = "ICEHUD_CLEAR_FOCUS",
|
||||||
LOCK_FOCUS_FRAME = true,
|
PET_DISMISS = "ICEHUD_PET_DISMISS",
|
||||||
UNLOCK_FOCUS_FRAME = true,
|
LOCK_FOCUS_FRAME = true,
|
||||||
}
|
UNLOCK_FOCUS_FRAME = true,
|
||||||
|
}
|
||||||
|
|
||||||
UnitPopupButtons["ICEHUD_SET_FOCUS"] = {
|
UnitPopupButtons["ICEHUD_SET_FOCUS"] = {
|
||||||
text = L["Type %s to set focus"]:format(SLASH_FOCUS1),
|
text = L["Type %s to set focus"]:format(SLASH_FOCUS1),
|
||||||
tooltipText = L["Blizzard currently does not provide a proper way to right-click focus with custom unit frames."],
|
tooltipText = L["Blizzard currently does not provide a proper way to right-click focus with custom unit frames."],
|
||||||
dist = 0,
|
dist = 0,
|
||||||
}
|
}
|
||||||
|
|
||||||
UnitPopupButtons["ICEHUD_CLEAR_FOCUS"] = {
|
UnitPopupButtons["ICEHUD_CLEAR_FOCUS"] = {
|
||||||
text = L["Type %s to clear focus"]:format(SLASH_CLEARFOCUS1),
|
text = L["Type %s to clear focus"]:format(SLASH_CLEARFOCUS1),
|
||||||
tooltipText = L["Blizzard currently does not provide a proper way to right-click focus with custom unit frames."],
|
tooltipText = L["Blizzard currently does not provide a proper way to right-click focus with custom unit frames."],
|
||||||
dist = 0,
|
dist = 0,
|
||||||
}
|
}
|
||||||
|
|
||||||
UnitPopupButtons["ICEHUD_PET_DISMISS"] = {
|
UnitPopupButtons["ICEHUD_PET_DISMISS"] = {
|
||||||
text = L["Use your Dismiss Pet spell to dismiss a pet"],
|
text = L["Use your Dismiss Pet spell to dismiss a pet"],
|
||||||
tooltipText = L["Blizzard currently does not provide a proper way to right-click dismiss a pet with custom unit frames."],
|
tooltipText = L["Blizzard currently does not provide a proper way to right-click dismiss a pet with custom unit frames."],
|
||||||
dist = 0,
|
dist = 0,
|
||||||
}
|
}
|
||||||
|
|
||||||
local munged_unit_menus = {}
|
local munged_unit_menus = {}
|
||||||
local function munge_unit_menu(menu)
|
local function munge_unit_menu(menu)
|
||||||
local result = munged_unit_menus[menu]
|
local result = munged_unit_menus[menu]
|
||||||
if result then
|
if result then
|
||||||
return result
|
return result
|
||||||
end
|
|
||||||
|
|
||||||
if not UnitPopupMenus then
|
|
||||||
munged_unit_menus[menu] = menu
|
|
||||||
return menu
|
|
||||||
end
|
|
||||||
|
|
||||||
local data = UnitPopupMenus[menu]
|
|
||||||
if not data then
|
|
||||||
munged_unit_menus[menu] = menu
|
|
||||||
return menu
|
|
||||||
end
|
|
||||||
|
|
||||||
local found = false
|
|
||||||
local _, v
|
|
||||||
for _, v in ipairs(data) do
|
|
||||||
if BLACKLISTED_UNIT_MENU_OPTIONS[v] then
|
|
||||||
found = true
|
|
||||||
break
|
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
if not found then
|
if not UnitPopupMenus then
|
||||||
-- nothing to remove or add, we're all fine here.
|
munged_unit_menus[menu] = menu
|
||||||
munged_unit_menus[menu] = menu
|
return menu
|
||||||
return menu
|
|
||||||
end
|
|
||||||
|
|
||||||
local new_data = {}
|
|
||||||
for _, v in ipairs(data) do
|
|
||||||
local blacklisted = BLACKLISTED_UNIT_MENU_OPTIONS[v]
|
|
||||||
if v == "PET_DISMISS" and select(2, UnitClass("player")) == "WARLOCK" then
|
|
||||||
blacklisted = false
|
|
||||||
end
|
end
|
||||||
if not blacklisted then
|
|
||||||
new_data[#new_data+1] = v
|
local data = UnitPopupMenus[menu]
|
||||||
elseif blacklisted ~= true then
|
if not data then
|
||||||
new_data[#new_data+1] = blacklisted
|
munged_unit_menus[menu] = menu
|
||||||
|
return menu
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local found = false
|
||||||
|
local _, v
|
||||||
|
for _, v in ipairs(data) do
|
||||||
|
if BLACKLISTED_UNIT_MENU_OPTIONS[v] then
|
||||||
|
found = true
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if not found then
|
||||||
|
-- nothing to remove or add, we're all fine here.
|
||||||
|
munged_unit_menus[menu] = menu
|
||||||
|
return menu
|
||||||
|
end
|
||||||
|
|
||||||
|
local new_data = {}
|
||||||
|
for _, v in ipairs(data) do
|
||||||
|
local blacklisted = BLACKLISTED_UNIT_MENU_OPTIONS[v]
|
||||||
|
if v == "PET_DISMISS" and select(2, UnitClass("player")) == "WARLOCK" then
|
||||||
|
blacklisted = false
|
||||||
|
end
|
||||||
|
if not blacklisted then
|
||||||
|
new_data[#new_data+1] = v
|
||||||
|
elseif blacklisted ~= true then
|
||||||
|
new_data[#new_data+1] = blacklisted
|
||||||
|
end
|
||||||
|
end
|
||||||
|
local new_menu_name = "ICEHUD_" .. menu
|
||||||
|
|
||||||
|
UnitPopupMenus[new_menu_name] = new_data
|
||||||
|
munged_unit_menus[menu] = new_menu_name
|
||||||
|
return new_menu_name
|
||||||
end
|
end
|
||||||
local new_menu_name = "ICEHUD_" .. menu
|
IceHUD.MungeUnitMenu = munge_unit_menu
|
||||||
|
|
||||||
UnitPopupMenus[new_menu_name] = new_data
|
local function figure_unit_menu(unit)
|
||||||
munged_unit_menus[menu] = new_menu_name
|
if unit == "focus" then
|
||||||
return new_menu_name
|
return "FOCUS"
|
||||||
end
|
end
|
||||||
IceHUD.MungeUnitMenu = munge_unit_menu
|
|
||||||
|
|
||||||
local function figure_unit_menu(unit)
|
if UnitIsUnit(unit, "player") then
|
||||||
if unit == "focus" then
|
return "SELF"
|
||||||
return "FOCUS"
|
end
|
||||||
|
|
||||||
|
if UnitIsUnit(unit, "vehicle") then
|
||||||
|
-- NOTE: vehicle check must come before pet check for accuracy's sake because
|
||||||
|
-- a vehicle may also be considered your pet
|
||||||
|
return "VEHICLE"
|
||||||
|
end
|
||||||
|
|
||||||
|
if UnitIsUnit(unit, "pet") then
|
||||||
|
return "PET"
|
||||||
|
end
|
||||||
|
|
||||||
|
if not UnitIsPlayer(unit) then
|
||||||
|
return "TARGET"
|
||||||
|
end
|
||||||
|
|
||||||
|
local id = UnitInRaid(unit)
|
||||||
|
if id then
|
||||||
|
return "RAID_PLAYER", id
|
||||||
|
end
|
||||||
|
|
||||||
|
if UnitInParty(unit) then
|
||||||
|
return "PARTY"
|
||||||
|
end
|
||||||
|
|
||||||
|
return "PLAYER"
|
||||||
end
|
end
|
||||||
|
|
||||||
if UnitIsUnit(unit, "player") then
|
IceHUD_UnitFrame_DropDown = CreateFrame("Frame", "IceHUD_UnitFrame_DropDown", UIParent, "UIDropDownMenuTemplate")
|
||||||
return "SELF"
|
|
||||||
end
|
|
||||||
|
|
||||||
if UnitIsUnit(unit, "vehicle") then
|
|
||||||
-- NOTE: vehicle check must come before pet check for accuracy's sake because
|
|
||||||
-- a vehicle may also be considered your pet
|
|
||||||
return "VEHICLE"
|
|
||||||
end
|
|
||||||
|
|
||||||
if UnitIsUnit(unit, "pet") then
|
|
||||||
return "PET"
|
|
||||||
end
|
|
||||||
|
|
||||||
if not UnitIsPlayer(unit) then
|
|
||||||
return "TARGET"
|
|
||||||
end
|
|
||||||
|
|
||||||
local id = UnitInRaid(unit)
|
|
||||||
if id then
|
|
||||||
return "RAID_PLAYER", id
|
|
||||||
end
|
|
||||||
|
|
||||||
if UnitInParty(unit) then
|
|
||||||
return "PARTY"
|
|
||||||
end
|
|
||||||
|
|
||||||
return "PLAYER"
|
|
||||||
end
|
|
||||||
|
|
||||||
IceHUD_UnitFrame_DropDown = CreateFrame("Frame", "IceHUD_UnitFrame_DropDown", UIParent, "UIDropDownMenuTemplate")
|
|
||||||
if UnitPopupFrames then
|
|
||||||
UnitPopupFrames[#UnitPopupFrames+1] = "IceHUD_UnitFrame_DropDown"
|
UnitPopupFrames[#UnitPopupFrames+1] = "IceHUD_UnitFrame_DropDown"
|
||||||
end
|
|
||||||
|
|
||||||
IceHUD.DropdownUnit = nil
|
IceHUD.DropdownUnit = nil
|
||||||
UIDropDownMenu_Initialize(IceHUD_UnitFrame_DropDown, function()
|
UIDropDownMenu_Initialize(IceHUD_UnitFrame_DropDown, function()
|
||||||
if not IceHUD.DropdownUnit then
|
if not IceHUD.DropdownUnit then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
local menu, id = figure_unit_menu(IceHUD.DropdownUnit)
|
local menu, id = figure_unit_menu(IceHUD.DropdownUnit)
|
||||||
if menu then
|
if menu then
|
||||||
menu = IceHUD.MungeUnitMenu(menu)
|
menu = IceHUD.MungeUnitMenu(menu)
|
||||||
UnitPopup_ShowMenu(IceHUD_UnitFrame_DropDown, menu, IceHUD.DropdownUnit, nil, id)
|
UnitPopup_ShowMenu(IceHUD_UnitFrame_DropDown, menu, IceHUD.DropdownUnit, nil, id)
|
||||||
end
|
end
|
||||||
end, "MENU", nil)
|
end, "MENU", nil)
|
||||||
|
end
|
@ -1,7 +1,7 @@
|
|||||||
## Interface: 90200
|
## Interface: 90205
|
||||||
## Interface-Retail: 90200
|
## Interface-Retail: 90205
|
||||||
## Interface-Classic: 11402
|
## Interface-Classic: 11403
|
||||||
## Interface-BCC: 20503
|
## Interface-BCC: 20504
|
||||||
## Author: Parnic, originally created by Iceroth
|
## Author: Parnic, originally created by Iceroth
|
||||||
## Name: IceHUD
|
## Name: IceHUD
|
||||||
## Title: IceHUD |cff7fff7f-Ace3-|r
|
## Title: IceHUD |cff7fff7f-Ace3-|r
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
## Interface: 90200
|
## Interface: 90205
|
||||||
## Interface-Retail: 90200
|
## Interface-Retail: 90205
|
||||||
## Interface-Classic: 11402
|
## Interface-Classic: 11403
|
||||||
## Interface-BCC: 20503
|
## Interface-BCC: 20504
|
||||||
## Title: IceHUD |cff7fff7f-Options-|r
|
## Title: IceHUD |cff7fff7f-Options-|r
|
||||||
## Author: Parnic
|
## Author: Parnic
|
||||||
## Version: @project-version@
|
## Version: @project-version@
|
||||||
|
@ -1,5 +1,11 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
v1.13.14:
|
||||||
|
|
||||||
|
- Fixed target health updating infrequently on Classic.
|
||||||
|
- Fixed compatibility with WoW 9.2.5.
|
||||||
|
- Updated TOC for all game flavors.
|
||||||
|
|
||||||
v1.13.13:
|
v1.13.13:
|
||||||
|
|
||||||
- Slight optimization of Zereth Mortis puzzle detection logic.
|
- Slight optimization of Zereth Mortis puzzle detection logic.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
v1.13.13:
|
v1.13.14:
|
||||||
|
|
||||||
- Slight optimization of Zereth Mortis puzzle detection logic.
|
- Fixed target health updating infrequently on Classic.
|
||||||
- Fixed target health updating infrequently on Classic-BC.
|
- Fixed compatibility with WoW 9.2.5.
|
||||||
- Fixed reported error in TargetInvuln module.
|
- Updated TOC for all game flavors.
|
||||||
|
Reference in New Issue
Block a user