diff options
Diffstat (limited to 'gamemode/client/cl_inventory.lua')
| -rw-r--r-- | gamemode/client/cl_inventory.lua | 64 |
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 |
