123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- -- dye/init.lua
- dye = {}
- -- Load support for MT game translation.
- local S = minetest.get_translator("dye")
- -- Make dye names and descriptions available globally
- dye.dyes = {
- {"white", "White"},
- {"grey", "Grey"},
- {"dark_grey", "Dark Grey"},
- {"black", "Black"},
- {"violet", "Violet"},
- {"blue", "Blue"},
- {"cyan", "Cyan"},
- {"dark_green", "Dark Green"},
- {"green", "Green"},
- {"yellow", "Yellow"},
- {"brown", "Brown"},
- {"orange", "Orange"},
- {"red", "Red"},
- {"magenta", "Magenta"},
- {"pink", "Pink"},
- }
- -- Define items
- for _, row in ipairs(dye.dyes) do
- local name = row[1]
- local description = row[2]
- local groups = {dye = 1}
- groups["color_" .. name] = 1
- minetest.register_craftitem("dye:" .. name, {
- inventory_image = "dye_" .. name .. ".png",
- description = S(description .. " Dye"),
- groups = groups
- })
- minetest.register_craft({
- output = "dye:" .. name .. " 4",
- recipe = {
- {"group:flower,color_" .. name}
- },
- })
- end
- -- Manually add coal -> black dye
- minetest.register_craft({
- output = "dye:black 4",
- recipe = {
- {"group:coal"}
- },
- })
- -- Manually add blueberries->violet dye
- minetest.register_craft({
- output = "dye:violet 4",
- recipe = {
- {"farming:blueberry", "farming:blueberry"}
- },
- })
- -- Manually add cactus->green dye
- minetest.register_craft({
- type = "cooking",
- cooktime = 6,
- output = "dye:green 2",
- recipe = "default:cactus"
- })
- -- Mix recipes
- local dye_recipes = {
- -- src1, src2, dst
- -- RYB mixes
- {"red", "blue", "violet"}, -- "purple"
- {"yellow", "red", "orange"},
- {"yellow", "blue", "green"},
- -- RYB complementary mixes
- {"yellow", "violet", "dark_grey"},
- {"blue", "orange", "dark_grey"},
- -- CMY mixes - approximation
- {"cyan", "yellow", "green"},
- {"cyan", "magenta", "blue"},
- {"yellow", "magenta", "red"},
- -- other mixes that result in a color we have
- {"red", "green", "brown"},
- {"magenta", "blue", "violet"},
- {"green", "blue", "cyan"},
- {"pink", "violet", "magenta"},
- -- mixes with black
- {"white", "black", "grey"},
- {"grey", "black", "dark_grey"},
- {"green", "black", "dark_green"},
- {"orange", "black", "brown"},
- -- mixes with white
- {"white", "red", "pink"},
- {"white", "dark_grey", "grey"},
- {"white", "dark_green", "green"},
- }
- for _, mix in pairs(dye_recipes) do
- minetest.register_craft({
- type = "shapeless",
- output = "dye:" .. mix[3] .. " 2",
- recipe = {"dye:" .. mix[1], "dye:" .. mix[2]},
- })
- end
- -- Dummy calls to S() to allow translation scripts to detect the strings.
- -- To update this run:
- -- for _,e in ipairs(dye.dyes) do print(("S(%q)"):format(e[2].." Dye")) end
- --[[
- S("White Dye")
- S("Grey Dye")
- S("Dark Grey Dye")
- S("Black Dye")
- S("Violet Dye")
- S("Blue Dye")
- S("Cyan Dye")
- S("Dark Green Dye")
- S("Green Dye")
- S("Yellow Dye")
- S("Brown Dye")
- S("Orange Dye")
- S("Red Dye")
- S("Magenta Dye")
- S("Pink Dye")
- --]]
|