189 lignes
7,9 Kio
Lua
189 lignes
7,9 Kio
Lua
--[[
|
|
Author: Alternator (Massiner of Nathrezim)
|
|
Copyright 2010
|
|
|
|
Notes:
|
|
|
|
--]]
|
|
|
|
local CustomAction = BFCustomAction;
|
|
local Const = BFConst;
|
|
local Util = BFUtil;
|
|
local UILib = BFUILib;
|
|
|
|
--If too many more custom actions are added here this will be a good candidate the turn into a table
|
|
function CustomAction.GetTexture(Action)
|
|
if (Action == "configuremode") then
|
|
return Const.ImagesDir.."Configure.tga";
|
|
elseif (Action == "createbarmode") then
|
|
return Const.ImagesDir.."CreateBar.tga";
|
|
elseif (Action == "createbonusbarmode") then
|
|
return Const.ImagesDir.."CreateBonusBar.tga";
|
|
elseif (Action == "destroybarmode") then
|
|
return Const.ImagesDir.."DestroyBar.tga";
|
|
elseif (Action == "advancedtoolsmode") then
|
|
return Const.ImagesDir.."AdvancedTools.tga";
|
|
elseif (Action == "rightclickselfcast") then
|
|
return Const.ImagesDir.."RightClickSelfCast.tga";
|
|
elseif (Action == "vehicleexit") then
|
|
return "Interface/Vehicles/UI-Vehicles-Button-Exit-Up", {0.171875, 0.84375, 0.140625, 0.84375};
|
|
elseif (Action == "possesscancel") then
|
|
local Texture = GetPossessInfo(2);
|
|
return Texture or "Interface/Icons/Spell_Shadow_SacrificialShield";
|
|
--[[
|
|
elseif (Action == "vehicleaimup") then
|
|
return "Interface/Vehicles/UI-Vehicles-Button-Pitch-Up", {0.234375, 0.765625, 0.25, 0.78125};
|
|
elseif (Action == "vehicleaimdown") then
|
|
return "Interface/Vehicles/UI-VEHICLES-BUTTON-PITCHDOWN-UP", {0.234375, 0.765625, 0.25, 0.78125};
|
|
elseif (Action == "possessspell") then
|
|
local Texture = GetPossessInfo(1);
|
|
return Texture or Const.ImagesDir.."AdvancedTools.tga";
|
|
--]]
|
|
end
|
|
end
|
|
|
|
function CustomAction.SetAttributes(Action, Widget)
|
|
if (Action == "configuremode") then
|
|
Widget:SetAttribute("type", "macro");
|
|
Widget:SetAttribute("macrotext", "/click BFToolbarToggle");
|
|
elseif (Action == "createbarmode") then
|
|
Widget:SetAttribute("type", "macro");
|
|
Widget:SetAttribute("macrotext", "/click BFToolbarCreateBar");
|
|
elseif (Action == "createbonusbarmode") then
|
|
Widget:SetAttribute("type", "macro");
|
|
Widget:SetAttribute("macrotext", "/click BFToolbarCreateBonusBar");
|
|
elseif (Action == "destroybarmode") then
|
|
Widget:SetAttribute("type", "macro");
|
|
Widget:SetAttribute("macrotext", "/click BFToolbarDestroyBar");
|
|
elseif (Action == "advancedtoolsmode") then
|
|
Widget:SetAttribute("type", "macro");
|
|
Widget:SetAttribute("macrotext", "/click BFToolbarAdvanced");
|
|
elseif (Action == "rightclickselfcast") then
|
|
Widget:SetAttribute("type", "macro");
|
|
Widget:SetAttribute("macrotext", "/click BFToolbarRightClickSelfCast");
|
|
elseif (Action == "vehicleexit") then
|
|
Widget:SetAttribute("type", "macro");
|
|
Widget:SetAttribute("macrotext", "/leavevehicle");
|
|
elseif (Action == "possesscancel") then
|
|
Widget:SetAttribute("type", "macro");
|
|
Widget:SetAttribute("macrotext", "/run CancelUnitBuff(\"player\", select(2, GetPossessInfo(2)) or \"\")");
|
|
--[[
|
|
elseif (Action == "vehicleaimup") then
|
|
Widget:SetAttribute("type", "macro");
|
|
Widget:SetAttribute("macrotext", "/click VehicleMenuBarPitchUpButton");
|
|
elseif (Action == "vehicleaimdown") then
|
|
Widget:SetAttribute("type", "macro");
|
|
Widget:SetAttribute("macrotext", "/click VehicleMenuBarPitchDownButton");
|
|
elseif (Action == "possessspell") then
|
|
Widget:SetAttribute("type", "macro");
|
|
Widget:SetAttribute("macrotext", "/do nothing");
|
|
--]]
|
|
end
|
|
end
|
|
|
|
function CustomAction.GetChecked(Action)
|
|
if (Action == 'configuremode') then
|
|
if (BFConfigureLayer:IsShown()) then
|
|
return true;
|
|
end
|
|
elseif (Action == 'createbarmode') then
|
|
if (UILib.CreateBarMode) then
|
|
return true;
|
|
end
|
|
elseif (Action == 'createbonusbarmode') then
|
|
if (UILib.CreateBonusBarMode) then
|
|
return true;
|
|
end
|
|
elseif (Action == 'destroybarmode') then
|
|
if (BFDestroyBarOverlay:IsShown()) then
|
|
return true;
|
|
end
|
|
elseif (Action == 'advancedtoolsmode') then
|
|
if (BFAdvancedToolsLayer:IsShown() and BFConfigureLayer:IsShown()) then
|
|
return true;
|
|
end
|
|
elseif (Action == "rightclickselfcast") then
|
|
if (ButtonForgeSave["RightClickSelfCast"]) then
|
|
return true;
|
|
end
|
|
end
|
|
return false;
|
|
end
|
|
|
|
function CustomAction.IsUsable(Action)
|
|
-- I could wire in a combat check for several of the actions here...
|
|
if (Action == 'createbonusbarmode') then
|
|
return BFConfigureLayer:IsShown(), nil;
|
|
elseif (Action == 'vehicleexit') then
|
|
return CanExitVehicle(), nil;
|
|
elseif (Action == 'possesscancel') then
|
|
--perhaps try the third param in getpossessinfo(2)??
|
|
return IsPossessBarVisible(), nil;
|
|
--[[
|
|
elseif (Action == 'vehicleaimup') then
|
|
return IsVehicleAimAngleAdjustable(), nil;
|
|
elseif (Action == 'vehicleaimdown') then
|
|
return IsVehicleAimAngleAdjustable(), nil;
|
|
elseif (Action == 'possessspell') then
|
|
return IsPossessBarVisible(), nil;
|
|
--]]
|
|
end
|
|
return 1, nil;
|
|
end
|
|
|
|
function CustomAction.UpdateTooltip(Action)
|
|
if (Action == 'configuremode') then
|
|
GameTooltip:SetText(Util.GetLocaleString("ConfigureModeTooltip"), nil, nil, nil, nil, 1);
|
|
elseif (Action == 'createbarmode') then
|
|
GameTooltip:SetText(Util.GetLocaleString("CreateBarTooltip"), nil, nil, nil, nil, 1);
|
|
elseif (Action == 'createbonusbarmode') then
|
|
GameTooltip:SetText(Util.GetLocaleString("CreateBonusBarTooltip"), nil, nil, nil, nil, 1);
|
|
elseif (Action == 'destroybarmode') then
|
|
GameTooltip:SetText(Util.GetLocaleString("DestroyBarTooltip"), nil, nil, nil, nil, 1);
|
|
elseif (Action == 'advancedtoolsmode') then
|
|
GameTooltip:SetText(Util.GetLocaleString("AdvancedToolsTooltip"), nil, nil, nil, nil, 1);
|
|
elseif (Action == "rightclickselfcast") then
|
|
GameTooltip:SetText(BFToolbarRightClickSelfCast.Tooltip, nil, nil, nil, nil, 1);
|
|
elseif (Action == 'vehicleexit') then
|
|
GameTooltip:SetText(LEAVE_VEHICLE, nil, nil, nil, nil, 1); --This prob needs a better tooltip (although is not as bad as the possesscancel)
|
|
elseif (Action == 'possesscancel') then
|
|
GameTooltip:SetText(Util.GetLocaleString("CancelPossessionTooltip")); --This needs a better tooltip than the default one (the default one has the advantage of context)
|
|
--[[
|
|
elseif (Action == 'vehicleaimup') then
|
|
GameTooltip:SetText(AIM_UP, nil, nil, nil, nil, 1);
|
|
elseif (Action == 'vehicleaimdown') then
|
|
GameTooltip:SetText(AIM_DOWN, nil, nil, nil, nil, 1);
|
|
elseif (Action == 'possessspell') then
|
|
GameTooltip:SetPossession(1);
|
|
--]]
|
|
end
|
|
end
|
|
|
|
function CustomAction.SetCursor(Action)
|
|
if (Action == 'configuremode') then
|
|
UILib.StartDraggingIcon(Const.ImagesDir.."Configure.tga", 23, 23, "customaction", Action);
|
|
elseif (Action == 'createbarmode') then
|
|
UILib.StartDraggingIcon(Const.ImagesDir.."CreateBar.tga", 23, 23, "customaction", Action);
|
|
elseif (Action == 'createbonusbarmode') then
|
|
UILib.StartDraggingIcon(Const.ImagesDir.."CreateBonusBar.tga", 23, 23, "customaction", Action);
|
|
elseif (Action == 'destroybarmode') then
|
|
UILib.StartDraggingIcon(Const.ImagesDir.."DestroyBar.tga", 23, 23, "customaction", Action);
|
|
elseif (Action == 'advancedtoolsmode') then
|
|
UILib.StartDraggingIcon(Const.ImagesDir.."AdvancedTools.tga", 23, 23, "customaction", Action);
|
|
elseif (Action == "rightclickselfcast") then
|
|
UILib.StartDraggingIcon(Const.ImagesDir.."RightClickSelfCast.tga", 23, 23, "customaction", Action);
|
|
elseif (Action == 'vehicleexit') then
|
|
UILib.StartDraggingIcon("Interface/Vehicles/UI-Vehicles-Button-Exit-Up", 23, 23, "customaction", Action, nil, {0.171875, 0.84375, 0.140625, 0.84375});
|
|
elseif (Action == 'possesscancel') then
|
|
UILib.StartDraggingIcon("Interface/Icons/Spell_Shadow_SacrificialShield", 23, 23, "customaction", Action);
|
|
--[[
|
|
elseif (Action == 'vehicleaimup') then
|
|
UILib.StartDraggingIcon("Interface/Vehicles/UI-Vehicles-Button-Pitch-Up", 23, 23, "customaction", Action, nil, {0.234375, 0.765625, 0.25, 0.78125});
|
|
elseif (Action == 'vehicleaimdown') then
|
|
UILib.StartDraggingIcon("Interface/Vehicles/UI-VEHICLES-BUTTON-PITCHDOWN-UP", 23, 23, "customaction", Action, nil, {0.234375, 0.765625, 0.25, 0.78125});
|
|
elseif (Action == 'possessspell') then
|
|
UILib.StartDraggingIcon("Interface/Vehicles/UI-VEHICLES-BUTTON-PITCHDOWN-UP", 23, 23, "customaction", Action, nil, {0.234375, 0.765625, 0.25, 0.78125});
|
|
--]]
|
|
end
|
|
end
|
|
|