mirror of
https://github.com/mt-mods/unifieddyes.git
synced 2024-11-26 09:23:47 +01:00
moved the formspec code for the colored squares to its own function
This commit is contained in:
parent
da9ab7215c
commit
fc199cced4
155
init.lua
155
init.lua
@ -843,6 +843,44 @@ function unifieddyes.color_to_name(param2, def)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local hps = 0.6 -- horizontal position scale
|
||||||
|
local vps = 1.3 -- vertical position scale
|
||||||
|
local vs = 0.3 -- vertical shift/offset
|
||||||
|
local color_button_size = ";0.75,0.75;"
|
||||||
|
|
||||||
|
function unifieddyes.make_colored_square(hexcolor, colorname, showall, creative, painting_with, nodepalette, hp, v2, selindic)
|
||||||
|
|
||||||
|
local form = ""
|
||||||
|
local dye = "dye:"..colorname
|
||||||
|
|
||||||
|
local overlay = ""
|
||||||
|
local colorize = minetest.formspec_escape("^[colorize:#"..hexcolor..":255")
|
||||||
|
|
||||||
|
if (showall or not nodepalette) and not creative and inv:contains_item("main", dye) then
|
||||||
|
overlay = "^unifieddyes_available_overlay.png"
|
||||||
|
end
|
||||||
|
|
||||||
|
local unavail_overlay = ""
|
||||||
|
if not showall and not unifieddyes.palette_has_color[nodepalette.."_"..colorname] then
|
||||||
|
unavail_overlay = "^unifieddyes_unavailable_overlay.png"
|
||||||
|
end
|
||||||
|
|
||||||
|
if dye == painting_with then
|
||||||
|
overlay = "^unifieddyes_select_overlay.png"
|
||||||
|
selindic = "unifieddyes_white_square.png"..colorize..overlay.."]"..
|
||||||
|
"tooltip["..colorname..";"..colorname.."]"
|
||||||
|
end
|
||||||
|
|
||||||
|
form = form.."image_button["..
|
||||||
|
(hp*hps)..","..(v2*vps+vs)..
|
||||||
|
color_button_size..
|
||||||
|
"unifieddyes_white_square.png"..colorize..overlay..unavail_overlay..";"..
|
||||||
|
colorname..";]"..
|
||||||
|
"tooltip["..colorname..";"..colorname.."]"
|
||||||
|
|
||||||
|
return form, selindic
|
||||||
|
end
|
||||||
|
|
||||||
function unifieddyes.show_airbrush_form(player)
|
function unifieddyes.show_airbrush_form(player)
|
||||||
if not player then return end
|
if not player then return end
|
||||||
local player_name = player:get_player_name()
|
local player_name = player:get_player_name()
|
||||||
@ -853,6 +891,7 @@ function unifieddyes.show_airbrush_form(player)
|
|||||||
local showall = unifieddyes.player_showall[player_name]
|
local showall = unifieddyes.player_showall[player_name]
|
||||||
|
|
||||||
local base_form = "size[15,8.5]label[7,-0.25;Select a color:]"
|
local base_form = "size[15,8.5]label[7,-0.25;Select a color:]"
|
||||||
|
local selindic = "unifieddyes_select_overlay.png^unifieddyes_question.png]"
|
||||||
|
|
||||||
local last_right_click = unifieddyes.player_last_right_clicked[player_name]
|
local last_right_click = unifieddyes.player_last_right_clicked[player_name]
|
||||||
if last_right_click then
|
if last_right_click then
|
||||||
@ -872,13 +911,6 @@ function unifieddyes.show_airbrush_form(player)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local selindic = "unifieddyes_select_overlay.png^unifieddyes_question.png]"
|
|
||||||
|
|
||||||
local size="0.75,0.75;"
|
|
||||||
local hps=0.6
|
|
||||||
local vps=1.3
|
|
||||||
local vs=0.3
|
|
||||||
|
|
||||||
for v = 0, 6 do
|
for v = 0, 6 do
|
||||||
local val = unifieddyes.VALS_EXTENDED[v+1]
|
local val = unifieddyes.VALS_EXTENDED[v+1]
|
||||||
|
|
||||||
@ -903,34 +935,10 @@ function unifieddyes.show_airbrush_form(player)
|
|||||||
local g2 = math.max(math.min(g + (4-v)*factor, 255), 0)
|
local g2 = math.max(math.min(g + (4-v)*factor, 255), 0)
|
||||||
local b2 = math.max(math.min(b + (4-v)*factor, 255), 0)
|
local b2 = math.max(math.min(b + (4-v)*factor, 255), 0)
|
||||||
|
|
||||||
local color = string.format("%02x", r2)..string.format("%02x", g2)..string.format("%02x", b2)
|
local hexcolor = string.format("%02x", r2)..string.format("%02x", g2)..string.format("%02x", b2)
|
||||||
local dye = "dye:"..val..hue..sat
|
local f
|
||||||
|
f, selindic = unifieddyes.make_colored_square(hexcolor, val..hue..sat, showall, creative, painting_with, nodepalette, hp, v2, selindic)
|
||||||
local overlay = ""
|
base_form = base_form..f
|
||||||
local colorize = minetest.formspec_escape("^[colorize:#"..color..":255")
|
|
||||||
|
|
||||||
if (showall or not nodepalette) and not creative and inv:contains_item("main", dye) then
|
|
||||||
overlay = "^unifieddyes_available_overlay.png"
|
|
||||||
end
|
|
||||||
|
|
||||||
if dye == painting_with then
|
|
||||||
overlay = "^unifieddyes_select_overlay.png"
|
|
||||||
selindic = "unifieddyes_white_square.png"..colorize..overlay.."]"..
|
|
||||||
"tooltip["..val..hue..sat..";"..val..hue..sat.."]"
|
|
||||||
end
|
|
||||||
|
|
||||||
local unavail_overlay = ""
|
|
||||||
if not showall and not unifieddyes.palette_has_color[nodepalette.."_"..val..hue..sat] then
|
|
||||||
unavail_overlay = "^unifieddyes_unavailable_overlay.png"
|
|
||||||
end
|
|
||||||
|
|
||||||
base_form = base_form.."image_button["..
|
|
||||||
(hp*hps)..","..(v2*vps+vs)..";"..
|
|
||||||
size..
|
|
||||||
"unifieddyes_white_square.png"..colorize..overlay..unavail_overlay..";"..
|
|
||||||
val..hue..sat..";]"..
|
|
||||||
"tooltip["..val..hue..sat..";"..val..hue..sat.."]"
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
if v > 3 then
|
if v > 3 then
|
||||||
@ -960,33 +968,10 @@ function unifieddyes.show_airbrush_form(player)
|
|||||||
local g3 = math.floor(p+(g2-p)*0.5)
|
local g3 = math.floor(p+(g2-p)*0.5)
|
||||||
local b3 = math.floor(p+(b2-p)*0.5)
|
local b3 = math.floor(p+(b2-p)*0.5)
|
||||||
|
|
||||||
local color = string.format("%02x", r3)..string.format("%02x", g3)..string.format("%02x", b3)
|
local hexcolor = string.format("%02x", r3)..string.format("%02x", g3)..string.format("%02x", b3)
|
||||||
local dye = "dye:"..val..hue..sat
|
local f
|
||||||
|
f, selindic = unifieddyes.make_colored_square(hexcolor, val..hue..sat, showall, creative, painting_with, nodepalette, hp, v2, selindic)
|
||||||
local overlay = ""
|
base_form = base_form..f
|
||||||
local colorize = minetest.formspec_escape("^[colorize:#"..color..":255")
|
|
||||||
|
|
||||||
if (showall or not nodepalette) and not creative and inv:contains_item("main", dye) then
|
|
||||||
overlay = "^unifieddyes_available_overlay.png"
|
|
||||||
end
|
|
||||||
|
|
||||||
if dye == painting_with then
|
|
||||||
overlay = "^unifieddyes_select_overlay.png"
|
|
||||||
selindic = "unifieddyes_white_square.png"..colorize..overlay.."]"..
|
|
||||||
"tooltip["..val..hue..sat..";"..val..hue..sat.."]"
|
|
||||||
end
|
|
||||||
|
|
||||||
local unavail_overlay = ""
|
|
||||||
if not showall and not unifieddyes.palette_has_color[nodepalette.."_"..val..hue..sat] then
|
|
||||||
unavail_overlay = "^unifieddyes_unavailable_overlay.png"
|
|
||||||
end
|
|
||||||
|
|
||||||
base_form = base_form.."image_button["..
|
|
||||||
(hp*hps)..","..(v2*vps+vs)..";"..
|
|
||||||
size..
|
|
||||||
"unifieddyes_white_square.png"..colorize..overlay..unavail_overlay..";"..
|
|
||||||
val..hue..sat..";]"..
|
|
||||||
"tooltip["..val..hue..sat..";"..val..hue..sat.."]"
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -996,52 +981,30 @@ function unifieddyes.show_airbrush_form(player)
|
|||||||
|
|
||||||
local hp=(15-y)+0.5
|
local hp=(15-y)+0.5
|
||||||
|
|
||||||
local grey = string.format("%02x", y*17)..string.format("%02x", y*17)..string.format("%02x", y*17)
|
local hexgrey = string.format("%02x", y*17)..string.format("%02x", y*17)..string.format("%02x", y*17)
|
||||||
local grey2 = "grey_"..y
|
local grey = "grey_"..y
|
||||||
|
|
||||||
if y == 0 then grey2 = "black"
|
if y == 0 then grey = "black"
|
||||||
elseif y == 4 then grey2 = "dark_grey"
|
elseif y == 4 then grey = "dark_grey"
|
||||||
elseif y == 8 then grey2 = "grey"
|
elseif y == 8 then grey = "grey"
|
||||||
elseif y == 11 then grey2 = "light_grey"
|
elseif y == 11 then grey = "light_grey"
|
||||||
elseif y == 15 then grey2 = "white"
|
elseif y == 15 then grey = "white"
|
||||||
end
|
end
|
||||||
|
|
||||||
local dye = "dye:"..grey2
|
local f
|
||||||
|
f, selindic = unifieddyes.make_colored_square(hexgrey, grey, showall, creative, painting_with, nodepalette, hp, v2, selindic)
|
||||||
local overlay = ""
|
base_form = base_form..f
|
||||||
local colorize = minetest.formspec_escape("^[colorize:#"..grey..":255")
|
|
||||||
|
|
||||||
if (showall or not nodepalette) and not creative and inv:contains_item("main", dye) then
|
|
||||||
overlay = "^unifieddyes_available_overlay.png"
|
|
||||||
end
|
|
||||||
|
|
||||||
if dye == painting_with then
|
|
||||||
overlay = "^unifieddyes_select_overlay.png"
|
|
||||||
selindic = "unifieddyes_white_square.png"..colorize..overlay.."]"..
|
|
||||||
"tooltip["..grey2..";"..grey2.."]"
|
|
||||||
end
|
|
||||||
|
|
||||||
local unavail_overlay = ""
|
|
||||||
if not showall and not unifieddyes.palette_has_color[nodepalette.."_"..grey2] then
|
|
||||||
unavail_overlay = "^unifieddyes_unavailable_overlay.png"
|
|
||||||
end
|
|
||||||
|
|
||||||
base_form = base_form.."image_button["..
|
|
||||||
(hp*hps)..","..(v2*vps+vs)..";"..
|
|
||||||
size..
|
|
||||||
"unifieddyes_white_square.png"..colorize..overlay..unavail_overlay..";"..
|
|
||||||
grey2..";]tooltip["..grey2..";"..grey2.."]"
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
if not creative then
|
if not creative then
|
||||||
base_form = base_form..
|
base_form = base_form..
|
||||||
"image[10.3,"..(vps*5+vs)..";"..size..
|
"image[10.3,"..(vps*5+vs)..color_button_size..
|
||||||
"unifieddyes_available_overlay.png]"..
|
"unifieddyes_available_overlay.png]"..
|
||||||
"label[11.0,"..(vps*5.1+vs)..";Dyes on hand]"
|
"label[11.0,"..(vps*5.1+vs)..";Dyes on hand]"
|
||||||
end
|
end
|
||||||
|
|
||||||
base_form = base_form.."image[12.5,"..(vps*5+vs)..";"..size..
|
base_form = base_form.."image[12.5,"..(vps*5+vs)..color_button_size..
|
||||||
selindic.."label[13.2,"..(vps*5.1+vs)..";Your selection]"
|
selindic.."label[13.2,"..(vps*5.1+vs)..";Your selection]"
|
||||||
|
|
||||||
base_form = base_form..
|
base_form = base_form..
|
||||||
|
Loading…
Reference in New Issue
Block a user