Advertisement
Oeed

Untitled

Feb 21st, 2015
329
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.17 KB | None | 0 0
  1.     local function loadAPI(name, content)
  2.         local env = setmetatable({}, { __index = getfenv() })
  3.         local func, err = loadstring(content, name..' (Bedrock API)')
  4.         if not func then
  5.             return false, printError(err)
  6.         end
  7.         setfenv(func, env)
  8.         func()
  9.         local api = {}
  10.         for k,v in pairs(env) do
  11.             api[k] = v
  12.         end
  13.         _G[name] = api
  14.         return true
  15.     end
  16.  
  17.  
  18.     local env = getfenv()
  19.     local function loadObject(name, content)
  20.         loadAPI(name, content)
  21.         if env[name].Inherit then
  22.             if not getfenv()[env[name].Inherit] then -- It's crashing here with ['ScrollView'], which is not yet set
  23.                 if objects[env[name].Inherit] then
  24.                     loadObject(env[name].Inherit, objects[env[name].Inherit])
  25.                 elseif fs.exists(self.ProgramPath..'/Objects/'..env[name].Inherit..'.lua') then
  26.                     local h = fs.open(self.ProgramPath..'/Objects/'..env[name].Inherit..'.lua', 'r')
  27.                     loadObject(env[name].Inherit, h.readAll())
  28.                     h.close()
  29.                     loadObject(name, content)
  30.                     return
  31.                 end
  32.             end
  33.             env[name].__index = getfenv()[env[name].Inherit]
  34.         else
  35.             env[name].__index = Object
  36.         end
  37.         setmetatable(env[name], env[name])
  38.     end
  39.  
  40.     for k, v in pairs(objects) do
  41.         loadObject(k, v)
  42.     end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement