]> git.lizzy.rs Git - drop_spawners.git/blob - init.lua
Only drop when dug with Silk Touch
[drop_spawners.git] / init.lua
1 local spawner_def = minetest.registered_nodes["mcl_mobspawners:spawner"]
2 spawner_def.on_place = nil
3
4 minetest.override_item("mcl_mobspawners:spawner", {
5         after_place_node = function(pos, placer, itemstack, pointed_thing)
6                 local meta = minetest.get_meta(pos)
7                 local itemmeta = itemstack:get_meta()
8                 meta:set_string("name", itemmeta:get_string("name"))
9                 meta:set_string("description", itemmeta:get_string("description"))
10                 local fields = itemmeta:to_table().fields
11                 mcl_mobspawners.setup_spawner(pos, fields.Mob, fields.MinLight, fields.MaxLight, fields.MaxMobsInArea, fields.PlayerDistance, fields.YOffset)
12         end,
13         after_dig_node = function(pos, node, meta, digger)
14                 local itemstack = ItemStack("mcl_mobspawners:spawner")
15                 if mcl_enchanting.has_enchantment(digger:get_wielded_item(), "silk_touch") then
16                         itemstack:get_meta():from_table(meta)
17                         tt.reload_itemstack_description(itemstack)
18                         minetest.add_item(pos, itemstack)
19                 end
20         end
21 })
22
23 tt.register_snippet(function(itemstring, _, itemstack)
24         if itemstring ~= "mcl_mobspawners:spawner" or not itemstack then
25                 return
26         end
27         local mob = itemstack:get_meta():get_string("Mob")
28         if mob ~= "" then
29                 return "Mob type: " .. mob
30         end
31 end)