Render seed nodes as nodebox
[minetest_hades/hades_revisited.git] / mods / hades_magic_wand / init.lua
blobfd9db340eac99952fb1ad9236634f08ec7ce4987
1 local S = minetest.get_translator("hades_magic_wand")
3 local cycles = {
4 { "hades_core:dirt", "hades_core:dirt_with_grass" },
5 { "farming:soil", "farming:soil_wet" },
6 { "hades_core:grass_1", "hades_core:grass_2", "hades_core:grass_3", "hades_core:grass_4", "hades_core:grass_5" },
7 { "flowers:seaweed_4", "flowers:seaweed_2", "flowers:seaweed_3", "flowers:seaweed" },
8 { "flowers:waterlily", "flowers:waterlily_225", "flowers:waterlily_45", "flowers:waterlily_675", "flowers:waterlily_s3", "flowers:waterlily_s1", "flowers:waterlily_s2", "flowers:waterlily_s4" },
9 { "vines:willow", "vines:willow_rotten" },
10 { "vines:side", "vines:side_rotten" },
11 { "vines:vine", "vines:vine_rotten" },
12 { "refruit:bud_apple", "refruit:flower_apple", "hades_trees:apple" },
13 { "refruit:bud_olive", "refruit:flower_olive", "hades_trees:olive" },
16 local seeds_3 = { "cotton", "wheat", "spice", "potato", "strawberry", "tomato" }
17 for s=1,#seeds_3 do
18 local seed = seeds_3[s]
19 local seeds = { "farming:seed_"..seed }
20 for i=1,3 do
21 table.insert(seeds, "farming:"..seed.."_"..i)
22 end
23 table.insert(cycles, seeds)
24 end
26 local conversions = {}
28 for c=1, #cycles do
29 for d=1, #cycles[c] do
30 local cthis = cycles[c][d]
31 local next_num = d+1
32 if next_num > #cycles[c] then
33 next_num = 1
34 end
35 local cnext = cycles[c][next_num]
36 conversions[cthis] = cnext
37 end
38 end
40 minetest.register_craftitem("hades_magic_wand:magic_wand", {
41 description = S("Magic Wand"),
42 _tt_help = S("Changes block state"),
43 inventory_image = "default_stick.png^[colorize:#940EFE:127",
44 wield_image = "default_stick.png^[colorize:#940EFE:127",
45 groups = { tool = 1 },
46 on_use = function(itemstack, user, pointed_thing)
47 if pointed_thing.type == "node" then
48 local pos = pointed_thing.under
49 local node = minetest.get_node(pointed_thing.under)
50 if conversions[node.name] then
51 node.name = conversions[node.name]
52 minetest.swap_node(pos, node)
53 end
54 end
55 return itemstack
56 end,