1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-04-09 00:36:42 +00:00

Use thick border textures for thick border UI templates

This commit is contained in:
PharisMods 2023-10-01 00:54:24 +00:00
parent 08ff69f199
commit 01aa67c792

View file

@ -22,49 +22,52 @@ local cornerParts = {
bottom_right = v2(1, 1), bottom_right = v2(1, 1),
} }
local borderSidePattern = 'textures/menu_thin_border_%s.dds' local borderSidePattern = 'textures/menu_%s_border_%s.dds'
local borderCornerPattern = 'textures/menu_thin_border_%s_corner.dds' local borderCornerPattern = 'textures/menu_%s_border_%s_corner.dds'
local borderResources = {} local borderResources = {}
do local borderPieces = {}
for _, thickness in ipairs{'thin', 'thick'} do
borderResources[thickness] = {}
for k in pairs(sideParts) do for k in pairs(sideParts) do
borderResources[k] = ui.texture{ path = borderSidePattern:format(k) } borderResources[thickness][k] = ui.texture{ path = borderSidePattern:format(thickness, k) }
end end
for k in pairs(cornerParts) do for k in pairs(cornerParts) do
borderResources[k] = ui.texture{ path = borderCornerPattern:format(k) } borderResources[thickness][k] = ui.texture{ path = borderCornerPattern:format(thickness, k) }
end
end end
local borderPieces = {} borderPieces[thickness] = {}
for k in pairs(sideParts) do for k in pairs(sideParts) do
local horizontal = k == 'top' or k == 'bottom' local horizontal = k == 'top' or k == 'bottom'
borderPieces[k] = { borderPieces[thickness][k] = {
type = ui.TYPE.Image, type = ui.TYPE.Image,
props = { props = {
resource = borderResources[k], resource = borderResources[thickness][k],
tileH = horizontal, tileH = horizontal,
tileV = not horizontal, tileV = not horizontal,
}, },
} }
end end
for k in pairs(cornerParts) do for k in pairs(cornerParts) do
borderPieces[k] = { borderPieces[thickness][k] = {
type = ui.TYPE.Image, type = ui.TYPE.Image,
props = { props = {
resource = borderResources[k], resource = borderResources[thickness][k],
}, },
} }
end end
end
local function borderTemplates(borderSize) local function borderTemplates(thickness)
local borderSize = (thickness == 'thin') and constants.border or constants.thickBorder
local borderV = v2(1, 1) * borderSize local borderV = v2(1, 1) * borderSize
local result = {} local result = {}
result.horizontalLine = { result.horizontalLine = {
type = ui.TYPE.Image, type = ui.TYPE.Image,
props = { props = {
resource = borderResources.top, resource = borderResources[thickness].top,
tileH = true, tileH = true,
tileV = false, tileV = false,
size = v2(0, borderSize), size = v2(0, borderSize),
@ -75,7 +78,7 @@ local function borderTemplates(borderSize)
result.verticalLine = { result.verticalLine = {
type = ui.TYPE.Image, type = ui.TYPE.Image,
props = { props = {
resource = borderResources.left, resource = borderResources[thickness].left,
tileH = false, tileH = false,
tileV = true, tileV = true,
size = v2(borderSize, 0), size = v2(borderSize, 0),
@ -90,7 +93,7 @@ local function borderTemplates(borderSize)
local horizontal = k == 'top' or k == 'bottom' local horizontal = k == 'top' or k == 'bottom'
local direction = horizontal and v2(1, 0) or v2(0, 1) local direction = horizontal and v2(1, 0) or v2(0, 1)
result.borders.content:add { result.borders.content:add {
template = borderPieces[k], template = borderPieces[thickness][k],
props = { props = {
position = (direction - v) * borderSize, position = (direction - v) * borderSize,
relativePosition = v, relativePosition = v,
@ -101,7 +104,7 @@ local function borderTemplates(borderSize)
end end
for k, v in pairs(cornerParts) do for k, v in pairs(cornerParts) do
result.borders.content:add { result.borders.content:add {
template = borderPieces[k], template = borderPieces[thickness][k],
props = { props = {
position = -v * borderSize, position = -v * borderSize,
relativePosition = v, relativePosition = v,
@ -126,7 +129,7 @@ local function borderTemplates(borderSize)
local horizontal = k == 'top' or k == 'bottom' local horizontal = k == 'top' or k == 'bottom'
local direction = horizontal and v2(1, 0) or v2(0, 1) local direction = horizontal and v2(1, 0) or v2(0, 1)
result.box.content:add { result.box.content:add {
template = borderPieces[k], template = borderPieces[thickness][k],
props = { props = {
position = (direction + v) * borderSize, position = (direction + v) * borderSize,
relativePosition = v, relativePosition = v,
@ -137,7 +140,7 @@ local function borderTemplates(borderSize)
end end
for k, v in pairs(cornerParts) do for k, v in pairs(cornerParts) do
result.box.content:add { result.box.content:add {
template = borderPieces[k], template = borderPieces[thickness][k],
props = { props = {
position = v * borderSize, position = v * borderSize,
relativePosition = v, relativePosition = v,
@ -190,8 +193,8 @@ local function borderTemplates(borderSize)
return result return result
end end
local thinBorders = borderTemplates(constants.border) local thinBorders = borderTemplates('thin')
local thickBorders = borderTemplates(constants.thickBorder) local thickBorders = borderTemplates('thick')
return function(templates) return function(templates)
for k, t in pairs(thinBorders) do for k, t in pairs(thinBorders) do