holostorage/nodes/common.lua

45 lines
1.1 KiB
Lua
Raw Normal View History

2018-04-08 14:11:39 +00:00
-- holostorage commons
2018-04-08 14:11:39 +00:00
holostorage.helpers = {}
2018-04-08 14:11:39 +00:00
function holostorage.helpers.swap_node(pos, noded)
local node = minetest.get_node(pos)
if type(noded) ~= "table" then
noded = {name = noded}
end
if node.name == noded.name then
return false
end
minetest.swap_node(pos, noded)
return true
end
2018-04-08 14:11:39 +00:00
function holostorage.helpers.grid_refresh(pos, n, controller)
local node = minetest.get_node(pos)
2018-04-08 09:39:06 +00:00
local meta = minetest.get_meta(pos)
local nodedef = minetest.registered_nodes[node.name]
2018-04-08 09:39:06 +00:00
local prev = meta:get_string("controller")
meta:set_string("infotext", ("%s Active"):format(nodedef.description))
meta:set_string("controller", minetest.pos_to_string(controller))
if not prev or prev == "" then
minetest.get_node_timer(pos):start(0.02)
end
2018-04-08 14:11:39 +00:00
if nodedef.holostorage_enabled_name then
node.name = nodedef.holostorage_enabled_name
holostorage.helpers.swap_node(pos, node)
end
end
2018-04-08 12:06:49 +00:00
2018-04-08 14:11:39 +00:00
function holostorage.front(pos, fd)
2018-04-08 12:06:49 +00:00
local front = minetest.facedir_to_dir(fd)
front.x = front.x * -1 + pos.x
front.y = front.y * -1 + pos.y
front.z = front.z * -1 + pos.z
return front
end