Storage molto più leggero e pulito

master
Zughy 2020-08-17 14:38:37 +02:00
parent b81d342004
commit 2c8a488de1
1 changed files with 6 additions and 17 deletions

View File

@ -1,21 +1,14 @@
quake.players = {} -- KEY: p_name, INDEX: {lv (int), xp (int), kills (int), time_playing (int)}
local storage = minetest.get_mod_storage()
local players_list = minetest.deserialize(storage:get_string("players"))
function quake.init_storage()
-- se è il primo avvio, players_list sarà vuota
if players_list == nil then
players_list = {}
return
end
-- salvo in quake.players tutti i giocatori nello storage
for _, pl_name in pairs(players_list) do
quake.players[pl_name] = minetest.deserialize(storage:get_string("PLAYER." .. pl_name))
-- carico tutti i giocatori
for pl_name, pl_stats in pairs(storage:to_table().fields) do
quake.players[pl_name] = minetest.deserialize(pl_stats)
end
end
@ -24,21 +17,17 @@ end
function quake.add_player_to_storage(p_name)
quake.players[p_name] = {LV = 0, XP = 0, KILLS = 0, TIME_PLAYING = 0}
table.insert(players_list, p_name)
storage:set_string("players", minetest.serialize(players_list))
storage:set_string("PLAYER." .. p_name, minetest.serialize(quake.players[p_name]))
storage:set_string(p_name, minetest.serialize(quake.players[p_name]))
end
function quake.update_storage(p_name)
storage:set_string("PLAYER." .. p_name, minetest.serialize(quake.players[p_name]))
storage:set_string( p_name, minetest.serialize(quake.players[p_name]))
end
function quake.is_player_in_storage(p_name)
if storage:get_string("PLAYER." .. p_name) == "" then return false
else return true
end
return storage:get_string(p_name) ~= ""
end