diff options
| author | the lemons <citrons@mondecitronne.com> | 2022-08-27 01:23:20 -0500 |
|---|---|---|
| committer | the lemons <citrons@mondecitronne.com> | 2022-08-27 01:23:20 -0500 |
| commit | 8bb18a89060ecd581a06238ce3fa5d2170ee3a15 (patch) | |
| tree | 25baba9d2c267b986adfe7af661b3cd99a32b346 /globals.lua | |
| parent | 001272dbcbaa1110541e0666af3cea1c97bc199f (diff) | |
implement component system
Diffstat (limited to 'globals.lua')
| -rw-r--r-- | globals.lua | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/globals.lua b/globals.lua new file mode 100644 index 0000000..6ee62a9 --- /dev/null +++ b/globals.lua @@ -0,0 +1,23 @@ +local gbl_mt = {} +local decl = {} + +function gbl_mt:__index(k) + if not decl[k] then + error("unknown global: "..k, 2) + end + return rawget(self, k) +end + +function gbl_mt:__newindex(k, v) + if not decl[k] then + error("unknown global: "..k, 2) + end + rawset(self, k, v) +end + +function global(k, v) + decl[k] = true + rawset(_G, k, v) +end + +setmetatable(_G, gbl_mt) |
