Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- include("autorun/sh_inventory.lua")
- local scrw = ScrW()
- local scrh = ScrH()
- local titleBar = Color(0,0,0,225)
- local foreground = Color(30,30,30,225)
- local itemoverlay = Material("inv/itemoverlay.png")
- local slotSize
- function DINVENTORY.AdminMenuOpen()
- if not LocalPlayer():Alive() then return end
- DINVENTORY.Close()
- DINVENTORY.AdminMenu = vgui.Create("InventoryMainFrame")
- local amenu = DINVENTORY.AdminMenu
- amenu:SetSize(scrw * .5, scrh * .75)
- amenu:Center()
- amenu:MakePopup()
- amenu:SetTitle("")
- local titleBarH = amenu:GetTall() * .05
- amenu:Header("ADMIN")
- amenu:ShowClose(true)
- amenu.ExitButton.DoClick = function()
- amenu:Remove()
- DINVENTORY.Open()
- end
- amenu:ForceSetHeader(amenu:GetWide() * .02)
- amenu:ForceSetHeaderAlign(TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
- amenu.Panel = vgui.Create("DPanel", amenu)
- amenu.Panel:SetPos(0,amenu.titleSize)
- amenu.Panel:SetSize(amenu:GetWide(), amenu:GetTall() - amenu.titleSize)
- local lineColor = amenu.Themes["blur_theme"].line_separator
- amenu.Panel.Paint = function(me,w,h)
- end
- DINVENTORY.AdminItemPanel()
- end
- local adminReg = {}
- local checks = {
- "weapon",
- "entity",
- "ammo",
- }
- local function SortReg()
- if #adminReg <= 0 then
- for i = 1, #checks do
- for k,v in pairs(DINVENTORY.RegisteredItems) do
- if v.itemtype == checks[i] then
- adminReg[#adminReg + 1 or 1] = v
- end
- end
- end
- end
- end
- local function giveItem(item, v)
- net.Start("inventory_admin_spawn")
- net.WriteString(item.classname)
- net.WriteInt(v, 16)
- net.SendToServer()
- end
- local itemOptions = {
- {icon = "icon16/shield.png", title = "Give", subOptions = {}},
- }
- local giveAmounts = {
- 1,2,5,10,25,50,100,500,1000,
- }
- for k,v in pairs(giveAmounts) do
- itemOptions[1].subOptions[k] = {title = "Give x" .. v, doclick = function(item, slot) giveItem(item, v) end,}
- end
- function DINVENTORY.AdminItemPanel()
- local hoverClass = ""
- local ply = LocalPlayer()
- local amenu = DINVENTORY.AdminMenu
- local invPanel = amenu.Panel
- if IsValid(invPanel.ItemPanel) then
- invPanel.ItemPanel:Remove()
- end
- SortReg()
- invPanel.ItemPanel = vgui.Create("DPanel", invPanel)
- local itemPanel = invPanel.ItemPanel
- itemPanel:SetPos(0, 0)
- itemPanel:SetSize(invPanel:GetWide(), invPanel:GetTall())
- local textColor = textColor or DINVENTORY.AdminMenu.Themes["blur_theme"].textcolor
- itemPanel.Paint = function(me,w,h)
- Manager.DrawText("ITEMS", "CSI.Font.24", w / 2 * .072, w * .05, textColor, TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER )
- Manager.DrawText(hoverClass, "CSI.Font.24", w - (w / 2 * .075), w * .05, textColor, TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER )
- end
- local ypos = itemPanel:GetTall() * .075
- local scrollPanel = vgui.Create("DScrollPanel", itemPanel)
- scrollPanel:SetPos(0,ypos)
- scrollPanel:SetSize(itemPanel:GetWide(), itemPanel:GetTall() - ypos)
- Manager.PaintBar( scrollPanel, nil, nil, Color(255,255,255) )
- itemPanel.itemList = vgui.Create("DIconLayout", scrollPanel)
- local itemList = itemPanel.itemList
- itemList:SetPos(itemPanel:GetWide() / 2 * 0.072,0)
- itemList:SetSize(scrollPanel:GetWide(), scrollPanel:GetTall())
- itemList:SetSpaceX( itemList:GetWide() * .0175)
- itemList:SetSpaceY( itemList:GetWide() * .0175)
- slotSize = ( itemList:GetWide() / 2 ) * .177
- local reg = DINVENTORY.RegisteredItems
- for k,v in ipairs(adminReg) do
- local item = reg[v.classname]
- local slotPanel = itemList:Add("DPanel")
- slotPanel:SetSize(slotSize, slotSize)
- slotPanel.Paint = function(me, w, h)
- DINVENTORY.DrawSlot(0, 0, w, nil)
- end
- if item then
- local slotItem = vgui.Create("DModelPanel", slotPanel)
- slotItem:SetTooltip("Name: ".. item.name)
- slotItem:SetPos(0,0)
- slotItem:SetSize(slotPanel:GetWide(), slotPanel:GetTall())
- slotItem:SetModel(item.model)
- function slotItem:LayoutEntity( Entity ) return end
- slotItem.Entity:SetPos( slotItem.Entity:GetPos() - Vector( 0, 0, 4 ) )
- slotItem:SetCamPos( Vector( 15, -6, 60 ) )
- slotItem:SetLookAt( Vector( 0, 0, 60 ) )
- slotItem:SetFOV(50)
- local min, max = slotItem.Entity:GetRenderBounds()
- slotItem:SetCamPos(min:Distance(max) * Vector(.7, .7, .7))
- slotItem:SetLookAt((max + min) / 2)
- local oldPaint = baseclass.Get("DModelPanel")
- local itemColor = Color(textColor.r + 20, textColor.g + 20, textColor.b + 20, 255)
- function slotItem:Paint(w,h)
- if self:IsHovered() then
- Manager.DrawRect(0,0,w,h , Color(255, 255, 255, 3))
- hoverClass = item.name
- end
- surface.SetDrawColor(DINVENTORY.ItemColors[item.itemtype])
- surface.SetMaterial(itemoverlay)
- surface.DrawTexturedRect(0,0,w,h)
- oldPaint.Paint(self,w,h)
- Manager.DrawText(item.name, "CSI.Font.14", w / 2, h * .125, itemColor, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER )
- end
- function slotItem:DoClick()
- local Menu = DermaMenu()
- for k,v in ipairs(itemOptions) do
- if v.subOptions then
- local option, parent = Menu:AddSubMenu( v.title )
- parent:SetIcon(v.icon)
- for _,s in ipairs(v.subOptions) do
- local suboption = option:AddOption(s.title)
- suboption.DoClick = function()
- s.doclick(item,i)
- end
- end
- end
- end
- Menu:Open()
- end
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement