From 9388a22a0f6f92da09de835f31a55a827471c5de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20Reuh=20Fildadut?= Date: Sat, 5 Jun 2021 14:01:54 +0200 Subject: [PATCH] Move default variables alias from game config to language file --- anselme.lua | 23 +++++++++++++---------- stdlib/languages/frFR.lua | 5 +++++ 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/anselme.lua b/anselme.lua index e45e20c..a08c5a3 100644 --- a/anselme.lua +++ b/anselme.lua @@ -181,9 +181,6 @@ local vm_mt = { -- requires LΓ–VE or LuaFileSystem -- will load in path, in order: -- * config.ans, which contains various optional configuration options: - -- * alias πŸ‘οΈ: string, default alias for πŸ‘οΈ - -- * alias 🏁: string, default alias for 🏁 - -- * alias πŸ”–: string, default alias for πŸ”– -- * language: string, built-in language file to load -- * main file: string, name (without .ans extension) of a file that will be loaded into the root namespace -- * main file, if defined in config.ans @@ -196,13 +193,8 @@ local vm_mt = { local s, e = self:loadfile(path.."/config.ans", "config") if not s then return s, e end end - local seen_alias = self:eval("config.alias πŸ‘οΈ") - local checkpoint_alias = self:eval("config.alias πŸ”–") - local reached_alias = self:eval("config.alias 🏁") local main_file = self:eval("config.main file") local language = self:eval("config.language") - -- set aliases - self:setaliases(seen_alias, checkpoint_alias, reached_alias) -- load language if language then local s, e = self:loadlanguage(language) @@ -284,14 +276,25 @@ local vm_mt = { end, --- load & execute a built-in language file + -- the language file may optionally contain the special variables: + -- * alias πŸ‘οΈ: string, default alias for πŸ‘οΈ + -- * alias 🏁: string, default alias for 🏁 + -- * alias πŸ”–: string, default alias for πŸ”– -- return self in case of success -- returns nil, err in case of error loadlanguage = function(self, lang) + local namespace = "anselme."..lang + -- execute language file local code = require(anselme_root.."stdlib.languages."..lang) - local s, e = self:loadstring(code, "anselme."..lang, lang) + local s, e = self:loadstring(code, namespace, lang) if not s then return s, e end - s, e = self:eval("anselme."..lang) + s, e = self:eval(namespace) if e then return s, e end + -- set aliases for built-in variables + local seen_alias = self:eval(namespace..".alias πŸ‘οΈ") + local checkpoint_alias = self:eval(namespace..".alias πŸ”–") + local reached_alias = self:eval(namespace..".alias 🏁") + self:setaliases(seen_alias, checkpoint_alias, reached_alias) return self end, diff --git a/stdlib/languages/frFR.lua b/stdlib/languages/frFR.lua index e25c89b..b19999d 100644 --- a/stdlib/languages/frFR.lua +++ b/stdlib/languages/frFR.lua @@ -22,4 +22,9 @@ return [[ ~ "cycle".alias("cycler") ~ "random".alias("alΓ©atoire") ~ "next".alias("sΓ©quence") + +(Built-in variables) +:alias πŸ‘οΈ = "vu" +:alias πŸ”– = "checkpoint" +:alias 🏁 = "atteint" ]]