37 lines
918 B
Lua
37 lines
918 B
Lua
local function make_icon_layer(base,icon_size)
|
|
local layer = {
|
|
icon = base.icon,
|
|
icon_size = base.icon_size or icon_size,
|
|
scale = base.scale,
|
|
shift = base.shift,
|
|
icon_mipmaps = base.icon_mipmaps,
|
|
tint = base.tint,
|
|
}
|
|
return layer
|
|
end
|
|
|
|
local function make_layered_icon(base, wide)
|
|
local icon_size = base.icon_size
|
|
local icon_layers = {}
|
|
local icon_file = "__nco-InserterCranes__/graphics/icon_texture_gray.png"
|
|
if wide then
|
|
icon_file = "__nco-InserterCranes__/graphics/icon_texture.png"
|
|
end
|
|
table.insert(icon_layers,{
|
|
icon = icon_file,
|
|
icon_size = 256,
|
|
})
|
|
if base.icon then
|
|
table.insert(icon_layers,make_icon_layer(base,icon_size))
|
|
elseif base.icons then
|
|
for _, icon in pairs(base.icons) do
|
|
table.insert(icon_layers,make_icon_layer(icon,icon_size))
|
|
end
|
|
end
|
|
base.icon = nil
|
|
base.icon_size = nil
|
|
base.icon_mipmaps = nil
|
|
base.icons = icon_layers
|
|
end
|
|
|
|
return make_layered_icon |