diff options
author | orwell96 <mono96.mml@gmail.com> | 2017-02-03 15:40:44 +0100 |
---|---|---|
committer | orwell96 <mono96.mml@gmail.com> | 2017-02-03 15:40:44 +0100 |
commit | a72dda17be2175d5df8f1b7dd28e5ddeabe1494d (patch) | |
tree | 20ab87fa48e27761764f71669cc55654a08605f5 | |
parent | f74ef2a45693f89537e44e92fcee971b78a2f513 (diff) | |
download | advtrains-a72dda17be2175d5df8f1b7dd28e5ddeabe1494d.tar.gz advtrains-a72dda17be2175d5df8f1b7dd28e5ddeabe1494d.tar.bz2 advtrains-a72dda17be2175d5df8f1b7dd28e5ddeabe1494d.zip |
Add quick position lookup by punching nodes
-rw-r--r-- | advtrains/advtrains_luaautomation/chatcmds.lua | 24 |
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) |