Fix level reset and level pack completion
This commit is contained in:
parent
034f8f5495
commit
5d234197a6
@ -1041,6 +1041,9 @@ function lzr_levels.clear_level_progress(level_data)
|
||||
end
|
||||
|
||||
function lzr_levels.mark_level_as_complete(level, level_data)
|
||||
if level_data.is_singleton then
|
||||
return
|
||||
end
|
||||
-- Only core levels are supported
|
||||
if level_data.name ~= "__core" then
|
||||
return
|
||||
@ -1067,6 +1070,7 @@ function lzr_levels.mark_level_as_complete(level, level_data)
|
||||
-- Place 'Perfect Plunderer' painting in ship
|
||||
-- as some kind of "mini-achievement"
|
||||
if lzr_levels.are_all_levels_completed(level_data) then
|
||||
level_packs_completed[level_data.name] = true
|
||||
lzr_menu.place_painting("perfect_plunderer")
|
||||
end
|
||||
|
||||
@ -1374,7 +1378,7 @@ function lzr_levels.get_level_pack(name)
|
||||
end
|
||||
|
||||
-- Returns list of all registered level packs (by name)
|
||||
function lzr_levels.get_level_packs()
|
||||
function lzr_levels.get_level_pack_names()
|
||||
local packs = {}
|
||||
for k,v in pairs(registered_level_packs) do
|
||||
table.insert(packs, k)
|
||||
|
@ -10,6 +10,7 @@ if minetest.settings:get_bool("lzr_debug", false) then
|
||||
privs = { server = true },
|
||||
description = S("Mark all core levels as complete except the first one"),
|
||||
func = function(name, param)
|
||||
local core_level_data = lzr_levels.get_level_pack("__core")
|
||||
if not core_level_data then
|
||||
return false
|
||||
end
|
||||
@ -21,24 +22,6 @@ if minetest.settings:get_bool("lzr_debug", false) then
|
||||
})
|
||||
end
|
||||
|
||||
minetest.register_chatcommand("reset_progress", {
|
||||
privs = {},
|
||||
params = "yes",
|
||||
description = S("Reset core level progress"),
|
||||
func = function(name, param)
|
||||
local core_level_data = lzr_levels.get_level_pack("__core")
|
||||
if not core_level_data then
|
||||
return false
|
||||
end
|
||||
if param == "yes" then
|
||||
lzr_levels.clear_level_progress(core_level_data)
|
||||
return true, S("Core level progress reset.")
|
||||
else
|
||||
return false, S("To reset level progress, use “/reset_progress yes”")
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
lzr_levels.register_level_pack("__core",
|
||||
minetest.get_modpath("lzr_levels_core").."/data/level_data.csv",
|
||||
minetest.get_modpath("lzr_levels_core").."/schematics",
|
||||
|
@ -6,8 +6,14 @@ minetest.register_chatcommand("reset_progress", {
|
||||
description = S("Reset your progress in this game"),
|
||||
func = function(name, param)
|
||||
if param == "yes" then
|
||||
-- Reset level progress
|
||||
lzr_levels.clear_level_progress()
|
||||
-- Reset level progress of all level packs
|
||||
local names = lzr_levels.get_level_pack_names()
|
||||
for n=1, #names do
|
||||
local level_pack = lzr_levels.get_level_pack(names[n])
|
||||
if level_pack then
|
||||
lzr_levels.clear_level_progress(level_pack)
|
||||
end
|
||||
end
|
||||
|
||||
-- Reset hidden parrot progress
|
||||
lzr_parrot_npc.clear_hidden_parrot_progress()
|
||||
|
Loading…
x
Reference in New Issue
Block a user