summaryrefslogtreecommitdiff
path: root/data/artery/global/art_shipyardcontrol
diff options
context:
space:
mode:
authorApickx <apickx@cogarr.com>2018-03-24 20:47:32 -0400
committerApickx <apickx@cogarr.com>2018-03-24 20:47:32 -0400
commitd22897e044a422e125f46e52c3467473a3656378 (patch)
treeb7eedbaa95f3ec6c7c28a2b33405dda84adbf945 /data/artery/global/art_shipyardcontrol
downloadartery_stranded-d22897e044a422e125f46e52c3467473a3656378.tar.gz
artery_stranded-d22897e044a422e125f46e52c3467473a3656378.tar.bz2
artery_stranded-d22897e044a422e125f46e52c3467473a3656378.zip
Inital commit
Inital commit
Diffstat (limited to 'data/artery/global/art_shipyardcontrol')
-rw-r--r--data/artery/global/art_shipyardcontrol/cl_ent_shipyardcontrol.lua64
-rw-r--r--data/artery/global/art_shipyardcontrol/sh_ent_shipyardcontrol.lua13
-rw-r--r--data/artery/global/art_shipyardcontrol/sv_ent_shipyardcontrol.lua55
3 files changed, 132 insertions, 0 deletions
diff --git a/data/artery/global/art_shipyardcontrol/cl_ent_shipyardcontrol.lua b/data/artery/global/art_shipyardcontrol/cl_ent_shipyardcontrol.lua
new file mode 100644
index 0000000..c9be7a6
--- /dev/null
+++ b/data/artery/global/art_shipyardcontrol/cl_ent_shipyardcontrol.lua
@@ -0,0 +1,64 @@
+--[[
+ Client stuff!
+]]
+local ENT = nrequire("sh_ent_shipyardcontrol.lua")
+
+function ENT:Draw()
+ self:DrawModel()
+
+end
+
+net.Receive("art_shipyard_open",function()
+ local who = net.ReadEntity()
+ print("Opening shipyard")
+ local selectframe = vgui.Create("DFrame")
+ selectframe:SetSize(ScrW() / 2, ScrH() / 2)
+ selectframe:Center()
+ selectframe:SetTitle("Shipyard")
+
+ local scroll = vgui.Create( "DScrollPanel",selectframe )
+ scroll:Dock(FILL)
+
+ local labelname = vgui.Create("DLabel",scroll)
+ labelname:Dock(TOP)
+ labelname:SetText("Ship name:")
+ labelname:SetDark(true)
+
+ local textname = vgui.Create("DTextEntry",scroll)
+ textname:Dock(TOP)
+
+ local buttonfinish = vgui.Create( "DButton", scroll )
+ buttonfinish:SetText("Finish")
+ buttonfinish:Dock(TOP)
+ buttonfinish.DoClick = function()
+ net.Start("art_shipyard_finalize")
+ net.WriteEntity(who)
+ net.WriteString(textname:GetValue())
+ net.SendToServer()
+ end
+
+ selectframe:MakePopup()
+end)
+
+--[[
+ Display the bounds of shipyards
+]]
+
+hook.Add( "PostDrawOpaqueRenderables", "artery_draw_shipyards", function()
+ local ztd = zones.FindByClass("artery_shipyard")
+ for k,v in pairs(ztd) do
+ local bounds = v.bounds
+ cam.Start3D2D( bounds.mins, Angle(0,0,0), 1 )
+ local x,y = bounds.maxs.x - bounds.mins.x, -(bounds.maxs.y - bounds.mins.y)
+ surface.SetDrawColor( 238, 238, 255, 50 )
+ surface.DrawRect( 0, 0, x, y )
+ surface.SetDrawColor( 100,100,255,255)
+ surface.DrawLine(0,0,x,0)
+ surface.DrawLine(0,0,0,y)
+ surface.DrawLine(x,y,x,0)
+ surface.DrawLine(x,y,0,y)
+ cam.End3D2D()
+ end
+end )
+
+scripted_ents.Register(ENT,"art_shipyardcontrol")
diff --git a/data/artery/global/art_shipyardcontrol/sh_ent_shipyardcontrol.lua b/data/artery/global/art_shipyardcontrol/sh_ent_shipyardcontrol.lua
new file mode 100644
index 0000000..bb0026b
--- /dev/null
+++ b/data/artery/global/art_shipyardcontrol/sh_ent_shipyardcontrol.lua
@@ -0,0 +1,13 @@
+
+
+local ENT = {}
+
+ENT.Type = "anim"
+ENT.Base = "art_chest"
+ENT.PrintName = "art_shipyardcontrol"
+ENT.Author = "Apickx"
+
+ENT.Spawnable = false
+ENT.AdminSpawnable = false
+
+return ENT
diff --git a/data/artery/global/art_shipyardcontrol/sv_ent_shipyardcontrol.lua b/data/artery/global/art_shipyardcontrol/sv_ent_shipyardcontrol.lua
new file mode 100644
index 0000000..ed1eed0
--- /dev/null
+++ b/data/artery/global/art_shipyardcontrol/sv_ent_shipyardcontrol.lua
@@ -0,0 +1,55 @@
+--[[
+ This entity gives townies things to do
+]]
+if not nrequire then return end
+
+AddCSLuaFile( "cl_init.lua" )
+AddCSLuaFile( "shared.lua" )
+
+print("Hello from art_shipyardcontrol init.lua!")
+
+local ENT = nrequire("sh_ent_shipyardcontrol.lua")
+
+function ENT:Initialize( )
+ self.Entity:SetModel("models/props/cs_militia/sawhorse.mdl")
+ self.Entity:PhysicsInit( SOLID_VPHYSICS )
+ self.Entity:SetMoveType( MOVETYPE_VPHYSICS )
+ self.Entity:SetSolid( SOLID_VPHYSICS )
+ self.Entity:Activate()
+ local phys = self.Entity:GetPhysicsObject()
+ if (phys:IsValid()) then
+ phys:Wake()
+ phys:SetMass(100)
+ end
+ self.selfPos = self.Entity
+ self:SetUseType(SIMPLE_USE)
+end
+
+
+util.AddNetworkString("art_shipyard_open")
+util.AddNetworkString("art_shipyard_finalize")
+util.AddNetworkString("art_shipyard_close")
+
+function ENT:Use(a,c,u,v)
+ net.Start("art_shipyard_open")
+ net.WriteEntity(self)
+ net.Send(c)
+end
+
+net.Receive("art_shipyard_finalize",function(ln,ply)
+ print("Finalizing ship...")
+ local area = net.ReadEntity()
+ local name = net.ReadString()
+ print("Name will be", name)
+ print(area,area.Zone)
+ local zone = zones.List[area.Zone]
+ local bounds = zone.bounds
+ local allents = ents.FindInBox(bounds.mins,bounds.maxs)
+ duplicator.SetLocalPos( ply:GetPos())
+ local boat = duplicator.Copy(allents[1])
+ duplicator.SetLocalPos(Vector(0,0,0))
+ print("Got boat")
+ PrintTable(boat)
+end)
+
+scripted_ents.Register(ENT,"art_shipyardcontrol")