diff options
Diffstat (limited to 'gamemode/autolua.lua')
| -rw-r--r-- | gamemode/autolua.lua | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/gamemode/autolua.lua b/gamemode/autolua.lua new file mode 100644 index 0000000..3f7d07a --- /dev/null +++ b/gamemode/autolua.lua @@ -0,0 +1,44 @@ +--[[ + A few functions to make it easier to include files and folders +]] +local auto = {} + +local function ExecuteOnFolder(dir, recursive, func) + local path = GM.Folder:gsub("gamemodes/","") .. "/gamemode/" + local fpath = table.concat({path,dir,"/*"}) + local files, directories = file.Find(fpath,"LUA") + for k,v in pairs(files) do + if string.GetExtensionFromFilename(v) ~= "lua" then continue end + local callpath = table.concat({path,dir,"/",v}) + func(callpath) + end + if recursive then + for k,v in pairs(directories) do + local npath = table.concat({dir,"/",v}) + ExecuteOnFolder(npath,true,func) + end + end +end + +auto.AddLuaCSFolder = function(dir,recursive) + ExecuteOnFolder(dir,recursive,function(f) + if SERVER then AddCSLuaFile(f) + else include(f) end + end) +end + +auto.AddLuaSVFolder = function(dir,recursive) + if CLIENT then return end + ExecuteOnFolder(dir,recursive,function(f) + include(f) + end) +end + +auto.AddLuaSHFolder = function(dir,recursive) + ExecuteOnFolder(dir,recursive,function(f) + if SERVER then AddCSLuaFile(f) end + include(f) + end) +end + +return auto |
