hyperloop/test.lua
2017-06-29 23:13:51 +02:00

200 lines
4.3 KiB
Lua

minetest = {}
hyperloop = {}
core = {}
DIR_DELIM = ""
function minetest.get_worldpath()
return "/home/joachim/temp/minetest/mods/hyperloop/"
end
dofile("/home/joachim/temp/minetest/builtin/common/serialize.lua")
dofile("/home/joachim/temp/minetest/builtin/common/vector.lua")
minetest.serialize = core.serialize
minetest.deserialize = core.deserialize
function minetest.after(t, c)
end
function dump(o)
if type(o) == 'table' then
local s = '{ '
for k,v in pairs(o) do
if type(k) ~= 'number' then k = '"'..k..'"' end
s = s .. '['..k..'] = ' .. dump(v) .. ','
end
return s .. '} '
else
return tostring(o)
end
end
function minetest.register_on_shutdown(list)
print(dump(list))
end
tAllStations = {
["Wangen"] = {
pos = "(1,2,3)",
routes = {
{"1.3", "3.1"}, -- Stuttgart
{"1.2", "2.1"}, -- München
},
},
["Stuttgart"] = {
pos = "(1,2,3)",
routes = {
{"3.1", "1.3"}, -- Wangen
{"3.2", "2.3"}, -- München
{"3.4", "4.3"}, -- Heidelberg
},
},
["München"] = {
pos = "(1,2,3)",
routes = {
{"2.1", "1.2"}, -- Wangen
{"2.3", "3.2"}, -- Stuttgart
},
},
["Heidelberg"] = {
pos = "(1,2,3)",
routes = {
{"4.3", "3.4"}, -- Stuttgart
},
},
["Berlin"] = {
pos = "(1,2,3)",
routes = {
{"5.6", "6.5"}, -- Hamburg
},
},
["Hamburg"] = {
pos = "(1,2,3)",
routes = {
{"6.5", "5.6"}, -- Berlin
},
},
}
require ("table")
function table.copy(t, seen)
local n = {}
seen = seen or {}
seen[t] = n
for k, v in pairs(t) do
n[(type(k) == "table" and (seen[k] or table.copy(k, seen))) or k] =
(type(v) == "table" and (seen[v] or table.copy(v, seen))) or v
end
return n
end
function minetest.pos_to_string(pos, decimal_places)
local x = pos.x
local y = pos.y
local z = pos.z
if decimal_places ~= nil then
x = string.format("%." .. decimal_places .. "f", x)
y = string.format("%." .. decimal_places .. "f", y)
z = string.format("%." .. decimal_places .. "f", z)
end
return "(" .. x .. "," .. y .. "," .. z .. ")"
end
function minetest.string_to_pos(value)
if value == nil then
return nil
end
local p = {}
p.x, p.y, p.z = string.match(value, "^([%d.-]+)[, ] *([%d.-]+)[, ] *([%d.-]+)$")
if p.x and p.y and p.z then
p.x = tonumber(p.x)
p.y = tonumber(p.y)
p.z = tonumber(p.z)
return p
end
local p = {}
p.x, p.y, p.z = string.match(value, "^%( *([%d.-]+)[, ] *([%d.-]+)[, ] *([%d.-]+) *%)$")
if p.x and p.y and p.z then
p.x = tonumber(p.x)
p.y = tonumber(p.y)
p.z = tonumber(p.z)
return p
end
return nil
end
--------------------------------------------------------------------------------
dofile("/home/joachim/temp/minetest/mods/hyperloop/utils.lua")
hyperloop.tAllStations = tAllStations
res = hyperloop.get_network_stations("Wangen")
print(dump(res))
print("")
res = hyperloop.get_connections("Wangen")
print(dump(res))
print("")
res = hyperloop.get_network_stations("München")
print(dump(res))
print("")
res = hyperloop.get_network_stations("Berlin")
print(dump(res))
print("")
res = hyperloop.get_connections("Hamburg")
print(dump(res))
print("")
res = hyperloop.get_stations("Düsseldorf")
print(dump(res))
print("")
res = hyperloop.get_networks()
for _,item in ipairs(res) do
print(dump(item))
end
print("")
local function final_formspec(name)
local stations = hyperloop.get_station_list(name)
table.sort(stations)
local tRes = {"size[10,9]label[2,0; Wähle dein Ziel :: Select your destination]"}
for idx,s in ipairs(stations) do
ypos = idx*0.8
tRes[#tRes + 1] = "label["..pos1..".2;"..s.."]"
tRes[#tRes + 1] = "button_exit["..pos2..";1,1;h;X]"
end
return table.concat(tRes)
end
--print(final_formspec("Wangen"))
--print(dump(hyperloop.get_station_list("Wangen")))
hyperloop.store_station_list()
--"size[10,9]label[2,0; Wähle dein Ziel :: Select your destination]"..
-- "label[1,1;Destination]label[3,1;Distance]label[4.5,1;Position]label[6,1;Connections to]"..
-- "button_exit[0,2;1,1;button;1]label[1,2;Wangen]label[3,2;1000m]label[4.5,2;(700,8,56)]label[6,2;Kisslegg, Leutkirch]"..
-- "button_exit[0,3;1,1;button;1]label[1,3;Buxehode]label[3,3;1000m]label[4.5,3;(700,8,56)]label[6,3;Kisslegg, Leutkirch]"..
-- "button_exit[0,4;1,1;button;1]label[1,4;Egg]label[3,4;1000m]label[4.5,4;(700,8,56)]label[6,4;Kisslegg, Leutkirch]"
hyperloop.gen_network_table()
print(dump(hyperloop.tNetworks))