minetest.debug("sparkdebug init") local NAME = minetest.get_current_modname() local PATH = minetest.get_modpath(NAME) .."/" local Files = {"multimeter"} sparktech = { print = function(string) minetest.chat_send_player(sparktech["player"]:get_player_name(), string) end, last_command = "", energy_hud = {} } minetest.register_node("sparkdebug:d_block", { description = "Debug Block", tiles = {"debug.png"}, groups = {oddly_breakable_by_hand = 1} }) for i=1,table.getn(Files),1 do dofile(PATH .. Files[i] .. ".lua") end minetest.register_craftitem("sparkdebug:tablet", { description = "Tablet", inventory_image = "tablet.png", on_use = function(itemstack, user, pointed_thing) minetest.show_formspec(user:get_player_name(), "sparkdebug:f_laptop", "size[10,10]" .. "label[0,0;Execute]" .. "field[1,5;8,1;code;Code;]" .. "button_exit[4,8;2,1;exit;Send]" .. "button_exit[4,6;2,1;last;Last]") end }) -- Register callback minetest.register_on_player_receive_fields(function(player, form, fields) if form ~= "sparkdebug:f_laptop" then return false end if fields.last then fields.code = sparktech["last_command"] end sparktech["player"] = player sparktech["last_command"] = fields.code --[[local func = loadstring(fields.code)() local val = func.init() local ret = "No return value" if not (val == nil) then ret = val end]]-- local suc, val = pcall(loadstring, fields.code) local ret = "E" if suc then _, ret = pcall(val, sparktech) else ret = val end if ret == nil then ret = "[did not return]" end minetest.chat_send_player(player:get_player_name(), ret) return true end) minetest.register_craftitem("sparkdebug:multimeter", { description = "Multimeter", inventory_image = "multimeter.png" }) minetest.debug("sparkdebug init complete")