from retail

diffchecked
This commit is contained in:
NoM0Re
2025-01-26 19:24:17 +01:00
parent dcd0f833ac
commit 38533d0e99
7 changed files with 286 additions and 265 deletions
+110 -116
View File
@@ -14,9 +14,19 @@ local function createOptions(id, data)
order = 0.5,
hidden = function() return data.modelDisplayInfo and WeakAuras.BuildInfo > 80100 end
},
-- Option for modelIsDisplayInfo added below
-- Option for path/id added below
modelDisplayInfo = {
type = "toggle",
width = WeakAuras.normalWidth,
name = L["Use Display Info Id"],
order = 0.6,
hidden = function() return data.modelIsUnit end
},
model_model_path = {
type = "input",
width = WeakAuras.doubleWidth - 0.15,
name = L["Model"],
order = 1
},
chooseModel = {
type = "execute",
width = 0.15,
@@ -100,23 +110,6 @@ local function createOptions(id, data)
},
};
if WeakAuras.BuildInfo > 80100 then
options.modelDisplayInfo = {
type = "toggle",
width = WeakAuras.normalWidth,
name = L["Use Display Info Id"],
order = 0.6,
hidden = function() return data.modelIsUnit end
}
else
options.model_path = {
type = "input",
width = WeakAuras.doubleWidth - 0.15,
name = L["Model"],
order = 1
}
end
for k, v in pairs(OptionsPrivate.commonOptions.BorderOptions(id, data, nil, nil, 70)) do
options[k] = v
end
@@ -199,104 +192,105 @@ local templates = {
title = L["Default"],
data = {
};
},
{
title = L["Fire Orb"],
description = "",
data = {
width = 100,
height = 100,
model_path = "spells/6fx_smallfire.m2",
model_x = 0,
model_y = -0.5,
model_z = -1.5
},
},
{
title = L["Blue Sparkle Orb"],
description = "",
data = {
width = 100,
height = 100,
advance = true,
sequence = 1,
model_path = "spells/7fx_druid_halfmoon_missile.m2",
model_x = 0,
model_y = 0.7,
model_z = 1.5
},
},
{
title = L["Arcane Orb"],
description = "",
data = {
width = 100,
height = 100,
advance = true,
sequence = 1,
model_path = "spells/proc_arcane_impact_low.m2",
model_x = 0,
model_y = 0.8,
model_z = 2
},
},
{
title = L["Orange Rune"],
description = "",
data = {
width = 100,
height = 100,
advance = true,
sequence = 1,
model_path = "spells/7fx_godking_orangerune_state.m2",
},
},
{
title = L["Blue Rune"],
description = "",
data = {
width = 100,
height = 100,
advance = true,
sequence = 1,
model_path = "spells/7fx_godking_bluerune_state.m2",
}
},
{
title = L["Yellow Rune"],
description = "",
data = {
width = 100,
height = 100,
advance = true,
sequence = 1,
model_path = "spells/7fx_godking_yellowrune_state.m2",
}
},
{
title = L["Purple Rune"],
description = "",
data = {
width = 100,
height = 100,
advance = true,
sequence = 1,
model_path = "spells/7fx_godking_purplerune_state.m2",
}
},
{
title = L["Green Rune"],
description = "",
data = {
width = 100,
height = 100,
advance = true,
sequence = 1,
model_path = "spells/7fx_godking_greenrune_state.m2",
}
},
}
}
tinsert(templates, {
title = L["Fire Orb"],
description = "",
data = {
width = 100,
height = 100,
model_path = "spells/6fx_smallfire.m2",
model_x = 0,
model_y = -0.5,
model_z = -1.5
},
})
tinsert(templates, {
title = L["Blue Sparkle Orb"],
description = "",
data = {
width = 100,
height = 100,
advance = true,
sequence = 1,
model_path = "spells/7fx_druid_halfmoon_missile.m2",
model_x = 0,
model_y = 0.7,
model_z = 1.5
},
})
tinsert(templates, {
title = L["Arcane Orb"],
description = "",
data = {
width = 100,
height = 100,
advance = true,
sequence = 1,
model_path = "spells/proc_arcane_impact_low.m2",
model_x = 0,
model_y = 0.8,
model_z = 2
},
})
tinsert(templates, {
title = L["Orange Rune"],
description = "",
data = {
width = 100,
height = 100,
advance = true,
sequence = 1,
model_path = "spells/7fx_godking_orangerune_state.m2",
},
})
tinsert(templates, {
title = L["Blue Rune"],
description = "",
data = {
width = 100,
height = 100,
advance = true,
sequence = 1,
model_path = "spells/7fx_godking_bluerune_state.m2",
}
})
tinsert(templates, {
title = L["Yellow Rune"],
description = "",
data = {
width = 100,
height = 100,
advance = true,
sequence = 1,
model_path = "spells/7fx_godking_yellowrune_state.m2",
}
})
tinsert(templates, {
title = L["Purple Rune"],
description = "",
data = {
width = 100,
height = 100,
advance = true,
sequence = 1,
model_path = "spells/7fx_godking_purplerune_state.m2",
}
})
tinsert(templates, {
title = L["Green Rune"],
description = "",
data = {
width = 100,
height = 100,
advance = true,
sequence = 1,
model_path = "spells/7fx_godking_greenrune_state.m2",
}
})
OptionsPrivate.registerRegions = OptionsPrivate.registerRegions or {}
table.insert(OptionsPrivate.registerRegions, function()
OptionsPrivate.Private.RegisterRegionOptions("model", createOptions, createIcon, L["Model"], createThumbnail, modifyThumbnail,
+71 -29
View File
@@ -23,7 +23,8 @@ local function setTextureFunc(textureWidget, texturePath, textureName)
else
local rows, columns, frames, frameWidth, frameHeight, fileWidth, fileHeight = texturePath:match(pattern2)
if rows then
rows, columns, frames, frameWidth, frameHeight, fileWidth, fileHeight = tonumber(rows), tonumber(columns), tonumber(frames), tonumber(frameWidth), tonumber(frameHeight), tonumber(fileWidth), tonumber(fileHeight)
rows, columns, frames, frameWidth, frameHeight, fileWidth, fileHeight
= tonumber(rows), tonumber(columns), tonumber(frames), tonumber(frameWidth), tonumber(frameHeight), tonumber(fileWidth), tonumber(fileHeight)
local frameScaleW = 1
local frameScaleH = 1
if fileWidth > 0 and frameWidth > 0 then
@@ -115,15 +116,14 @@ local function createOptions(id, data)
name = L["Choose"],
order = 2,
func = function()
local path = {}
local paths = {}
for child in OptionsPrivate.Private.TraverseLeafsOrAura(data) do
paths[child.id] = path
end
OptionsPrivate.OpenTexturePicker(data, paths, {
local path = {}
local paths = {}
for child in OptionsPrivate.Private.TraverseLeafsOrAura(data) do
paths[child.id] = path
end
OptionsPrivate.OpenTexturePicker(data, paths, {
texture = "foregroundTexture",
color = "foregroundColor",
rotation = "rotation",
mirror = "mirror",
blendMode = "blendMode"
}, texture_types, setTextureFunc);
@@ -160,7 +160,9 @@ local function createOptions(id, data)
WeakAuras.UpdateThumbnail(data);
end,
order = 4,
hidden = function() return texture_data[data.foregroundTexture] or textureNameHasData(data.foregroundTexture) end
hidden = function()
return texture_data[data.foregroundTexture] or textureNameHasData(data.foregroundTexture)
end
},
customForegroundColumns = {
type = "input",
@@ -176,7 +178,9 @@ local function createOptions(id, data)
WeakAuras.UpdateThumbnail(data);
end,
order = 5,
hidden = function() return texture_data[data.foregroundTexture] or textureNameHasData(data.foregroundTexture) end
hidden = function()
return texture_data[data.foregroundTexture] or textureNameHasData(data.foregroundTexture)
end
},
customForegroundFrames = {
type = "input",
@@ -192,7 +196,9 @@ local function createOptions(id, data)
WeakAuras.UpdateThumbnail(data);
end,
order = 6,
hidden = function() return texture_data[data.foregroundTexture] or textureNameHasData(data.foregroundTexture) end
hidden = function()
return texture_data[data.foregroundTexture] or textureNameHasData(data.foregroundTexture)
end
},
customForegroundFileWidth = {
type = "input",
@@ -214,7 +220,9 @@ local function createOptions(id, data)
WeakAuras.UpdateThumbnail(data);
end,
order = 7,
hidden = function() return texture_data[data.foregroundTexture] or textureNameHasData(data.foregroundTexture) end
hidden = function()
return texture_data[data.foregroundTexture] or textureNameHasData(data.foregroundTexture)
end
},
customForegroundFileHeight = {
type = "input",
@@ -236,7 +244,9 @@ local function createOptions(id, data)
WeakAuras.UpdateThumbnail(data);
end,
order = 8,
hidden = function() return texture_data[data.foregroundTexture] or textureNameHasData(data.foregroundTexture) end
hidden = function()
return texture_data[data.foregroundTexture] or textureNameHasData(data.foregroundTexture)
end
},
customForegroundFrameWidth = {
type = "input",
@@ -253,7 +263,9 @@ local function createOptions(id, data)
WeakAuras.UpdateThumbnail(data);
end,
order = 9,
hidden = function() return texture_data[data.foregroundTexture] or textureNameHasData(data.foregroundTexture) end
hidden = function()
return texture_data[data.foregroundTexture] or textureNameHasData(data.foregroundTexture)
end
},
customForegroundFrameHeight = {
type = "input",
@@ -270,7 +282,9 @@ local function createOptions(id, data)
WeakAuras.UpdateThumbnail(data);
end,
order = 10,
hidden = function() return texture_data[data.foregroundTexture] or textureNameHasData(data.foregroundTexture) end
hidden = function()
return texture_data[data.foregroundTexture] or textureNameHasData(data.foregroundTexture)
end
},
blendMode = {
type = "select",
@@ -293,7 +307,7 @@ local function createOptions(id, data)
name = L["Animation Start"],
min = 0,
max = 1,
bigStep = 0.01,
--bigStep = 0.01,
order = 13,
isPercent = true
},
@@ -304,7 +318,7 @@ local function createOptions(id, data)
name = L["Animation End"],
min = 0,
max = 1,
bigStep = 0.01,
--bigStep = 0.01,
order = 14,
isPercent = true
},
@@ -418,7 +432,11 @@ local function createOptions(id, data)
WeakAuras.UpdateThumbnail(data);
end,
order = 24,
hidden = function() return data.sameTexture or texture_data[data.backgroundTexture] or textureNameHasData(data.backgroundTexture) end
hidden = function()
return data.sameTexture
or texture_data[data.backgroundTexture]
or textureNameHasData(data.backgroundTexture)
end
},
customBackgroundColumns = {
type = "input",
@@ -434,7 +452,11 @@ local function createOptions(id, data)
WeakAuras.UpdateThumbnail(data);
end,
order = 25,
hidden = function() return data.sameTexture or texture_data[data.backgroundTexture] or textureNameHasData(data.backgroundTexture) end
hidden = function()
return data.sameTexture
or texture_data[data.backgroundTexture]
or textureNameHasData(data.backgroundTexture)
end
},
customBackgroundFrames = {
type = "input",
@@ -450,7 +472,11 @@ local function createOptions(id, data)
WeakAuras.UpdateThumbnail(data);
end,
order = 26,
hidden = function() return data.sameTexture or texture_data[data.backgroundTexture] or textureNameHasData(data.backgroundTexture) end
hidden = function()
return data.sameTexture
or texture_data[data.backgroundTexture]
or textureNameHasData(data.backgroundTexture)
end
},
customBackgroundFileWidth = {
type = "input",
@@ -472,7 +498,9 @@ local function createOptions(id, data)
WeakAuras.UpdateThumbnail(data);
end,
order = 27,
hidden = function() return data.sameTexture or texture_data[data.backgroundTexture] or textureNameHasData(data.backgroundTexture) end
hidden = function()
return data.sameTexture or texture_data[data.backgroundTexture] or textureNameHasData(data.backgroundTexture)
end
},
customBackgroundFileHeight = {
type = "input",
@@ -494,7 +522,9 @@ local function createOptions(id, data)
WeakAuras.UpdateThumbnail(data);
end,
order = 28,
hidden = function() return data.sameTexture or texture_data[data.backgroundTexture] or textureNameHasData(data.backgroundTexture) end
hidden = function()
return data.sameTexture or texture_data[data.backgroundTexture] or textureNameHasData(data.backgroundTexture)
end
},
customBackgroundFrameWidth = {
type = "input",
@@ -511,7 +541,9 @@ local function createOptions(id, data)
WeakAuras.UpdateThumbnail(data);
end,
order = 29,
hidden = function() return data.sameTexture or texture_data[data.backgroundTexture] or textureNameHasData(data.backgroundTexture) end
hidden = function()
return data.sameTexture or texture_data[data.backgroundTexture] or textureNameHasData(data.backgroundTexture)
end
},
customBackgroundFrameHeight = {
type = "input",
@@ -528,7 +560,9 @@ local function createOptions(id, data)
WeakAuras.UpdateThumbnail(data);
end,
order = 30,
hidden = function() return data.sameTexture or texture_data[data.backgroundTexture] or textureNameHasData(data.backgroundTexture) end
hidden = function()
return data.sameTexture or texture_data[data.backgroundTexture] or textureNameHasData(data.backgroundTexture)
end
},
backgroundPercent = {
type = "range",
@@ -610,7 +644,8 @@ local function modifyThumbnail(parent, region, data, fullModify, size)
region.foreground.frameWidth = 0
region.foreground.frameHeight = 0
else
local rows, columns, frames, frameWidth, frameHeight, fileWidth, fileHeight = data.foregroundTexture:match(pattern2)
local rows, columns, frames, frameWidth, frameHeight, fileWidth, fileHeight
= data.foregroundTexture:match(pattern2)
if rows then
local lastFrame = frames - 1;
region.startFrame = floor( (data.startPercent or 0) * lastFrame) + 1;
@@ -639,17 +674,23 @@ local function modifyThumbnail(parent, region, data, fullModify, size)
frame = floor(region.startFrame + (region.endFrame - region.startFrame) * 0.75);
end
local texture = data.foregroundTexture or "Interface\\AddOns\\WeakAuras\\Media\\Textures\\stopmotion";
local texture = data.foregroundTexture or "Interface\\AddOns\\WeakAuras\\Media\\Textures\\StopMotion";
if (region.foreground.rows and region.foreground.columns) then
region.texture:SetTexture(texture);
local frameScaleW, frameScaleH = 1, 1
if region.foreground.fileWidth and region.foreground.frameWidth and region.foreground.fileWidth > 0 and region.foreground.frameWidth > 0 then
if region.foreground.fileWidth and region.foreground.frameWidth
and region.foreground.fileWidth > 0 and region.foreground.frameWidth > 0
then
frameScaleW = (region.foreground.frameWidth * region.foreground.columns) / region.foreground.fileWidth
end
if region.foreground.fileHeight and region.foreground.frameHeight and region.foreground.fileHeight > 0 and region.foreground.frameHeight > 0 then
if region.foreground.fileHeight and region.foreground.frameHeight
and region.foreground.fileHeight > 0 and region.foreground.frameHeight > 0
then
frameScaleH = (region.foreground.frameHeight * region.foreground.rows) / region.foreground.fileHeight
end
setTile(region.texture, frame, region.foreground.rows, region.foreground.columns, frameScaleW, frameScaleH);
region.SetValue = function(self, percent)
@@ -666,7 +707,8 @@ local function modifyThumbnail(parent, region, data, fullModify, size)
end
end
region.texture:SetVertexColor(data.foregroundColor[1], data.foregroundColor[2], data.foregroundColor[3], data.foregroundColor[4]);
region.texture:SetVertexColor(data.foregroundColor[1], data.foregroundColor[2],
data.foregroundColor[3], data.foregroundColor[4]);
region.texture:SetBlendMode(data.blendMode);
region.elapsed = 0;
+32 -60
View File
@@ -27,9 +27,6 @@ local function createOptions(id, data)
OptionsPrivate.OpenTexturePicker(data, paths, {
texture = "texture",
color = "color",
rotate = "rotate",
discrete_rotation = "discrete_rotation",
rotation = "rotation",
mirror = "mirror",
blendMode = "blendMode"
}, OptionsPrivate.Private.texture_types);
@@ -39,55 +36,48 @@ local function createOptions(id, data)
control = "WeakAurasIcon",
image = "Interface\\AddOns\\WeakAuras\\Media\\Textures\\browse",
},
desaturate = {
type = "toggle",
width = WeakAuras.normalWidth,
name = L["Desaturate"],
order = 2,
},
space2 = {
type = "execute",
name = "",
width = WeakAuras.normalWidth,
order = 5,
image = function() return "", 0, 0 end,
},
color = {
type = "color",
width = WeakAuras.normalWidth,
name = L["Color"],
hasAlpha = true,
order = 10
order = 2
},
blendMode = {
type = "select",
width = WeakAuras.normalWidth,
name = L["Blend Mode"],
order = 12,
values = OptionsPrivate.Private.blend_types
},
mirror = {
desaturate = {
type = "toggle",
width = WeakAuras.normalWidth,
name = L["Mirror"],
order = 20
name = L["Desaturate"],
order = 3,
},
alpha = {
type = "range",
control = "WeakAurasSpinBox",
width = WeakAuras.normalWidth,
name = L["Alpha"],
order = 25,
order = 4,
min = 0,
max = 1,
bigStep = 0.01,
isPercent = true
},
blendMode = {
type = "select",
width = WeakAuras.normalWidth,
name = L["Blend Mode"],
order = 5,
values = OptionsPrivate.Private.blend_types
},
mirror = {
type = "toggle",
width = WeakAuras.normalWidth,
name = L["Mirror"],
order = 6
},
rotate = {
type = "toggle",
width = WeakAuras.normalWidth,
name = L["Allow Full Rotation"],
order = 30
order = 8,
},
rotation = {
type = "range",
@@ -98,19 +88,7 @@ local function createOptions(id, data)
max = 360,
step = 1,
bigStep = 3,
order = 35,
hidden = function() return not data.rotate end
},
discrete_rotation = {
type = "range",
control = "WeakAurasSpinBox",
width = WeakAuras.normalWidth,
name = L["Discrete Rotation"],
min = 0,
max = 360,
step = 90,
order = 35,
hidden = function() return data.rotate end
order = 9,
},
endHeader = {
type = "header",
@@ -142,6 +120,17 @@ local function createThumbnail()
return borderframe;
end
local SQRT2 = sqrt(2)
local function GetRotatedPoints(degrees, scaleForFullRotate)
degrees = degrees or 0
local angle = rad(135 - degrees);
local factor = scaleForFullRotate and 1 or SQRT2
local vx = math.cos(angle) / factor
local vy = math.sin(angle) / factor
return 0.5+vx,0.5-vy , 0.5-vy,0.5-vx , 0.5+vy,0.5+vx , 0.5-vx,0.5+vy
end
local function modifyThumbnail(parent, region, data, fullModify, size)
size = size or 30;
local scale;
@@ -159,24 +148,7 @@ local function modifyThumbnail(parent, region, data, fullModify, size)
region.texture:SetVertexColor(data.color[1], data.color[2], data.color[3], data.color[4]);
region.texture:SetBlendMode(data.blendMode);
local ulx,uly , llx,lly , urx,ury , lrx,lry;
if(data.rotate) then
local angle = rad(135 - data.rotation);
local vx = math.cos(angle);
local vy = math.sin(angle);
ulx,uly , llx,lly , urx,ury , lrx,lry = 0.5+vx,0.5-vy , 0.5-vy,0.5-vx , 0.5+vy,0.5+vx , 0.5-vx,0.5+vy;
else
if(data.discrete_rotation == 0 or data.discrete_rotation == 360) then
ulx,uly , llx,lly , urx,ury , lrx,lry = 0,0 , 0,1 , 1,0 , 1,1;
elseif(data.discrete_rotation == 90) then
ulx,uly , llx,lly , urx,ury , lrx,lry = 1,0 , 0,0 , 1,1 , 0,1;
elseif(data.discrete_rotation == 180) then
ulx,uly , llx,lly , urx,ury , lrx,lry = 1,1 , 1,0 , 0,1 , 0,0;
elseif(data.discrete_rotation == 270) then
ulx,uly , llx,lly , urx,ury , lrx,lry = 0,1 , 1,1 , 0,0 , 1,0;
end
end
local ulx,uly , llx,lly , urx,ury , lrx,lry = GetRotatedPoints(data.rotation, data.rotate)
if(data.mirror) then
region.texture:SetTexCoord(urx,ury , lrx,lry , ulx,uly , llx,lly);
else