mods that hopefully work for a TechAge-based pack
This commit is contained in:
1 parent
4e6b08d194
commit
c27db2a537
6234 files changed
+375578
No files matched your search
@@ -0,0 +1,96 @@
|
||||
-- The functions and variables in this file are only for use in the mod itself.
|
||||
-- Those that do real work should be local and wrapped in public functions
|
||||
local function log(text)
|
||||
local logmessage = yl_canned_food_mtg.t("log_prefix", yl_canned_food_mtg.modname, text)
|
||||
if yl_canned_food_mtg.settings.debug then minetest.log("action", logmessage) end
|
||||
return logmessage
|
||||
end
|
||||
|
||||
function yl_canned_food_mtg.log(text) return log(text) end
|
||||
|
||||
local function get_savepath()
|
||||
local savepath = yl_canned_food_mtg.worldpath .. yl_canned_food_mtg.settings.save_path
|
||||
log(yl_canned_food_mtg.t("log_prefix", dump(savepath), ""))
|
||||
return savepath
|
||||
end
|
||||
|
||||
local function get_filepath(filename)
|
||||
local path_to_file = get_savepath() .. DIR_DELIM .. filename .. ".json"
|
||||
log(yl_canned_food_mtg.t("get_filepath", dump(filename), dump(path_to_file)))
|
||||
return path_to_file
|
||||
end
|
||||
|
||||
local function save_json(filename, content)
|
||||
if type(filename) ~= "string" or type(content) ~= "table" then
|
||||
return false
|
||||
end
|
||||
local savepath = get_filepath(filename)
|
||||
local savecontent = minetest.write_json(content)
|
||||
return minetest.safe_file_write(savepath, savecontent)
|
||||
end
|
||||
|
||||
local function load_json(path)
|
||||
local file = io.open(path, "r")
|
||||
if not file then
|
||||
return false, yl_canned_food_mtg.t("error_cannot_open_file", dump(path))
|
||||
end
|
||||
|
||||
local content = file:read("*all")
|
||||
file:close()
|
||||
|
||||
if not content then
|
||||
return false, yl_canned_food_mtg.t("error_cannot_read_file", dump(path))
|
||||
end
|
||||
|
||||
return true, minetest.parse_json(content)
|
||||
end
|
||||
|
||||
-- Public functions wrap the private ones, so they can be exchanged easily
|
||||
|
||||
function yl_canned_food_mtg.get_filepath(filename)
|
||||
return get_filepath(filename)
|
||||
end
|
||||
|
||||
function yl_canned_food_mtg.load(filename, ...) return load_json(filename, ...) end
|
||||
|
||||
function yl_canned_food_mtg.save(filename, content, ...)
|
||||
return save_json(filename, content, ...)
|
||||
end
|
||||
|
||||
-- Read data
|
||||
--
|
||||
|
||||
local function get_data()
|
||||
|
||||
local filename = yl_canned_food_mtg.settings.save_path
|
||||
local filepath = yl_canned_food_mtg.get_filepath(filename)
|
||||
yl_canned_food_mtg.json_recipes = yl_canned_food_mtg.load(filepath) or {}
|
||||
|
||||
return yl_canned_food_mtg.legacy_recipes or yl_canned_food_mtg.default_recipes or yl_canned_food_mtg.json_recipes
|
||||
end
|
||||
|
||||
function yl_canned_food_mtg.get_data()
|
||||
return get_data()
|
||||
end
|
||||
|
||||
-- Check sttings match
|
||||
--
|
||||
|
||||
local function check_settings_match()
|
||||
if (yl_canned_food.settings.legacy == true) and (yl_canned_food_mtg.settings.data_source == "legacy") then
|
||||
-- legacy: Nodenames looke like canned_food:apple_jam
|
||||
return true
|
||||
elseif (yl_canned_food.settings.legacy == false) and (yl_canned_food_mtg.settings.data_source == "default") then
|
||||
-- default: Nodenames looke like yl_canned_food:apple_jam
|
||||
return true
|
||||
elseif (yl_canned_food_mtg.settings.data_source == "json") then
|
||||
-- json: It's the user's responsibility to adjust the nodenames in the json
|
||||
return true
|
||||
else
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
function yl_canned_food_mtg.check_settings_match()
|
||||
return check_settings_match()
|
||||
end
|
||||
Reference in new issue
Block a user