Files
FishingBuddy/FishingBuddyMinimap.lua
Roman Kharitonov 4671cbd714 Merge ilithyia-addons fork (v0.8.8e)
- Russian localization (by Maus)
- FishingSchools: track fishing pools, Gatherer integration
- FishingOutfitter: Outfitter addon integration
- Interface 11200 (patch 1.12 support)
- Improved options system with dependencies
- Better watcher frame positioning
- Various bugfixes

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 23:45:01 +10:00

117 lines
3.6 KiB
Lua
Executable File

-- Minimap Button Handling
FishingBuddy.UseButtonHole = function()
if ( ButtonHole and FishingBuddy.GetSetting("UseButtonHole") == 1 ) then
return true;
else
return false;
end
end
FishingBuddy.Minimap = {};
FishingBuddy.Minimap.OnLoad = function()
this:RegisterEvent("VARIABLES_LOADED");
end
FishingBuddy.Minimap.OnEvent = function()
if ( FishingBuddy.UseButtonHole() ) then
local info = {};
info.id=FishingBuddy.ID;
info.name=FishingBuddy.NAME;
info.tooltip=FishingBuddy.DESCRIPTION;
info.buttonFrame="FishingBuddyMinimapFrame";
info.updateFunction="FishingBuddyMinimapButton_MoveButton";
ButtonHole.application.RegisterMod(info);
elseif ( ButtonHole ) then
-- hack, hack, hack
local playerName = UnitName("player");
if ( ButtonHoleConfig[playerName] and
ButtonHoleConfig[playerName].visibleMod == FishingBuddy.ID ) then
ButtonHoleConfig[playerName].visibleMod = nil;
end
end
end
FishingBuddy.Minimap.Button_OnLoad = function()
this:SetFrameLevel(this:GetFrameLevel()+1)
this:RegisterForClicks("LeftButtonDown", "RightButtonDown");
this:RegisterEvent("VARIABLES_LOADED");
end
FishingBuddy.Minimap.Button_OnClick = function(button)
if ( button == "RightButton" ) then
if ( IsShiftKeyDown() ) then
ToggleFishingBuddyFrame("FishingOptionsFrame");
else
-- Toggle menu
local menu = getglobal("FishingBuddyMinimapMenu");
menu.point = "TOPRIGHT";
menu.relativePoint = "CENTER";
ToggleDropDownMenu(1, nil, menu, "FishingBuddyMinimapButton", 0, 0);
end
elseif ( FishingBuddy.GetSetting("MinimapClickToSwitch") == 1 ) then
FishingBuddy.Command(FishingBuddy.SWITCH);
else
FishingBuddy.Command("");
end
end
FishingBuddyMinimapButton_MoveButton = function()
if ( FishingBuddy.IsLoaded() ) then
local where = FishingBuddy.GetSetting("MinimapButtonPosition");
FishingBuddyMinimapFrame:ClearAllPoints();
FishingBuddyMinimapFrame:SetPoint("TOPLEFT", "Minimap", "TOPLEFT",
52 - (80 * cos(where)),
(80 * sin(where)) - 52);
end
end
FishingBuddy.UpdateMinimap = function()
FishingBuddyMinimapButton_MoveButton();
if ( FishingBuddy.GetSetting("MinimapButtonVisible") == 1 and
Minimap:IsVisible() ) then
FishingBuddyMinimapButton:EnableMouse(true);
FishingBuddyMinimapButton:Show();
FishingBuddyMinimapFrame:Show();
else
FishingBuddyMinimapButton:EnableMouse(false);
FishingBuddyMinimapButton:Hide();
FishingBuddyMinimapFrame:Hide();
end
end
FishingBuddy.Minimap.Button_OnEvent = function()
FishingBuddy.UpdateMinimap();
end
FishingBuddy.Minimap.Button_OnEnter = function()
if ( GameTooltip.fbmmbfinished ) then
return;
end
if ( FishingBuddy.GetSetting("UseButtonHole") == 0 ) then
GameTooltip.fbmmbfinished = 1;
GameTooltip:SetOwner(FishingBuddyMinimapFrame, "ANCHOR_LEFT");
GameTooltip:AddLine(FishingBuddy.NAME);
local text = FishingBuddy.TooltipBody("MinimapClickToSwitch");
GameTooltip:AddLine(text,.8,.8,.8,1);
GameTooltip:Show();
end
end
FishingBuddy.Minimap.Button_OnLeave = function()
GameTooltip:Hide();
GameTooltip.fbmmbfinished = nil;
end
function FishingBuddy_ToggleMinimap()
FishingBuddy.SavedToggleMinimap();
FishingBuddy.UpdateMinimap();
end
FishingBuddy.Minimap.Menu_Initialize = function()
FishingBuddy.MakeDropDown(FishingBuddy.CLICKTOSWITCH_ONOFF,
"MinimapClickToSwitch");
end