worldedit.player_notify(name, "position 2 set to " .. minetest.pos_to_string(pos))\r
elseif worldedit.set_pos[name] == "prob" then --setting Minetest schematic node probabilities\r
worldedit.prob_pos[name] = pos\r
- minetest.show_formspec(puncher:get_player_name(), "prob_val_enter", "field[text;;]")\r
+ minetest.show_formspec(name, "prob_val_enter", "field[text;;]")\r
end\r
end\r
end)\r
})\r
\r
minetest.register_on_player_receive_fields(function(player, formname, fields)\r
- if formname == "prob_val_enter" and not (fields.text == "" or fields.text == nil) then\r
+ if formname == "prob_val_enter" then\r
local name = player:get_player_name()\r
- local prob_entry = {pos=worldedit.prob_pos[name], prob=tonumber(fields.text)}\r
- local index = table.getn(worldedit.prob_list[name]) + 1\r
- worldedit.prob_list[name][index] = prob_entry\r
+ local problist = worldedit.prob_list[name]\r
+ if problist == nil then\r
+ return\r
+ end\r
+ local e = {pos=worldedit.prob_pos[name], prob=tonumber(fields.text)}\r
+ if e.pos == nil or e.prob == nil or e.prob < 0 or e.prob > 256 then\r
+ worldedit.player_notify(name, "invalid node probability given, not saved")\r
+ return\r
+ end\r
+ problist[#problist+1] = e\r
end\r
end)\r
\r