Compare commits

...

5 Commits

Author SHA1 Message Date
PilzAdam 2e50c557a7 Prepend 'Worldedit++' instead of 'Server' to messages to players 2013-04-23 12:25:29 +02:00
PilzAdam b4d9ff968f Add some license stuff 2013-04-21 23:55:53 +02:00
PilzAdam 40c0a4df04 Add Uberi's workaround for the schem limit 2013-04-21 15:48:56 +02:00
PilzAdam 7bab209c42 Add position 3 to /wpp 2013-04-20 19:14:17 +02:00
PilzAdam f3adc28abf Fix possible double placing of structures 2013-04-20 15:43:11 +02:00
2 changed files with 30 additions and 4 deletions

View File

@ -94,5 +94,5 @@ Currently supported commands are:
License
-------
Sourcecode: WTFPL
Sourcecode: WTFPL (parts by Uberi: AGPL)
Textures: WTFPL

View File

@ -33,8 +33,7 @@ local function minmaxp(p1, p2)
end
local function send_player(playername, text)
--minetest.chat_send_player(playername, "Wordledit++ -!- "..text, true) TODO
minetest.chat_send_player(playername, text)
minetest.chat_send_player(playername, "Wordledit++ -!- "..text, false)
end
minetest.register_globalstep(function(dtime)
@ -291,6 +290,7 @@ minetest.register_globalstep(function(dtime)
wpp.data[playername].unkown = nil
end
wpp.data[playername].status = ""
wpp.data[playername].nodes = nil
wpp.data[playername].p = nil
table.remove(wpp.run_player, 1)
elseif wpp.data[playername].action == "save" then
@ -365,6 +365,7 @@ minetest.register_globalstep(function(dtime)
wpp.data[playername].count = 0
wpp.data[playername].status = ""
wpp.data[playername].p = nil
wpp.data[playername].nodes = nil
table.remove(wpp.run_player, 1)
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)
@ -463,12 +464,14 @@ minetest.register_globalstep(function(dtime)
wpp.data[playername].count = 0
wpp.data[playername].status = ""
wpp.data[playername].p = nil
wpp.data[playername].nodes = nil
table.remove(wpp.run_player, 1)
else
wpp.data[playername].status = ""
send_player(playername, "Error occured: Unknonw action")
table.remove(wpp.run_player, 1)
wpp.data[playername].p = nil
wpp.data[playername].nodes = nil
end
end
end)
@ -519,6 +522,11 @@ minetest.register_chatcommand("wpp", {
else
send_player(playername, "Position 2 not set")
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
send_player(playername, "Selected node: "..wpp.data[playername].node)
else
@ -1131,7 +1139,25 @@ minetest.register_chatcommand("load", {
send_player(playername, "File format not supported")
return
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()
if not wpp.data[playername].nodes then
send_player(playername, "File corrupted (possibly too big)")