GohoCraft

cl_panels.lua

Apr 3rd, 2014
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 36.66 KB | None | 0 0
  1.  
  2. surface.CreateFont( "DefaultBold", {
  3.     font = "Tahoma",
  4.     size = 16,
  5.     weight = 1000,
  6.     antialias = true,
  7.     additive = false
  8. } )
  9.  
  10. surface.CreateFont( "GMSUnlockDescription", {
  11.     font = "Tahoma",
  12.     size = 14,
  13.     weight = 500,
  14.     antialias = true,
  15.     additive = false
  16. } )
  17.  
  18.  
  19.  
  20.  
  21. /*---------------------------------------------------------
  22.     Tribe Menu
  23. ---------------------------------------------------------*/
  24.  
  25. local PANEL = {}
  26.  
  27. function PANEL:Init()
  28.     self:SetTitle( "Gang Creation Menu" )
  29.     self:SetSize( 275, 305 )
  30.     self:MakePopup()
  31.     self:Center()
  32.  
  33.     local gnamelabel = vgui.Create( "DLabel", self )
  34.     gnamelabel:SetPos( 5, 21 )
  35.     gnamelabel:SetText( "Gang title" )
  36.  
  37.     local gname = vgui.Create( "DTextEntry", self )
  38.     gname:SetSize( self:GetWide() - 10, 20 )
  39.     gname:SetPos( 5, 40 )
  40.  
  41.     local gpwlabel = vgui.Create( "DLabel", self )
  42.     gpwlabel:SetPos( 5, 65 )
  43.     gpwlabel:SetText( "Password ( Optional )" )
  44.     gpwlabel:SizeToContents()
  45.  
  46.     local gpw = vgui.Create( "DTextEntry", self )
  47.     gpw:SetSize( self:GetWide() - 10, 20 )
  48.     gpw:SetPos( 5, 80 )
  49.  
  50.     local gcollabel = vgui.Create( "DLabel", self )
  51.     gcollabel:SetPos( 5, 105 )
  52.     gcollabel:SetText( "Tribe color" )
  53.  
  54.     local gcolor = vgui.Create( "DColorMixer", self )
  55.     gcolor:SetSize( self:GetWide() - 15, 150 )
  56.     gcolor:SetPos( 5, 125 )
  57.  
  58.     local button = vgui.Create( "DButton", self )
  59.     button:SetSize( self:GetWide() - 10, 20 )
  60.     button:SetPos( 5, 280 )
  61.     button:SetText( "Create this GANG!" )
  62.     button.DoClick = function()
  63.         RunConsoleCommand( "bw_creategang", gname:GetValue(), gcolor:GetColor().r, gcolor:GetColor().g, gcolor:GetColor().b, gpw:GetValue() )
  64.         self:SetVisible( false )
  65.     end
  66. end
  67. vgui.Register( "BW_GangMenu", PANEL, "DFrame" )
  68.  
  69.  
  70. --- Testmenu
  71. local function MyMenu()
  72.     local Menu = vgui.Create("DFrame")
  73.     --Menu:SetPos(ScrW() / 2 - 400, ScrH() / 2 - 200)
  74.     Menu:SetSize(ScrW()/1.5, ScrH()/1.5)
  75.     Menu:SetText("My Menu")
  76.     Menu:SetDraggable(true)
  77.     Menu:ShowCloseButton(true)
  78.     Menu:SetKeyboardInputEnabled( true )
  79.     Menu:SetMouseInputEnabled( true )
  80.     Menu:MakePopup()
  81.  
  82.     local Text = vgui.Create("DLabel",Menu)
  83.     //You can leave out the parentheses if there is a single string as an argument.
  84.     Text:SetText "You opened the F1 menu ;D"
  85.     Text:SizeToContents()
  86.     Text:Center()
  87. end
  88. net.Receive("MyMenu", MyMenu)
  89.  
  90. local function Spawnmenu()
  91.     vgui.Create("BW_SpawnMenu")
  92.  
  93. end
  94. --net.Receive("Spawnmenu", Spawnmenu)
  95. /*---------------------------------------------------------
  96.     Spawn Menu
  97. ---------------------------------------------------------*/
  98.  
  99. local PANEL = {}
  100. function PANEL:Init()
  101.    
  102.     -- Request Data from server and set clientside
  103.     BW_request_data( LocalPlayer(), LocalPlayer() )
  104.  
  105.     -- Position of the spawn menu
  106.     local width = ScrW()/1.8
  107.     local height = ScrH()/1.5
  108.     local pos1 = (ScrW()-width)-130
  109.     local pos2 = (ScrH()-height)/2
  110.     self:SetSize(width, height)
  111.     self:SetPos(pos1, pos2)
  112.     --self:Center()
  113.    
  114.     --self:SetDraggable( true )
  115.     --self:ShowCloseButton( true )
  116.    
  117.     self:MakePopup()
  118.     self:SetVisible( true )
  119.     self:SetKeyboardInputEnabled( false )
  120.     self:SetMouseInputEnabled( true )
  121.     self:SetAlpha( 255 )
  122.    
  123.     self.PSheet = vgui.Create( "DPropertySheet", self )
  124.     --self.PSheet:SetSize(self:GetWide()-305, self:GetTall())
  125.     self.PSheet:Dock( FILL )
  126.    
  127.     self.SItemWelc = vgui.Create( "BW_SpawnMenu_welcome" )
  128.     self.PSheet:AddSheet( "   Welcome      ", self.SItemWelc, "icon16/world.png", false, false, "Welcome to Basewars" )
  129.    
  130.     self.SItemProps = vgui.Create( "BW_SpawnMenu_props" )
  131.     self.PSheet:AddSheet( "   Props      ", self.SItemProps, "icon16/box.png", false, false, "Get your props here" )
  132.    
  133.     self.SItemBW = vgui.Create("BW_SpawnMenu_basewars")
  134.     self.PSheet:AddSheet( "   BaseWars      ", self.SItemBW, "icon16/money.png", false, false, "Get your basewars stuff here" )
  135.    
  136.     --self.SItemFPP = vgui.Create("Base War Settings")
  137.     --self.PSheet:AddSheet( "   FPP      ", self.SItemFPP, "icon16/serer.png", false, false, "FPP Settings" )
  138.    
  139.     --self.SItemBWold = vgui.Create("BW_SpawnMenu_basewars_old")
  140.     --self.PSheet:AddSheet( "   BaseWars(old)      ", self.SItemBWold, "icon16/money.png", false, false, "BW Menu from fundk - lol" )
  141.    
  142.     //self.SItemTools = vgui.Create("ToolMenu")
  143.     self.SItemTools = vgui.Create("BW_SpawnMenu_tools")
  144.     self.PSheet:AddSheet( "   Tools      ", self.SItemTools, "icon16/wrench.png", false, false, "Tools here" )
  145.  
  146.     if(LocalPlayer():IsAdmin()) then
  147.         self.SItemAdmin = vgui.Create("BW_SpawnMenu_admin")
  148.         self.PSheet:AddSheet( "   Admin      ", self.SItemAdmin, "icon16/shield.png", false, false, "Get your hats here" )
  149.        
  150.         -- PropSpawnDebugMenu
  151.         self.SItemDebug = vgui.Create("BW_SpawnMenu_debug")
  152.         self.PSheet:AddSheet( "   Debug      ", self.SItemAdmin, "icon16/report.png", false, false, "Debug and Testing Menu" )
  153.        
  154.        
  155.        
  156.     end
  157.  
  158.     -- Model View
  159.     --local icon = vgui.Create( "FBW_SpawnMenu_Preview", self)
  160.     --icon:SetPos( self:GetWide()-305, 200)
  161.     --icon:SetSize(250, 250)
  162.  
  163.  
  164.  
  165.  
  166. end
  167. vgui.Register( "BW_SpawnMenu", PANEL, "Panel" )
  168.  
  169.  
  170. local spawnmenudebug = false
  171.  
  172. function GM:OnSpawnMenuOpen()
  173.    
  174.     if(spawnmenudebug) then
  175.     //Debug
  176.         if BW_SpawnMenu then
  177.             BW_SpawnMenu:Remove()
  178.             BW_SpawnMenu = nil
  179.         end
  180.         BW_SpawnMenu = vgui.Create( "BW_SpawnMenu" )
  181.     else
  182.     //Live
  183.         if BW_SpawnMenu == nil then
  184.             BW_SpawnMenu = vgui.Create( "BW_SpawnMenu" )
  185.         end
  186.     end
  187.  
  188.     BW_SpawnMenu:Show( )
  189. end
  190.  
  191. function GM:OnSpawnMenuClose()
  192.     if(spawnmenudebug) then
  193.         //Debug
  194.         BW_SpawnMenu:Remove()
  195.     else
  196.         //Live
  197.         BW_SpawnMenu:Hide()
  198.     end
  199.    
  200.     gui.EnableScreenClicker( false )
  201. end
  202.  
  203.  
  204. ------------------------------------------------------
  205. ----
  206. ----    Spawnmenu model
  207. ----
  208. ------------------------------------------------------
  209.  
  210. local PANEL = {}
  211.  
  212. function PANEL:Init()
  213.     self:SetModel(LocalPlayer():GetModel())
  214. end
  215.  
  216. function PANEL:Paint()
  217.     if ( !IsValid( self.Entity ) ) then return end
  218.  
  219.     local x, y = self:LocalToScreen( 0, 0 )
  220.  
  221.     self:LayoutEntity( self.Entity )
  222.  
  223.     local ang = self.aLookAngle
  224.     if ( !ang ) then
  225.             ang = (self.vLookatPos-self.vCamPos):Angle()
  226.     end
  227.  
  228.     local w, h = self:GetSize()
  229.     cam.Start3D( self.vCamPos, ang, self.fFOV, x, y, w, h, 10, 4096 )
  230.     cam.IgnoreZ( true )
  231.  
  232.     render.SuppressEngineLighting( true )
  233.     render.SetLightingOrigin( self.Entity:GetPos() )
  234.     render.ResetModelLighting( self.colAmbientLight.r/255, self.colAmbientLight.g/255, self.colAmbientLight.b/255 )
  235.     render.SetColorModulation( self.colColor.r/255, self.colColor.g/255, self.colColor.b/255 )
  236.     render.SetBlend( self.colColor.a/255 )
  237.  
  238.     for i=0, 6 do
  239.             local col = self.DirectionalLight[ i ]
  240.             if ( col ) then
  241.                 render.SetModelLighting( i, col.r/255, col.g/255, col.b/255 )
  242.             end
  243.     end
  244.  
  245.     self.Entity:DrawModel()
  246.    
  247.     render.SuppressEngineLighting( false )
  248.     cam.IgnoreZ( false )
  249.     cam.End3D()
  250.  
  251.     //self.LastPaint = RealTime()
  252. end
  253.  
  254.  
  255. vgui.Register('BW_SpawnMenu_Model', PANEL, 'DModelPanel')
  256.  
  257.  
  258. ------------------------------------------------------
  259. ----
  260. ----    Spawnmenu welcome
  261. ----
  262. ------------------------------------------------------
  263.  
  264. local PANEL = {}
  265. function PANEL:Init()
  266.  
  267.     local Content = vgui.Create("DPanel", self)
  268.     Content:Dock(TOP)
  269.     Content:DockMargin(10,10,10,10)
  270.     Content:SetSize(self:GetWide()-200,self:GetTall()+100)
  271.     --Content.Paint = function(self) end
  272.    
  273.     local DLabel1 = vgui.Create('DLabel')
  274.     DLabel1:SetParent(Content)
  275.     DLabel1:SetPos(10, 10)
  276.     DLabel1:SetTextColor( Color(0, 0, 0, 255) )
  277.     DLabel1:SetText('Welcome to Basewars \n\nThe best gamemode on the world ;)')
  278.     DLabel1:SizeToContents()
  279.  
  280. end
  281. vgui.Register( "BW_SpawnMenu_welcome", PANEL, "Panel" )
  282.  
  283.  
  284. ------------------------------------------------------
  285. ----
  286. ----    Spawnmenu props
  287. ----
  288. ------------------------------------------------------
  289.  
  290. /* DPropSpawnMenu */
  291. local PANEL = {}
  292. function PANEL:Init()
  293.     --self:SetSpacing( 5 )
  294.     --self:SetPadding( 10 )
  295.     --self:SetBGColor(176,196,222)
  296.     self:EnableHorizontal( false )
  297.     self:EnableVerticalScrollbar( true )  
  298.     function self:Paint()
  299.         draw.RoundedBox( 4, 0, 0, self:GetWide(), self:GetTall(), Color( 176,196,222 ) )
  300.     end
  301.    
  302.     -----
  303.     local catarr = {}
  304.     local SpawnableEntities = props
  305.     if ( SpawnableEntities ) then
  306.         for k, v in pairs( SpawnableEntities ) do
  307.             v.cat = v.cat or "Other"
  308.             catarr[ v.cat ] = catarr[ v.cat ] or {}
  309.             table.insert( catarr[ v.cat ], v )
  310.         end
  311.     end
  312.     -----
  313.    
  314.     for k, v in SortedPairs( catarr ) do
  315.         local cat = vgui.Create( "DCollapsibleCategory", self )
  316.         cat:SetExpanded( 1 )
  317.         cat:SetLabel( k )
  318.         cat:SetFGColor(112,128,144)
  319.         local IconList = vgui.Create( "DPanelList", cat )
  320.         IconList:EnableVerticalScrollbar( true )
  321.         IconList:EnableHorizontal( true )
  322.         IconList:SetAutoSize( true )
  323.         IconList:SetSpacing( 5 )
  324.         IconList:SetPadding( 5 )
  325.        
  326.  
  327.         cat:SetContents( IconList )
  328.         self:AddItem( cat )
  329.        
  330.        
  331.  
  332.         wide_max = self:GetWide()-50
  333.  
  334.         local icon_size = 66
  335.        
  336.        
  337.         local ix = 0
  338.         local iy = 0
  339.         for key, ent in SortedPairsByMemberValue( v, "order" ) do
  340.             --local Icon = vgui.Create( "SpawnIcon", IconList )
  341.            
  342.            
  343.            
  344.             if(wide_max < (ix*icon_size)+icon_size) then
  345.                 ix = 0
  346.                 iy = iy + 1
  347.             end
  348.            
  349.            
  350.            
  351.            
  352.            
  353.             --ItemIconAdd(ent.name, ent.hp, ent.price, ent.model, ent.id, icon_size*ix, icon_size*iy, IconList)
  354.             local size = 64
  355.             local Icon = vgui.Create( "SpawnIcon", IconList)
  356.             --Icon:SetPos( pos1, pos2 )
  357.             Icon:SetSize(size,size)
  358.             //Icon:SetIconSize(size)
  359.             Icon:SetModel(ent.model)
  360.             Icon:SetToolTip("HP: "..ent.hp.."\n\nPrice:"..ent.price)
  361.             /*
  362.             Icon.PaintOver = function() -- The paint function
  363.             local DrawDisable   = false
  364.             local DrawLevel     = false
  365.             local DrawVip       = false
  366.        
  367.             //Name
  368.             draw.RoundedBox(2, 2, size-15, size-4, 15,Color(0,0,0,150))
  369.             draw.DrawText(Name, "font_12", size/2, size-15, Color(255,255,255,255),TEXT_ALIGN_CENTER)
  370.            
  371.             end
  372.             */
  373.             Icon.DoClick = function()
  374.                 --RunConsoleCommand("bw_buy", ent.id)
  375.                 net.Start("BW_Buy")
  376.                     net.WriteString(ent.id)
  377.                 net.SendToServer()
  378.             end
  379.    
  380.             IconList:AddItem( Icon )
  381.            
  382.            
  383.            
  384.             ix = ix + 1
  385.            
  386.            
  387.            
  388.            
  389.            
  390.            
  391.            
  392.            
  393.            
  394.             --Icon:SetModel( value )
  395.             --Icon.DoClick = function( Icon ) RunConsoleCommand( "gm_spawn", value, 0 ) end
  396.             --Icon:SetIconSize( 64 )
  397.             --Icon:InvalidateLayout( true )
  398.             --Icon:SetToolTip( Format( "%s", value ) )
  399.            
  400.         end
  401.     end
  402. end
  403.  
  404. function PANEL:Think()
  405.  
  406. end
  407. vgui.Register( "BW_SpawnMenu_props", PANEL, "DPanelList" )
  408.  
  409. ------------------------------------------------------
  410. ----
  411. ----    Spawnmenu Basewars
  412. ----
  413. ------------------------------------------------------
  414.  
  415. local PANEL = {}
  416. function PANEL:Init()
  417.     /*
  418.     local Info = vgui.Create("DPanel", self)
  419.     Info:Dock(TOP)
  420.     --Info:DockMargin(10,10,10,10)
  421.     Info:SetHeight( 150 )
  422.     --Info:SetSize(self:GetWide()-200,self:GetTall()+100)
  423.     --Info.Paint = function(self) end
  424.    
  425.     local DLabel1 = vgui.Create('DLabel')
  426.     DLabel1:SetParent(Info)
  427.     DLabel1:SetPos(10, 10)
  428.     DLabel1:SetTextColor( Color(0, 0, 0, 255) )
  429.     DLabel1:SetText("The Basewars Structure & Item Store \n\nAll of this is still under heavy developement!\n\n\nCurrent Money: ")
  430.     DLabel1:SizeToContents()
  431.     local DLabel2 = vgui.Create('DLabel')
  432.     DLabel2:SetParent(Info)
  433.     DLabel2:SetPos(90, 75)
  434.     DLabel2:SetTextColor( Color(0, 235, 0, 255) )
  435.     DLabel2:SetText(LocalPlayer().Money.." $")
  436.     DLabel2:SizeToContents()
  437.     */
  438.    
  439.    
  440.     self.BWSheet = vgui.Create( "DPropertySheet", self )
  441.     --self.BWSheet:SetSize(self:GetWide()-305, self:GetTall())
  442.     self.BWSheet:Dock( FILL )
  443.     self.BWSheet:DockMargin(10,10,10,10)
  444.    
  445.     --self.BWSheet:SetSize(self:GetWide()/5, self:GetTall() - 22)
  446.    
  447.     self.SItemPowerup = vgui.Create( "BW_SpawnMenu_powerup" )
  448.     self.BWSheet:AddSheet( "   Powerups      ", self.SItemPowerup, "icon16/ruby.png", false, false, "Powerups" )
  449.    
  450.     self.SItemWeapon = vgui.Create( "BW_SpawnMenu_weapon" )
  451.     self.BWSheet:AddSheet( "   Weapons      ", self.SItemWeapon, "icon16/gun.png", false, false, "Weapons" )
  452.    
  453.     self.SItemStructure = vgui.Create( "BW_SpawnMenu_structure" )
  454.     self.BWSheet:AddSheet( "   Structures      ", self.SItemStructure, "icon16/building.png", false, false, "Structures" )
  455.     self.SItemStructure:SetSize(self:GetWide()/5, self:GetTall() - 22)
  456.    
  457.     self.SItemPrinter = vgui.Create( "BW_SpawnMenu_printer" )
  458.     self.BWSheet:AddSheet( "   Printer      ", self.SItemPrinter, "icon16/printer.png", false, false, "Printer" )
  459.  
  460. end
  461. vgui.Register( "BW_SpawnMenu_basewars", PANEL, "Panel" )
  462.  
  463. function AddSpawnIcon(Name, Limit, Level, Vip, Price, Hint, Model, cmd, cmdval, pos1, pos2, Menu)
  464.     --local size = 90
  465.     local size = 90
  466.     //local Icon = vgui.Create( "SpawnIcon", Menu)
  467.     local Icon = vgui.Create( "DModelPanel", Menu)
  468.     Icon:SetModel(Model)
  469.     Icon:SetPos( pos1, pos2 )
  470.     Icon:SetSize(size,size)
  471.    
  472.     local PrevMins, PrevMaxs = Icon:GetEntity():GetRenderBounds()
  473.     if string.match(cmdval,"bw_mp_") then
  474.         -- nice render function for the icons
  475.         Icon:SetCamPos(PrevMins:Distance(PrevMaxs)*Vector(0.5, 0.75, 0.5))
  476.         Icon:SetLookAt((PrevMaxs + PrevMins)/2)
  477.    
  478.         --Icon:SetAnimated(false)
  479.         Icon:SetAnimSpeed(0.1) --Slows down the animation.
  480.    
  481.         Icon:SetColor(printer[cmdval].color)
  482.         --Icon:SetColor(Icon:GetEntity():GetColor())
  483.         --Icon:SetCamPos(Vector(15,70,100))
  484.         --Icon:SetLookAt( Vector( 0, 0, 0 ) )
  485.         --Icon:SetAmbientLight( Vector( 255, 255, 255 ) )
  486.         Icon:SetDirectionalLight( BOX_TOP, Color( 255, 255, 255, 255 ) )
  487.     elseif string.match(cmdval,"bw_item_") then
  488.         Icon:SetCamPos(PrevMins:Distance(PrevMaxs)*Vector(0.5, 0.75, 0.5))
  489.         Icon:SetLookAt((PrevMaxs + PrevMins)/2)
  490.         if items[cmdval].color then Icon:SetColor(items[cmdval].color) end
  491.     elseif string.match(cmdval,"m9k_") then
  492.         Icon:SetCamPos(PrevMins:Distance(PrevMaxs)*Vector(0.5, 0.8, 0.5))
  493.         --Icon:SetCamPos(Vector(65, 65, 65))
  494.         Icon:SetLookAt((PrevMaxs + PrevMins)/2)
  495.         --Icon:SetLookAt(Vector(60,0,0))
  496.     elseif string.match(cmdval,"bw_struc") then
  497.         Icon:SetCamPos(PrevMins:Distance(PrevMaxs)*Vector(0.5, 0.75, 0.5))
  498.         Icon:SetLookAt((PrevMaxs + PrevMins)/2)
  499.         if structures[cmdval].color then Icon:SetColor(structures[cmdval].color) end
  500.     end
  501.    
  502.     --if string.match(cmdval,"bw_mp_") then
  503.     --  Icon:SetCamPos(Vector(0,20,0))
  504.     --  Icon:SetLookAt(Vector(0,7,0))
  505.     --end
  506.    
  507.     //Icon:SetIconSize(size)
  508.    
  509.     //local ent = Icon:GetEntity()
  510.     //ent:SetColor(Color(255,255,255))
  511.     //ent:SetMaterial("models/shiny")
  512.    
  513.     if Limit != nil then
  514.         Icon:SetToolTip(Hint.."\nLimit: "..Limit.."\n\nPrice:"..Price)
  515.     else
  516.         Icon:SetToolTip(Hint.."\n\nPrice:"..Price)
  517.     end
  518.     Icon.PaintOver = function() -- The paint function
  519.         local DrawDisable   = false
  520.         local DrawLevel     = false
  521.         local DrawVip       = false
  522.    
  523.         //Name
  524.         draw.RoundedBox(2, 2, size-17, size-4, 15,Color(0,0,0,150))
  525.         draw.DrawText(Name, "font_12", size/2, size-15, Color(0,0,0,255),TEXT_ALIGN_CENTER)
  526.  
  527.         if(Level != nil) then
  528.             if(tostring(Level) > tostring(LocalPlayer().Level)) then
  529.                 DrawDisable = true
  530.                 DrawLevel = true
  531.             end
  532.         end
  533.        
  534.         if(Vip != nil) then
  535.             if(!LocalPlayer().Vip) then
  536.                 DrawDisable = true
  537.                 DrawVip = true
  538.             end
  539.             draw.DrawText("Vip", "font_12", size/2, 2, Color(212,175,55),TEXT_ALIGN_CENTER)
  540.         end
  541.         surface.DrawOutlinedRect(1,1,size-2,size-2)
  542.         if(DrawDisable) then    draw.RoundedBox(2, 0, 0, size, size, Color(0,0,0,200)) end
  543.         if(DrawLevel) then      draw.DrawText("Level: "..Level, "font_12", size/2, size/2-10, Color(255,0,0,255),TEXT_ALIGN_CENTER) end
  544.         if(DrawVip) then        draw.DrawText("Vip Only", "font_12", size/2, size/2-22, Color(255,0,0,255),TEXT_ALIGN_CENTER) end
  545.     end
  546.     Icon.DoClick = function()
  547.         --RunConsoleCommand("bw_buy", cmdval)
  548.         net.Start("BW_Buy")
  549.             net.WriteString(cmdval)
  550.         net.SendToServer()
  551.     end
  552. end
  553.  
  554. --- Powerups Panel
  555. local PANEL = {}
  556. function PANEL:Init()
  557.  
  558.     local Content = vgui.Create("DPanel", self)
  559.     Content:Dock(FILL)
  560.     Content:DockMargin(10,10,10,10)
  561.    
  562.     /*
  563.     local DLabel1 = vgui.Create('DLabel')
  564.     DLabel1:SetParent(Content)
  565.     DLabel1:SetPos(10, 10)
  566.     DLabel1:SetTextColor( Color(0, 0, 0, 255) )
  567.     DLabel1:SetText('Printer Menu')
  568.     DLabel1:SetTall(20)
  569.     --DLabel1:SizeToContents()
  570.     */
  571.                
  572.     --if(Content:GetWide() != 64) then
  573.         wide_max = Content:GetWide()
  574.     --end
  575.            
  576.     wide_max = wide_max
  577.     local icon_size = 92
  578.            
  579.     local iy = 0
  580.     local ix = 0
  581.    
  582.     for k, ent in SortedPairsByMemberValue( items, "order" ) do
  583.         --print("VALUES: "..k.." - "..ent.name)
  584.    
  585.     --for key, ent in SortedPairsByMemberValue( v, "order", false ) do
  586.            
  587.         --if(wide_max < (ix*icon_size)+icon_size) then
  588.         --  ix = 0
  589.         --  iy = iy + 1
  590.         --end
  591.            
  592.         AddSpawnIcon(ent.name, ent.limit, ent.lvlrq, ent.vip, ent.price, ent.hint, ent.model, ent.cmd, k, icon_size*ix, icon_size*iy, Content)
  593.                
  594.         ix = ix + 1                
  595.     --end
  596.    
  597.     end  
  598.  
  599.  
  600. end
  601. vgui.Register( "BW_SpawnMenu_powerup", PANEL, "Panel" )
  602. --- Weapons Panel
  603. local PANEL = {}
  604. function PANEL:Init()
  605.     --self:SetSpacing( 5 )
  606.     --self:SetPadding( 10 )
  607.     --self:SetBGColor(176,196,222)
  608.     self:EnableHorizontal( false )
  609.     self:EnableVerticalScrollbar( true )
  610.     self:Dock(FILL)
  611.     self:DockMargin(20,10,20,20)    
  612.    
  613.     function self:Paint()
  614.         draw.RoundedBox( 4, 0, 0, self:GetWide(), self:GetTall(), Color( 192,192,192 ) )
  615.     end
  616.    
  617.     -----
  618.     local catarr = {}
  619.     local SpawnableEntities = weapon
  620.     if ( SpawnableEntities ) then
  621.         for k, v in pairs( SpawnableEntities ) do
  622.             v.cat = v.cat or "Other"
  623.             catarr[ v.cat ] = catarr[ v.cat ] or {}
  624.             table.insert( catarr[ v.cat ], v )
  625.         end
  626.     end
  627.     -----
  628.    
  629.     for k, v in SortedPairs( catarr ) do
  630.         local cat = vgui.Create( "DCollapsibleCategory", self )
  631.         cat:SetExpanded( 1 )
  632.         cat:SetLabel( k )
  633.        
  634.         cat.Paint = function() -- The paint function
  635.             surface.SetDrawColor( 24, 37, 49, 255 ) -- What color ( R, B, G, A )
  636.             surface.DrawRect( 0, 0, self:GetWide(), 20 ) -- How big is it (cords)
  637.             surface.SetDrawColor( 245, 245, 245, 255 )
  638.             surface.DrawRect( 0, 21, self:GetWide(), self:GetTall()-20 )
  639.         end
  640.        
  641.         local IconList = vgui.Create( "DPanelList", cat )
  642.         IconList:EnableVerticalScrollbar( false )
  643.         IconList:EnableHorizontal( true )
  644.         IconList:SetAutoSize( true )
  645.         IconList:SetSpacing( 5 )
  646.         IconList:SetPadding( 5 )
  647.        
  648.         --IconList:SetWide()
  649.        
  650.  
  651.         cat:SetContents( IconList )
  652.         self:AddItem( cat )
  653.        
  654.        
  655.  
  656.         --wide_max = self:GetWide()-50
  657.  
  658.         --local icon_size = 92
  659.        
  660.        
  661.         --local ix = 0
  662.         --local iy = 0
  663.         for key, ent in SortedPairsByMemberValue( v, "order" ) do
  664.             --local Icon = vgui.Create( "SpawnIcon", IconList )
  665.            
  666.            
  667.            
  668.             --if(wide_max < (ix*icon_size)+icon_size) then
  669.             --  ix = 0
  670.             --  iy = iy + 1
  671.             --end
  672.            
  673.            
  674.             -- wide/(count+1offset)
  675.            
  676.             --local wide_max0 = IconList:GetWide()
  677.             --local ipr = 6
  678.             --local size = wide_max0/ipr+ipr*2
  679.            
  680.            
  681.             --ItemIconAdd(ent.name, ent.hp, ent.price, ent.model, ent.id, icon_size*ix, icon_size*iy, IconList)
  682.             local size = 124
  683.             local Icon = vgui.Create( "DModelPanel", IconList)
  684.             Icon:SetSize(size,size)
  685.             Icon:SetModel(ent.model)
  686.            
  687.             Icon:SetToolTip("Name: "..ent.name.."\n\nPrice:"..ent.price)
  688.            
  689.            
  690.            
  691.         local PrevMins, PrevMaxs = Icon:GetEntity():GetRenderBounds()
  692.         Icon:SetCamPos(PrevMins:Distance(PrevMaxs)*Vector(0.5, 0.75, 0.5))
  693.         Icon:SetLookAt((PrevMaxs + PrevMins)/2)
  694.            
  695.            
  696.            
  697.            
  698.            
  699.            
  700.            
  701.     if ent.limit != nil then
  702.         Icon:SetToolTip(ent.hint.."\nLimit: "..ent.limit.."\n\nPrice:"..ent.price)
  703.     else
  704.         Icon:SetToolTip(ent.hint.."\n\nPrice:"..ent.price)
  705.     end
  706.     Icon.PaintOver = function() -- The paint function
  707.         local DrawDisable   = false
  708.         local DrawLevel     = false
  709.         local DrawVip       = false
  710.    
  711.         //Price
  712.         draw.RoundedBox(4, 2, 2, size-4, 15,Color(0,0,0,150))
  713.         draw.DrawText(ent.price, "font_12", size/2, 2, Color(255,69,0,255),TEXT_ALIGN_CENTER)
  714.    
  715.         //Name
  716.         draw.RoundedBox(2, 2, size-17, size-4, 15,Color(0,0,0,150))
  717.         draw.DrawText(ent.name, "font_12", size/2, size-15, Color(255,255,255,255),TEXT_ALIGN_CENTER)
  718.  
  719.         if(ent.level != nil) then
  720.             if(tostring(Level) > tostring(LocalPlayer().Level)) then
  721.                 DrawDisable = true
  722.                 DrawLevel = true
  723.             end
  724.         end
  725.        
  726.         if(ent.vip != nil) then
  727.             if(!LocalPlayer().Vip) then
  728.                 DrawDisable = true
  729.                 DrawVip = true
  730.             end
  731.             draw.DrawText("Vip", "font_12", size/2, 2, Color(212,175,55),TEXT_ALIGN_CENTER)
  732.         end
  733.         surface.DrawOutlinedRect(1,1,size-2,size-2)
  734.         if(DrawDisable) then    draw.RoundedBox(2, 0, 0, size, size, Color(0,0,0,200)) end
  735.         if(DrawLevel) then      draw.DrawText("Level: "..ent.level, "font_12", size/2, size/2-10, Color(255,0,0,255),TEXT_ALIGN_CENTER) end
  736.         if(DrawVip) then        draw.DrawText("Vip Only", "font_12", size/2, size/2-22, Color(255,0,0,255),TEXT_ALIGN_CENTER) end
  737.     end
  738.            
  739.            
  740.            
  741.            
  742.             Icon.DoClick = function()
  743.                 --RunConsoleCommand("bw_buy", ent.ent)
  744.                 net.Start("BW_Buy")
  745.                     net.WriteString(ent.ent)
  746.                 net.SendToServer()
  747.             end
  748.    
  749.             IconList:AddItem( Icon )
  750.            
  751.            
  752.            
  753.             --ix = ix + 1
  754.            
  755.            
  756.            
  757.            
  758.            
  759.  
  760.            
  761.         end
  762.     end
  763.    
  764.    
  765.    
  766.    
  767. end
  768. vgui.Register( "BW_SpawnMenu_weapon", PANEL, "DPanelList" )
  769.  
  770. --- Structures Panel
  771. local PANEL = {}
  772. function PANEL:Init()
  773.    
  774.     local Content = vgui.Create("DPanel", self)
  775.     Content:Dock(FILL)
  776.     Content:DockMargin(10,10,10,10)
  777.    
  778.     /*
  779.     local DLabel1 = vgui.Create('DLabel')
  780.     DLabel1:SetParent(Content)
  781.     DLabel1:SetPos(10, 10)
  782.     DLabel1:SetTextColor( Color(0, 0, 0, 255) )
  783.     DLabel1:SetText('Printer Menu')
  784.     DLabel1:SetTall(20)
  785.     --DLabel1:SizeToContents()
  786.     */
  787.                
  788.     --if(Content:GetWide() != 64) then
  789.     local wide_max = Content:GetWide()
  790.     local wide_max = 600
  791.     --end
  792.            
  793.     --wide_max = wide_max
  794.     local icon_size = 92
  795.            
  796.     local iy = 0
  797.     local ix = 0
  798.    
  799.     for k, ent in SortedPairsByMemberValue( structures, "order" ) do
  800.         print("VALUES: "..k.." - "..ent.name)
  801.    
  802.     --for key, ent in SortedPairsByMemberValue( v, "order", false ) do
  803.            
  804.         --if(wide_max < (ix*icon_size)+icon_size) then
  805.         --  ix = 0
  806.         --  iy = iy + 1
  807.         --end
  808.         if((ix*icon_size)+icon_size > wide_max ) then
  809.             ix = 0
  810.             iy = iy + 1
  811.         end
  812.            
  813.         AddSpawnIcon(ent.name, ent.limit, ent.lvlrq, ent.vip, ent.price, ent.hint, ent.model, ent.cmd, k, icon_size*ix, icon_size*iy, Content)
  814.                
  815.         ix = ix + 1                
  816.     --end
  817.    
  818.     end
  819.  
  820. end
  821. vgui.Register( "BW_SpawnMenu_structure", PANEL, "Panel" )
  822. --- Printer Panel
  823. local PANEL = {}
  824. function PANEL:Init()
  825.    
  826.     local Content = vgui.Create("DPanel", self)
  827.     Content:Dock(FILL)
  828.     Content:DockMargin(10,10,10,10)
  829.    
  830.     /*
  831.     local DLabel1 = vgui.Create('DLabel')
  832.     DLabel1:SetParent(Content)
  833.     DLabel1:SetPos(10, 10)
  834.     DLabel1:SetTextColor( Color(0, 0, 0, 255) )
  835.     DLabel1:SetText('Printer Menu')
  836.     DLabel1:SetTall(20)
  837.     --DLabel1:SizeToContents()
  838.     */
  839.                
  840.     --if(Content:GetWide() != 64) then
  841.         wide_max = Content:GetWide()
  842.     --end
  843.            
  844.     wide_max = wide_max
  845.     local icon_size = 92
  846.            
  847.     local iy = 0
  848.     local ix = 0
  849.    
  850.     for k, ent in SortedPairsByMemberValue( printer, "order" ) do
  851.         print("VALUES: "..k.." - "..ent.name)
  852.    
  853.     --for key, ent in SortedPairsByMemberValue( v, "order", false ) do
  854.            
  855.         --if(wide_max < (ix*icon_size)+icon_size) then
  856.         --  ix = 0
  857.         --  iy = iy + 1
  858.         --end
  859.            
  860.         AddSpawnIcon(ent.name, ent.limit, ent.lvlrq, ent.vip, ent.price, ent.hint, ent.model, ent.cmd, k, icon_size*ix, icon_size*iy, Content)
  861.                
  862.         ix = ix + 1                
  863.     --end
  864.    
  865.     end  
  866.  
  867. end
  868. vgui.Register( "BW_SpawnMenu_printer", PANEL, "Panel" )
  869.  
  870.  
  871.  
  872.  
  873.  
  874.  
  875.  
  876.  
  877.  
  878. ------------------------------------------------------
  879. ----
  880. ----    Spawnmenu tools
  881. ----
  882. ------------------------------------------------------
  883.  
  884. local PANEL = {}
  885.  
  886. --[[---------------------------------------------------------
  887.    Name: Paint
  888. -----------------------------------------------------------]]
  889. function PANEL:Init()
  890.  
  891.     self.selftest = self
  892.  
  893.     self.List = vgui.Create( "DCategoryList", self )
  894.     self.List:Dock( LEFT )
  895.     self.List:SetWidth( 170 )
  896.    
  897.     self.Content = vgui.Create( "DCategoryList", self )
  898.     self.Content:Dock( FILL )
  899.     self.Content:DockMargin( 6, 0, 0, 0 )
  900.    
  901.     self.Settings = vgui.Create( "DCategoryList", self )
  902.     self.Settings:Dock( RIGHT )
  903.     --self.Settings:DockMargin( 6, 0, 0, 0 )
  904.     --self.Settings:SetSize( 50, 200 )
  905.     self.Settings:SetWidth( 210 )
  906.     self.Settings:Add("Basewars Settings")
  907.    
  908.     self:LoadTools()
  909. end
  910.  
  911. --[[---------------------------------------------------------
  912.     LoadTools
  913. -----------------------------------------------------------]]
  914. function PANEL:LoadTools()
  915.  
  916.     local tools = spawnmenu.GetTools()
  917.     --spawnmenu.AddToolCategory( "Main" )
  918.     --spawnmenu.AddToolMenuOption( "Main", "TEST", "#tool.weld.name", "Weld Tool" )
  919.    
  920.    
  921.     print("TOOLS-Count: "..table.Count( tools ))
  922.     --print("TOOLS: "..table.concat( spawnmenu.GetTools(), " " ))
  923.    
  924.     for strName, pTable in pairs( tools ) do
  925.         if strName == 1 then
  926.             for k, v in pairs( pTable.Items ) do
  927.                 local cat = self.List:Add(v.ItemName)
  928.                
  929.                 for itemk, itemv in pairs( v ) do
  930.                    
  931.                     if ( istable( itemv ) ) then
  932.                
  933.                         //PrintTable(itemv)
  934.                         local item = cat:Add(itemv.Text)
  935.                        
  936.                         item.DoClick = function( button )
  937.                             //print(button)
  938.                             if ( button.Command ) then
  939.                                 LocalPlayer():ConCommand( button.Command )
  940.                             end
  941.                            
  942.                             if self.ToolCon != nil then
  943.                                 self.ToolCon:Remove()
  944.                             end
  945.                             self.ToolCon = nil
  946.                            
  947.                             local cp = controlpanel.Get( button.Name )
  948.                             if ( !cp:GetInitialized() ) then
  949.                                 cp:FillViaTable( button )
  950.                             end
  951.                            
  952.                             //Hide stuff
  953.                             local kids = self.Content:GetCanvas():GetChildren()
  954.                             for k, v in pairs( kids ) do
  955.                                 v:SetVisible( false )
  956.                             end
  957.                            
  958.                             self.Content:AddItem( cp )
  959.                             cp:SetVisible( true )
  960.                             cp:Dock( TOP )
  961.  
  962.                             g_ActiveControlPanel = cp
  963.                         end
  964.                        
  965.                         item.ControlPanelBuildFunction      = itemv.CPanelFunction
  966.                         item.Command                        = itemv.Command
  967.                         item.Name                           = itemv.ItemName
  968.                         item.Controls                       = itemv.Controls
  969.                         item.Text                           = itemv.Text
  970.                        
  971.                     end
  972.                    
  973.                 end
  974.             end
  975.         end
  976.        
  977.         //self:AddToolPanel( strName, pTable )
  978.         //self:AddCategory( Name, Label, v )
  979.     end
  980.    
  981. end
  982.  
  983. function PANEL:EnableControlPanel( button )
  984.     if ( self.LastSelected ) then
  985.         self.LastSelected:SetSelected( false )
  986.     end
  987.  
  988.     button:SetSelected( true )
  989.     self.LastSelected = button
  990.  
  991.     local cp = controlpanel.Get( button.Name )
  992.     if ( !cp:GetInitialized() ) then
  993.         cp:FillViaTable( button )
  994.     end
  995.  
  996.     self.ContextPanel:Clear()
  997.     self.ContextPanel:AddItem( cp )
  998.     self.ContextPanel:Rebuild()
  999.  
  1000.     g_ActiveControlPanel = cp
  1001.  
  1002.     if ( button.Command ) then
  1003.         LocalPlayer():ConCommand( button.Command )
  1004.     end
  1005. end
  1006.  
  1007. vgui.Register( "BW_SpawnMenu_tools", PANEL, "Panel" )
  1008. /* DToolMenu */
  1009. local PANEL = {}
  1010.  
  1011. function PANEL:Init()
  1012.     self.Tools = vgui.Create( "DPanelList", self )
  1013.     self.Tools:EnableVerticalScrollbar( true )
  1014.     self.Tools:SetAutoSize( false )
  1015.     self.Tools:SetSpacing( 5 )
  1016.     self.Tools:SetPadding( 5 )
  1017.     function self.Tools:Paint()
  1018.         draw.RoundedBox( 4, 0, 0, self:GetWide(), self:GetTall(), Color( 75, 75, 75 ) )
  1019.     end
  1020.  
  1021.     self.ContextPanel = vgui.Create( "DPanelList", self )
  1022.     self.ContextPanel:EnableVerticalScrollbar( false )
  1023.     self.ContextPanel:SetSpacing( 0 )
  1024.     self.ContextPanel:SetPadding( 5 )
  1025.     function self.ContextPanel:Paint()
  1026.         draw.RoundedBox( 4, 0, 0, self:GetWide(), self:GetTall(), Color( 255, 255, 255, 150 ) )
  1027.     end
  1028.  
  1029.     if ( ToolsLoad == false || ToolsLoad == nil || ToolsLoad == NULL || ToolsLoad == "" ) then
  1030.         AllTools = spawnmenu.GetTools()
  1031.         local ToolsLoad = true
  1032.     end
  1033.  
  1034.     local ToolTables = AllTools
  1035.  
  1036.     if ( !ToolTables ) then LocalPlayer():ChatPrint( "ERROR: Tools List could not be loaded." ) return end
  1037.  
  1038.     for k, v in pairs( ToolTables[1].Items ) do
  1039.         if ( type( v ) == "table" ) then
  1040.             local Name = v.ItemName
  1041.             local Label = v.Text
  1042.             v.ItemName = nil
  1043.             v.Text = nil
  1044.             self:AddCategory( Name, Label, v )
  1045.         end
  1046.     end
  1047. end
  1048.  
  1049. function PANEL:AddCategory( Name, Label, ToolItems )
  1050.     self.Category = vgui.Create( "DCollapsibleCategory" )
  1051.     self.Tools:AddItem( self.Category )
  1052.     self.Category:SetLabel( Label )
  1053.     self.Category:SetCookieName( "ToolMenu." .. tostring( Name ) )
  1054.  
  1055.     self.CategoryContent = vgui.Create( "DPanelList" )
  1056.     self.CategoryContent:SetAutoSize( true )
  1057.     self.CategoryContent:SetDrawBackground( false )
  1058.     self.CategoryContent:SetSpacing( 0 )
  1059.     self.CategoryContent:SetPadding( 0 )
  1060.     self.Category:SetContents( self.CategoryContent )
  1061.  
  1062.     local bAlt = true
  1063.     local NumTools = 0
  1064.  
  1065.     for k, v in pairs( ToolItems ) do
  1066.         if ( table.HasValue( GMS.ProhibitedStools, v.ItemName ) && !LocalPlayer():IsAdmin() ) then continue end
  1067.         NumTools = NumTools + 1
  1068.  
  1069.         local Item = vgui.Create( "ToolMenuButton", self )
  1070.         Item:SetText( v.Text )
  1071.         Item.OnSelect = function( button ) self:EnableControlPanel( button ) end
  1072.         concommand.Add( Format( "tool_%s", v.ItemName ), function() Item:OnSelect() end )
  1073.  
  1074.         if ( v.SwitchConVar ) then
  1075.             Item:AddCheckBox( v.SwitchConVar )
  1076.         end
  1077.  
  1078.         Item.ControlPanelBuildFunction = v.CPanelFunction
  1079.         Item.Command = v.Command
  1080.         Item.Name = v.ItemName
  1081.         Item.Controls = v.Controls
  1082.         Item.Text = v.Text
  1083.  
  1084.         Item:SetAlt( bAlt )
  1085.         bAlt = !bAlt
  1086.  
  1087.         self.CategoryContent:AddItem( Item )
  1088.     end
  1089.  
  1090.     if ( NumTools <= 0 ) then
  1091.         self.Category:Remove()
  1092.         self.CategoryContent:Remove()
  1093.     end
  1094. end
  1095.  
  1096. function PANEL:EnableControlPanel( button )
  1097.     if ( self.LastSelected ) then
  1098.         self.LastSelected:SetSelected( false )
  1099.     end
  1100.  
  1101.     button:SetSelected( true )
  1102.     self.LastSelected = button
  1103.  
  1104.     local cp = controlpanel.Get( button.Name )
  1105.     if ( !cp:GetInitialized() ) then
  1106.         cp:FillViaTable( button )
  1107.     end
  1108.  
  1109.     self.ContextPanel:Clear()
  1110.     self.ContextPanel:AddItem( cp )
  1111.     self.ContextPanel:Rebuild()
  1112.  
  1113.     g_ActiveControlPanel = cp
  1114.  
  1115.     if ( button.Command ) then
  1116.         LocalPlayer():ConCommand( button.Command )
  1117.     end
  1118. end
  1119.  
  1120. function PANEL:Paint()
  1121. end
  1122.  
  1123. function PANEL:PerformLayout()
  1124.     self:StretchToParent( 0, 21, 0, 5 )
  1125.     self.Tools:SetPos( 5, 5 )
  1126.     self.Tools:SetSize( self:GetWide() * 0.35, self:GetTall() - 5 )
  1127.     self.ContextPanel:SetPos( self:GetWide() * 0.35 + 10, 5 )
  1128.     self.ContextPanel:SetSize( self:GetWide() - ( self:GetWide() * 0.35 ) - 14, self:GetTall() - 5 )
  1129. end
  1130.  
  1131. vgui.Register( "BW_SpawnMenu_tools_old", PANEL, "DPanel" )
  1132.  
  1133. /* ToolMenuButton */
  1134. local PANEL = {}
  1135.  
  1136. AccessorFunc( PANEL, "m_bAlt", "Alt" )
  1137. AccessorFunc( PANEL, "m_bSelected", "Selected" )
  1138.  
  1139. function PANEL:Init()
  1140.     self:SetContentAlignment( 4 )
  1141.     self:SetTextInset( 5, 0 )
  1142.     self:SetTall( 15 )
  1143. end
  1144.  
  1145. function PANEL:Paint()
  1146.     if ( !self.m_bSelected ) then
  1147.         if ( !self.m_bAlt ) then
  1148.             surface.SetDrawColor( Color( 255, 255, 255, 200 ) )
  1149.         else
  1150.             surface.SetDrawColor( Color( 255, 255, 255, 150 ) )
  1151.         end
  1152.     else
  1153.         surface.SetDrawColor( Color( 50, 150, 255, 250 ) )
  1154.     end
  1155.  
  1156.     self:DrawFilledRect()
  1157. end
  1158.  
  1159. function PANEL:OnMousePressed( mcode )
  1160.     if ( mcode == MOUSE_LEFT ) then
  1161.         self:OnSelect()
  1162.     end
  1163. end
  1164.  
  1165. function PANEL:OnCursorMoved( x, y )
  1166.     if ( input.IsMouseDown( MOUSE_LEFT ) ) then
  1167.         self:OnSelect()
  1168.     end
  1169. end
  1170.  
  1171. function PANEL:OnSelect()
  1172. end
  1173.  
  1174. function PANEL:PerformLayout()
  1175.     if ( self.Checkbox ) then
  1176.         self.Checkbox:AlignRight( 4 )
  1177.         self.Checkbox:CenterVertical()
  1178.     end
  1179. end
  1180.  
  1181. function PANEL:AddCheckBox( strConVar )
  1182.     if ( !self.Checkbox ) then
  1183.         self.Checkbox = vgui.Create( "DCheckBox", self )
  1184.     end
  1185.  
  1186.     self.Checkbox:SetConVar( strConVar )
  1187.     self:InvalidateLayout()
  1188. end
  1189.  
  1190. vgui.Register( "ToolMenuButton", PANEL, "DButton" )
  1191.  
  1192. ------------------------------------------------------
  1193. ----
  1194. ----    Spawnmenu admin
  1195. ----
  1196. ------------------------------------------------------
  1197.  
  1198. local PANEL = {}
  1199. local ELog = {}
  1200. local ELog_Update = false
  1201.  
  1202. net.Receive("ELog", function(len, pl)
  1203.     ELog = net.ReadTable()
  1204.     ELog_Update = true
  1205. end)
  1206.  
  1207. function PANEL:Init()
  1208.     self.NextT = 0
  1209.  
  1210.     self.Content = vgui.Create("DScrollPanel", self)
  1211.     self.Content:Dock(FILL)
  1212.     self.Content:DockMargin(175,0,0,0)
  1213.    
  1214.     self.Tree = vgui.Create("DTree",self)
  1215.     self.Tree:SetTall(210)
  1216.     self.Tree:SetWide(170)
  1217.    
  1218.     local ELog_Menu = self.Tree:AddNode("Kill Log [ELog]","icon16/user.png")
  1219.     ELog_Menu.DoClick = function()
  1220.         LocalPlayer():ConCommand("ELog_Get")
  1221.     end
  1222. end
  1223.  
  1224. function PANEL:ELog_Show()
  1225.     local ELog_List = vgui.Create("DListView", self.Content)
  1226.     ELog_List:Dock(TOP)
  1227.     ELog_List:SetTall(self.Content:GetTall())
  1228.     ELog_List:SetMultiSelect( false )
  1229.    
  1230.     ELog_List:AddColumn( "Attacker" )
  1231.     ELog_List:AddColumn( "Target" )
  1232.     ELog_List:AddColumn( "Weapon" )
  1233.     ELog_List:AddColumn( "Type" )
  1234.     ELog_List:AddColumn( "Entity" )
  1235.     ELog_List:AddColumn( "Date" )
  1236.    
  1237.     for k,v in pairs(ELog) do
  1238.         local AttackerName  = v.Name_A
  1239.         local TargetName    = v.Name_T
  1240.         local Weapon        = v.Weapon
  1241.         local Type          = v.Type
  1242.         local Entity        = v.Target
  1243.         local Date          = v.Date
  1244.        
  1245.         if(AttackerName == nil) then AttackerName = v.SteamID_A end
  1246.         if(TargetName == nil) then TargetName = v.SteamID_T end
  1247.    
  1248.         ELog_List:AddLine(AttackerName, TargetName, Weapon, Type, Entity, Date)
  1249.     end
  1250. end
  1251.  
  1252. function PANEL:Think()
  1253.     if(self.NextT < CurTime()) then
  1254.         if(ELog_Update) then
  1255.             self.Content:Clear()
  1256.             self:ELog_Show()
  1257.             ELog_Update = false
  1258.         end
  1259.        
  1260.         self.NextT = CurTime() + 1
  1261.     end
  1262. end
  1263.  
  1264. /*
  1265. function PANEL:ELog_Show()
  1266.     for k,v in pairs(ELog) do
  1267.         //Line
  1268.         local ELog_line = vgui.Create( "DPanel", self.Content)
  1269.         ELog_line:SetTall(20)
  1270.         ELog_line:Dock(TOP)
  1271.         ELog_line:DockMargin(5,5,5,0)
  1272.         ELog_line:DockPadding(5,0,5,0)
  1273.         ELog_line.Paint = function(self) draw.RoundedBox(4,0,0, self:GetWide(), self:GetTall(), Color(255, 255, 255,255)) end
  1274.        
  1275.         //Date
  1276.         local Date = vgui.Create( "DLabel", ELog_line)
  1277.         Date:Dock(LEFT)
  1278.         Date:SetText(v.Date)
  1279.         Date:SetTextColor(Color(0,0,0,255))
  1280.         Date:SizeToContents()
  1281.         Date:DockMargin(0,0,5,0)
  1282.        
  1283.     //Attacker Name
  1284.         local IconAttacker = vgui.Create( "DImage", ELog_line)
  1285.         IconAttacker:Dock(LEFT)
  1286.         IconAttacker:SetImage("icon16/user_red.png")
  1287.         IconAttacker:SetTall(16)
  1288.         IconAttacker:SetWide(16)
  1289.         IconAttacker:DockMargin(0,0,5,0)
  1290.                
  1291.         local NameAttacker = vgui.Create( "DLabel", ELog_line)
  1292.         NameAttacker:Dock(LEFT)
  1293.         if(v.Name_A != nil) then NameAttacker:SetText(v.Name_A) else NameAttacker:SetText(v.SteamID_A) end
  1294.         NameAttacker:SetTextColor(Color(0,0,0,255))
  1295.         NameAttacker:SetWide(170)
  1296.        
  1297.     //Target Name
  1298.         local IconTarget = vgui.Create( "DImage", ELog_line)
  1299.         IconTarget:Dock(LEFT)
  1300.         IconTarget:SetImage("icon16/user_green.png")
  1301.         IconTarget:SetTall(16)
  1302.         IconTarget:SetWide(16)
  1303.         IconTarget:DockMargin(0,0,5,0)
  1304.        
  1305.         local NameTarget = vgui.Create( "DLabel", ELog_line)
  1306.         NameTarget:Dock(LEFT)
  1307.         if(v.Name_T != nil) then NameTarget:SetText(v.Name_T) else NameTarget:SetText(v.SteamID_T) end
  1308.         NameTarget:SetTextColor(Color(0,0,0,255))
  1309.         NameTarget:SetWide(170)
  1310.        
  1311.        
  1312.  
  1313.         //Weapon
  1314.         local Weapon = vgui.Create( "DLabel", ELog_line)
  1315.         Weapon:Dock(LEFT)
  1316.         Weapon:SetText(v.Weapon)
  1317.         Weapon:SetTextColor(Color(0,0,0,255))
  1318.         Weapon:SetWide(120)
  1319.        
  1320.         //Type
  1321.         local TypeIcon =  "icon16/error.png"
  1322.         if(v.Type == "kill_player") then
  1323.             TypeIcon =  "icon16/user.png"
  1324.         elseif(v.Type == "kill_ent") then
  1325.             TypeIcon =  "icon16/box.png"
  1326.         end
  1327.         local Type = vgui.Create( "DImage", ELog_line)
  1328.         Type:Dock(LEFT)
  1329.         Type:SetImage(TypeIcon)
  1330.         Type:SetTall(16)
  1331.         Type:SetWide(16)
  1332.         Type:DockMargin(0,0,5,0)
  1333.        
  1334.         //Target (Player/Ent)
  1335.         local Target = vgui.Create( "DLabel", ELog_line)
  1336.         Target:Dock(LEFT)
  1337.         Target:SetText(v.Target)
  1338.         Target:SetTextColor(Color(0,0,0,255))
  1339.         Target:SetWide(250)
  1340.     end
  1341. end
  1342. */
  1343. vgui.Register("BW_SpawnMenu_admin", PANEL, "Panel")
Advertisement
Add Comment
Please, Sign In to add comment