aboutsummaryrefslogtreecommitdiff
path: root/advtrains/advtrains_luaautomation/chatcmds.lua
diff options
context:
space:
mode:
authororwell96 <mono96.mml@gmail.com>2017-02-03 15:40:44 +0100
committerorwell96 <mono96.mml@gmail.com>2017-02-03 15:40:44 +0100
commita72dda17be2175d5df8f1b7dd28e5ddeabe1494d (patch)
tree20ab87fa48e27761764f71669cc55654a08605f5 /advtrains/advtrains_luaautomation/chatcmds.lua
parentf74ef2a45693f89537e44e92fcee971b78a2f513 (diff)
downloadadvtrains-a72dda17be2175d5df8f1b7dd28e5ddeabe1494d.tar.gz
advtrains-a72dda17be2175d5df8f1b7dd28e5ddeabe1494d.tar.bz2
advtrains-a72dda17be2175d5df8f1b7dd28e5ddeabe1494d.zip
Add quick position lookup by punching nodes
Diffstat (limited to 'advtrains/advtrains_luaautomation/chatcmds.lua')
-rw-r--r--advtrains/advtrains_luaautomation/chatcmds.lua24
1 files changed, 19 insertions, 5 deletions
diff --git a/advtrains/advtrains_luaautomation/chatcmds.lua b/advtrains/advtrains_luaautomation/chatcmds.lua
index 1a3f167..2d0c69d 100644
--- a/advtrains/advtrains_luaautomation/chatcmds.lua
+++ b/advtrains/advtrains_luaautomation/chatcmds.lua
@@ -1,12 +1,26 @@
--chatcmds.lua
--Registers commands to modify the init and step code for LuaAutomation
-local function get_init_form(env)
+--position helper.
+--punching a node will result in that position being saved and inserted into a text field on the top of init form.
+local punchpos={}
+
+minetest.register_on_punchnode(function(pos, node, player, pointed_thing)
+ local pname=player:get_player_name()
+ punchpos[pname]=pos
+end)
+
+local function get_init_form(env, pname)
local err = env.init_err or ""
local code = env.init_code or ""
- atprint(err)
+ local ppos=punchpos[pname]
+ local pp=""
+ if ppos then
+ pp="POS"..minetest.pos_to_string(ppos)
+ end
local form = "size[10,10]button[0,0;2,1;run;Run InitCode]button[2,0;2,1;cls;Clear S]"
- .."button[4,0;2,1;save;Save] button[6,0;2,1;del;Delete Env.] textarea[0.2,1;10,10;code;Environment initialization code;"..minetest.formspec_escape(code).."]"
+ .."button[4,0;2,1;save;Save] button[6,0;2,1;del;Delete Env.] field[8.1,0.5;2,1;punchpos;Last punched position;"..pp.."]"
+ .."textarea[0.2,1;10,10;code;Environment initialization code;"..minetest.formspec_escape(code).."]"
.."label[0,9.8;"..err.."]"
return form
end
@@ -18,7 +32,7 @@ core.register_chatcommand("env_setup", {
func = function(name, param)
local env=atlatc.envs[param]
if not env then return false,"Invalid environment name!" end
- minetest.show_formspec(name, "atlatc_envsetup_"..param, get_init_form(env))
+ minetest.show_formspec(name, "atlatc_envsetup_"..param, get_init_form(env, name))
return true
end,
})
@@ -65,6 +79,6 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
end
if fields.run then
env:run_initcode()
- minetest.show_formspec(pname, formname, get_init_form(env))
+ minetest.show_formspec(pname, formname, get_init_form(env, pname))
end
end)