world generation, ores, ingots and more!
This commit is contained in:
69
mods/schemedit/make_readme.lua
Normal file
69
mods/schemedit/make_readme.lua
Normal file
@@ -0,0 +1,69 @@
|
||||
-- This file adds a command for generating the schemedit usage help readme
|
||||
-- file, in Markdown format. The text is extracted from the metadata of
|
||||
-- the items. This is only used for development purposes, after the
|
||||
-- help text of any of the items was changed.
|
||||
|
||||
-- How to use: Temporarily set MAKE_README to true in init.lua, then
|
||||
-- start the game as admin and run “/make_schemedit_readme”. Copy the
|
||||
-- generated file back to the mod directory (USAGE.md).
|
||||
|
||||
-- Everything here is intentionally NOT translated because it is for text
|
||||
-- files only.
|
||||
|
||||
|
||||
-- Extract text from item definition
|
||||
local get_text = function(item, field)
|
||||
local text = minetest.registered_items[item][field]
|
||||
|
||||
-- Remove translation escapes
|
||||
text = string.gsub(text, "\x1BE", "")
|
||||
text = string.gsub(text, "\x1B%(T@schemedit%)", "")
|
||||
|
||||
-- Fix Markdown syntax error
|
||||
text = string.gsub(text, "schematic_override", "`schematic_override`")
|
||||
return text
|
||||
end
|
||||
|
||||
|
||||
-- Schemedit items to generate the readme from
|
||||
local items = { "creator", "probtool", "void" }
|
||||
|
||||
minetest.register_chatcommand("make_schemedit_readme", {
|
||||
description = "Generate the schemedit usage help readme file",
|
||||
privs = {server=true},
|
||||
func = function(name, param)
|
||||
|
||||
local readme = "## Usage help".."\n"
|
||||
readme = readme .. "In this section you'll learn how to use the items of this mod.".."\n"
|
||||
readme = readme .. "Note: If you have the `doc` and `doc_items` mods installed, you can also access the same help texts in-game (possibly translated).".."\n\n"
|
||||
|
||||
local entries = {}
|
||||
for i=1, #items do
|
||||
local item = items[i]
|
||||
local desc = get_text("schemedit:"..item, "description")
|
||||
local longdesc = get_text("schemedit:"..item, "_doc_items_longdesc")
|
||||
local usagehelp = get_text("schemedit:"..item, "_doc_items_usagehelp")
|
||||
|
||||
readme = readme .. "### "..desc.."\n"
|
||||
readme = readme .. longdesc .."\n\n"
|
||||
readme = readme .. "#### Usage\n"
|
||||
readme = readme .. usagehelp
|
||||
if i < #items then
|
||||
readme = readme .. "\n\n\n"
|
||||
end
|
||||
end
|
||||
|
||||
local path = minetest.get_worldpath().."/schemedit_readme.md"
|
||||
local file = io.open(path, "w")
|
||||
if not file then
|
||||
return false, "Failed to open file!"
|
||||
end
|
||||
local ok = file:write(readme)
|
||||
file:close()
|
||||
if ok then
|
||||
return true, "File written to: "..path
|
||||
else
|
||||
return false, "Failed to write file!"
|
||||
end
|
||||
end
|
||||
})
|
||||
Reference in New Issue
Block a user