70 lines
1.6 KiB
Lua
70 lines
1.6 KiB
Lua
minetest.debug("sparkdebug init")
|
|
|
|
local NAME = minetest.get_current_modname()
|
|
local PATH = minetest.get_modpath(NAME) .."/"
|
|
local Files = {"multimeter"}
|
|
|
|
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")
|