aboutsummaryrefslogtreecommitdiff
path: root/gamemode/autolua.lua
diff options
context:
space:
mode:
authorAlexander Pickering <alexandermpickering@gmail.com>2016-07-10 17:04:29 -0400
committerAlexander Pickering <alexandermpickering@gmail.com>2016-07-10 17:04:29 -0400
commit1de5f9ac6f038bfed2230cc1272b253794b2f41a (patch)
tree15bc9d515f1f48c036522afb7cc71f60243849a9 /gamemode/autolua.lua
downloadartery-1de5f9ac6f038bfed2230cc1272b253794b2f41a.tar.gz
artery-1de5f9ac6f038bfed2230cc1272b253794b2f41a.tar.bz2
artery-1de5f9ac6f038bfed2230cc1272b253794b2f41a.zip
Initial commit
Diffstat (limited to 'gamemode/autolua.lua')
-rw-r--r--gamemode/autolua.lua44
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