Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local function loadAPI(name, content)
- local env = setmetatable({}, { __index = getfenv() })
- local func, err = loadstring(content, name..' (Bedrock API)')
- if not func then
- return false, printError(err)
- end
- setfenv(func, env)
- func()
- local api = {}
- for k,v in pairs(env) do
- api[k] = v
- end
- _G[name] = api
- return true
- end
- local env = getfenv()
- local function loadObject(name, content)
- loadAPI(name, content)
- if env[name].Inherit then
- if not getfenv()[env[name].Inherit] then -- It's crashing here with ['ScrollView'], which is not yet set
- if objects[env[name].Inherit] then
- loadObject(env[name].Inherit, objects[env[name].Inherit])
- elseif fs.exists(self.ProgramPath..'/Objects/'..env[name].Inherit..'.lua') then
- local h = fs.open(self.ProgramPath..'/Objects/'..env[name].Inherit..'.lua', 'r')
- loadObject(env[name].Inherit, h.readAll())
- h.close()
- loadObject(name, content)
- return
- end
- end
- env[name].__index = getfenv()[env[name].Inherit]
- else
- env[name].__index = Object
- end
- setmetatable(env[name], env[name])
- end
- for k, v in pairs(objects) do
- loadObject(k, v)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement