diff options
Diffstat (limited to 'data/artery/global/art_workbench')
| -rw-r--r-- | data/artery/global/art_workbench/cl_ent_workbench.lua | 126 | ||||
| -rw-r--r-- | data/artery/global/art_workbench/sh_ent_workbench.lua | 74 | ||||
| -rw-r--r-- | data/artery/global/art_workbench/sv_ent_workbench.lua | 222 |
3 files changed, 211 insertions, 211 deletions
diff --git a/data/artery/global/art_workbench/cl_ent_workbench.lua b/data/artery/global/art_workbench/cl_ent_workbench.lua index 8f4b722..7f30178 100644 --- a/data/artery/global/art_workbench/cl_ent_workbench.lua +++ b/data/artery/global/art_workbench/cl_ent_workbench.lua @@ -1,63 +1,63 @@ ---[[ - Client stuff! -]] -local ENT = nrequire("sh_ent_workbench.lua") - -function ENT:Draw() - - self.Entity:DrawModel() - -end - -net.Receive("art_workbench_open",function() - local who = net.ReadEntity() - print("Opening sawhorse") - local selectframe = vgui.Create("DFrame") - selectframe:SetSize(ScrW()/2, ScrH()/2) - selectframe:Center() - selectframe:SetTitle("Sawhorse") - - local scroll = vgui.Create( "DScrollPanel",selectframe ) - scroll:Dock(FILL) - - local grid = vgui.Create( "DGrid", scroll ) - grid:SetPos( 10, 30 ) - grid:SetCols( 2 ) - grid:SetColWide( 200 ) - grid:SetRowHeight(100) - grid:Dock(FILL) - - print("s.props is",ENT.props) - PrintTable(ENT.props) - - for k,v in pairs(ENT.props) do - local p = vgui.Create("DPanel") - p:SetSize(200,100) - --p:Dock(FILL) - local but = vgui.Create("DModelPanel",p) - but:SetModel(v.model) - but:SetSize(100,100) - but:Dock(LEFT) - but.DoClick = function(self) - net.Start("art_workbench_select") - net.WriteString(k) - net.WriteEntity(who) - net.SendToServer() - print("I want to make a ", k) - end - local label = vgui.Create("DLabel",p) - label:SetSize(100,100) - label:Dock(RIGHT) - local costtbl = {} - for k,v in pairs(v.reqs) do - costtbl[#costtbl+1] = string.format("%10s : %5d", k, v) - end - label:SetText(string.format("%s\nCost:\n%s",k,table.concat(costtbl,"\n"))) - label:SetDark(true) - grid:AddItem(p) - end - - selectframe:MakePopup() -end) - -scripted_ents.Register(ENT,"art_workbench") +--[[
+ Client stuff!
+]]
+local ENT = nrequire("sh_ent_workbench.lua")
+
+function ENT:Draw()
+
+ self.Entity:DrawModel()
+
+end
+
+net.Receive("art_workbench_open",function()
+ local who = net.ReadEntity()
+ print("Opening sawhorse")
+ local selectframe = vgui.Create("DFrame")
+ selectframe:SetSize(ScrW()/2, ScrH()/2)
+ selectframe:Center()
+ selectframe:SetTitle("Sawhorse")
+
+ local scroll = vgui.Create( "DScrollPanel",selectframe )
+ scroll:Dock(FILL)
+
+ local grid = vgui.Create( "DGrid", scroll )
+ grid:SetPos( 10, 30 )
+ grid:SetCols( 2 )
+ grid:SetColWide( 200 )
+ grid:SetRowHeight(100)
+ grid:Dock(FILL)
+
+ print("s.props is",ENT.props)
+ PrintTable(ENT.props)
+
+ for k,v in pairs(ENT.props) do
+ local p = vgui.Create("DPanel")
+ p:SetSize(200,100)
+ --p:Dock(FILL)
+ local but = vgui.Create("DModelPanel",p)
+ but:SetModel(v.model)
+ but:SetSize(100,100)
+ but:Dock(LEFT)
+ but.DoClick = function(self)
+ net.Start("art_workbench_select")
+ net.WriteString(k)
+ net.WriteEntity(who)
+ net.SendToServer()
+ print("I want to make a ", k)
+ end
+ local label = vgui.Create("DLabel",p)
+ label:SetSize(100,100)
+ label:Dock(RIGHT)
+ local costtbl = {}
+ for k,v in pairs(v.reqs) do
+ costtbl[#costtbl+1] = string.format("%10s : %5d", k, v)
+ end
+ label:SetText(string.format("%s\nCost:\n%s",k,table.concat(costtbl,"\n")))
+ label:SetDark(true)
+ grid:AddItem(p)
+ end
+
+ selectframe:MakePopup()
+end)
+
+scripted_ents.Register(ENT,"art_workbench")
diff --git a/data/artery/global/art_workbench/sh_ent_workbench.lua b/data/artery/global/art_workbench/sh_ent_workbench.lua index 4900d3e..7468a32 100644 --- a/data/artery/global/art_workbench/sh_ent_workbench.lua +++ b/data/artery/global/art_workbench/sh_ent_workbench.lua @@ -1,37 +1,37 @@ -if not nrequire then return end - -local ENT = {} - -ENT.Type = "anim" -ENT.Base = "art_chest" -ENT.PrintName = "art_sawhorse" -ENT.Author = "Apickx" - -ENT.Spawnable = false -ENT.AdminSpawnable = false - -local skil = nrequire("sh_skillcommon.lua") -skil.RegisterSkill({"Crafting","Toolbuilding"}) - -ENT.props = { - ["Hammer"] = { - model = "models/weapons/w_hammer.mdl", - reqs = { - ["Wood"] = 2, - ["Iron"] = 1 - } - }, - ["Nail"] = { - model = "models/crossbow_bolt.mdl", - reqs = { - ["Copper"] = 1 - } - }, - ["Paddle"] = { - model = "models/weapons/w_hammer.mdl", - reqs = { - ["Wood"] = 4 - } - } -} -return ENT +if not nrequire then return end
+
+local ENT = {}
+
+ENT.Type = "anim"
+ENT.Base = "art_chest"
+ENT.PrintName = "art_sawhorse"
+ENT.Author = "Apickx"
+
+ENT.Spawnable = false
+ENT.AdminSpawnable = false
+
+local skil = nrequire("sh_skillcommon.lua")
+skil.RegisterSkill({"Crafting","Toolbuilding"})
+
+ENT.props = {
+ ["Hammer"] = {
+ model = "models/weapons/w_hammer.mdl",
+ reqs = {
+ ["Wood"] = 2,
+ ["Iron"] = 1
+ }
+ },
+ ["Nail"] = {
+ model = "models/crossbow_bolt.mdl",
+ reqs = {
+ ["Copper"] = 1
+ }
+ },
+ ["Paddle"] = {
+ model = "models/weapons/w_hammer.mdl",
+ reqs = {
+ ["Wood"] = 4
+ }
+ }
+}
+return ENT
diff --git a/data/artery/global/art_workbench/sv_ent_workbench.lua b/data/artery/global/art_workbench/sv_ent_workbench.lua index 9ce7e0f..75d00a3 100644 --- a/data/artery/global/art_workbench/sv_ent_workbench.lua +++ b/data/artery/global/art_workbench/sv_ent_workbench.lua @@ -1,111 +1,111 @@ ---[[ - This entity gives townies things to do -]] -if not nrequire then return end - -DEFINE_BASECLASS("art_chest") -- this defined a local variable called BaseClass - -AddCSLuaFile( "cl_init.lua" ) -AddCSLuaFile( "shared.lua" ) - -print("Hello from art_workbench init.lua!") - -local ENT = nrequire("sh_ent_workbench.lua") -local inv = nrequire("core/inventory/inventory.lua") -local itm = nrequire("core/inventory/item.lua") - -function ENT:Initialize( ) - self.InvType = "Crafting Inventory" - BaseClass.Initialize(self) - timer.Simple(0.1,function() - self.data.inventories[self:GetCreationID()].accepts = { - ["Wood"] = true, - ["Copper"] = true, - ["Iron"] = true - } - end) - 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_workbench_open") -util.AddNetworkString("art_workbench_select") -util.AddNetworkString("art_workbench_puzzle") -util.AddNetworkString("art_workbench_put") -util.AddNetworkString("art_workbench_close") - -function ENT:Use(a,c,u,v) - net.Start("art_workbench_open") - net.WriteEntity(self) - net.Send(c) - BaseClass.Use(self,a,c,u,v) -end - -function ENT:NumOf(name) - local myinv = self.data.inventories[self:GetCreationID()] - local cursor = myinv:Has(name) - local titm = nil - local num = 0 - while cursor ~= nil do - titm = myinv:Remove(cursor) - num = num + 1 - cursor = myinv:Has(name) - end - --Put stuff back in - for i = 1,num do - if titm ~= nil then - local pos = myinv:FindPlaceFor(titm) - myinv:Put(pos,titm) - end - end - - return num -end - -net.Receive("art_workbench_select",function(ln,ply) - local name = net.ReadString() - local who = net.ReadEntity() - print("props are:") - PrintTable(s.props) - assert(s.props[name],"Player " .. ply:Nick() .. " tried to make a prop we don't have:" .. name) - local reqs = s.props[name].reqs - print("player wanted to make a ",name,reqs) - PrintTable(reqs) - local canmake = true - for k,v in pairs(reqs) do - if who:NumOf(k) < v then - canmake = false - break - end - end - - local myinv = who.data.inventories[who:GetCreationID()] - if canmake then - print("Player can make, giveing") - xpcall(function() - ply:GiveItem(itm.GetItemByName(name)) - ply:AddSkill("Toolbuilding",#reqs) - for k,v in pairs(reqs) do - for i = 1,v do - local cur = myinv:Has(k) - myinv:Remove(cur) - end - end - end,function(err) - Msg("Failed to insert:" .. err) - end) - end -end) - -scripted_ents.Register(ENT,"art_workbench") +--[[
+ This entity gives townies things to do
+]]
+if not nrequire then return end
+
+DEFINE_BASECLASS("art_chest") -- this defined a local variable called BaseClass
+
+AddCSLuaFile( "cl_init.lua" )
+AddCSLuaFile( "shared.lua" )
+
+print("Hello from art_workbench init.lua!")
+
+local ENT = nrequire("sh_ent_workbench.lua")
+local inv = nrequire("core/inventory/inventory.lua")
+local itm = nrequire("core/inventory/item.lua")
+
+function ENT:Initialize( )
+ self.InvType = "Crafting Inventory"
+ BaseClass.Initialize(self)
+ timer.Simple(0.1,function()
+ self.data.inventories[self:GetCreationID()].accepts = {
+ ["Wood"] = true,
+ ["Copper"] = true,
+ ["Iron"] = true
+ }
+ end)
+ 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_workbench_open")
+util.AddNetworkString("art_workbench_select")
+util.AddNetworkString("art_workbench_puzzle")
+util.AddNetworkString("art_workbench_put")
+util.AddNetworkString("art_workbench_close")
+
+function ENT:Use(a,c,u,v)
+ net.Start("art_workbench_open")
+ net.WriteEntity(self)
+ net.Send(c)
+ BaseClass.Use(self,a,c,u,v)
+end
+
+function ENT:NumOf(name)
+ local myinv = self.data.inventories[self:GetCreationID()]
+ local cursor = myinv:Has(name)
+ local titm = nil
+ local num = 0
+ while cursor ~= nil do
+ titm = myinv:Remove(cursor)
+ num = num + 1
+ cursor = myinv:Has(name)
+ end
+ --Put stuff back in
+ for i = 1,num do
+ if titm ~= nil then
+ local pos = myinv:FindPlaceFor(titm)
+ myinv:Put(pos,titm)
+ end
+ end
+
+ return num
+end
+
+net.Receive("art_workbench_select",function(ln,ply)
+ local name = net.ReadString()
+ local who = net.ReadEntity()
+ print("props are:")
+ PrintTable(s.props)
+ assert(s.props[name],"Player " .. ply:Nick() .. " tried to make a prop we don't have:" .. name)
+ local reqs = s.props[name].reqs
+ print("player wanted to make a ",name,reqs)
+ PrintTable(reqs)
+ local canmake = true
+ for k,v in pairs(reqs) do
+ if who:NumOf(k) < v then
+ canmake = false
+ break
+ end
+ end
+
+ local myinv = who.data.inventories[who:GetCreationID()]
+ if canmake then
+ print("Player can make, giveing")
+ xpcall(function()
+ ply:GiveItem(itm.GetItemByName(name))
+ ply:AddSkill("Toolbuilding",#reqs)
+ for k,v in pairs(reqs) do
+ for i = 1,v do
+ local cur = myinv:Has(k)
+ myinv:Remove(cur)
+ end
+ end
+ end,function(err)
+ Msg("Failed to insert:" .. err)
+ end)
+ end
+end)
+
+scripted_ents.Register(ENT,"art_workbench")
|
