SHARE
TWEET

Untitled

Oeed Feb 21st, 2015 (edited) 200 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top