diff --git a/framework/globals.lua b/framework/globals.lua new file mode 100644 index 0000000..195c899 --- /dev/null +++ b/framework/globals.lua @@ -0,0 +1,41 @@ +-- framework/globals :: All global functions. Most of the time are used to create a +-- specific type of object with a definition + +--[[ + Copyright © 2021 Kazhnuz + + Permission is hereby granted, free of charge, to any person obtaining a copy of + this software and associated documentation files (the "Software"), to deal in + the Software without restriction, including without limitation the rights to + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +]] + +function extend(path) + return require(path):extend() +end + +local function _createClass(def, defaultPath) + local NewClass = extend(def.parent or defaultPath) + NewClass.def = def + return NewClass +end + +function world(def) + return _createClass(def, "framework.scenes.world") +end + +function actor(def) + return _createClass(def, "framework.scenes.world.actors") +end \ No newline at end of file diff --git a/framework/init.lua b/framework/init.lua index 53f2c3f..f15da1b 100644 --- a/framework/init.lua +++ b/framework/init.lua @@ -1,3 +1,4 @@ +---@diagnostic disable: duplicate-set-field -- framework :: The main Épervier Framework script, loading the core and main -- utilities @@ -22,6 +23,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ]] +require "framework.globals" + framework = {} -- GLOBAL UTILS/FUNCTION LOADING