Add support for MT 5 game translation (rebasing ) (#2466)
[oweals/minetest_game.git] / mods / dye / init.lua
1 -- dye/init.lua
2
3 dye = {}
4
5 -- Load support for MT game translation.
6 local S = minetest.get_translator("dye")
7
8 -- Make dye names and descriptions available globally
9
10 dye.dyes = {
11         {"white",      S("White")},
12         {"grey",       S("Grey")},
13         {"dark_grey",  S("Dark Grey")},
14         {"black",      S("Black")},
15         {"violet",     S("Violet")},
16         {"blue",       S("Blue")},
17         {"cyan",       S("Cyan")},
18         {"dark_green", S("Dark Green")},
19         {"green",      S("Green")},
20         {"yellow",     S("Yellow")},
21         {"brown",      S("Brown")},
22         {"orange",     S("Orange")},
23         {"red",        S("Red")},
24         {"magenta",    S("Magenta")},
25         {"pink",       S("Pink")},
26 }
27
28 -- Define items
29
30 for _, row in ipairs(dye.dyes) do
31         local name = row[1]
32         local description = row[2]
33         local groups = {dye = 1}
34         groups["color_" .. name] = 1
35
36         minetest.register_craftitem("dye:" .. name, {
37                 inventory_image = "dye_" .. name .. ".png",
38                 description = S("@1 Dye", description),
39                 groups = groups
40         })
41
42         minetest.register_craft({
43                 output = "dye:" .. name .. " 4",
44                 recipe = {
45                         {"group:flower,color_" .. name}
46                 },
47         })
48 end
49
50 -- Manually add coal -> black dye
51
52 minetest.register_craft({
53         output = "dye:black 4",
54         recipe = {
55                 {"group:coal"}
56         },
57 })
58
59 -- Manually add blueberries->violet dye
60
61 minetest.register_craft({
62         output = "dye:violet 2",
63         recipe = {
64                 {"default:blueberries"}
65         },
66 })
67
68 -- Mix recipes
69
70 local dye_recipes = {
71         -- src1, src2, dst
72         -- RYB mixes
73         {"red", "blue", "violet"}, -- "purple"
74         {"yellow", "red", "orange"},
75         {"yellow", "blue", "green"},
76         -- RYB complementary mixes
77         {"yellow", "violet", "dark_grey"},
78         {"blue", "orange", "dark_grey"},
79         -- CMY mixes - approximation
80         {"cyan", "yellow", "green"},
81         {"cyan", "magenta", "blue"},
82         {"yellow", "magenta", "red"},
83         -- other mixes that result in a color we have
84         {"red", "green", "brown"},
85         {"magenta", "blue", "violet"},
86         {"green", "blue", "cyan"},
87         {"pink", "violet", "magenta"},
88         -- mixes with black
89         {"white", "black", "grey"},
90         {"grey", "black", "dark_grey"},
91         {"green", "black", "dark_green"},
92         {"orange", "black", "brown"},
93         -- mixes with white
94         {"white", "red", "pink"},
95         {"white", "dark_grey", "grey"},
96         {"white", "dark_green", "green"},
97 }
98
99 for _, mix in pairs(dye_recipes) do
100         minetest.register_craft({
101                 type = "shapeless",
102                 output = "dye:" .. mix[3] .. " 2",
103                 recipe = {"dye:" .. mix[1], "dye:" .. mix[2]},
104         })
105 end