diff options
Diffstat (limited to 'init.lua')
-rw-r--r-- | init.lua | 547 |
1 files changed, 141 insertions, 406 deletions
@@ -2,7 +2,7 @@ Unified Dyes -This mod provides a complete dye system and framework for Minetest 0.4.x. +This mod provides an extension to the Minetest 0.4.x dye system ============================================================================== @@ -25,440 +25,145 @@ with this program; if not, write to the Free Software Foundation, Inc., ============================================================================== -First, craft some bottles from the Vessels mod, then make some dye base: -Craft six empty bottles along with a bucket of water and a piece -of jungle grass to get 6 portions of dye base. +--]] -These craft/craftitem definitions for glass bottles are deprecated and are -only included here for backwards compatibility. Use vessels:glass_bottle -instead. -]]-- +--===================================================================== +-- Items/recipes needed to generate the few base colors that are not +-- provided by the standard dyes mod. -minetest.register_craftitem("unifieddyes:empty_bottle", { - description = "Glass Bottle (empty) (Deprecated)", - inventory_image = "unifieddyes_empty_bottle.png", -}) - -minetest.register_craft( { - type = "shapeless", - output = "vessels:glass_fragments", - recipe = { - "unifieddyes:empty_bottle", - "unifieddyes:empty_bottle", - }, -}) - --- Now the current stuff, using vessels:glass_bottle. - -minetest.register_craftitem("unifieddyes:dye_base", { - description = "Uncolored Dye Base Liquid", - inventory_image = "unifieddyes_dye_base.png", -}) - -minetest.register_craft( { - type = "shapeless", - output = "unifieddyes:dye_base 6", - recipe = { - "vessels:glass_bottle", - "vessels:glass_bottle", - "vessels:glass_bottle", - "vessels:glass_bottle", - "vessels:glass_bottle", - "vessels:glass_bottle", - "bucket:bucket_water", - "default:junglegrass", - }, - replacements = { {'bucket:bucket_water', 'bucket:bucket_empty'}, }, -}) - ---========================================================================== --- Now we need to turn our color sources (flowers, etc) into pigments and from --- there into actual usable dyes. There are seven base colors - one for each --- flower, plus black (as "carbon black") from coal, and white (as "titanium --- dioxide") from stone. Most give two portions of pigment; cactus gives 6, --- stone gives 10. - -pigments = { - "red", - "orange", - "yellow", - "green" -} - -dyesdesc = { - "Red", - "Orange", - "Yellow", - "Green" -} - -colorsources = { - "flowers:flower_rose", - "flowers:flower_tulip", - "flowers:flower_dandelion_yellow", - "flowers:flower_waterlily", -} - -for color in ipairs(colorsources) do - - -- the recipes to turn sources into pigments - - minetest.register_craftitem("unifieddyes:pigment_"..pigments[color], { - description = dyesdesc[color].." Pigment", - inventory_image = "unifieddyes_pigment_"..pigments[color]..".png", - }) - - minetest.register_craft({ - type = "cooking", - output = "unifieddyes:pigment_"..pigments[color].." 2", - recipe = colorsources[color], - }) - - -- The recipes to turn pigments into usable dyes - - minetest.register_craftitem("unifieddyes:"..pigments[color], { - description = "Full "..dyesdesc[color].." Dye", - inventory_image = "unifieddyes_"..pigments[color]..".png", - groups = { dye=1, ["basecolor_"..pigments[color]]=1, ["excolor_"..pigments[color]]=1, ["unicolor_"..pigments[color]]=1 } - }) - - minetest.register_craft( { - type = "shapeless", - output = "unifieddyes:"..pigments[color], - recipe = { - "unifieddyes:pigment_"..pigments[color], - "unifieddyes:dye_base" - } - }) -end - --- Stone->titanium dioxide and cactus->green pigment are done separately --- because of their larger yields - -minetest.register_craftitem("unifieddyes:titanium_dioxide", { - description = "Titanium Dioxide", - inventory_image = "unifieddyes_titanium_dioxide.png", -}) - -minetest.register_craft({ - type = "cooking", - output = "unifieddyes:titanium_dioxide 10", - recipe = "default:stone", -}) - -minetest.register_craft({ - type = "cooking", - output = "unifieddyes:pigment_green 6", - recipe = "default:cactus", -}) - --- coal->carbon black and carbon black -> black dye are done separately --- because of the different names - -minetest.register_craftitem("unifieddyes:carbon_black", { - description = "Carbon Black", - inventory_image = "unifieddyes_carbon_black.png", -}) - -minetest.register_craft({ - type = "cooking", - output = "unifieddyes:carbon_black 2", - recipe = "default:coal_lump", -}) - -minetest.register_craftitem("unifieddyes:black", { - description = "Black Dye", - inventory_image = "unifieddyes_black.png", - groups = { dye=1, basecolor_black=1, excolor_black=1, unicolor_black=1 } -}) - -minetest.register_craft( { - type = "shapeless", - output = "unifieddyes:black", - recipe = { - "unifieddyes:carbon_black", - "unifieddyes:dye_base", - }, -}) - ---======================================================================= --- Now that we have the dyes in a usable form, let's mix the various --- ingredients together to create the rest of the mod's colors and greys. - - ----------------------------- --- The 5 levels of greyscale - --- White paint - -minetest.register_craft( { - type = "shapeless", - output = "unifieddyes:white_paint", - recipe = { - "unifieddyes:titanium_dioxide", - "bucket:bucket_water", - "default:junglegrass", - }, -}) +-- Lime -minetest.register_craftitem("unifieddyes:white_paint", { - description = "White Paint", - inventory_image = "unifieddyes_white_paint.png", - groups = { dye=1, basecolor_white=1, excolor_white=1, unicolor_white=1 } +minetest.register_craftitem(":dye:lime", { + description = "Lime Dye", + inventory_image = "unifieddyes_lime.png", + groups = { dye=1, excolor_lime=1, unicolor_lime=1 } }) --- Light grey paint - minetest.register_craft( { type = "shapeless", - output = "unifieddyes:lightgrey_paint 3", + output = "dye:lime 2", recipe = { - "unifieddyes:white_paint", - "unifieddyes:white_paint", - "unifieddyes:carbon_black", + "dye:yellow", + "dye:green", }, }) -minetest.register_craftitem("unifieddyes:lightgrey_paint", { - description = "Light Grey Paint", - inventory_image = "unifieddyes_lightgrey_paint.png", - groups = { dye=1, excolor_lightgrey=1, unicolor_lightgrey=1 } -}) - --- Medium grey paint - -minetest.register_craft( { - type = "shapeless", - output = "unifieddyes:grey_paint 2", - recipe = { - "unifieddyes:white_paint", - "unifieddyes:carbon_black", - }, -}) +-- Aqua -minetest.register_craftitem("unifieddyes:grey_paint", { - description = "Medium Grey Paint", - inventory_image = "unifieddyes_grey_paint.png", - groups = { dye=1, basecolor_grey=1, excolor_grey=1, unicolor_grey=1 } +minetest.register_craftitem(":dye:aqua", { + description = "Aqua Dye", + inventory_image = "unifieddyes_aqua.png", + groups = { dye=1, excolor_aqua=1, unicolor_aqua=1 } }) --- Dark grey paint - minetest.register_craft( { type = "shapeless", - output = "unifieddyes:darkgrey_paint 3", + output = "dye:aqua 2", recipe = { - "unifieddyes:white_paint", - "unifieddyes:carbon_black", - "unifieddyes:carbon_black", + "dye:cyan", + "dye:green", }, }) -minetest.register_craftitem("unifieddyes:darkgrey_paint", { - description = "Dark Grey Paint", - inventory_image = "unifieddyes_darkgrey_paint.png", - groups = { dye=1, excolor_darkgrey=1, unicolor_darkgrey=1 } -}) - - ---============================================================================= --- Smelting/crafting recipes needed to generate various remaining 'full' colors --- (the register_craftitem functions are in the generate-the-rest loop below). - --- Cyan +-- Sky blue -minetest.register_craftitem("unifieddyes:cyan", { - description = "Full Cyan Dye", - inventory_image = "unifieddyes_cyan.png", - groups = { dye=1, basecolor_cyan=1, excolor_cyan=1, unicolor_cyan=1 } +minetest.register_craftitem(":dye:skyblue", { + description = "Sky-blue Dye", + inventory_image = "unifieddyes_skyblue.png", + groups = { dye=1, excolor_sky_blue=1, unicolor_sky_blue=1 } }) minetest.register_craft( { type = "shapeless", - output = "unifieddyes:cyan 2", + output = "dye:skyblue 2", recipe = { - "unifieddyes:blue", - "unifieddyes:green", + "dye:cyan", + "dye:blue", }, }) --- Magenta +-- Red-violet -minetest.register_craftitem("unifieddyes:magenta", { - description = "Full Magenta Dye", - inventory_image = "unifieddyes_magenta.png", - groups = { dye=1, basecolor_magenta=1, excolor_magenta=1, unicolor_magenta=1 } +minetest.register_craftitem(":dye:redviolet", { + description = "Red-violet Dye", + inventory_image = "unifieddyes_redviolet.png", + groups = { dye=1, excolor_red_violet=1, unicolor_red_violet=1 } }) minetest.register_craft( { type = "shapeless", - output = "unifieddyes:magenta 2", + output = "dye:redviolet 2", recipe = { - "unifieddyes:blue", - "unifieddyes:red", + "dye:red", + "dye:magenta", }, }) --- Lime -minetest.register_craftitem("unifieddyes:lime", { - description = "Full Lime Dye", - inventory_image = "unifieddyes_lime.png", - groups = { dye=1, excolor_lime=1, unicolor_lime=1 } -}) - -minetest.register_craft( { - type = "shapeless", - output = "unifieddyes:lime 2", - recipe = { - "unifieddyes:yellow", - "unifieddyes:green", - }, -}) - --- Aqua +-- Light grey -minetest.register_craftitem("unifieddyes:aqua", { - description = "Full Aqua Dye", - inventory_image = "unifieddyes_aqua.png", - groups = { dye=1, excolor_aqua=1, unicolor_aqua=1 } +minetest.register_craftitem(":dye:light_grey", { + description = "Light Grey Dye", + inventory_image = "unifieddyes_lightgrey.png", + groups = { dye=1, excolor_red_violet=1, unicolor_red_violet=1 } }) minetest.register_craft( { type = "shapeless", - output = "unifieddyes:aqua 2", + output = "dye:light_grey 2", recipe = { - "unifieddyes:cyan", - "unifieddyes:green", + "dye:grey", + "dye:white", }, }) --- Sky blue - -minetest.register_craftitem("unifieddyes:skyblue", { - description = "Full Sky-blue Dye", - inventory_image = "unifieddyes_skyblue.png", - groups = { dye=1, excolor_sky_blue=1, unicolor_sky_blue=1 } -}) +-- Extra craft for black dye minetest.register_craft( { type = "shapeless", - output = "unifieddyes:skyblue 2", + output = "dye:black 4", recipe = { - "unifieddyes:cyan", - "unifieddyes:blue", + "default:coal_lump", }, }) --- Red-violet - -minetest.register_craftitem("unifieddyes:redviolet", { - description = "Full Red-violet Dye", - inventory_image = "unifieddyes_redviolet.png", - groups = { dye=1, excolor_red_violet=1, unicolor_red_violet=1 } -}) +-- Extra craft for dark grey dye minetest.register_craft( { type = "shapeless", - output = "unifieddyes:redviolet 2", + output = "dye:dark_grey 3", recipe = { - "unifieddyes:red", - "unifieddyes:magenta", + "dye:black", + "dye:black", + "dye:white", }, }) --- We need to check if the version of the Flowers mod that is installed --- contains geraniums or not. If it doesn't, use the Viola to make blue dye. --- If Geraniums do exist, use them to make blue dye instead, and use Violas --- to get violet dye. Violet can always be made by mixing blue with magenta --- or red as usual. - - -minetest.register_craftitem("unifieddyes:pigment_blue", { - description = "Blue Pigment", - inventory_image = "unifieddyes_pigment_blue.png", -}) - -minetest.register_craft( { - type = "shapeless", - output = "unifieddyes:blue", - recipe = { - "unifieddyes:pigment_blue", - "unifieddyes:dye_base" - } -}) - -minetest.register_craftitem("unifieddyes:blue", { - description = "Full Blue Dye", - inventory_image = "unifieddyes_blue.png", - groups = { dye=1, basecolor_blue=1, excolor_blue=1, unicolor_blue=1 } -}) - -minetest.register_craftitem("unifieddyes:violet", { - description = "Full Violet/Purple Dye", - inventory_image = "unifieddyes_violet.png", - groups = { dye=1, basecolor_violet=1, excolor_violet=1, unicolor_violet=1 } -}) +-- Extra craft for light grey dye minetest.register_craft( { type = "shapeless", - output = "unifieddyes:violet 2", + output = "dye:light_grey 3", recipe = { - "unifieddyes:blue", - "unifieddyes:magenta", + "dye:black", + "dye:white", + "dye:white", }, }) +-- Extra craft for green dye + minetest.register_craft( { type = "shapeless", - output = "unifieddyes:violet 3", + output = "dye:green 4", recipe = { - "unifieddyes:blue", - "unifieddyes:blue", - "unifieddyes:red", + "default:cactus", }, }) -if minetest.registered_nodes["flowers:flower_geranium"] == nil then - - - minetest.register_craft({ - type = "cooking", - output = "unifieddyes:pigment_blue 2", - recipe = "flowers:flower_viola", - }) -else - minetest.register_craftitem("unifieddyes:pigment_violet", { - description = "Violet Pigment", - inventory_image = "unifieddyes_pigment_violet.png", - }) - - minetest.register_craft({ - type = "cooking", - output = "unifieddyes:pigment_blue 2", - recipe = "flowers:flower_geranium", - }) - - minetest.register_craft({ - type = "cooking", - output = "unifieddyes:pigment_violet 2", - recipe = "flowers:flower_viola", - }) - - minetest.register_craft( { - type = "shapeless", - output = "unifieddyes:violet", - recipe = { - "unifieddyes:pigment_violet", - "unifieddyes:dye_base" - } - }) -end - - -- ================================================================= --- Finally, generate all of additional variants of hue, saturation, and +-- Generate all of additional variants of hue, saturation, and -- brightness. -- "s50" in a file/item name means "saturation: 50%". @@ -505,8 +210,8 @@ for i = 1, 12 do type = "shapeless", output = "unifieddyes:dark_" .. hue .. "_s50 2", recipe = { - "unifieddyes:" .. hue, - "unifieddyes:darkgrey_paint", + "dye:" .. hue, + "dye:dark_grey", }, }) @@ -514,29 +219,42 @@ for i = 1, 12 do type = "shapeless", output = "unifieddyes:dark_" .. hue .. "_s50 4", recipe = { - "unifieddyes:" .. hue, - "unifieddyes:black", - "unifieddyes:black", - "unifieddyes:white_paint" + "dye:" .. hue, + "dye:black", + "dye:black", + "dye:white" }, }) - minetest.register_craft( { - type = "shapeless", - output = "unifieddyes:dark_" .. hue .. " 3", - recipe = { - "unifieddyes:" .. hue, - "unifieddyes:black", - "unifieddyes:black", - }, - }) + 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 = { - "unifieddyes:" .. hue, - "unifieddyes:grey_paint", + "dye:" .. hue, + "dye:grey", }, }) @@ -544,9 +262,9 @@ for i = 1, 12 do type = "shapeless", output = "unifieddyes:medium_" .. hue .. "_s50 3", recipe = { - "unifieddyes:" .. hue, - "unifieddyes:black", - "unifieddyes:white_paint", + "dye:" .. hue, + "dye:black", + "dye:white", }, }) @@ -554,8 +272,8 @@ for i = 1, 12 do type = "shapeless", output = "unifieddyes:medium_" .. hue .. " 2", recipe = { - "unifieddyes:" .. hue, - "unifieddyes:black", + "dye:" .. hue, + "dye:black", }, }) @@ -563,8 +281,9 @@ for i = 1, 12 do type = "shapeless", output = "unifieddyes:" .. hue .. "_s50 2", recipe = { - "unifieddyes:" .. hue, - "unifieddyes:lightgrey_paint", + "dye:" .. hue, + "dye:grey", + "dye:white", }, }) @@ -572,22 +291,23 @@ for i = 1, 12 do type = "shapeless", output = "unifieddyes:" .. hue .. "_s50 4", recipe = { - "unifieddyes:" .. hue, - "unifieddyes:white_paint", - "unifieddyes:white_paint", - "unifieddyes:black", + "dye:" .. hue, + "dye:white", + "dye:white", + "dye:black", }, }) - minetest.register_craft( { - type = "shapeless", - output = "unifieddyes:light_" .. hue .. " 2", - recipe = { - "unifieddyes:" .. hue, - "unifieddyes:white_paint", - }, - replacements = { {'unifieddyes:white_paint', 'bucket:bucket_empty'}, }, - }) + 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 = "Dark " .. hue2 .. " Dye (low saturation)", @@ -595,11 +315,13 @@ for i = 1, 12 do groups = { dye=1, ["unicolor_dark_"..hue.."_s50"]=1 } }) - minetest.register_craftitem("unifieddyes:dark_" .. hue, { - description = "Dark " .. hue2 .. " Dye", - inventory_image = "unifieddyes_dark_" .. hue .. ".png", - groups = { dye=1, ["unicolor_dark_"..hue]=1 } - }) + if hue ~= "green" then + minetest.register_craftitem("unifieddyes:dark_" .. hue, { + description = "Dark " .. hue2 .. " Dye", + inventory_image = "unifieddyes_dark_" .. hue .. ".png", + groups = { dye=1, ["unicolor_dark_"..hue]=1 } + }) + end minetest.register_craftitem("unifieddyes:medium_" .. hue .. "_s50", { description = "Medium " .. hue2 .. " Dye (low saturation)", @@ -619,13 +341,26 @@ for i = 1, 12 do groups = { dye=1, ["unicolor_"..hue.."_s50"]=1 } }) - minetest.register_craftitem("unifieddyes:light_" .. hue, { - description = "Light " .. hue2 .. " Dye", - inventory_image = "unifieddyes_light_" .. hue .. ".png", - groups = { dye=1, ["unicolor_light_"..hue]=1 } - }) - + if hue ~= "red" then + minetest.register_craftitem("unifieddyes:light_" .. hue, { + description = "Light " .. hue2 .. " Dye", + inventory_image = "unifieddyes_light_" .. hue .. ".png", + groups = { dye=1, ["unicolor_light_"..hue]=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("[UnifiedDyes] Loaded!") |