Compare commits
18 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 298424ebdf | |||
| 6926a59e8e | |||
| 8d6c686692 | |||
| 115dc0c7e9 | |||
| 45a287e7cc | |||
| ad2b1a0091 | |||
| ee70573392 | |||
| 54bd7a319f | |||
| 9a3ad6f6c5 | |||
| a8d4b2bf01 | |||
| b3aa6b3a2c | |||
| 89aa56d5a0 | |||
| 69de94628f | |||
| de0977dbda | |||
| ed7a9c95dd | |||
| a94f4c920f | |||
| f7f4563519 | |||
| 91dab47f20 |
+487
-147
@@ -1,3 +1,5 @@
|
|||||||
|
local MM_Initialized = false
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Global variable for storage of settings/options
|
-- Global variable for storage of settings/options
|
||||||
--
|
--
|
||||||
@@ -9,53 +11,57 @@ MiniMageOptions = { };
|
|||||||
--
|
--
|
||||||
|
|
||||||
function class_OnLoad()
|
function class_OnLoad()
|
||||||
MM_class = UnitClass("player");
|
MM_class = UnitClass("player");
|
||||||
if (MM_class ~= "Mage") then
|
if (MM_class ~= "Mage") then
|
||||||
this:Hide();
|
this:Hide();
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function MM_Initialize()
|
function MM_Initialize()
|
||||||
MM_fac = UnitFactionGroup('player');
|
if MM_Initialized then return end
|
||||||
M_class = UnitClass("player");
|
MM_Initialized = true
|
||||||
if (M_class == "Mage") then
|
MM_fac = UnitFactionGroup('player');
|
||||||
if (DEFAULT_CHAT_FRAME) then
|
M_class = UnitClass("player");
|
||||||
DEFAULT_CHAT_FRAME:AddMessage(MINIMAGE_ANNOUNCE_GREETING..M_class..MINIMAGE_ANNOUNCE_ENABLED);
|
if (M_class == "Mage") then
|
||||||
end
|
if (DEFAULT_CHAT_FRAME) then
|
||||||
else
|
DEFAULT_CHAT_FRAME:AddMessage(MINIMAGE_ANNOUNCE_GREETING..M_class..MINIMAGE_ANNOUNCE_ENABLED);
|
||||||
if (DEFAULT_CHAT_FRAME) then
|
end
|
||||||
DEFAULT_CHAT_FRAME:AddMessage(MINIMAGE_ANNOUNCE_GREETING..M_class..MINIMAGE_ANNOUNCE_DISABLED);
|
else
|
||||||
end
|
if (DEFAULT_CHAT_FRAME) then
|
||||||
end
|
DEFAULT_CHAT_FRAME:AddMessage(MINIMAGE_ANNOUNCE_GREETING..M_class..MINIMAGE_ANNOUNCE_DISABLED);
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function MM_Button_Initialize()
|
function MM_Button_Initialize()
|
||||||
if(event == "VARIABLES_LOADED") then
|
if(event == "VARIABLES_LOADED") then
|
||||||
if (MiniMageOptions.MMButtonPosition == nil) then
|
if (MiniMageOptions.MMButtonPosition == nil) then
|
||||||
MiniMageOptions.MMButtonPosition = 0;
|
MiniMageOptions.MMButtonPosition = 0;
|
||||||
end
|
end
|
||||||
end
|
if (MiniMageOptions.HidePortals == nil) then
|
||||||
|
MiniMageOptions.HidePortals = false;
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function MM_DropDown_Initialize()
|
function MM_DropDown_Initialize()
|
||||||
local dropdown;
|
local dropdown;
|
||||||
if ( UIDROPDOWNMENU_OPEN_MENU ) then
|
if ( UIDROPDOWNMENU_OPEN_MENU ) then
|
||||||
dropdown = getglobal(UIDROPDOWNMENU_OPEN_MENU);
|
dropdown = getglobal(UIDROPDOWNMENU_OPEN_MENU);
|
||||||
else
|
else
|
||||||
dropdown = this;
|
dropdown = this;
|
||||||
end
|
end
|
||||||
MM_DropDown_InitButtons();
|
MM_DropDown_InitButtons();
|
||||||
end
|
end
|
||||||
|
|
||||||
function MM_DropDown_OnLoad()
|
function MM_DropDown_OnLoad()
|
||||||
UIDropDownMenu_Initialize(this, MM_DropDown_Initialize, "MENU");
|
UIDropDownMenu_Initialize(this, MM_DropDown_Initialize, "MENU");
|
||||||
end
|
end
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Minimap button drag/drop functions
|
-- Minimap button drag/drop functions
|
||||||
--
|
|
||||||
|
|
||||||
-- Thanks to Atlas for the button dragging code
|
-- Thanks to Atlas for the button dragging code
|
||||||
|
--
|
||||||
|
|
||||||
function MM_Button_BeingDragged()
|
function MM_Button_BeingDragged()
|
||||||
local xpos,ypos = GetCursorPosition();
|
local xpos,ypos = GetCursorPosition();
|
||||||
@@ -66,7 +72,7 @@ function MM_Button_BeingDragged()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function MM_Button_OnClick()
|
function MM_Button_OnClick()
|
||||||
MM_ToggleDropDown();
|
MM_ToggleDropDown();
|
||||||
end
|
end
|
||||||
|
|
||||||
function MM_Button_OnEnter()
|
function MM_Button_OnEnter()
|
||||||
@@ -86,13 +92,25 @@ function MM_Button_SetPosition(v)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function MM_Button_UpdatePosition()
|
function MM_Button_UpdatePosition()
|
||||||
MM_ButtonFrame:SetPoint(
|
MM_ButtonFrame:SetPoint(
|
||||||
"TOPLEFT",
|
"TOPLEFT",
|
||||||
"Minimap",
|
"Minimap",
|
||||||
"TOPLEFT",
|
"TOPLEFT",
|
||||||
54 - (78 * cos(MiniMageOptions.MMButtonPosition)),
|
54 - (78 * cos(MiniMageOptions.MMButtonPosition)),
|
||||||
(78 * sin(MiniMageOptions.MMButtonPosition)) - 55
|
(78 * sin(MiniMageOptions.MMButtonPosition)) - 55
|
||||||
);
|
);
|
||||||
|
end
|
||||||
|
|
||||||
|
--
|
||||||
|
-- ADDED: REQUIRED LEVEL CHECKS
|
||||||
|
--
|
||||||
|
|
||||||
|
function MM_CanCastTeleport()
|
||||||
|
return UnitLevel("player") >= 20;
|
||||||
|
end
|
||||||
|
|
||||||
|
function MM_CanCastPortal()
|
||||||
|
return UnitLevel("player") >= 40;
|
||||||
end
|
end
|
||||||
|
|
||||||
--
|
--
|
||||||
@@ -100,145 +118,467 @@ end
|
|||||||
--
|
--
|
||||||
|
|
||||||
function MM_ToggleDropDown()
|
function MM_ToggleDropDown()
|
||||||
MM_DropDownFrame.point = "TOPRIGHT";
|
MM_DropDownFrame.point = "TOPRIGHT";
|
||||||
MM_DropDownFrame.relativePoint = "BOTTOMLEFT";
|
MM_DropDownFrame.relativePoint = "BOTTOMLEFT";
|
||||||
ToggleDropDownMenu(1, nil, MM_DropDownFrame);
|
ToggleDropDownMenu(1, nil, MM_DropDownFrame);
|
||||||
end
|
end
|
||||||
|
|
||||||
function MM_DropDown_InitButtons()
|
function MM_DropDown_InitButtons()
|
||||||
local info = {};
|
local info = {};
|
||||||
info.text = MINIMAGE_LABEL_TITLE;
|
info.text = MINIMAGE_LABEL_TITLE;
|
||||||
info.isTitle = 1;
|
info.isTitle = 1;
|
||||||
info.justifyH = "CENTER";
|
info.justifyH = "CENTER";
|
||||||
info.notCheckable = 1;
|
info.notCheckable = 1;
|
||||||
UIDropDownMenu_AddButton(info);
|
|
||||||
|
|
||||||
local fact = UnitFactionGroup('player');
|
info.tooltipTitle = info.text
|
||||||
if (fact == "Horde") then
|
info.tooltipText = "Click to cast"
|
||||||
MM_DropDown_ForTheHorde();
|
info.tooltipOnButton = true
|
||||||
else
|
|
||||||
MM_DropDown_ForTheAlliance();
|
UIDropDownMenu_AddButton(info);
|
||||||
end
|
|
||||||
|
local fact = UnitFactionGroup('player');
|
||||||
|
if (fact == "Horde") then
|
||||||
|
MM_DropDown_ForTheHorde();
|
||||||
|
else
|
||||||
|
MM_DropDown_ForTheAlliance();
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function MM_DropDown_ForTheHorde()
|
function MM_DropDown_ForTheHorde()
|
||||||
local appender = ': ';
|
local appender = ': ';
|
||||||
|
|
||||||
local info = { };
|
if not MiniMageOptions.HidePortals then
|
||||||
info.text = MINIMAGE_LABEL_PORTAL;
|
local info = { };
|
||||||
info.isTitle = 1;
|
info.text = MINIMAGE_LABEL_PORTAL;
|
||||||
info.notCheckable = 1;
|
info.isTitle = 1;
|
||||||
UIDropDownMenu_AddButton(info);
|
info.notCheckable = 1;
|
||||||
|
|
||||||
info = { };
|
info.tooltipTitle = info.text
|
||||||
info.text = MINIMAGE_LABEL_ORG;
|
info.tooltipText = "Portal spells"
|
||||||
info.func = function(msg) CastSpellByName(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_ORG); end;
|
info.tooltipOnButton = true
|
||||||
UIDropDownMenu_AddButton(info);
|
|
||||||
|
|
||||||
info = { };
|
UIDropDownMenu_AddButton(info);
|
||||||
info.text = MINIMAGE_LABEL_STONARD;
|
|
||||||
info.func = function(msg) CastSpellByName(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_STONARD); end;
|
|
||||||
UIDropDownMenu_AddButton(info);
|
|
||||||
|
|
||||||
info = { };
|
-- ORG PORTAL
|
||||||
info.text = MINIMAGE_LABEL_TB;
|
info = { };
|
||||||
info.func = function(msg) CastSpellByName(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_TB); end;
|
info.text = MINIMAGE_LABEL_ORG;
|
||||||
UIDropDownMenu_AddButton(info);
|
info.disabled = not MM_CanCastPortal();
|
||||||
|
info.func = function(msg)
|
||||||
|
if MM_CanCastPortal() then
|
||||||
|
MM_TryCast(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_ORG);
|
||||||
|
end
|
||||||
|
end;
|
||||||
|
|
||||||
info = { };
|
info.tooltipTitle = info.text
|
||||||
info.text = MINIMAGE_LABEL_UC;
|
info.tooltipText = "Portal to Orgrimmar"
|
||||||
info.func = function(msg) CastSpellByName(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_UC); end;
|
info.tooltipOnButton = true
|
||||||
UIDropDownMenu_AddButton(info);
|
|
||||||
|
|
||||||
info = { };
|
UIDropDownMenu_AddButton(info);
|
||||||
info.text = MINIMAGE_LABEL_TELEPORT;
|
|
||||||
info.isTitle = 1;
|
|
||||||
info.notCheckable = 1;
|
|
||||||
UIDropDownMenu_AddButton(info);
|
|
||||||
|
|
||||||
info = { };
|
-- STONARD PORTAL
|
||||||
info.text = MINIMAGE_LABEL_ORG;
|
info = { };
|
||||||
info.func = function(msg) CastSpellByName(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_ORG); end;
|
info.text = MINIMAGE_LABEL_STONARD;
|
||||||
UIDropDownMenu_AddButton(info);
|
info.disabled = not MM_CanCastPortal();
|
||||||
|
info.func = function(msg)
|
||||||
|
if MM_CanCastPortal() then
|
||||||
|
MM_TryCast(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_STONARD);
|
||||||
|
end
|
||||||
|
end;
|
||||||
|
|
||||||
info = { };
|
info.tooltipTitle = info.text
|
||||||
info.text = MINIMAGE_LABEL_STONARD;
|
info.tooltipText = "Portal to Stonard"
|
||||||
info.func = function(msg) CastSpellByName(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_STONARD); end;
|
info.tooltipOnButton = true
|
||||||
UIDropDownMenu_AddButton(info);
|
|
||||||
|
|
||||||
info = { };
|
UIDropDownMenu_AddButton(info);
|
||||||
info.text = MINIMAGE_LABEL_TB;
|
|
||||||
info.func = function(msg) CastSpellByName(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_TB); end;
|
|
||||||
UIDropDownMenu_AddButton(info);
|
|
||||||
|
|
||||||
info = { };
|
-- TB PORTAL
|
||||||
info.text = MINIMAGE_LABEL_UC;
|
info = { };
|
||||||
info.func = function(msg) CastSpellByName(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_UC); end;
|
info.text = MINIMAGE_LABEL_TB;
|
||||||
UIDropDownMenu_AddButton(info);
|
info.disabled = not MM_CanCastPortal();
|
||||||
|
info.func = function(msg)
|
||||||
|
if MM_CanCastPortal() then
|
||||||
|
MM_TryCast(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_TB);
|
||||||
|
end
|
||||||
|
end;
|
||||||
|
|
||||||
|
info.tooltipTitle = info.text
|
||||||
|
info.tooltipText = "Portal to Thunder Bluff"
|
||||||
|
info.tooltipOnButton = true
|
||||||
|
|
||||||
|
UIDropDownMenu_AddButton(info);
|
||||||
|
|
||||||
|
-- UC PORTAL
|
||||||
|
info = { };
|
||||||
|
info.text = MINIMAGE_LABEL_UC;
|
||||||
|
info.disabled = not MM_CanCastPortal();
|
||||||
|
info.func = function(msg)
|
||||||
|
if MM_CanCastPortal() then
|
||||||
|
MM_TryCast(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_UC);
|
||||||
|
end
|
||||||
|
end;
|
||||||
|
|
||||||
|
info.tooltipTitle = info.text
|
||||||
|
info.tooltipText = "Portal to Undercity"
|
||||||
|
info.tooltipOnButton = true
|
||||||
|
|
||||||
|
UIDropDownMenu_AddButton(info);
|
||||||
|
end
|
||||||
|
|
||||||
|
-- TELEPORT SECTION
|
||||||
|
local info = { };
|
||||||
|
info.text = MINIMAGE_LABEL_TELEPORT;
|
||||||
|
info.isTitle = 1;
|
||||||
|
info.notCheckable = 1;
|
||||||
|
|
||||||
|
info.tooltipTitle = info.text
|
||||||
|
info.tooltipText = "Teleport spells"
|
||||||
|
info.tooltipOnButton = true
|
||||||
|
|
||||||
|
UIDropDownMenu_AddButton(info);
|
||||||
|
|
||||||
|
-- ORG TELEPORT
|
||||||
|
info = { };
|
||||||
|
info.text = MINIMAGE_LABEL_ORG;
|
||||||
|
info.disabled = not MM_CanCastTeleport();
|
||||||
|
info.func = function(msg)
|
||||||
|
if MM_CanCastTeleport() then
|
||||||
|
MM_TryCast(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_ORG);
|
||||||
|
end
|
||||||
|
end;
|
||||||
|
|
||||||
|
info.tooltipTitle = info.text
|
||||||
|
info.tooltipText = "Teleport to Orgrimmar"
|
||||||
|
info.tooltipOnButton = true
|
||||||
|
|
||||||
|
UIDropDownMenu_AddButton(info);
|
||||||
|
|
||||||
|
-- STONARD TELEPORT
|
||||||
|
info = { };
|
||||||
|
info.text = MINIMAGE_LABEL_STONARD;
|
||||||
|
info.disabled = not MM_CanCastTeleport();
|
||||||
|
info.func = function(msg)
|
||||||
|
if MM_CanCastTeleport() then
|
||||||
|
MM_TryCast(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_STONARD);
|
||||||
|
end
|
||||||
|
end;
|
||||||
|
|
||||||
|
info.tooltipTitle = info.text
|
||||||
|
info.tooltipText = "Teleport to Stonard"
|
||||||
|
info.tooltipOnButton = true
|
||||||
|
|
||||||
|
UIDropDownMenu_AddButton(info);
|
||||||
|
|
||||||
|
-- TB TELEPORT
|
||||||
|
info = { };
|
||||||
|
info.text = MINIMAGE_LABEL_TB;
|
||||||
|
info.disabled = not MM_CanCastTeleport();
|
||||||
|
info.func = function(msg)
|
||||||
|
if MM_CanCastTeleport() then
|
||||||
|
MM_TryCast(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_TB);
|
||||||
|
end
|
||||||
|
end;
|
||||||
|
|
||||||
|
info.tooltipTitle = info.text
|
||||||
|
info.tooltipText = "Teleport to Thunder Bluff"
|
||||||
|
info.tooltipOnButton = true
|
||||||
|
|
||||||
|
UIDropDownMenu_AddButton(info);
|
||||||
|
|
||||||
|
-- UC TELEPORT
|
||||||
|
info = { };
|
||||||
|
info.text = MINIMAGE_LABEL_UC;
|
||||||
|
info.disabled = not MM_CanCastTeleport();
|
||||||
|
info.func = function(msg)
|
||||||
|
if MM_CanCastTeleport() then
|
||||||
|
MM_TryCast(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_UC);
|
||||||
|
end
|
||||||
|
end;
|
||||||
|
|
||||||
|
info.tooltipTitle = info.text
|
||||||
|
info.tooltipText = "Teleport to Undercity"
|
||||||
|
info.tooltipOnButton = true
|
||||||
|
|
||||||
|
UIDropDownMenu_AddButton(info);
|
||||||
end
|
end
|
||||||
|
|
||||||
function MM_DropDown_ForTheAlliance()
|
function MM_DropDown_ForTheAlliance()
|
||||||
local appender = ': ';
|
local appender = ': ';
|
||||||
|
|
||||||
local info = { };
|
if not MiniMageOptions.HidePortals then
|
||||||
info.text = MINIMAGE_LABEL_PORTAL;
|
local info = { };
|
||||||
info.isTitle = 1;
|
info.text = MINIMAGE_LABEL_PORTAL;
|
||||||
info.notCheckable = 1;
|
info.isTitle = 1;
|
||||||
UIDropDownMenu_AddButton(info);
|
info.notCheckable = 1;
|
||||||
|
|
||||||
info = { };
|
info.tooltipTitle = info.text
|
||||||
info.text = MINIMAGE_LABEL_ALAH;
|
info.tooltipText = "Portal spells"
|
||||||
info.func = function(msg) CastSpellByName(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_ALAH); end;
|
info.tooltipOnButton = true
|
||||||
UIDropDownMenu_AddButton(info);
|
|
||||||
|
|
||||||
info = { };
|
UIDropDownMenu_AddButton(info);
|
||||||
info.text = MINIMAGE_LABEL_DARNASSUS;
|
|
||||||
info.func = function(msg) CastSpellByName(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_DARNASSUS); end;
|
|
||||||
UIDropDownMenu_AddButton(info);
|
|
||||||
|
|
||||||
info = { };
|
-- ALAH PORTAL
|
||||||
info.text = MINIMAGE_LABEL_IF;
|
info = { };
|
||||||
info.func = function(msg) CastSpellByName(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_IF); end;
|
info.text = MINIMAGE_LABEL_ALAH;
|
||||||
UIDropDownMenu_AddButton(info);
|
info.disabled = not MM_CanCastPortal();
|
||||||
|
info.func = function(msg)
|
||||||
|
if MM_CanCastPortal() then
|
||||||
|
MM_TryCast(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_ALAH);
|
||||||
|
end
|
||||||
|
end;
|
||||||
|
|
||||||
info = { };
|
info.tooltipTitle = info.text
|
||||||
info.text = MINIMAGE_LABEL_SW;
|
info.tooltipText = "Portal to Aerie Peak"
|
||||||
info.func = function(msg) CastSpellByName(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_SW); end;
|
info.tooltipOnButton = true
|
||||||
UIDropDownMenu_AddButton(info);
|
|
||||||
|
|
||||||
info = { };
|
UIDropDownMenu_AddButton(info);
|
||||||
info.text = MINIMAGE_LABEL_THERAMORE;
|
|
||||||
info.func = function(msg) CastSpellByName(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_THERAMORE); end;
|
|
||||||
UIDropDownMenu_AddButton(info);
|
|
||||||
|
|
||||||
info = { };
|
-- DARNASSUS PORTAL
|
||||||
info.text = MINIMAGE_LABEL_TELEPORT;
|
info = { };
|
||||||
info.isTitle = 1;
|
info.text = MINIMAGE_LABEL_DARNASSUS;
|
||||||
info.notCheckable = 1;
|
info.disabled = not MM_CanCastPortal();
|
||||||
UIDropDownMenu_AddButton(info);
|
info.func = function(msg)
|
||||||
|
if MM_CanCastPortal() then
|
||||||
|
MM_TryCast(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_DARNASSUS);
|
||||||
|
end
|
||||||
|
end;
|
||||||
|
|
||||||
info = { };
|
info.tooltipTitle = info.text
|
||||||
info.text = MINIMAGE_LABEL_ALAH;
|
info.tooltipText = "Portal to Darnassus"
|
||||||
info.func = function(msg) CastSpellByName(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_ALAH); end;
|
info.tooltipOnButton = true
|
||||||
UIDropDownMenu_AddButton(info);
|
|
||||||
|
|
||||||
info = { };
|
UIDropDownMenu_AddButton(info);
|
||||||
info.text = MINIMAGE_LABEL_DARNASSUS;
|
|
||||||
info.func = function(msg) CastSpellByName(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_DARNASSUS); end;
|
|
||||||
UIDropDownMenu_AddButton(info);
|
|
||||||
|
|
||||||
info = { };
|
-- IF PORTAL
|
||||||
info.text = MINIMAGE_LABEL_IF;
|
info = { };
|
||||||
info.func = function(msg) CastSpellByName(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_IF); end;
|
info.text = MINIMAGE_LABEL_IF;
|
||||||
UIDropDownMenu_AddButton(info);
|
info.disabled = not MM_CanCastPortal();
|
||||||
|
info.func = function(msg)
|
||||||
|
if MM_CanCastPortal() then
|
||||||
|
MM_TryCast(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_IF);
|
||||||
|
end
|
||||||
|
end;
|
||||||
|
|
||||||
info = { };
|
info.tooltipTitle = info.text
|
||||||
info.text = MINIMAGE_LABEL_SW;
|
info.tooltipText = "Portal to Ironforge"
|
||||||
info.func = function(msg) CastSpellByName(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_SW); end;
|
info.tooltipOnButton = true
|
||||||
UIDropDownMenu_AddButton(info);
|
|
||||||
|
|
||||||
info = { };
|
UIDropDownMenu_AddButton(info);
|
||||||
info.text = MINIMAGE_LABEL_THERAMORE;
|
|
||||||
info.func = function(msg) CastSpellByName(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_THERAMORE); end;
|
-- SW PORTAL
|
||||||
UIDropDownMenu_AddButton(info);
|
info = { };
|
||||||
|
info.text = MINIMAGE_LABEL_SW;
|
||||||
|
info.disabled = not MM_CanCastPortal();
|
||||||
|
info.func = function(msg)
|
||||||
|
if MM_CanCastPortal() then
|
||||||
|
MM_TryCast(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_SW);
|
||||||
|
end
|
||||||
|
end;
|
||||||
|
|
||||||
|
info.tooltipTitle = info.text
|
||||||
|
info.tooltipText = "Portal to Stormwind"
|
||||||
|
info.tooltipOnButton = true
|
||||||
|
|
||||||
|
UIDropDownMenu_AddButton(info);
|
||||||
|
|
||||||
|
-- THERAMORE PORTAL
|
||||||
|
info = { };
|
||||||
|
info.text = MINIMAGE_LABEL_THERAMORE;
|
||||||
|
info.disabled = not MM_CanCastPortal();
|
||||||
|
info.func = function(msg)
|
||||||
|
if MM_CanCastPortal() then
|
||||||
|
MM_TryCast(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_THERAMORE);
|
||||||
|
end
|
||||||
|
end;
|
||||||
|
|
||||||
|
info.tooltipTitle = info.text
|
||||||
|
info.tooltipText = "Portal to Theramore"
|
||||||
|
info.tooltipOnButton = true
|
||||||
|
|
||||||
|
UIDropDownMenu_AddButton(info);
|
||||||
|
end
|
||||||
|
|
||||||
|
-- TELEPORT TITLE
|
||||||
|
local info = { };
|
||||||
|
info.text = MINIMAGE_LABEL_TELEPORT;
|
||||||
|
info.isTitle = 1;
|
||||||
|
info.notCheckable = 1;
|
||||||
|
|
||||||
|
info.tooltipTitle = info.text
|
||||||
|
info.tooltipText = "Teleport spells"
|
||||||
|
info.tooltipOnButton = true
|
||||||
|
|
||||||
|
UIDropDownMenu_AddButton(info);
|
||||||
|
|
||||||
|
-- ALAH TELEPORT
|
||||||
|
info = { };
|
||||||
|
info.text = MINIMAGE_LABEL_ALAH;
|
||||||
|
info.disabled = not MM_CanCastTeleport();
|
||||||
|
info.func = function(msg)
|
||||||
|
if MM_CanCastTeleport() then
|
||||||
|
MM_TryCast(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_ALAH);
|
||||||
|
end
|
||||||
|
end;
|
||||||
|
|
||||||
|
info.tooltipTitle = info.text
|
||||||
|
info.tooltipText = "Teleport to Aerie Peak"
|
||||||
|
info.tooltipOnButton = true
|
||||||
|
|
||||||
|
UIDropDownMenu_AddButton(info);
|
||||||
|
|
||||||
|
-- DARN TELEPORT
|
||||||
|
info = { };
|
||||||
|
info.text = MINIMAGE_LABEL_DARNASSUS;
|
||||||
|
info.disabled = not MM_CanCastTeleport();
|
||||||
|
info.func = function(msg)
|
||||||
|
if MM_CanCastTeleport() then
|
||||||
|
MM_TryCast(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_DARNASSUS);
|
||||||
|
end
|
||||||
|
end;
|
||||||
|
|
||||||
|
info.tooltipTitle = info.text
|
||||||
|
info.tooltipText = "Teleport to Darnassus"
|
||||||
|
info.tooltipOnButton = true
|
||||||
|
|
||||||
|
UIDropDownMenu_AddButton(info);
|
||||||
|
|
||||||
|
-- IF TELEPORT
|
||||||
|
info = { };
|
||||||
|
info.text = MINIMAGE_LABEL_IF;
|
||||||
|
info.disabled = not MM_CanCastTeleport();
|
||||||
|
info.func = function(msg)
|
||||||
|
if MM_CanCastTeleport() then
|
||||||
|
MM_TryCast(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_IF);
|
||||||
|
end
|
||||||
|
end;
|
||||||
|
|
||||||
|
info.tooltipTitle = info.text
|
||||||
|
info.tooltipText = "Teleport to Ironforge"
|
||||||
|
info.tooltipOnButton = true
|
||||||
|
|
||||||
|
UIDropDownMenu_AddButton(info);
|
||||||
|
|
||||||
|
-- SW TELEPORT
|
||||||
|
info = { };
|
||||||
|
info.text = MINIMAGE_LABEL_SW;
|
||||||
|
info.disabled = not MM_CanCastTeleport();
|
||||||
|
info.func = function(msg)
|
||||||
|
if MM_CanCastTeleport() then
|
||||||
|
MM_TryCast(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_SW);
|
||||||
|
end
|
||||||
|
end;
|
||||||
|
|
||||||
|
info.tooltipTitle = info.text
|
||||||
|
info.tooltipText = "Teleport to Stormwind"
|
||||||
|
info.tooltipOnButton = true
|
||||||
|
|
||||||
|
UIDropDownMenu_AddButton(info);
|
||||||
|
|
||||||
|
-- THERAMORE TELEPORT
|
||||||
|
info = { };
|
||||||
|
info.text = MINIMAGE_LABEL_THERAMORE;
|
||||||
|
info.disabled = not MM_CanCastTeleport();
|
||||||
|
info.func = function(msg)
|
||||||
|
if MM_CanCastTeleport() then
|
||||||
|
MM_TryCast(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_THERAMORE);
|
||||||
|
end
|
||||||
|
end;
|
||||||
|
|
||||||
|
info.tooltipTitle = info.text
|
||||||
|
info.tooltipText = "Teleport to Theramore"
|
||||||
|
info.tooltipOnButton = true
|
||||||
|
|
||||||
|
UIDropDownMenu_AddButton(info);
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Slash Commands
|
||||||
|
--
|
||||||
|
|
||||||
|
SLASH_MINIMAGE1 = "/mmage"
|
||||||
|
|
||||||
|
SlashCmdList["MINIMAGE"] = function(msg)
|
||||||
|
msg = string.lower(msg or "")
|
||||||
|
|
||||||
|
if msg == "reset" then
|
||||||
|
MiniMageOptions = {}
|
||||||
|
DEFAULT_CHAT_FRAME:AddMessage("|cffffff00MiniMage: options reset.|r")
|
||||||
|
|
||||||
|
elseif msg == "icon" then
|
||||||
|
if MM_ButtonFrame:IsShown() then
|
||||||
|
MM_ButtonFrame:Hide()
|
||||||
|
DEFAULT_CHAT_FRAME:AddMessage("|cffffff00MiniMage: minimap button hidden.|r")
|
||||||
|
else
|
||||||
|
MM_ButtonFrame:Show()
|
||||||
|
DEFAULT_CHAT_FRAME:AddMessage("|cffffff00MiniMage: minimap button shown.|r")
|
||||||
|
end
|
||||||
|
|
||||||
|
elseif msg == "portals" then
|
||||||
|
MiniMageOptions.HidePortals = not MiniMageOptions.HidePortals
|
||||||
|
|
||||||
|
if MiniMageOptions.HidePortals then
|
||||||
|
DEFAULT_CHAT_FRAME:AddMessage("|cffffff00MiniMage: Portal hidden.|r")
|
||||||
|
else
|
||||||
|
DEFAULT_CHAT_FRAME:AddMessage("|cffffff00MiniMage: Portal shown.|r")
|
||||||
|
end
|
||||||
|
|
||||||
|
elseif msg == "help" or msg == "" then
|
||||||
|
DEFAULT_CHAT_FRAME:AddMessage("|cffffff00MiniMage commands:|r")
|
||||||
|
DEFAULT_CHAT_FRAME:AddMessage("/mmage help - Show this help")
|
||||||
|
DEFAULT_CHAT_FRAME:AddMessage("/mmage icon - Show/Hide minimap button")
|
||||||
|
DEFAULT_CHAT_FRAME:AddMessage("/mmage reset - Reset addon saved options")
|
||||||
|
DEFAULT_CHAT_FRAME:AddMessage("/mmage portals - Show/Hide portal in dropdown")
|
||||||
|
|
||||||
|
else
|
||||||
|
DEFAULT_CHAT_FRAME:AddMessage("|cffff0000MiniMage: unknown command.|r")
|
||||||
|
DEFAULT_CHAT_FRAME:AddMessage("Type /mmage help for options.")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- ===== ADDED: Minimal cast tracking + wrapper + error listener + spell check =====
|
||||||
|
|
||||||
|
-- Track last attempted spell cast
|
||||||
|
local MM_LastAttemptedSpell = nil
|
||||||
|
local MM_LastAttemptTime = 0
|
||||||
|
|
||||||
|
-- Check if player knows the spell
|
||||||
|
function MM_HasSpell(spellName)
|
||||||
|
for i=1, GetNumSpellTabs() do
|
||||||
|
local _, _, offset, numSpells = GetSpellTabInfo(i)
|
||||||
|
for j=1, numSpells do
|
||||||
|
local name = GetSpellName(j + offset, BOOKTYPE_SPELL)
|
||||||
|
if name == spellName then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Wrapper to track attempts and check if learned
|
||||||
|
function MM_TryCast(spellName)
|
||||||
|
if not MM_HasSpell(spellName) then
|
||||||
|
DEFAULT_CHAT_FRAME:AddMessage("|cffff0000You Have Not Learned " .. spellName .. ".|r")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
MM_LastAttemptedSpell = spellName
|
||||||
|
MM_LastAttemptTime = GetTime()
|
||||||
|
CastSpellByName(spellName)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Event frame to listen for UI error messages and show custom text
|
||||||
|
local MM_EventFrame = CreateFrame("Frame")
|
||||||
|
MM_EventFrame:RegisterEvent("UI_ERROR_MESSAGE")
|
||||||
|
|
||||||
|
MM_EventFrame:SetScript("OnEvent", function(self, event, message)
|
||||||
|
local now = GetTime()
|
||||||
|
|
||||||
|
-- Only react if the error happens within 1 second of our own click
|
||||||
|
if MM_LastAttemptedSpell and (now - MM_LastAttemptTime) < 1.0 then
|
||||||
|
-- Any standard "failed" message triggers custom output
|
||||||
|
if message then
|
||||||
|
DEFAULT_CHAT_FRAME:AddMessage("|cffff0000You Have Not Learned " .. MM_LastAttemptedSpell .. ".|r")
|
||||||
|
end
|
||||||
|
MM_LastAttemptedSpell = nil
|
||||||
|
MM_LastAttemptTime = 0
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|||||||
+3
-2
@@ -1,7 +1,8 @@
|
|||||||
## Interface: 11200
|
## Interface: 11200
|
||||||
## Title: MiniMage_TWOW
|
## Title: MiniMage_TWOW
|
||||||
## Version: 1.0
|
## Version: 1.2
|
||||||
## Notes: Forked version of MiniMage 1.2b. No original GitHub Repo found, only found in Wow1.12.1_Addons_Collection
|
## Notes: Forked version of MiniMage 1.2b. No original GitHub Repo found, only found in Wow1.12.1_Addons_Collection
|
||||||
## SavedVariables: MiniMageOptions
|
## SavedVariables: MiniMageOptions
|
||||||
MiniMage_TWOW.xml
|
|
||||||
localization.lua
|
localization.lua
|
||||||
|
MiniMage_TWOW.lua
|
||||||
|
MiniMage_TWOW.xml
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/ C:\Projects\WoW\Bin\Interface\FrameXML\UI.xsd">
|
<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/ C:\Projects\WoW\Bin\Interface\FrameXML\UI.xsd">
|
||||||
<Script file="MiniMage_TWOW.lua"/>
|
<Script file="localization.lua"/>
|
||||||
<Script file="localization.lua"/>
|
<Script file="MiniMage_TWOW.lua"/>
|
||||||
|
|
||||||
<!-- Empty core frame used for initialization and such -->
|
<!-- Empty core frame used for initialization and such -->
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ MiniMage_TWOW is a lightweight World of Warcraft addon designed for Mages, provi
|
|||||||
* I do not take credit for creating this addon, only modifying it to include TurtleWoW specific features
|
* I do not take credit for creating this addon, only modifying it to include TurtleWoW specific features
|
||||||
|
|
||||||
|
|
||||||
|
# Version 1.2
|
||||||
## TurtleWoW Specific Features
|
## TurtleWoW Specific Features
|
||||||
* Includes Alah'Thalas and Theramore for Alliance characters.
|
* Includes Alah'Thalas and Theramore for Alliance characters.
|
||||||
* Includes Stonard for Horde characters.
|
* Includes Stonard for Horde characters.
|
||||||
@@ -17,6 +17,9 @@ MiniMage_TWOW is a lightweight World of Warcraft addon designed for Mages, provi
|
|||||||
* **Minimap Button**: Drag and position a minimap button for easy access.
|
* **Minimap Button**: Drag and position a minimap button for easy access.
|
||||||
* **Dropdown Menu**: Quick-cast portals and teleports, organized by faction.
|
* **Dropdown Menu**: Quick-cast portals and teleports, organized by faction.
|
||||||
* **Faction Support**: Automatically shows relevant portal and teleport spells for Horde or Alliance Mages.
|
* **Faction Support**: Automatically shows relevant portal and teleport spells for Horde or Alliance Mages.
|
||||||
|
* Teleport Section Greyed out Until Level 20
|
||||||
|
* Portals Section Greyed out Until Level 40
|
||||||
|
* "Haven't Learned Spell" Message when trying to cast a Teleport/Portal you don't have trained.
|
||||||
|
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
@@ -31,13 +34,18 @@ The launcher will automatically download and install the addon and keep it updat
|
|||||||
### Manual Install
|
### Manual Install
|
||||||
|
|
||||||
1. Download the repository into your `Interface/AddOns/` folder.
|
1. Download the repository into your `Interface/AddOns/` folder.
|
||||||
2. Ensure the folder structure is `MiniMage_TWOW/MiniMage.lua`.
|
2. Ensure the folder structure is `MiniMage_TWOW/MiniMage_TWOW.lua`.
|
||||||
3. Reload the UI or restart WoW.
|
3. Reload the UI or restart WoW.
|
||||||
|
|
||||||
## Usage
|
## Usage & Options
|
||||||
|
|
||||||
* Click the minimap button to open the dropdown menu.
|
* Click the minimap button to open the dropdown menu.
|
||||||
* Select the desired portal or teleport.
|
* Select the desired portal or teleport.
|
||||||
|
### /mmage Commands
|
||||||
|
* /mmage help - Show Commands
|
||||||
|
* /mmage icon - Show/Hide Minimap Icon
|
||||||
|
* /mmage portals - Show/Hide Portals from Menu
|
||||||
|
* /mmage reset - Reset Addon Settings
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
@@ -45,5 +53,4 @@ Let me know if you have any issues, I'll fix it if I am able to.
|
|||||||
|
|
||||||
## Screenshots
|
## Screenshots
|
||||||
|
|
||||||

|
<img width="800" height="600" alt="ss1" src="https://github.com/user-attachments/assets/e1344159-2bd9-43a1-8edb-9b16e123d022" />
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
--the only place MINIMAGE_VERSION should be set
|
--the only place MINIMAGE_VERSION should be set
|
||||||
MINIMAGE_VERSION = "1.0";
|
MINIMAGE_VERSION = "1.2";
|
||||||
|
|
||||||
|
|
||||||
--[[
|
--[[
|
||||||
|
|||||||
Reference in New Issue
Block a user