diff options
| author | Apickx <apickx@cogarr.com> | 2018-03-24 20:47:32 -0400 |
|---|---|---|
| committer | Apickx <apickx@cogarr.com> | 2018-03-24 20:47:32 -0400 |
| commit | d22897e044a422e125f46e52c3467473a3656378 (patch) | |
| tree | b7eedbaa95f3ec6c7c28a2b33405dda84adbf945 /data/artery/global/art_shipyardcontrol | |
| download | artery_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')
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") |
