--[[ Unified Dyes This mod provides an extension to the Minetest 0.4.x dye system ============================================================================== Copyright (C) 2012-2013, Vanessa Ezekowitz Email: vanessaezekowitz@gmail.com This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ============================================================================== --]] --===================================================================== -- Boilerplate to support localized strings if intllib mod is installed. local S if minetest.get_modpath("intllib") then S = intllib.Getter() else S = function(s) return s end end -- Items/recipes needed to generate the few base colors that are not -- provided by the standard dyes mod. -- Lime minetest.register_craftitem(":dye:lime", { description = S("Lime Dye"), inventory_image = "unifieddyes_lime.png", groups = { dye=1, excolor_lime=1, unicolor_lime=1, not_in_creative_inventory=1 } }) minetest.register_craft( { type = "shapeless", output = "dye:lime 2", recipe = { "dye:yellow", "dye:green", }, }) -- Aqua minetest.register_craftitem(":dye:aqua", { description = S("Aqua Dye"), inventory_image = "unifieddyes_aqua.png", groups = { dye=1, excolor_aqua=1, unicolor_aqua=1, not_in_creative_inventory=1 } }) minetest.register_craft( { type = "shapeless", output = "dye:aqua 2", recipe = { "dye:cyan", "dye:green", }, }) -- Sky blue minetest.register_craftitem(":dye:skyblue", { description = S("Sky-blue Dye"), inventory_image = "unifieddyes_skyblue.png", groups = { dye=1, excolor_sky_blue=1, unicolor_sky_blue=1, not_in_creative_inventory=1 } }) minetest.register_craft( { type = "shapeless", output = "dye:skyblue 2", recipe = { "dye:cyan", "dye:blue", }, }) -- Red-violet minetest.register_craftitem(":dye:redviolet", { description = S("Red-violet Dye"), inventory_image = "unifieddyes_redviolet.png", groups = { dye=1, excolor_red_violet=1, unicolor_red_violet=1, not_in_creative_inventory=1 } }) minetest.register_craft( { type = "shapeless", output = "dye:redviolet 2", recipe = { "dye:red", "dye:magenta", }, }) -- Light grey minetest.register_craftitem(":dye:light_grey", { description = S("Light Grey Dye"), inventory_image = "unifieddyes_lightgrey.png", groups = { dye=1, excolor_lightgrey=1, unicolor_light_grey=1, not_in_creative_inventory=1 } }) minetest.register_craft( { type = "shapeless", output = "dye:light_grey 2", recipe = { "dye:grey", "dye:white", }, }) -- Extra craft for black dye minetest.register_craft( { type = "shapeless", output = "dye:black 4", recipe = { "default:coal_lump", }, }) -- Extra craft for dark grey dye minetest.register_craft( { type = "shapeless", output = "dye:dark_grey 3", recipe = { "dye:black", "dye:black", "dye:white", }, }) -- Extra craft for light grey dye minetest.register_craft( { type = "shapeless", output = "dye:light_grey 3", recipe = { "dye:black", "dye:white", "dye:white", }, }) -- Extra craft for green dye minetest.register_craft( { type = "shapeless", output = "dye:green 4", recipe = { "default:cactus", }, }) -- ================================================================= -- Generate all of additional variants of hue, saturation, and -- brightness. -- "s50" in a file/item name means "saturation: 50%". -- Brightness levels in the textures are 33% ("dark"), 66% ("medium"), -- 100% ("full", but not so-named), and 150% ("light"). local HUES = { "red", "orange", "yellow", "lime", "green", "aqua", "cyan", "skyblue", "blue", "violet", "magenta", "redviolet" } local HUES2 = { "Red", "Orange", "Yellow", "Lime", "Green", "Aqua", "Cyan", "Sky-blue", "Blue", "Violet", "Magenta", "Red-violet" } for i = 1, 12 do local hue = HUES[i] local hue2 = HUES2[i] minetest.register_craft( { type = "shapeless", output = "unifieddyes:dark_" .. hue .. "_s50 2", recipe = { "dye:" .. hue, "dye:dark_grey", }, }) minetest.register_craft( { type = "shapeless", output = "unifieddyes:dark_" .. hue .. "_s50 4", recipe = { "dye:" .. hue, "dye:black", "dye:black", "dye:white" }, }) if hue == "green" then minetest.register_craft( { type = "shapeless", output = "dye:dark_green 3", recipe = { "dye:" .. hue, "dye:black", "dye:black", }, }) else minetest.register_craft( { type = "shapeless", output = "unifieddyes:dark_" .. hue .. " 3", recipe = { "dye:" .. hue, "dye:black", "dye:black", }, }) end minetest.register_craft( { type = "shapeless", output = "unifieddyes:medium_" .. hue .. "_s50 2", recipe = { "dye:" .. hue, "dye:grey", }, }) minetest.register_craft( { type = "shapeless", output = "unifieddyes:medium_" .. hue .. "_s50 3", recipe = { "dye:" .. hue, "dye:black", "dye:white", }, }) minetest.register_craft( { type = "shapeless", output = "unifieddyes:medium_" .. hue .. " 2", recipe = { "dye:" .. hue, "dye:black", }, }) minetest.register_craft( { type = "shapeless", output = "unifieddyes:" .. hue .. "_s50 2", recipe = { "dye:" .. hue, "dye:grey", "dye:white", }, }) minetest.register_craft( { type = "shapeless", output = "unifieddyes:" .. hue .. "_s50 4", recipe = { "dye:" .. hue, "dye:white", "dye:white", "dye:black", }, }) if hue ~= "red" then minetest.register_craft( { type = "shapeless", output = "unifieddyes:light_" .. hue .. " 2", recipe = { "dye:" .. hue, "dye:white", }, }) end minetest.register_craftitem("unifieddyes:dark_" .. hue .. "_s50", { description = S("Dark " .. hue2 .. " Dye (low saturation)"), inventory_image = "unifieddyes_dark_" .. hue .. "_s50.png", groups = { dye=1, ["unicolor_dark_"..hue.."_s50"]=1, not_in_creative_inventory=1 } }) if hue ~= "green" then minetest.register_craftitem("unifieddyes:dark_" .. hue, { description = S("Dark " .. hue2 .. " Dye"), inventory_image = "unifieddyes_dark_" .. hue .. ".png", groups = { dye=1, ["unicolor_dark_"..hue]=1, not_in_creative_inventory=1 } }) end minetest.register_craftitem("unifieddyes:medium_" .. hue .. "_s50", { description = S("Medium " .. hue2 .. " Dye (low saturation)"), inventory_image = "unifieddyes_medium_" .. hue .. "_s50.png", groups = { dye=1, ["unicolor_medium_"..hue.."_s50"]=1, not_in_creative_inventory=1 } }) minetest.register_craftitem("unifieddyes:medium_" .. hue, { description = S("Medium " .. hue2 .. " Dye"), inventory_image = "unifieddyes_medium_" .. hue .. ".png", groups = { dye=1, ["unicolor_medium_"..hue]=1, not_in_creative_inventory=1 } }) minetest.register_craftitem("unifieddyes:" .. hue .. "_s50", { description = S(hue2 .. " Dye (low saturation)"), inventory_image = "unifieddyes_" .. hue .. "_s50.png", groups = { dye=1, ["unicolor_"..hue.."_s50"]=1, not_in_creative_inventory=1 } }) if hue ~= "red" then minetest.register_craftitem("unifieddyes:light_" .. hue, { description = S("Light " .. hue2 .. " Dye"), inventory_image = "unifieddyes_light_" .. hue .. ".png", groups = { dye=1, ["unicolor_light_"..hue]=1, not_in_creative_inventory=1 } }) end minetest.register_alias("unifieddyes:"..hue, "dye:"..hue) minetest.register_alias("unifieddyes:pigment_"..hue, "dye:"..hue) end minetest.register_alias("unifieddyes:light_red", "dye:pink") minetest.register_alias("unifieddyes:dark_green", "dye:dark_green") minetest.register_alias("unifieddyes:white_paint", "dye:white") minetest.register_alias("unifieddyes:titanium_dioxide", "dye:white") minetest.register_alias("unifieddyes:lightgrey_paint", "dye:light_grey") minetest.register_alias("unifieddyes:grey_paint", "dye:grey") minetest.register_alias("unifieddyes:darkgrey_paint", "dye:dark_grey") minetest.register_alias("unifieddyes:carbon_black", "dye:black") print(S("[UnifiedDyes] Loaded!"))