From 28affa22541b9ef251707793f6b1c1a26d663592 Mon Sep 17 00:00:00 2001 From: Alexander Pickering Date: Sat, 3 Nov 2018 18:23:45 -0400 Subject: Started on new npc system Started work on the new npc system --- gamemode/npcsystem/sh_basenpc.lua | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 gamemode/npcsystem/sh_basenpc.lua (limited to 'gamemode/npcsystem/sh_basenpc.lua') 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 -- cgit v1.2.3-70-g09d2