nodes.lua 801 B

1234567891011121314151617181920212223
  1. function factory.swap_node(pos,name)
  2. local node = minetest.get_node(pos)
  3. if node.name == name then
  4. return
  5. end
  6. node.name = name
  7. minetest.swap_node(pos,node)
  8. end
  9. function factory.get_objects_with_square_radius(pos, rad)
  10. rad = rad + .5;
  11. local objs = {}
  12. for _,object in ipairs(minetest.env:get_objects_inside_radius(pos, math.sqrt(3)*rad)) do
  13. if not object:is_player() and object:get_luaentity() and (object:get_luaentity().name == "__builtin:item" or object:get_luaentity().name == "factory:moving_item") then
  14. local opos = object:getpos()
  15. if pos.x - rad <= opos.x and opos.x <= pos.x + rad and pos.y - rad <= opos.y and opos.y <= pos.y + rad and pos.z - rad <= opos.z and opos.z <= pos.z + rad then
  16. objs[#objs + 1] = object
  17. end
  18. end
  19. end
  20. return objs
  21. end