aboutsummaryrefslogtreecommitdiff
path: root/gamemode/client/qpanels/inventory.lua
diff options
context:
space:
mode:
Diffstat (limited to 'gamemode/client/qpanels/inventory.lua')
-rw-r--r--gamemode/client/qpanels/inventory.lua388
1 files changed, 194 insertions, 194 deletions
diff --git a/gamemode/client/qpanels/inventory.lua b/gamemode/client/qpanels/inventory.lua
index b93fd7f..4dc5075 100644
--- a/gamemode/client/qpanels/inventory.lua
+++ b/gamemode/client/qpanels/inventory.lua
@@ -1,194 +1,194 @@
-do return end
-local invfuncs
-invfuncs = ART.invfuncs
---invfuncs = include("../gamemodes/artery/gamemode/shared/inventory_common.lua")
---invfuncs = include("../shared/inventory_common.lua")
-assert(invfuncs ~= nil, "Dependency failed")
-
-local function createMenuFor(menu, tbl)
- for k,v in pairs(tbl) do
- if isfunction(v) then --This is a dead-end, add the menu
- local thisoption = menu:AddOption(k,v)
- else --Otherwise it should be a table, recursively call to create
- local submenu = menu:AddSubMenu(k)
- createMenuFor(submenu,v)
- end
- end
-end
-
-local function DrawBackpackOnDPanel(dp, backpack, backpacknum, tent)
- local width = ScrW()
- local height = ScrH()
- local slotsize = math.Round(width / 32)
- local backgrid = vgui.Create( "DGrid", dp )
- backgrid:SetPos( 10, 30 )
- backgrid:SetCols( backpack[2][1] )
- backgrid:SetColWide( backpack[2][2] )
- backgrid:Dock(FILL)
- for i = 1,#(backpack[1]) do
- for j = 1,#(backpack[1][i]) do
- local item = backpack[1][j][i]
- if type(backpack[1][j][i]) == "table" then
- local itemwidth = 0
- for _,l in pairs(item.Shape) do
- itemwidth = math.Max(itemwidth,#l)
- end
- local itemheight = #item.Shape
- local invicon = vgui.Create( "DImageButton", dp )
- invicon:SetSize(slotsize * itemwidth, slotsize * itemheight)
- invicon:SetPos(slotsize * (i - 1), slotsize * (j - 1))
- invicon:SetText(item.Name)
- if item.Tooltip then
- invicon:SetTooltip(item.Tooltip)
- end
- if item.Paint then
- invicon.Paint = item.Paint
- end
- if item.DoOnPanel then
- item.DoOnPanel(invicon)
- end
- --invicon.Paint = function(self, w, h) draw.RoundedBox(4, 0,0,w,h,Color(0,100,0)) end
- invicon.DoClick = function()
- if not item.GetOptions then return end
- local menu = vgui.Create("DMenu")
- createMenuFor(menu,item:GetOptions())
- menu:Open()
- end
- invicon.Item = item
- invicon.invpos = {j,i}
- invicon.ent = tent
- invicon.backpacknum = backpacknum
- invicon:Droppable("Inventory")
- elseif not backpack[1][j][i] then
- local emptyslot = vgui.Create("DPanel", dp)
- emptyslot:SetSize(slotsize,slotsize)
- emptyslot:SetPos(slotsize * (i - 1), slotsize * (j - 1))
- --emptyslot.Paint = function(self, w, h) draw.RoundedBox(4, 0,0,w,h,Color(0,0,100)) end
- emptyslot:Receiver( "Inventory", function( receiver, tableOfDroppedPanels, isDropped, menuIndex, mouseX, mouseY )
- if not isDropped then return end
- local icon = tableOfDroppedPanels[1]
- local item = icon.Item
- local curpos = icon.invpos
- --Set the shape it was at to false
- if not icon.wasequiped and icon.ent == tent then
- assert(curpos ~= nil, "print curpos was nil when not equiped")
- for k = 1,#item.Shape do
- for l = 1,#(item.Shape[k]) do
- if k == 1 and l == 1 then continue end
- backpack[1][curpos[1] + k - 1][curpos[2] + l - 1] = false
- end
- end
- backpack[1][curpos[1]][curpos[2]] = false
- end
- if invfuncs.CanFitInBackpack(backpack,j,i,item) then
- local fromtbl = icon.invpos
- local wasequiped = icon.wasequiped
- local ondropped = icon.ondropped
- if ondropped then
- ondropped(backpacknum,j,i,item)
- elseif wasequiped then
- net.Start("unequipitem")
- net.WriteString(wasequiped)
- net.WriteUInt(backpacknum,16)
- net.WriteUInt(i,16)
- net.WriteUInt(j,16)
- net.SendToServer()
- else
- net.Start("moveitem")
- net.WriteEntity(icon.ent) -- from ent
- net.WriteEntity(tent) -- to ent
- net.WriteUInt(icon.backpacknum,16) -- from backpack number
- net.WriteUInt(backpacknum,16) -- to backpack number
- net.WriteUInt(fromtbl[1],16) -- From position
- net.WriteUInt(fromtbl[2],16)
- net.WriteUInt(j,16) -- To position
- net.WriteUInt(i,16)
- net.SendToServer()
- if item.onEquip ~= nil then
- item:onEquip(LocalPlayer())
- end
- end
- end
- end, {} )
- end
- end
- end
-end
-
-local invsheetfunc = function()
- local width = ScrW()
- local height = ScrH()
-
-
- local invsheet = vgui.Create( "DPanel" )
-
- invsheet.Paint = function( self, w, h ) end
-
- --Display gear
- local slotsize = math.Round(width / 32)
- local displaypos = {
- ["Head"] = {(width / 8) - slotsize, 25},
- ["Body"] = {(width / 8) - slotsize, slotsize + 26},
- ["Legs"] = {(width / 8) - slotsize, (slotsize * 2) + 27},
- ["Boots"] = {(width / 8) - slotsize, (slotsize * 3) + 28},
- ["Gloves"] = {(width / 8) + (slotsize), (slotsize * 2) + 27},
- ["Left"] = {(width / 8) - (1.5 * slotsize), (slotsize * 4) + 29},
- ["Right"] = {(width / 8) - (0.5 * slotsize), (slotsize * 4) + 29}
- }
- for k,v in pairs (LocalPlayer().Inventory.Equiped) do
- if v == false then
- local eqslot = vgui.Create( "DPanel", invsheet )
- eqslot:SetSize( slotsize, slotsize )
- eqslot:SetPos(displaypos[k][1],displaypos[k][2])
- eqslot:Receiver( "Inventory", function( receiver, tableOfDroppedPanels, isDropped, menuIndex, mouseX, mouseY )
- if not isDropped then return end
- print("Attempting to equip")
- local icon = tableOfDroppedPanels[1]
- local item = icon.Item
- if item.Equipable == k then
- net.Start("equipitem")
- net.WriteUInt(icon.backpacknum,16) -- Backpack number
- local fromtbl = icon.invpos
- net.WriteUInt(fromtbl[1],16) -- From position
- net.WriteUInt(fromtbl[2],16)
- net.WriteString(k)
- net.SendToServer()
- end
- end, {} )
- else
- local eqslot = vgui.Create("DImageButton",invsheet)
- eqslot:SetSize(slotsize,slotsize)
- eqslot:SetPos(displaypos[k][1],displaypos[k][2])
- if v.PaintEquiped then
- eqslot.Paint = v.PaintEquiped
- end
- if v.DoOnEquipPanel then
- v.DoOnEquipPanel(eqslot)
- end
- eqslot:Droppable("Inventory")
- eqslot.Item = v
- eqslot.wasequiped = k
- end
- end
- local moneylabel = vgui.Create("DLabel",invsheet)
- moneylabel:SetPos(0,0)
- moneylabel:SetSize(width/5,18)
- moneylabel:SetText(string.format("Credits:%7d", ART.Credits or 0))
- print("Displaying credits:" .. string.format("Credits:%7d", ART.Credits or 0))
-
- local backpacksheet = vgui.Create( "DPropertySheet", invsheet )
- backpacksheet:SetPos(0,slotsize * 6)
- backpacksheet:SetSize((width / 4) - 26, height - (slotsize * 6) - 70)
- for k,v in pairs(LocalPlayer().Inventory.Backpacks) do
- local tbacksheet = vgui.Create( "DPanel", backpacksheet )
- tbacksheet.Paint = function( self, w, h ) draw.RoundedBox( 4, 0, 0, w, h, Color( 157, 160, 167 ) ) end
- backpacksheet:AddSheet( v[3], tbacksheet, "icon16/cross.png" )
-
- DrawBackpackOnDPanel(tbacksheet,v,k,LocalPlayer())
- end
-
- return "Inventory", invsheet, "icon16/cross.png"
-end
-
-
-ART.RegisterInventorySheet(invsheetfunc)
+-- do return end
+-- local invfuncs
+-- invfuncs = ART.invfuncs
+-- --invfuncs = include("../gamemodes/artery/gamemode/shared/inventory_common.lua")
+-- --invfuncs = include("../shared/inventory_common.lua")
+-- assert(invfuncs ~= nil, "Dependency failed")
+--
+-- local function createMenuFor(menu, tbl)
+-- for k,v in pairs(tbl) do
+-- if isfunction(v) then --This is a dead-end, add the menu
+-- local thisoption = menu:AddOption(k,v)
+-- else --Otherwise it should be a table, recursively call to create
+-- local submenu = menu:AddSubMenu(k)
+-- createMenuFor(submenu,v)
+-- end
+-- end
+-- end
+--
+-- local function DrawBackpackOnDPanel(dp, backpack, backpacknum, tent)
+-- local width = ScrW()
+-- local height = ScrH()
+-- local slotsize = math.Round(width / 32)
+-- local backgrid = vgui.Create( "DGrid", dp )
+-- backgrid:SetPos( 10, 30 )
+-- backgrid:SetCols( backpack[2][1] )
+-- backgrid:SetColWide( backpack[2][2] )
+-- backgrid:Dock(FILL)
+-- for i = 1,#(backpack[1]) do
+-- for j = 1,#(backpack[1][i]) do
+-- local item = backpack[1][j][i]
+-- if type(backpack[1][j][i]) == "table" then
+-- local itemwidth = 0
+-- for _,l in pairs(item.Shape) do
+-- itemwidth = math.Max(itemwidth,#l)
+-- end
+-- local itemheight = #item.Shape
+-- local invicon = vgui.Create( "DImageButton", dp )
+-- invicon:SetSize(slotsize * itemwidth, slotsize * itemheight)
+-- invicon:SetPos(slotsize * (i - 1), slotsize * (j - 1))
+-- invicon:SetText(item.Name)
+-- if item.Tooltip then
+-- invicon:SetTooltip(item.Tooltip)
+-- end
+-- if item.Paint then
+-- invicon.Paint = item.Paint
+-- end
+-- if item.DoOnPanel then
+-- item.DoOnPanel(invicon)
+-- end
+-- --invicon.Paint = function(self, w, h) draw.RoundedBox(4, 0,0,w,h,Color(0,100,0)) end
+-- invicon.DoClick = function()
+-- if not item.GetOptions then return end
+-- local menu = vgui.Create("DMenu")
+-- createMenuFor(menu,item:GetOptions())
+-- menu:Open()
+-- end
+-- invicon.Item = item
+-- invicon.invpos = {j,i}
+-- invicon.ent = tent
+-- invicon.backpacknum = backpacknum
+-- invicon:Droppable("Inventory")
+-- elseif not backpack[1][j][i] then
+-- local emptyslot = vgui.Create("DPanel", dp)
+-- emptyslot:SetSize(slotsize,slotsize)
+-- emptyslot:SetPos(slotsize * (i - 1), slotsize * (j - 1))
+-- --emptyslot.Paint = function(self, w, h) draw.RoundedBox(4, 0,0,w,h,Color(0,0,100)) end
+-- emptyslot:Receiver( "Inventory", function( receiver, tableOfDroppedPanels, isDropped, menuIndex, mouseX, mouseY )
+-- if not isDropped then return end
+-- local icon = tableOfDroppedPanels[1]
+-- local item = icon.Item
+-- local curpos = icon.invpos
+-- --Set the shape it was at to false
+-- if not icon.wasequiped and icon.ent == tent then
+-- assert(curpos ~= nil, "print curpos was nil when not equiped")
+-- for k = 1,#item.Shape do
+-- for l = 1,#(item.Shape[k]) do
+-- if k == 1 and l == 1 then continue end
+-- backpack[1][curpos[1] + k - 1][curpos[2] + l - 1] = false
+-- end
+-- end
+-- backpack[1][curpos[1]][curpos[2]] = false
+-- end
+-- if invfuncs.CanFitInBackpack(backpack,j,i,item) then
+-- local fromtbl = icon.invpos
+-- local wasequiped = icon.wasequiped
+-- local ondropped = icon.ondropped
+-- if ondropped then
+-- ondropped(backpacknum,j,i,item)
+-- elseif wasequiped then
+-- net.Start("unequipitem")
+-- net.WriteString(wasequiped)
+-- net.WriteUInt(backpacknum,16)
+-- net.WriteUInt(i,16)
+-- net.WriteUInt(j,16)
+-- net.SendToServer()
+-- else
+-- net.Start("moveitem")
+-- net.WriteEntity(icon.ent) -- from ent
+-- net.WriteEntity(tent) -- to ent
+-- net.WriteUInt(icon.backpacknum,16) -- from backpack number
+-- net.WriteUInt(backpacknum,16) -- to backpack number
+-- net.WriteUInt(fromtbl[1],16) -- From position
+-- net.WriteUInt(fromtbl[2],16)
+-- net.WriteUInt(j,16) -- To position
+-- net.WriteUInt(i,16)
+-- net.SendToServer()
+-- if item.onEquip ~= nil then
+-- item:onEquip(LocalPlayer())
+-- end
+-- end
+-- end
+-- end, {} )
+-- end
+-- end
+-- end
+-- end
+--
+-- local invsheetfunc = function()
+-- local width = ScrW()
+-- local height = ScrH()
+--
+--
+-- local invsheet = vgui.Create( "DPanel" )
+--
+-- invsheet.Paint = function( self, w, h ) end
+--
+-- --Display gear
+-- local slotsize = math.Round(width / 32)
+-- local displaypos = {
+-- ["Head"] = {(width / 8) - slotsize, 25},
+-- ["Body"] = {(width / 8) - slotsize, slotsize + 26},
+-- ["Legs"] = {(width / 8) - slotsize, (slotsize * 2) + 27},
+-- ["Boots"] = {(width / 8) - slotsize, (slotsize * 3) + 28},
+-- ["Gloves"] = {(width / 8) + (slotsize), (slotsize * 2) + 27},
+-- ["Left"] = {(width / 8) - (1.5 * slotsize), (slotsize * 4) + 29},
+-- ["Right"] = {(width / 8) - (0.5 * slotsize), (slotsize * 4) + 29}
+-- }
+-- for k,v in pairs (LocalPlayer().Inventory.Equiped) do
+-- if v == false then
+-- local eqslot = vgui.Create( "DPanel", invsheet )
+-- eqslot:SetSize( slotsize, slotsize )
+-- eqslot:SetPos(displaypos[k][1],displaypos[k][2])
+-- eqslot:Receiver( "Inventory", function( receiver, tableOfDroppedPanels, isDropped, menuIndex, mouseX, mouseY )
+-- if not isDropped then return end
+-- print("Attempting to equip")
+-- local icon = tableOfDroppedPanels[1]
+-- local item = icon.Item
+-- if item.Equipable == k then
+-- net.Start("equipitem")
+-- net.WriteUInt(icon.backpacknum,16) -- Backpack number
+-- local fromtbl = icon.invpos
+-- net.WriteUInt(fromtbl[1],16) -- From position
+-- net.WriteUInt(fromtbl[2],16)
+-- net.WriteString(k)
+-- net.SendToServer()
+-- end
+-- end, {} )
+-- else
+-- local eqslot = vgui.Create("DImageButton",invsheet)
+-- eqslot:SetSize(slotsize,slotsize)
+-- eqslot:SetPos(displaypos[k][1],displaypos[k][2])
+-- if v.PaintEquiped then
+-- eqslot.Paint = v.PaintEquiped
+-- end
+-- if v.DoOnEquipPanel then
+-- v.DoOnEquipPanel(eqslot)
+-- end
+-- eqslot:Droppable("Inventory")
+-- eqslot.Item = v
+-- eqslot.wasequiped = k
+-- end
+-- end
+-- local moneylabel = vgui.Create("DLabel",invsheet)
+-- moneylabel:SetPos(0,0)
+-- moneylabel:SetSize(width/5,18)
+-- moneylabel:SetText(string.format("Credits:%7d", ART.Credits or 0))
+-- print("Displaying credits:" .. string.format("Credits:%7d", ART.Credits or 0))
+--
+-- local backpacksheet = vgui.Create( "DPropertySheet", invsheet )
+-- backpacksheet:SetPos(0,slotsize * 6)
+-- backpacksheet:SetSize((width / 4) - 26, height - (slotsize * 6) - 70)
+-- for k,v in pairs(LocalPlayer().Inventory.Backpacks) do
+-- local tbacksheet = vgui.Create( "DPanel", backpacksheet )
+-- tbacksheet.Paint = function( self, w, h ) draw.RoundedBox( 4, 0, 0, w, h, Color( 157, 160, 167 ) ) end
+-- backpacksheet:AddSheet( v[3], tbacksheet, "icon16/cross.png" )
+--
+-- DrawBackpackOnDPanel(tbacksheet,v,k,LocalPlayer())
+-- end
+--
+-- return "Inventory", invsheet, "icon16/cross.png"
+-- end
+--
+--
+-- ART.RegisterInventorySheet(invsheetfunc)