Swap Node On Rightclick Problem
I'm trying to use minetest.swap_node to turn a computer on when it is rightclicked. First the computer is set to the bios version, then using minetest.after it is set to the fully on computer after 3.5 seconds. Full code is at the bottom of this post.
The first of my issues, is that on rightclick, I get this error in the chat and the node does not change, though the 3.5 second counter still attempts to run and fails.
After 3.5 seconds, the game crashes with:
Swap node function:
I tried manually entering the info, which worked, but cannot be relied upon when more nodes are added. I can do all this manually within the node register, though I think such a function is more effecient as I will also be using it later. However, though this did work, the node was placed facing the wrong direction. What can I do to fix this?
The first of my issues, is that on rightclick, I get this error in the chat and the node does not change, though the 3.5 second counter still attempts to run and fails.
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
- Code: Select all
ERROR[Server]: Map::setNode(): Not allowing to place CONTENT_IGNORE while trying to replace "digiterm:basic" at (179,6,-51) (block (11,0,-4))
After 3.5 seconds, the game crashes with:
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
- Code: Select all
2016-07-11 21:00:34: ERROR[Main]: ServerError: Runtime error from mod 'creative' in callback environment_Step(): ...local/share/minetest/games/testing/mods/digiterm/api.lua:21: attempt to index local 'pos' (a nil value)
2016-07-11 21:00:34: ERROR[Main]: stack traceback:
2016-07-11 21:00:34: ERROR[Main]: ...local/share/minetest/games/testing/mods/digiterm/api.lua:21: in function 'func'
2016-07-11 21:00:34: ERROR[Main]: /usr/local/share/minetest/builtin/game/misc.lua:34: in function </usr/local/share/minetest/builtin/game/misc.lua:11>
2016-07-11 21:00:34: ERROR[Main]: /usr/local/share/minetest/builtin/game/register.lua:369: in function </usr/local/share/minetest/builtin/game/register.lua:349>
Swap node function:
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
- Code: Select all
-- turn on (not functional)
function digiterm.system.on(pos, node)
minetest.swap_node({x = pos.x, y = pos.y, z = pos.z}, {name = node.."_bios"}) -- set node to bios
minetest.after(3.5, function(pos)
minetest.swap_node({x = pos.x, y = pos.y, z = pos.z}, {name = node.."_on"}) -- set node to on after 5 seconds
end)
end
-- turn off
function digiterm.system.off(pos, termstring)
minetest.swap_node(pos, "digiterm:"..termstring.."_bios") -- set node to on
end
-- reboot
function digiterm.system.reboot(pos, termstring)
digiterm.system.off(pos, termstring)
digiterm.system.on(pos, termstring)
end
I tried manually entering the info, which worked, but cannot be relied upon when more nodes are added. I can do all this manually within the node register, though I think such a function is more effecient as I will also be using it later. However, though this did work, the node was placed facing the wrong direction. What can I do to fix this?
+
Full Code (API)
+
Node Register using API