Guest User

Untitled

a guest
Feb 20th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.88 KB | None | 0 0
  1. local Inv = { }
  2. Inv.Items = { }
  3. Inv.Space = 30
  4. Inv.UsedSpace = 0
  5. local SelectedItem = nil
  6. local DermaList
  7.  
  8. function OpenInventory()
  9.     SelectedItem = nil
  10.     local DermaPanel = vgui.Create( "DFrame" )
  11.     DermaPanel:SetPos( 50,50 )
  12.     DermaPanel:SetSize( 600, 500 )
  13.     DermaPanel:SetTitle( "Your Inventory" )
  14.     DermaPanel:SetVisible( true )
  15.     DermaPanel:SetDraggable( true )
  16.     DermaPanel:ShowCloseButton( true )
  17.     DermaPanel:MakePopup()
  18.     DermaPanel.PaintOver = function()
  19.         draw.SimpleText("Space: "..Inv.UsedSpace.."/"..Inv.Space,"Trebuchet19",500,460,Color(255,255,255,255))
  20.         draw.SimpleText("Selected:","Trebuchet19",230,460,Color(255,255,255,255))
  21.         if SelectedItem then
  22.             draw.SimpleText("\""..string.upper(SelectedItem.name).."\"","Trebuchet19",295,460,Color(255,255,255,255))
  23.         end
  24.     end
  25.  
  26.  
  27.     DermaList = vgui.Create( "DPanelList", DermaPanel )
  28.     DermaList:SetPos( 5,25 )
  29.     DermaList:SetSize( 590, 420 )
  30.     DermaList:SetSpacing( 2 )
  31.     DermaList:SetPadding( 4 )
  32.     DermaList:EnableHorizontal( true )
  33.     DermaList:EnableVerticalScrollbar( true )
  34.  
  35.     local UseButton = vgui.Create( "DButton" )
  36.     UseButton:SetParent( DermaPanel )
  37.     UseButton:SetText( "Use" )
  38.     UseButton:SetPos( 10, 460 )
  39.     UseButton:SetSize( 100, 25 )
  40.     UseButton.DoClick = function ()
  41.         surface.PlaySound( "ui/buttonclickrelease.wav" )
  42.         RefreshList()
  43.     end
  44.  
  45.     local DropButton = vgui.Create( "DButton" )
  46.     DropButton:SetParent( DermaPanel )
  47.     DropButton:SetText( "Drop" )
  48.     DropButton:SetPos( 120, 460 )
  49.     DropButton:SetSize( 100, 25 )
  50.     DropButton.DoClick = function ()
  51.         surface.PlaySound( "ui/buttonclickrelease.wav" )
  52.         RefreshList()
  53.     end
  54.  
  55.     RefreshList()
  56.  
  57. end
  58. concommand.Add("OpenInventory", OpenInventory)
  59.  
  60. function AddItem(data)
  61.     local item = data:ReadString()
  62.     local mdl = data:ReadString()
  63.     local amount = data:ReadLong()
  64.     if amount == nil then amount = 0 end
  65.  
  66.     table.insert(Inv.Items,{item = item, mdl = mdl, amount = amount})
  67. end
  68.  
  69. function RefreshSpace()
  70.     local a = 0
  71.     for k, v in pairs(Inv.Items) do
  72.         a = a + v.amount
  73.     end
  74.     Inv.UsedSpace = a
  75. end
  76.  
  77. function RefreshList()
  78.     for k, v in pairs(DermaList:GetItems()) do
  79.         DermaList:RemoveItem(v)
  80.     end
  81.     for k, v in pairs(Inv.Items) do
  82.         local icon = vgui.Create( "SpawnIcon", IconList )
  83.         icon.item = v.item
  84.         icon.name = FixName(v.item)
  85.         icon.amount = v.amount
  86.         icon:SetModel( v.mdl )
  87.         icon:SetToolTip( icon.name )
  88.         DermaList:AddItem( icon )
  89.         icon.DoClick = function( icon )
  90.             surface.PlaySound( "ui/buttonclickrelease.wav" )
  91.             SelectedItem = icon
  92.         end
  93.         icon.PaintOver = function( icon )
  94.             draw.SimpleText(icon.amount,"Trebuchet18",48,2,Color(255,255,255,255))
  95.         end
  96.     end
  97.     DermaList:Rebuild()
  98.     RefreshSpace()
  99. end
  100.  
  101. function FixName(name)
  102.     local name = string.Explode("_", name)
  103.     return string.Implode(" ", name)
  104. end
  105.  
  106. table.insert(Inv.Items,{item = "money_printer", mdl = "models/props_c17/consolebox03a.mdl", amount = 30})
Add Comment
Please, Sign In to add comment