summaryrefslogtreecommitdiff
path: root/lua/entities/info_edit_townienode
diff options
context:
space:
mode:
authorAlexander Pickering <alexandermpickering@gmail.com>2017-08-07 18:22:29 -0400
committerAlexander Pickering <alexandermpickering@gmail.com>2017-08-07 18:22:29 -0400
commitdaa59a7835c350a09dcb207c714acf57828137f3 (patch)
treeae2c00da0e546447ca17a9c5d8492310e5e93f27 /lua/entities/info_edit_townienode
downloadartery_editor-daa59a7835c350a09dcb207c714acf57828137f3.tar.gz
artery_editor-daa59a7835c350a09dcb207c714acf57828137f3.tar.bz2
artery_editor-daa59a7835c350a09dcb207c714acf57828137f3.zip
Inital Commit
Diffstat (limited to 'lua/entities/info_edit_townienode')
-rw-r--r--lua/entities/info_edit_townienode/cl_init.lua74
-rw-r--r--lua/entities/info_edit_townienode/init.lua54
-rw-r--r--lua/entities/info_edit_townienode/shared.lua13
3 files changed, 141 insertions, 0 deletions
diff --git a/lua/entities/info_edit_townienode/cl_init.lua b/lua/entities/info_edit_townienode/cl_init.lua
new file mode 100644
index 0000000..87d4201
--- /dev/null
+++ b/lua/entities/info_edit_townienode/cl_init.lua
@@ -0,0 +1,74 @@
+if engine.ActiveGamemode() ~= "sandbox" then return end
+
+include("shared.lua")
+
+ENT.RenderGroup = RENDERGROUP_BOTH
+
+function ENT:Draw()
+ render.SetColorMaterial()
+ render.DrawSphere( self:GetPos(), 10, 30, 30, Color( 0, 175, 175, 100 ) )
+
+end
+
+local function syncentity(ent,data)
+ print("sending data to server")
+ net.Start("edit_townienode_update")
+ net.WriteEntity(ent)
+ net.WriteTable(data)
+ net.SendToServer()
+end
+
+net.Receive("edit_navnode",function()
+ local who = net.ReadEntity()
+ local data = net.ReadTable()
+
+ local editorframe = vgui.Create("DFrame")
+ editorframe:SetSize(640,480)
+ editorframe:SetDraggable(true)
+ editorframe:MakePopup()
+ editorframe.OnClose = function(self)
+ syncentity(who,data)
+ end
+
+ local editor = vgui.Create("DPanel",editorframe)
+ editor:Dock(FILL)
+
+ local namelabel = vgui.Create("DLabel",editor)
+ namelabel:SetText("Name:")
+ namelabel:SetDark(true)
+ namelabel:Dock(TOP)
+ local nametext = vgui.Create("DTextEntry",editor)
+ nametext:Dock(TOP)
+ nametext:SetText(data.Name)
+ nametext:SetUpdateOnType(true)
+ nametext.OnValueChange = function(self,value)
+ data.Name = value
+ end
+
+ local onreachedlabel = vgui.Create("DLabel",editor)
+ onreachedlabel:SetText("OnReached()")
+ onreachedlabel:SetDark(true)
+ onreachedlabel:Dock(TOP)
+ local onreachedtext = vgui.Create("DTextEntry",editor)
+ onreachedtext:SetHeight(150)
+ onreachedtext:Dock(TOP)
+ onreachedtext:SetMultiline(true)
+ onreachedtext:SetText(data.OnReached)
+ onreachedtext:SetTabbingDisabled(true)
+ onreachedtext.OnValueChange = function(self,value)
+ data.OnReached = value
+ end
+
+ local isfinlabel = vgui.Create("DLabel",editor)
+ isfinlabel:SetText("IsFinished()")
+ isfinlabel:SetDark(true)
+ isfinlabel:Dock(TOP)
+ local isfintext = vgui.Create("DTextEntry",editor)
+ isfintext:SetHeight(150)
+ isfintext:Dock(TOP)
+ isfintext:SetMultiline(true)
+ isfintext:SetText(data.IsDone)
+ isfintext.OnValueChange = function(self,value)
+ data.IsDone = value
+ end
+end)
diff --git a/lua/entities/info_edit_townienode/init.lua b/lua/entities/info_edit_townienode/init.lua
new file mode 100644
index 0000000..e4702da
--- /dev/null
+++ b/lua/entities/info_edit_townienode/init.lua
@@ -0,0 +1,54 @@
+if engine.ActiveGamemode() ~= "sandbox" then return end
+
+AddCSLuaFile( "cl_init.lua" ) -- Make sure clientside
+AddCSLuaFile( "shared.lua" ) -- and shared scripts are sent.
+
+include('shared.lua')
+
+ENT.default_data = {
+ Model = "models/humans/Group02/Male_03.mdl",
+ NavNodes = {},
+ Pos = nil
+}
+
+ENT.edit_data = {
+ Size = HULL_TINY,
+ Type = "navnode",
+ Model = "models/editor/ground_node.mdl",
+ get_default_code = function(who)
+ local default_navnode = [[
+
+
+
+
+local node = {
+ ["Name"] = "%s", --@tagname
+ ["Position"] = Vector(%f, %f, %f), --@tagpos
+ ["OnReached"] = function(npc)
+
+ end,
+ ["IsDone"] = function(npc)
+
+ end,
+}
+nrequire("sv_npcsystem.lua").CreateNavNode(node)
+ ]]
+ local pos = who:GetPos()
+ local name = "Default Node"
+ return string.format(default_navnode,name,pos.x,pos.y,pos.z)
+ end
+}
+local init = ENT.Initalize
+function ENT:Initalize()
+ print("In towniespawn's initalize")
+ init(self)
+end
+
+function ENT:OnSave()
+ print("Node's OnSave was called")
+ local newtxt = file.Read(self.File,"DATA")
+ print("new text was",newtxt)
+ local newname = newtxt:match("%[\"Name\"%] = \"(.-)\", %-%-@tagname")
+ print("new name is,",newname)
+ self.Name = newname
+end
diff --git a/lua/entities/info_edit_townienode/shared.lua b/lua/entities/info_edit_townienode/shared.lua
new file mode 100644
index 0000000..2197cb6
--- /dev/null
+++ b/lua/entities/info_edit_townienode/shared.lua
@@ -0,0 +1,13 @@
+if engine.ActiveGamemode() ~= "sandbox" then return end
+
+ENT.Type = "anim"
+ENT.Base = "info_programmable_base"
+
+ENT.PrintName= "Townie Node"
+ENT.Author= "Apickx"
+ENT.Contact= "cogarr.net"
+ENT.Purpose= "Set a point of intrest"
+ENT.Instructions= "Make sure the npc knows to go to this node"
+ENT.Spawnable = true
+ENT.AdminSpawnable = false
+ENT.Category = "Artery"