2016-12-29 14:57:53 +01:00

70 lines
1.7 KiB
Lua

local print = minetest.debug
print("sparktech init")
local NAME = minetest.get_current_modname()
local PATH = minetest.get_modpath(NAME)
dofile(PATH .. "/cable.lua")
dofile(PATH .. "/capacitor.lua")
dofile(PATH .. "/solar.lua")
dofile(PATH .. "/energy.lua")
sparktech = {
print = function(string)
minetest.chat_send_player(sparktech["player"]:get_player_name(), string)
end,
last_command = ""
}
minetest.register_node("sparktech:d_block", {
description = "Debug Block",
tiles = {"debug.png"},
groups = {oddly_breakable_by_hand = 1}
})
minetest.register_craftitem("sparktech:tablet", {
description = "Tablet",
inventory_image = "tablet.png",
on_use = function(itemstack, user, pointed_thing)
minetest.show_formspec(user:get_player_name(), "sparktech: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 ~= "sparktech: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)