diff options
Diffstat (limited to 'gamemode/npcsystem/sh_basenpc.lua')
| -rw-r--r-- | gamemode/npcsystem/sh_basenpc.lua | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/gamemode/npcsystem/sh_basenpc.lua b/gamemode/npcsystem/sh_basenpc.lua new file mode 100644 index 0000000..b3e7e49 --- /dev/null +++ b/gamemode/npcsystem/sh_basenpc.lua @@ -0,0 +1,34 @@ +--[[ + Defines some ai primitives for npc's +]] +local log = nrequire("log.lua") +local reg = nrequire("sh_npcsystem.lua") + +local npc = {} + +npc.Name = "NPC Base" + +function npc:Spawn() + local e = ents.Create("art_npc") + + if self.Model then self:SetModel(self.Model) + else log.error("NPC created without model, this might be a bug!") end + + if self.Pos then self:SetPos(self.Pos) + else log.error("NPC created without a position, this might be a bug!") end + + self.talking = false + + if self.Name then self:SetName(self.Name) + else log.error("NPC created without a name! They won't be able to open doors!") end + + if self.Ang then self:SetAngles(self.Ang) end + if self.OnSpawn then self.OnSpawn(self) end + + self.Entity = e + e:Spawn() +end + +reg.RegisterNPC(npc) + +return npc |
