62 lines
		
	
	
		
			No EOL
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			No EOL
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
local modules = {}
 | 
						|
 | 
						|
-- Override standard Lua module
 | 
						|
module = module
 | 
						|
 | 
						|
---Module Loader
 | 
						|
---@param path string
 | 
						|
module = function(path)
 | 
						|
    if path == nil then return end
 | 
						|
    local module = modules[path]
 | 
						|
    if not module then
 | 
						|
        local resource = LoadResourceFile(Bridge.Name, ('%s.lua'):format(path))
 | 
						|
        if resource then
 | 
						|
            local module, err = load(resource, ('@@%s/%s'):format(Bridge.Name, ('%s'):format(path)))
 | 
						|
            if not module or err then
 | 
						|
                modules[path] = nil
 | 
						|
                return error(err)
 | 
						|
            end
 | 
						|
            if Bridge.DebugMode then print(('[^2MODULE^0] ^5Loaded^0 %s'):format(path)) end
 | 
						|
            modules[path] = module(path)
 | 
						|
            return modules[path]
 | 
						|
        end
 | 
						|
    end
 | 
						|
    return module
 | 
						|
end
 | 
						|
 | 
						|
---Module Loader From Other Resources
 | 
						|
---@param path string
 | 
						|
include = function(resource, path)
 | 
						|
    if path == nil then return end
 | 
						|
    local module = modules[path]
 | 
						|
    if not module then
 | 
						|
        local resource = LoadResourceFile(resource, ('%s.lua'):format(path))
 | 
						|
        if resource then
 | 
						|
            local module, err = load(resource, ('@@%s'):format(resource, ('%s'):format(path)))
 | 
						|
            if not module or err then
 | 
						|
                modules[path] = nil
 | 
						|
                return error(err)
 | 
						|
            end
 | 
						|
            if Bridge.DebugMode then print(('[^2IMPORT^0] ^5Loaded^0 %s'):format(path)) end
 | 
						|
            modules[path] = module(path)
 | 
						|
            return modules[path]
 | 
						|
        end
 | 
						|
    end
 | 
						|
    return module
 | 
						|
end
 | 
						|
 | 
						|
local OnReady = function(obj, cb)
 | 
						|
    while not obj do
 | 
						|
        Wait(50)
 | 
						|
    end
 | 
						|
    return cb and cb() or true
 | 
						|
end
 | 
						|
 | 
						|
---@private
 | 
						|
Framework.OnReady = setmetatable({
 | 
						|
    await = OnReady
 | 
						|
}, {
 | 
						|
    __call = function(_, obj, cb)
 | 
						|
        Citizen.CreateThreadNow(function() OnReady(obj, cb) end)
 | 
						|
    end,
 | 
						|
}) |