From 1de5f9ac6f038bfed2230cc1272b253794b2f41a Mon Sep 17 00:00:00 2001 From: Alexander Pickering Date: Sun, 10 Jul 2016 17:04:29 -0400 Subject: Initial commit --- gamemode/autolua.lua | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 gamemode/autolua.lua (limited to 'gamemode/autolua.lua') 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 -- cgit v1.2.3-70-g09d2