Compare commits
5 Commits
d3b792b6ec
...
2e50c557a7
Author | SHA1 | Date |
---|---|---|
PilzAdam | 2e50c557a7 | |
PilzAdam | b4d9ff968f | |
PilzAdam | 40c0a4df04 | |
PilzAdam | 7bab209c42 | |
PilzAdam | f3adc28abf |
|
@ -94,5 +94,5 @@ Currently supported commands are:
|
||||||
|
|
||||||
License
|
License
|
||||||
-------
|
-------
|
||||||
Sourcecode: WTFPL
|
Sourcecode: WTFPL (parts by Uberi: AGPL)
|
||||||
Textures: WTFPL
|
Textures: WTFPL
|
||||||
|
|
32
init.lua
32
init.lua
|
@ -33,8 +33,7 @@ local function minmaxp(p1, p2)
|
||||||
end
|
end
|
||||||
|
|
||||||
local function send_player(playername, text)
|
local function send_player(playername, text)
|
||||||
--minetest.chat_send_player(playername, "Wordledit++ -!- "..text, true) TODO
|
minetest.chat_send_player(playername, "Wordledit++ -!- "..text, false)
|
||||||
minetest.chat_send_player(playername, text)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_globalstep(function(dtime)
|
minetest.register_globalstep(function(dtime)
|
||||||
|
@ -291,6 +290,7 @@ minetest.register_globalstep(function(dtime)
|
||||||
wpp.data[playername].unkown = nil
|
wpp.data[playername].unkown = nil
|
||||||
end
|
end
|
||||||
wpp.data[playername].status = ""
|
wpp.data[playername].status = ""
|
||||||
|
wpp.data[playername].nodes = nil
|
||||||
wpp.data[playername].p = nil
|
wpp.data[playername].p = nil
|
||||||
table.remove(wpp.run_player, 1)
|
table.remove(wpp.run_player, 1)
|
||||||
elseif wpp.data[playername].action == "save" then
|
elseif wpp.data[playername].action == "save" then
|
||||||
|
@ -365,6 +365,7 @@ minetest.register_globalstep(function(dtime)
|
||||||
wpp.data[playername].count = 0
|
wpp.data[playername].count = 0
|
||||||
wpp.data[playername].status = ""
|
wpp.data[playername].status = ""
|
||||||
wpp.data[playername].p = nil
|
wpp.data[playername].p = nil
|
||||||
|
wpp.data[playername].nodes = nil
|
||||||
table.remove(wpp.run_player, 1)
|
table.remove(wpp.run_player, 1)
|
||||||
elseif wpp.data[playername].action == "move_read" or wpp.data[playername].action == "copy_read" then
|
elseif wpp.data[playername].action == "move_read" or wpp.data[playername].action == "copy_read" then
|
||||||
local minp, maxp = minmaxp(wpp.data[playername].p1, wpp.data[playername].p2)
|
local minp, maxp = minmaxp(wpp.data[playername].p1, wpp.data[playername].p2)
|
||||||
|
@ -463,12 +464,14 @@ minetest.register_globalstep(function(dtime)
|
||||||
wpp.data[playername].count = 0
|
wpp.data[playername].count = 0
|
||||||
wpp.data[playername].status = ""
|
wpp.data[playername].status = ""
|
||||||
wpp.data[playername].p = nil
|
wpp.data[playername].p = nil
|
||||||
|
wpp.data[playername].nodes = nil
|
||||||
table.remove(wpp.run_player, 1)
|
table.remove(wpp.run_player, 1)
|
||||||
else
|
else
|
||||||
wpp.data[playername].status = ""
|
wpp.data[playername].status = ""
|
||||||
send_player(playername, "Error occured: Unknonw action")
|
send_player(playername, "Error occured: Unknonw action")
|
||||||
table.remove(wpp.run_player, 1)
|
table.remove(wpp.run_player, 1)
|
||||||
wpp.data[playername].p = nil
|
wpp.data[playername].p = nil
|
||||||
|
wpp.data[playername].nodes = nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
@ -519,6 +522,11 @@ minetest.register_chatcommand("wpp", {
|
||||||
else
|
else
|
||||||
send_player(playername, "Position 2 not set")
|
send_player(playername, "Position 2 not set")
|
||||||
end
|
end
|
||||||
|
if wpp.data[playername].p3 then
|
||||||
|
send_player(playername, "Position 3: "..minetest.pos_to_string(wpp.data[playername].p3))
|
||||||
|
else
|
||||||
|
send_player(playername, "Position 3 not set")
|
||||||
|
end
|
||||||
if wpp.data[playername].node then
|
if wpp.data[playername].node then
|
||||||
send_player(playername, "Selected node: "..wpp.data[playername].node)
|
send_player(playername, "Selected node: "..wpp.data[playername].node)
|
||||||
else
|
else
|
||||||
|
@ -1131,7 +1139,25 @@ minetest.register_chatcommand("load", {
|
||||||
send_player(playername, "File format not supported")
|
send_player(playername, "File format not supported")
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
wpp.data[playername].nodes = minetest.deserialize(content)
|
--wpp.data[playername].nodes = minetest.deserialize(content)
|
||||||
|
|
||||||
|
--HACK by Uberi
|
||||||
|
-- License: AGPL 3.0
|
||||||
|
content = content:gsub("return%s*{", "", 1):gsub("}%s*$", "", 1)
|
||||||
|
local escaped = content:gsub("\\\\", "@@"):gsub("\\\"", "@@"):gsub("(\"[^\"]+\")", function(s) return string.rep("@", #s) end)
|
||||||
|
wpp.data[playername].nodes = {}
|
||||||
|
local startpos, startpos1, endpos = 1, 1
|
||||||
|
while true do
|
||||||
|
startpos, endpos = escaped:find("},%s*{", startpos)
|
||||||
|
if not startpos then
|
||||||
|
break
|
||||||
|
end
|
||||||
|
local current = content:sub(startpos1, startpos)
|
||||||
|
table.insert(wpp.data[playername].nodes, minetest.deserialize("return " .. current))
|
||||||
|
startpos, startpos1 = endpos, endpos
|
||||||
|
end
|
||||||
|
-- END HACK by Uberi
|
||||||
|
|
||||||
file:close()
|
file:close()
|
||||||
if not wpp.data[playername].nodes then
|
if not wpp.data[playername].nodes then
|
||||||
send_player(playername, "File corrupted (possibly too big)")
|
send_player(playername, "File corrupted (possibly too big)")
|
||||||
|
|
Loading…
Reference in New Issue