You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
399 lines
6.8 KiB
399 lines
6.8 KiB
-- Neuron is a World of Warcraft® user interface addon.
|
|
-- Copyright (c) 2017-2021 Britt W. Yazel
|
|
-- Copyright (c) 2006-2014 Connor H. Chenoweth
|
|
-- This code is licensed under the MIT license (see LICENSE for details)
|
|
|
|
local _, addonTable = ...
|
|
|
|
---**NOTE** values assigned with empty quotes, i.e. name = "", basically don't exist. Lua treats them as nil
|
|
|
|
local genericButtonData = {
|
|
btnType = "macro",
|
|
}
|
|
|
|
|
|
---@class GenericSpecData
|
|
---@field actionID number|false|nil
|
|
---@field macro_Text string
|
|
---@field macro_Icon number|string|false
|
|
---@field macro_Name string
|
|
---@field macro_Note string
|
|
---@field macro_UseNote false
|
|
---@field macro_BlizzMacro string|false
|
|
---@field macro_EquipmentSet any|false
|
|
|
|
---@type GenericSpecData
|
|
local genericSpecData = {
|
|
actionID = false,
|
|
|
|
macro_Text = "",
|
|
macro_Icon = false,
|
|
macro_Name = "",
|
|
macro_Note = "",
|
|
macro_UseNote = false,
|
|
macro_BlizzMacro = false,
|
|
macro_EquipmentSet = false,
|
|
}
|
|
--- Button fields
|
|
-- indexes refer to a table of pairs which include a function to
|
|
-- generate the button data
|
|
--@field cIndex center text index
|
|
--@field lIndex left text index
|
|
--@field rIndex right text index
|
|
--@field mIndex mouse over text index. hides other text
|
|
--@field tIndex tooltip index
|
|
|
|
local genericXPBtnData= {
|
|
curXPType = "player_xp",
|
|
|
|
width = 450,
|
|
height = 18,
|
|
texture = 7,
|
|
border = 1,
|
|
|
|
orientation = 1,
|
|
|
|
cIndex = 2,
|
|
cColor = {1,1,1},
|
|
|
|
lIndex = 6,
|
|
lColor = {1,1,1},
|
|
|
|
rIndex = 4,
|
|
rColor = {1,1,1},
|
|
|
|
mIndex = 3,
|
|
mColor = {1,1,1},
|
|
|
|
tIndex = 1,
|
|
tColor = {1,1,1},
|
|
|
|
borderColor = {1,1,1},
|
|
|
|
}
|
|
|
|
local genericRepBtnData= {
|
|
repID = 2,
|
|
autoWatch = 2,
|
|
|
|
width = 450,
|
|
height = 18,
|
|
texture = 7,
|
|
border = 1,
|
|
|
|
orientation = 1,
|
|
|
|
cIndex = 3,
|
|
cColor = {1,1,1},
|
|
|
|
lIndex = 2,
|
|
lColor = {1,1,1},
|
|
|
|
rIndex = 4,
|
|
rColor = {1,1,1},
|
|
|
|
mIndex = 6,
|
|
mColor = {1,1,1},
|
|
|
|
tIndex = 1,
|
|
tColor = {1,1,1},
|
|
|
|
borderColor = {1,1,1},
|
|
}
|
|
|
|
local genericCastBtnData= {
|
|
width = 250,
|
|
height = 18,
|
|
texture = 7,
|
|
border = 1,
|
|
|
|
orientation = 1,
|
|
|
|
cIndex = 1,
|
|
cColor = {1,1,1},
|
|
|
|
lIndex = 2,
|
|
lColor = {1,1,1},
|
|
|
|
rIndex = 3,
|
|
rColor = {1,1,1},
|
|
|
|
mIndex = 1,
|
|
mColor = {1,1,1},
|
|
|
|
tIndex = 1,
|
|
tColor = {1,1,1},
|
|
|
|
borderColor = {1,1,1},
|
|
|
|
castColor = {1,0.7,0},
|
|
channelColor = {0,1,0},
|
|
successColor = {0,1,0},
|
|
failColor = {1,0,0},
|
|
|
|
unit = "player",
|
|
showIcon = true,
|
|
}
|
|
|
|
local genericMirrorBtnData= {
|
|
width = 250,
|
|
height = 18,
|
|
texture = 7,
|
|
border = 1,
|
|
|
|
orientation = 1,
|
|
|
|
cIndex = 1,
|
|
cColor = {1,1,1},
|
|
|
|
lIndex = 2,
|
|
lColor = {1,1,1},
|
|
|
|
rIndex = 3,
|
|
rColor = {1,1,1},
|
|
|
|
mIndex = 1,
|
|
mColor = {1,1,1},
|
|
|
|
tIndex = 1,
|
|
tColor = {1,1,1},
|
|
|
|
borderColor = {1,1,1},
|
|
}
|
|
|
|
|
|
local genericKeyData = {
|
|
hotKeyLock = false,
|
|
hotKeyPri = false,
|
|
hotKeys = ":"
|
|
}
|
|
|
|
|
|
local genericBarData = {
|
|
name = ":",
|
|
|
|
buttons = {
|
|
['*'] = {
|
|
['config'] = CopyTable(genericButtonData),
|
|
['keys'] = CopyTable(genericKeyData),
|
|
['data'] = {},
|
|
}
|
|
},
|
|
|
|
hidestates = ":",
|
|
|
|
point = "BOTTOM",
|
|
x = 0,
|
|
y = 190,
|
|
|
|
scale = 1,
|
|
shape = "linear",
|
|
columns = 0,
|
|
|
|
alpha = 1,
|
|
alphaUp = "off",
|
|
alphaMax = 1,
|
|
fadeSpeed = 0.5,
|
|
|
|
strata = 3,
|
|
|
|
padH = 3,
|
|
padV = 3,
|
|
arcStart = 0,
|
|
arcLength = 359,
|
|
|
|
snapTo = false,
|
|
snapToPad = 0,
|
|
snapToPoint = false,
|
|
snapToFrame = false,
|
|
|
|
autoHide = false,
|
|
showGrid = true,
|
|
|
|
bindColor = {1,1,1},
|
|
macroColor = {1,1,1},
|
|
countColor = {1,1,1},
|
|
cdcolor1 = {1,0.82,0},
|
|
cdcolor2 = {1,0.1,0.1},
|
|
rangecolor = {0.7,0.15,0.15},
|
|
manacolor = {0.5,0.5,1.0},
|
|
|
|
border = true,
|
|
|
|
clickMode = "UpClick",
|
|
|
|
conceal = false,
|
|
|
|
multiSpec = false,
|
|
|
|
spellGlow = "default",
|
|
|
|
barLock = false,
|
|
|
|
tooltips = "normal",
|
|
tooltipsCombat = true,
|
|
|
|
bindText = true,
|
|
buttonText = true,
|
|
countText = true,
|
|
rangeInd = true,
|
|
|
|
cdText = false,
|
|
cdAlpha = false,
|
|
|
|
showBorderStyle = true,
|
|
|
|
homestate = true,
|
|
paged = false,
|
|
stance = false,
|
|
stealth = false,
|
|
reaction = false,
|
|
combat = false,
|
|
group = false,
|
|
pet = false,
|
|
fishing = false,
|
|
vehicle = false,
|
|
possess = false,
|
|
dragonriding = false,
|
|
override = false,
|
|
extrabar = false,
|
|
alt = false,
|
|
ctrl = false,
|
|
shift = false,
|
|
target = false,
|
|
|
|
selfCast = false,
|
|
focusCast = false,
|
|
rightClickTarget = false,
|
|
mouseOverCast = false,
|
|
|
|
custom = false,
|
|
customRange = false,
|
|
customNames = false,
|
|
|
|
remap = false,
|
|
}
|
|
|
|
|
|
|
|
------------------------------------------------------------------------
|
|
----------------------MAIN TABLE----------------------------------------
|
|
------------------------------------------------------------------------
|
|
|
|
addonTable.databaseDefaults = {
|
|
profile = {
|
|
blizzBars = {
|
|
-- ActionBar is special: showing blizz action bars doesn't hide neuron action bars
|
|
ActionBar = false,
|
|
|
|
--BagBar = false,
|
|
CastBar = false,
|
|
--MenuBar = false,
|
|
MirrorBar = false,
|
|
PetBar = false,
|
|
RepBar = false,
|
|
XPBar = false,
|
|
|
|
ExtraBar = false,
|
|
ExitBar = false,
|
|
ZoneAbilityBar = false,
|
|
},
|
|
|
|
mouseOverMod= "NONE",
|
|
|
|
firstRun = true,
|
|
|
|
NeuronItemCache = {},
|
|
NeuronSpellCache = {},
|
|
|
|
NeuronIcon = {hide = false,},
|
|
|
|
ActionBar = {
|
|
['*'] = CopyTable(genericBarData)
|
|
},
|
|
|
|
ExtraBar = {
|
|
['*'] = CopyTable(genericBarData),
|
|
},
|
|
|
|
ExitBar ={
|
|
['*'] = CopyTable(genericBarData)
|
|
},
|
|
|
|
BagBar = {
|
|
['*'] = CopyTable(genericBarData)
|
|
},
|
|
|
|
ZoneAbilityBar = {
|
|
['*'] = CopyTable(genericBarData)
|
|
},
|
|
|
|
MenuBar = {
|
|
['*'] = CopyTable(genericBarData)
|
|
},
|
|
|
|
PetBar = {
|
|
['*'] = CopyTable(genericBarData)
|
|
},
|
|
|
|
XPBar = {
|
|
['*'] = CopyTable(genericBarData)
|
|
},
|
|
|
|
RepBar = {
|
|
['*'] = CopyTable(genericBarData)
|
|
},
|
|
|
|
CastBar = {
|
|
['*'] = CopyTable(genericBarData)
|
|
},
|
|
|
|
MirrorBar = {
|
|
['*'] = CopyTable(genericBarData)
|
|
},
|
|
}
|
|
}
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
|
addonTable.databaseDefaults.profile.ActionBar['*'].buttons = {
|
|
['*'] = {
|
|
['config'] = CopyTable(genericButtonData),
|
|
['keys'] = CopyTable(genericKeyData),
|
|
[1] = {['**'] = CopyTable(genericSpecData), ['homestate'] = {}},
|
|
[2] = {['**'] = CopyTable(genericSpecData), ['homestate'] = {}},
|
|
[3] = {['**'] = CopyTable(genericSpecData), ['homestate'] = {}},
|
|
[4] = {['**'] = CopyTable(genericSpecData), ['homestate'] = {}},
|
|
--any time a player is without spec, it is not treated as spec 5
|
|
[5] = {['**'] = CopyTable(genericSpecData), ['homestate'] = {}}, --we need this or we will error out on new character creation
|
|
}
|
|
}
|
|
|
|
addonTable.databaseDefaults.profile.RepBar['*'].buttons ={
|
|
['*'] = {
|
|
['config'] = CopyTable(genericRepBtnData),
|
|
['keys'] = CopyTable(genericKeyData),
|
|
}
|
|
}
|
|
|
|
addonTable.databaseDefaults.profile.XPBar['*'].buttons ={
|
|
['*'] = {
|
|
['config'] = CopyTable(genericXPBtnData),
|
|
['keys'] = CopyTable(genericKeyData),
|
|
}
|
|
}
|
|
|
|
addonTable.databaseDefaults.profile.CastBar['*'].buttons ={
|
|
['*'] = {
|
|
['config'] = CopyTable(genericCastBtnData),
|
|
['keys'] = CopyTable(genericKeyData),
|
|
}
|
|
}
|
|
|
|
addonTable.databaseDefaults.profile.MirrorBar['*'].buttons ={
|
|
['*'] = {
|
|
['config'] = CopyTable(genericMirrorBtnData),
|
|
['keys'] = CopyTable(genericKeyData),
|
|
}
|
|
}
|
|
|