1
0
mirror of https://github.com/TeTpaAka/quests.git synced 2024-12-23 01:00:40 +01:00
quests/init.lua

67 lines
1.9 KiB
Lua
Raw Normal View History

2015-02-19 16:47:50 +01:00
-- reading previous quests
local file = io.open(minetest.get_worldpath().."/quests", "r")
if file then
2015-07-16 15:49:14 +02:00
minetest.log("action", "Reading quests...")
2015-02-19 16:47:50 +01:00
quests = minetest.deserialize(file:read("*all"))
file:close()
end
2015-02-21 14:46:27 +01:00
quests = quests or {}
quests.registered_quests = {}
quests.active_quests = quests.active_quests or {}
2015-02-21 14:46:27 +01:00
quests.successfull_quests = quests.successfull_quests or {}
quests.failed_quests = quests.failed_quests or {}
quests.hud = quests.hud or {}
for idx,_ in pairs(quests.hud) do
quests.hud[idx].first = true
end
2015-02-21 14:46:27 +01:00
2015-02-19 16:47:50 +01:00
quests.formspec_lists = {}
2015-03-02 20:32:42 +01:00
function quests.round(num, n)
2015-02-20 16:21:10 +01:00
local mult = 10^(n or 0)
return math.floor(num * mult + .5) / mult
end
quests.colors = {
new = "0xAAAA00",
success = "0x00AD00",
failed = "0xAD0000"
}
local MP = minetest.get_modpath("quests")
dofile(MP .. "/central_message.lua")
dofile(MP .. "/core.lua")
dofile(MP .. "/hud.lua")
dofile(MP .. "/formspecs.lua")
2015-02-19 16:47:50 +01:00
-- support for unified_inventory
if (minetest.get_modpath("unified_inventory") ~= nil) then
dofile(minetest.get_modpath("quests") .. "/unified_inventory.lua")
2015-03-04 19:06:59 +01:00
elseif (minetest.get_modpath("inventory_plus") ~= nil) then
dofile(minetest.get_modpath("quests") .. "/inventory_plus.lua")
end
2015-02-19 16:47:50 +01:00
-- write the quests to file
minetest.register_on_shutdown(function()
2015-07-16 15:49:14 +02:00
minetest.log("action", "Writing quests to file")
2015-02-28 19:01:22 +01:00
for playername, quest in pairs(quests.active_quests) do
for questname, questspecs in pairs(quest) do
if (questspecs.finished) then
quests.active_quests[playername][questname] = nil -- make sure no finished quests are saved as unfinished
end
end
end
2015-02-19 16:47:50 +01:00
local file = io.open(minetest.get_worldpath().."/quests", "w")
if (file) then
file:write(minetest.serialize({ --registered_quests = quests.registered_quests,
active_quests = quests.active_quests,
2015-02-21 14:46:27 +01:00
successfull_quests = quests.successfull_quests,
failed_quests = quests.failed_quests,
hud = quests.hud}))
2015-02-19 16:47:50 +01:00
file:close()
end
end)