aboutsummaryrefslogtreecommitdiff
path: root/gamemode/shared/loadnpcs.lua
diff options
context:
space:
mode:
authorAlexander Pickering <alexandermpickering@gmail.com>2016-10-24 19:00:58 -0400
committerAlexander Pickering <alexandermpickering@gmail.com>2016-10-24 19:00:58 -0400
commit9ae67530dc4be9eaab7b1243330e810d1d5a6fee (patch)
tree974d87689dd51b767f91735563ed6cf030c1ad87 /gamemode/shared/loadnpcs.lua
parent74c7a160da34897ebdf18aaff02b8c9b65809949 (diff)
downloadartery-9ae67530dc4be9eaab7b1243330e810d1d5a6fee.tar.gz
artery-9ae67530dc4be9eaab7b1243330e810d1d5a6fee.tar.bz2
artery-9ae67530dc4be9eaab7b1243330e810d1d5a6fee.zip
Added npc system
Diffstat (limited to 'gamemode/shared/loadnpcs.lua')
-rw-r--r--gamemode/shared/loadnpcs.lua36
1 files changed, 36 insertions, 0 deletions
diff --git a/gamemode/shared/loadnpcs.lua b/gamemode/shared/loadnpcs.lua
new file mode 100644
index 0000000..bff5135
--- /dev/null
+++ b/gamemode/shared/loadnpcs.lua
@@ -0,0 +1,36 @@
+
+local f = include("concommands.lua")
+
+ART = ART or {}
+
+local npcs = {}
+
+function ART.RegisterNPC(npc)
+ assert(npc ~= nil, "Attempted to register a nil npc")
+ assert(npc.Name ~= nil, "Attempted to register an npc without a name")
+ npcs[npc.Name] = npc
+end
+
+function ART.CreateNPCByName(npcname, pos)
+ print("Createing a " ,npcname ," at ", pos)
+ local npctbl = npcs[npcname]
+ local npc = ents.Create("npc_huntable")
+ npc:SetPos(pos)
+ for k,v in pairs(npctbl) do
+ npc[k] = v
+ end
+ npc:Spawn()
+end
+
+local autocompletef
+if SERVER then
+ autocompletef = nil
+else
+ autocompletef = f.AutocompleteFunction(npcs)
+end
+concommand.Add("artery_makenpc",function(ply,cmd,args)
+ if not ply:IsAdmin() then return end
+ local n = args[1]
+ ART.CreateNPCByName(n,ply:GetEyeTrace().HitPos)
+end,
+autocompletef)