include
Example
Demonstrates correct and incorrect usage.
-- Correct usage:
-- Will look for "lua/myLuaFolder/myLuaFile.lua" in all addons and then the base game **lua/** folder.
include( "myLuaFolder/myLuaFile.lua" )
-- This is incorrect, and will NOT work.
include( "lua/myLuaFolder/myLuaFile.lua" )
include( "addons/lua/myLuaFolder/myLuaFile.lua" )
include( "addons/MyAddon/lua/myLuaFolder/myLuaFile.lua" )
include( "MyAddon/lua/myLuaFolder/myLuaFile.lua" )
Example
Specify a base folder and recursively include client, shared and server files without having to specify them.
local rootDirectory = "you_directory"
local function AddFile( File, directory )
local prefix = string.lower( string.Left( File, 3 ) )
if SERVER and prefix == "sv_" then
include( directory .. File )
print( "[AUTOLOAD] SERVER INCLUDE: " .. File )
elseif prefix == "sh_" then
if SERVER then
AddCSLuaFile( directory .. File )
print( "[AUTOLOAD] SHARED ADDCS: " .. File )
end
include( directory .. File )
print( "[AUTOLOAD] SHARED INCLUDE: " .. File )
elseif prefix == "cl_" then
if SERVER then
AddCSLuaFile( directory .. File )
print( "[AUTOLOAD] CLIENT ADDCS: " .. File )
elseif CLIENT then
include( directory .. File )
print( "[AUTOLOAD] CLIENT INCLUDE: " .. File )
end
end
end
local function IncludeDir( directory )
directory = directory .. "/"
local files, directories = file.Find( directory .. "*", "LUA" )
for _, v in ipairs( files ) do
if string.EndsWith( v, ".lua" ) then
AddFile( v, directory )
end
end
for _, v in ipairs( directories ) do
print( "[AUTOLOAD] Directory: " .. v )
IncludeDir( directory .. v )
end
end
IncludeDir( rootDirectory )