| | |
| | | local function make_on(mark, length) |
| | | return function(pos, node) |
| | | local meta = minetest.get_meta(pos) |
| | | local owner = meta:get_string("owner") |
| | | local inv = meta:get_inventory() |
| | | local dir = vector.new() |
| | | if node.param2 == 3 then dir.x = 1 end |
| | |
| | | minetest.check_for_falling(pos) |
| | | for i = 1, length do |
| | | place_pos = vector.add(place_pos, dir) |
| | | if owner ~= "" and minetest.is_protected(place_pos, owner) then |
| | | return |
| | | end |
| | | local place_node = minetest.get_node(place_pos) |
| | | deploy_node(inv, "slot"..i, place_pos, place_node, node) |
| | | end |
| | |
| | | for i = 1, length do |
| | | inv:set_size("slot"..i, 1) |
| | | end |
| | | meta:set_string("owner", "?") |
| | | end, |
| | | after_place_node = function(pos, placer) |
| | | local meta = minetest.get_meta(pos) |
| | | meta:set_string("owner", (placer and placer:get_player_name() or "?")) |
| | | end, |
| | | can_dig = function(pos, player) |
| | | local meta = minetest.get_meta(pos) |