Add files via upload
This commit is contained in:
@@ -0,0 +1,172 @@
|
||||
local _G = ShaguTweaks.GetGlobalEnv()
|
||||
local T = ShaguTweaks.T
|
||||
local hooksecurefunc = hooksecurefunc or ShaguTweaks.hooksecurefunc
|
||||
|
||||
local module = ShaguTweaks:register({
|
||||
title = T["Reduced Actionbar Size"],
|
||||
description = T["Reduces the actionbar size by removing several items such as the bag panel and microbar"],
|
||||
expansions = { ["vanilla"] = true, ["tbc"] = nil },
|
||||
enabled = nil,
|
||||
})
|
||||
|
||||
local function ReplaceBag()
|
||||
local id = this:GetID()
|
||||
if id ~= 0 then
|
||||
id = ContainerIDToInventoryID(id)
|
||||
if CursorHasItem() then
|
||||
PutItemInBag(id)
|
||||
else
|
||||
PickupBagFromSlot(id)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
module.enable = function(self)
|
||||
-- general function to hide textures and frames
|
||||
local function hide(frame, texture)
|
||||
if not frame then return end
|
||||
|
||||
if texture and texture == 1 and frame.SetTexture then
|
||||
frame:SetTexture("")
|
||||
elseif texture and texture == 2 and frame.SetNormalTexture then
|
||||
frame:SetNormalTexture("")
|
||||
else
|
||||
frame:ClearAllPoints()
|
||||
frame.Show = function() return end
|
||||
frame:Hide()
|
||||
end
|
||||
end
|
||||
|
||||
-- frames that shall be hidden
|
||||
local frames = {
|
||||
-- actionbar paging
|
||||
MainMenuBarPageNumber, ActionBarUpButton, ActionBarDownButton,
|
||||
-- xp and reputation bar
|
||||
MainMenuXPBarTexture2, MainMenuXPBarTexture3,
|
||||
ReputationWatchBarTexture2, ReputationWatchBarTexture3,
|
||||
-- actionbar backgrounds
|
||||
MainMenuBarTexture2, MainMenuBarTexture3,
|
||||
MainMenuMaxLevelBar2, MainMenuMaxLevelBar3,
|
||||
-- micro button panel
|
||||
CharacterMicroButton, SpellbookMicroButton, TalentMicroButton,
|
||||
QuestLogMicroButton, MainMenuMicroButton, SocialsMicroButton,
|
||||
WorldMapMicroButton, MainMenuBarPerformanceBarFrame, HelpMicroButton,
|
||||
-- bag panel
|
||||
CharacterBag3Slot, CharacterBag2Slot, CharacterBag1Slot,
|
||||
CharacterBag0Slot, MainMenuBarBackpackButton, KeyRingButton,
|
||||
-- shapeshift backgrounds
|
||||
ShapeshiftBarLeft, ShapeshiftBarMiddle, ShapeshiftBarRight,
|
||||
}
|
||||
|
||||
-- textures that shall be set empty
|
||||
local textures = {
|
||||
ReputationWatchBarTexture2, ReputationWatchBarTexture3,
|
||||
ReputationXPBarTexture2, ReputationXPBarTexture3,
|
||||
SlidingActionBarTexture0, SlidingActionBarTexture1,
|
||||
}
|
||||
|
||||
-- button textures that shall be set empty
|
||||
local normtextures = {
|
||||
ShapeshiftButton1, ShapeshiftButton2,
|
||||
ShapeshiftButton3, ShapeshiftButton4,
|
||||
ShapeshiftButton5, ShapeshiftButton6,
|
||||
ShapeshiftButton7, ShapeshiftButton8,
|
||||
ShapeshiftButton9, ShapeshiftButton10,
|
||||
ShapeshiftButton11, ShapeshiftButton12,
|
||||
}
|
||||
|
||||
-- elements that shall be resized to 511px
|
||||
local resizes = {
|
||||
MainMenuBar, MainMenuExpBar, MainMenuBarMaxLevelBar,
|
||||
ReputationWatchBar, ReputationWatchStatusBar,
|
||||
}
|
||||
|
||||
-- hide frames
|
||||
for id, frame in pairs(frames) do hide(frame) end
|
||||
|
||||
-- clear textures
|
||||
for id, frame in pairs(textures) do hide(frame, 1) end
|
||||
for id, frame in pairs(normtextures) do hide(frame, 2) end
|
||||
|
||||
-- resize actionbar
|
||||
for id, frame in pairs(resizes) do frame:SetWidth(511) end
|
||||
|
||||
-- experience bar
|
||||
MainMenuXPBarTexture0:SetPoint("LEFT", MainMenuExpBar, "LEFT")
|
||||
MainMenuXPBarTexture1:SetPoint("RIGHT", MainMenuExpBar, "RIGHT")
|
||||
|
||||
-- reputation bar
|
||||
ReputationWatchBar:SetPoint("BOTTOM", MainMenuExpBar, "TOP", 0, 0)
|
||||
ReputationWatchBarTexture0:SetPoint("LEFT", ReputationWatchBar, "LEFT")
|
||||
ReputationWatchBarTexture1:SetPoint("RIGHT", ReputationWatchBar, "RIGHT")
|
||||
|
||||
-- move menubar texture background
|
||||
MainMenuMaxLevelBar0:SetPoint("LEFT", MainMenuBarArtFrame, "LEFT")
|
||||
MainMenuBarTexture0:SetPoint("LEFT", MainMenuBarArtFrame, "LEFT")
|
||||
MainMenuBarTexture1:SetPoint("RIGHT", MainMenuBarArtFrame, "RIGHT")
|
||||
|
||||
-- move gryphon textures
|
||||
MainMenuBarLeftEndCap:SetPoint("RIGHT", MainMenuBarArtFrame, "LEFT", 29.5, 0)
|
||||
MainMenuBarRightEndCap:SetPoint("LEFT", MainMenuBarArtFrame, "RIGHT", -31.5, 0)
|
||||
|
||||
-- move MultiBarBottomRight ontop of MultiBarBottomLeft
|
||||
MultiBarBottomRight:ClearAllPoints()
|
||||
MultiBarBottomRight:SetPoint("BOTTOM", MultiBarBottomLeft, "TOP", 0, 5)
|
||||
|
||||
-- reload custom frame positions after original frame manage runs
|
||||
local hookUIParent_ManageFramePositions = UIParent_ManageFramePositions
|
||||
UIParent_ManageFramePositions = function(a1, a2, a3)
|
||||
-- run original function
|
||||
hookUIParent_ManageFramePositions(a1, a2, a3)
|
||||
|
||||
-- move top actionbar if xp or reputation is tracked
|
||||
MultiBarBottomLeft:ClearAllPoints()
|
||||
if MainMenuExpBar:IsVisible() or ReputationWatchBar:IsVisible() then
|
||||
local anchor = GetWatchedFactionInfo() and ReputationWatchBar or MainMenuExpBar
|
||||
MultiBarBottomLeft:SetPoint("BOTTOM", anchor, "TOP", 2, 3)
|
||||
else
|
||||
MultiBarBottomLeft:SetPoint("BOTTOM", MainMenuBar, "TOP", 2, -3)
|
||||
end
|
||||
|
||||
-- move pet actionbar above other actionbars
|
||||
PetActionBarFrame:ClearAllPoints()
|
||||
local anchor = MainMenuBarArtFrame
|
||||
anchor = MultiBarBottomLeft:IsVisible() and MultiBarBottomLeft or anchor
|
||||
anchor = MultiBarBottomRight:IsVisible() and MultiBarBottomRight or anchor
|
||||
anchor = ShapeshiftBarFrame:IsVisible() and ShapeshiftBarFrame or anchor
|
||||
PetActionBarFrame:SetPoint("BOTTOMLEFT", anchor, "TOPLEFT", 20, 4)
|
||||
|
||||
-- ShapeshiftBarFrame
|
||||
ShapeshiftBarFrame:ClearAllPoints()
|
||||
local offset = 0
|
||||
local anchor = ActionButton1
|
||||
anchor = MultiBarBottomLeft:IsVisible() and MultiBarBottomLeft or anchor
|
||||
anchor = MultiBarBottomRight:IsVisible() and MultiBarBottomRight or anchor
|
||||
|
||||
offset = anchor == ActionButton1 and ( MainMenuExpBar:IsVisible() or ReputationWatchBar:IsVisible() ) and 6 or 0
|
||||
offset = anchor == ActionButton1 and offset + 4 or offset
|
||||
ShapeshiftBarFrame:SetPoint("BOTTOMLEFT", anchor, "TOPLEFT", 8, 4 + offset)
|
||||
|
||||
-- move castbar ontop of other bars
|
||||
local anchor = MainMenuBarArtFrame
|
||||
anchor = MultiBarBottomLeft:IsVisible() and MultiBarBottomLeft or anchor
|
||||
anchor = MultiBarBottomRight:IsVisible() and MultiBarBottomRight or anchor
|
||||
local pet_offset = PetActionBarFrame:IsVisible() and 40 or 0
|
||||
local stance_offset = ShapeshiftBarFrame:IsVisible() and 40 or 0
|
||||
CastingBarFrame:SetPoint("BOTTOM", anchor, "TOP", 0, 10 + pet_offset + stance_offset)
|
||||
end
|
||||
|
||||
-- restore frame positions when UIParent becomes visible
|
||||
local restore = CreateFrame("Frame", nil, UIParent)
|
||||
restore:SetScript("OnShow", UIParent_ManageFramePositions)
|
||||
|
||||
-- enforce pet actionbar offset after pet actionbar becomes visible
|
||||
hooksecurefunc("ShowPetActionBar", function()
|
||||
PETACTIONBAR_XPOS = 36
|
||||
end)
|
||||
|
||||
-- enable picking up/replacing bags by clicking on the container frame portrait
|
||||
for i = 1, 5 do
|
||||
_G["ContainerFrame" .. i .. "PortraitButton"]:SetScript("OnClick", ReplaceBag)
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user