Divergent/mods/Western Goods/gamedata/scripts/rax_icon_tint.script

71 lines
2.8 KiB
Plaintext

---==================================================================================================================---
--- ---
--- Original Author(s) : RavenAscendant ---
--- Edited : N/A ---
--- Date : 06/01/2022 ---
--- License : Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported ---
--- ---
--- Dynamic tint for anomaly inventory. ---
--- ---
---==================================================================================================================---
function pr(txt, ...)
-- printf("RAXPH: "..txt, ...)
end
local icon_colors = {}
--functor should return an ARGB for the tint color. recomend low alpha values. there is no unregister, just register nil
function register(name, functor)
if not name then return end
icon_colors[name] = functor
end
local base_Colorize = utils_ui.UICellItem.Colorize
function utils_ui.UICellItem:Colorize(clr_id)
base_Colorize(self, clr_id)
if clr_id ~= "def" then return end -- only gong to change it when not changed by base script
local clr
for _, functor in pairs(icon_colors) do
clr = functor(self) or clr
end
if not clr then return end
if self.ico then self.ico:SetTextureColor( clr ) end
if self.ico_scope then self.ico_scope:SetTextureColor( clr ) end
if self.ico_sil then self.ico_sil:SetTextureColor( clr ) end
if self.ico_gl then self.ico_gl:SetTextureColor( clr ) end
if self.layer then
for i=1,#self.layer do
self.layer[i]:SetTextureColor( clr )
end
end
end
--[[
Use
local table_of_itmes_to_tint = {vodka = true}
local bags = {actor_bag = true,actor_trade_bag= true} --player inv in normal/looting and in the merchant UI. full list in ui_inventory.script
function tinter(cell)
if not bags[cell.container.ID] then return end -- if you only want this to be applied in the inventory UI and then only certine parts
if table_of_itmes_to_tint[cell.section] then --for object id use cell.ID ID not used in all UIs
return GetARGB(100, 0, 255, 0)
end
end
function on_game_start()
rax_icon_tint.register("my_tint", tinter)
end
--]]