Add colors utilities (#121)

* Add colors utilities

Local function get_base_color(), conversions hex <=> rgb, rgb color mixer, and global function get_color()

* Round numbers to avoid eventual float in string.format

* Simplify inbox/outbox mixing of color

Use a single if statement for each property and concatenate to displayed_color then execute mail.get_color(displayed_color) instead of making many combined if statements

* Convert 3-chars hex colors to 6-chars hex colors

Could break the code, the hex convert to rgb always run on 6-chars

* Rework color utility using tables

Instead of one-letter symbols, it now supports tables of identifiers or single strings
This commit is contained in:
Athozus 2023-12-06 10:11:12 +01:00 committed by GitHub
parent 802f9f727b
commit 3bad371353
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
15 changed files with 86 additions and 61 deletions

View file

@ -9,7 +9,7 @@ function mail.show_receivers(name, id)
local formspec = [[
size[8,6]
box[0,0;7,1.1;]] .. mail.colors.highlighted .. [[]
box[0,0;7,1.1;]] .. mail.get_color("highlighted") .. [[]
button[7.25,0.15;0.75,0.5;back;X]
@ -25,10 +25,10 @@ function mail.show_receivers(name, id)
local from = minetest.formspec_escape(message.from) or ""
local to = mail.parse_player_list(message.to or "")
local to_str = mail.colors.header .. "," .. S("To") .. ",,"
local to_str = mail.get_color("header") .. "," .. S("To") .. ",,"
to_str = to_str .. table.concat(to, ",,")
local cc = mail.parse_player_list(message.cc or "")
local cc_str = mail.colors.header .. "," .. S("CC") .. ",,"
local cc_str = mail.get_color("header") .. "," .. S("CC") .. ",,"
cc_str = cc_str .. table.concat(cc, ",,")
local date = type(message.time) == "number"
and minetest.formspec_escape(os.date(mail.get_setting(name, "date_format"), message.time)) or ""