1
0
mirror of https://github.com/mt-mods/unifieddyes.git synced 2025-06-28 06:20:36 +02:00

Compare commits

..

6 Commits

Author SHA1 Message Date
10ab87bf65 prevent crash in setting sky color
if get color from name return nil
2019-05-25 04:14:12 -04:00
f59c8affc1 Merge branch 'master' into 'master'
Fixed yield for crafted dyes.

See merge request VanessaE/unifieddyes!2
2019-02-07 15:19:47 +00:00
667bce80b9 Fixed yield for crafted dyes.
Fix a bug that caused multiple inconsistent recipes to appear
(identical dye resources gave different dye output quantity).

Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
2019-02-07 10:08:04 +01:00
5039a8ce07 Merge branch 'patch-1' into 'master'
Fix numbers relating to greys

See merge request VanessaE/unifieddyes!1
2018-12-16 00:09:21 +00:00
13a8cbb38f Some of the numbers relating to greys are used inconsistently, making three of the palette colours unreachable. This bug patch fixes the numbers and restores full usability of the palette. 2018-12-15 10:53:35 +00:00
58dd71e561 Add function to get the hex color from a dye name
(oh, and https://www.youtube.com/watch?v=OEVFbrEv83w too)
2018-12-01 17:59:00 -06:00

View File

@ -128,7 +128,7 @@ unifieddyes.GREYS = {
unifieddyes.GREYS_EXTENDED = table.copy(unifieddyes.GREYS)
for i = 1, 14 do
if i ~= 0 and i ~= 3 and i ~= 7 and i ~= 11 and i ~= 15 then
if i ~= 0 and i ~= 4 and i ~= 8 and i ~= 11 and i ~= 15 then
table.insert(unifieddyes.GREYS_EXTENDED, "grey_"..i)
end
end
@ -449,7 +449,7 @@ function unifieddyes.getpaletteidx(color, palette_type)
["grey_14"] = 1,
["grey_13"] = 2,
["grey_12"] = 3,
["light_grey"] = 3,
["light_grey"] = 4,
["grey_11"] = 4,
["grey_10"] = 5,
["grey_9"] = 6,
@ -630,6 +630,19 @@ function unifieddyes.getpaletteidx(color, palette_type)
end
end
function unifieddyes.get_color_from_dye_name(name)
if name == "dye:black" then
return "000000"
elseif name == "dye:white" then
return "ffffff"
end
local item = minetest.registered_items[name]
if not item then return end
local inv_image = item.inventory_image
if not inv_image then return end
return string.match(inv_image,"colorize:#(......):200")
end
-- punch-to-recolor using the airbrush
function unifieddyes.on_airbrush(itemstack, player, pointed_thing)
@ -640,8 +653,30 @@ function unifieddyes.on_airbrush(itemstack, player, pointed_thing)
painting_with = unifieddyes.player_current_dye[player_name]
end
if not painting_with then
minetest.chat_send_player(player_name, "*** You need to set a color first.")
minetest.chat_send_player(player_name, "*** Right-click any random node to open the color selector,")
minetest.chat_send_player(player_name, "*** or shift+right-click a colorized node to use its color.")
minetest.chat_send_player(player_name, "*** Be sure to click \"Accept\", or the color you select will be ignored.")
return
end
local pos = minetest.get_pointed_thing_position(pointed_thing)
if not pos then return end
if not pos then
local look_angle = player:get_look_vertical()
if look_angle > -1.55 then
minetest.chat_send_player(player_name, "*** No node selected")
else
local hexcolor = unifieddyes.get_color_from_dye_name(painting_with)
if hexcolor then
local r = tonumber(string.sub(hexcolor,1,2),16)
local g = tonumber(string.sub(hexcolor,3,4),16)
local b = tonumber(string.sub(hexcolor,5,6),16)
player:set_sky({r=r,g=g,b=b,a=255},"plain")
end
end
return
end
local node = minetest.get_node(pos)
local def = minetest.registered_items[node.name]
@ -652,14 +687,6 @@ function unifieddyes.on_airbrush(itemstack, player, pointed_thing)
return
end
if not painting_with then
minetest.chat_send_player(player_name, "*** You need to set a color first.")
minetest.chat_send_player(player_name, "*** Right-click any random node to open the color selector,")
minetest.chat_send_player(player_name, "*** or shift+right-click a colorized node to use its color.")
minetest.chat_send_player(player_name, "*** Be sure to click \"Accept\", or the color you select will be ignored.")
return
end
if not (def.groups and def.groups.ud_param2_colorable and def.groups.ud_param2_colorable > 0) then
minetest.chat_send_player(player_name, "*** That node can't be colored.")
return
@ -1406,7 +1433,7 @@ for _,i in ipairs(unifieddyes.base_color_crafts) do
minetest.register_craft( {
type = "shapeless",
output = "dye:"..j[1]..color..j[2].." "..yield,
output = "dye:"..j[1]..color..j[2].." "..j[6],
recipe = {
"dye:"..color,
firstdye,