aboutsummaryrefslogtreecommitdiff
path: root/gamemode/client/cl_inventory.lua
diff options
context:
space:
mode:
authorAlexander Pickering <alexandermpickering@gmail.com>2017-10-09 16:20:46 -0400
committerAlexander Pickering <alexandermpickering@gmail.com>2017-10-09 16:20:46 -0400
commitda81a0a23a3704dd2de3ab2249496c1ad1912d1c (patch)
tree915edc671acbb292191adad2f25f87ba26e567cf /gamemode/client/cl_inventory.lua
parent497be6ff15989c7bf9de5beb138d2ef042dca6bd (diff)
downloadartery-da81a0a23a3704dd2de3ab2249496c1ad1912d1c.tar.gz
artery-da81a0a23a3704dd2de3ab2249496c1ad1912d1c.tar.bz2
artery-da81a0a23a3704dd2de3ab2249496c1ad1912d1c.zip
Updated internal representation of inventories
Diffstat (limited to 'gamemode/client/cl_inventory.lua')
-rw-r--r--gamemode/client/cl_inventory.lua64
1 files changed, 51 insertions, 13 deletions
diff --git a/gamemode/client/cl_inventory.lua b/gamemode/client/cl_inventory.lua
index 92eae94..4e2545d 100644
--- a/gamemode/client/cl_inventory.lua
+++ b/gamemode/client/cl_inventory.lua
@@ -8,7 +8,7 @@
3 - Skills
4 - Quests
]]
-local qinv = nrequire("cl_qinventory.lua")
+--local qinv = nrequire("cl_qinventory.lua")
local state = nrequire("cl_state.lua") --Holds weather or not player is in inventory
local itm = nrequire("core/inventory/common/items.lua")
--local qpray = nrequire("cl_qprayers.lua")
@@ -38,6 +38,8 @@ local creditslabel
local droppanel --Dpanel to drop things on when they are dropped, should be the backmost panel, and cover the entire screen.
inv.tabsheet = nil
+local clt = nrequire("cl_invtracker.lua")
+
local player_data --The data the player needs to show the q panel
net.Receive("art_load_player_data",function()
--print("Got player data")
@@ -49,6 +51,34 @@ net.Receive("art_load_player_data",function()
--print("Credits was", credits)
end)
+local function CreateSheetTree(tabs,dpropertysheet)
+ print("Createing sheet tree!")
+ PrintTable(tabs)
+ for k,v in pairs(tabs) do
+ if type(k) == "string" then
+ print("Makeing inventory ", k)
+ local tsheet = vgui.Create( "DPropertySheet", dpropertysheet )
+ dpropertysheet:AddSheet(k,tsheet,"icon16/user.png")
+ CreateSheetTree(v,tsheet)
+ elseif type(k) == "number" then
+ print("Makeing inventory number ", k)
+ local tsheet = vgui.Create("DPanel")
+ dpropertysheet:AddSheet(v.Name,tsheet,"icon16/user.png")
+ v:DrawOnDPanel(tsheet)
+ else
+ error("k was not a number or string, it was a " .. type(k))
+ end
+ end
+ --local invsheet = qinv.CreateInventorySheet(inv.tabsheet)
+ --qpray.CreatePrayerSheet(tabsheet)
+ --invsheet.id = #qtabs + 1
+ --qtabs[#qtabs + 1] = invsheet
+ --prasheet.id = #qtabs + 1
+ --qtabs[#qtabs + 1] = prasheet
+ --inv.tabsheet:AddSheet("Inventory",invsheet,"icon16/user.png")
+ --tabsheet:AddSheet("Prayers",prasheet,"icon16/user.png")
+end
+
local function BuildInventory()
--print("Building inventory")
if qframe and IsValid(qframe) then return end
@@ -80,17 +110,10 @@ local function BuildInventory()
creditstext:SetText("Credits:")
creditstext:SetPos(100,5)
- inv.tabsheet = vgui.Create("DPropertySheet",qframe)
- inv.tabsheet:Dock(FILL)
+ local initalsheet = vgui.Create("DPropertySheet",qframe)
+ initalsheet:Dock(FILL)
- local invsheet = qinv.CreateInventorySheet(inv.tabsheet)
- --qpray.CreatePrayerSheet(tabsheet)
- invsheet.id = #qtabs + 1
- qtabs[#qtabs + 1] = invsheet
- --prasheet.id = #qtabs + 1
- --qtabs[#qtabs + 1] = prasheet
- inv.tabsheet:AddSheet("Inventory",invsheet,"icon16/user.png")
- --tabsheet:AddSheet("Prayers",prasheet,"icon16/user.png")
+ CreateSheetTree(clt.known_inventories,initalsheet)
end
@@ -139,13 +162,20 @@ local viewdistance = 100
local rotatespeed = 65
local bone = nil
local previousheadscale = Vector(1,1,1)
+local toggle_arteryview = true
hook.Add("CalcView","ArteryInventoryView",function(ply,pos,ang,fov,nearz,farz)
+ if not toggle_arteryview then return end
if bone == nil then
bone = LocalPlayer():LookupBone("ValveBiped.Bip01_Head1")
end
local view = {}
--view.origin = LocalPlayer():GetBonePosition(bone) + LocalPlayer():GetUp() * 2
- view.origin = pos
+ local tr = util.TraceLine({
+ start = pos,
+ endpos = (ang:Forward() * -100) + pos,
+ filter = LocalPlayer()
+ })
+ view.origin = tr.HitPos or (ang:Forward() * -100) + pos
if state.invopen then
local trot = math.rad(CurTime() * rotatespeed)
local xoff = viewdistance * math.sin(trot)
@@ -161,9 +191,17 @@ hook.Add("CalcView","ArteryInventoryView",function(ply,pos,ang,fov,nearz,farz)
else
LocalPlayer():ManipulateBoneScale(bone,previousheadscale)
end
- view.drawviewer = state.invopen
+ view.drawviewer = true--state.invopen
return view
end)
+concommand.Add("delete_inventory",function(ply,cmd,args)
+ qframe = nil
+end)
+
+concommand.Add("toggle_artery_view",function(ply,cmd,args)
+ toggle_arteryview = not toggle_arteryview
+end)
+
return inv