SHARE
TWEET

Untitled

a guest Sep 16th, 2019 101 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. if !CAR_DEALER then return end
  3.  
  4.  
  5. if !CLIENT then return end
  6.  
  7.  
  8. local function CreateFont( i, Font, Name, Weight )
  9.  
  10.     local CurSize = i
  11.  
  12.  
  13.     surface.CreateFont( Name .. CurSize, {
  14.         font = Font,
  15.         size = CurSize,
  16.         weight = Weight,
  17.         blursize = 0,
  18.         scanlines = 0,
  19.         antialias = true,
  20.         underline = false,
  21.         italic = false,
  22.         strikeout = false,
  23.         symbol = false,
  24.         rotary = false,
  25.         shadow = false,
  26.         additive = false,
  27.         outline = false,
  28.     } )
  29.  
  30. end
  31.  
  32. for i=1,100 do
  33.    
  34.     CreateFont( i, "BFHud", "font_", 500 )
  35.  
  36. end
  37.  
  38.  
  39.  
  40. /*
  41.  
  42.  
  43.     Notes: Purchase/Spawn button think function
  44.  
  45.  
  46. */
  47.  
  48.  
  49.  
  50.  
  51.  
  52. local SIZES = {
  53.  
  54.  
  55.     bg_x = 620,
  56.  
  57.  
  58.     bg_y = 700,
  59.  
  60.  
  61.     close_button = 30,
  62.  
  63.  
  64.     header = 50,
  65.  
  66.  
  67.     vehicle_bg = 310,
  68.  
  69.  
  70.     vehicle_buybutton = 30,
  71.  
  72.  
  73.     page_buttons_x = 80,
  74.  
  75.  
  76.     page_buttons_y = 25,
  77.  
  78.  
  79.  
  80.  
  81.  
  82.     return_button_y = 100
  83.  
  84.  
  85. }
  86.  
  87.  
  88.  
  89.  
  90.  
  91. local function FixModelpos(mdl)
  92.  
  93.  
  94.     if !mdl then return end
  95.  
  96.  
  97.  
  98.  
  99.  
  100.     local mn, mx = mdl.Entity:GetRenderBounds()
  101.  
  102.  
  103.     local size = 0
  104.  
  105.  
  106.     size = math.max( size, math.abs(mn.x) + math.abs(mx.x) )
  107.  
  108.  
  109.     size = math.max( size, math.abs(mn.y) + math.abs(mx.y) )
  110.  
  111.  
  112.     size = math.max( size, math.abs(mn.z) + math.abs(mx.z) )
  113.  
  114.  
  115.     mdl:SetFOV( 60 )
  116.  
  117.  
  118.     mdl:SetCamPos( Vector( size, size, size ) )
  119.  
  120.  
  121.     mdl:SetLookAt( (mn + mx) * 0.5 )
  122.  
  123.  
  124. end
  125.  
  126.  
  127. local function ApplyVehicleCustomizations( mdl, veh )
  128.  
  129.     if !mdl then return end
  130.  
  131.  
  132.  
  133. end
  134.  
  135.  
  136. local HideDarkRPHUD = {
  137.     ["DarkRP_HUD"] = false,
  138. }
  139.  
  140. hook.Add("HUDShouldDraw", "HideDefaultShitMyGuy", function(name)
  141.     if HideDarkRPHUD[name] then return false end
  142. end )
  143.  
  144.  
  145. function CAR_DEALER:OpenVehicleShop(car_dealer)
  146.  
  147.  
  148.     if IsValid(self.BG) then
  149.         self.BG:Remove()
  150.         hook.Remove("CalcView","RG_CAR_MODELPREVIEW")
  151.         if RG_CAR_PREVIEWMODEL then
  152.             RG_CAR_PREVIEWMODEL:Remove()
  153.         end
  154.         HideDarkRPHUD["DarkRP_HUD"] = false
  155.     end
  156.  
  157.  
  158.  
  159.  
  160.  
  161.     local VehiclesList = self:GetAllVehicles()
  162.  
  163.     --for _, veh in pairs( VehiclesList ) do
  164.     --  util.PrecacheModel( self:GetVehicle(veh.class).Model )
  165.     --end
  166.  
  167.  
  168.  
  169.     self.BG = vgui.Create("DPanel")
  170.     self.BG:SetSize(ScrW(), ScrH())
  171.     self.BG:SetPos(0,0)
  172.     self.BG:MakePopup()
  173.     function self.BG:OnRemove()
  174.    
  175.         hook.Remove("CalcView","RG_CAR_MODELPREVIEW")
  176.         if RG_CAR_PREVIEWMODEL then
  177.             RG_CAR_PREVIEWMODEL:Remove()
  178.         end
  179.  
  180.     end
  181.     HideDarkRPHUD["DarkRP_HUD"] = true
  182.  
  183.     function self.BG:Think()
  184.  
  185.  
  186.         if !IsValid(car_dealer) then self:Remove() end
  187.  
  188.  
  189.     end
  190.  
  191.  
  192.     function self.BG:Paint(w, h)
  193.  
  194.  
  195.         --JohnnyBlur(self,3,3)
  196.  
  197.  
  198.         --draw.OutlinedRect(0,00, w, h, Color(0,0,0,150), 1, Color(0,0,0,100))
  199.  
  200.  
  201.        
  202.  
  203.  
  204.         --draw.text3D(CurrentPage.."/"..MaxPages, "BFHUD.Size20", w/2, h-25, Color(255,255,255) , TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP )
  205.  
  206.  
  207.     end
  208.  
  209.     self.CarListBase = vgui.Create("DPanel", self.BG)
  210.     self.CarStatsBase = vgui.Create("DPanel", self.BG)
  211.     self.CarModelBase = vgui.Create("DPanel", self.BG)
  212.     self.CarModelBase:SetVisible(false)
  213.     self.CarModelBase.Vehicle = VehiclesList[1]
  214.     self.CarModelBase.VehicleModel = CAR_DEALER:GetVehicle(VehiclesList[1].class).Model
  215.     ModelDisplay = vgui.Create( 'DModelPanel', self.CarModelBase )
  216.     self.CarStatsBase.Vehicle = VehiclesList[1]["levels"] or { speed = 50, acceleration = 50, braking = 50, traction = 50 }
  217.     self.CarListBase:SetPos(20,20)
  218.     self.CarListBase:SetSize(500,self.BG:GetTall() - 20 - 196 - 20 - 5)
  219.     function self.CarListBase:Paint(w,h)
  220.         JohnnyBlur(self,3,3)
  221.  
  222.         draw.OutlinedRect(0, 0, w, 50 - 0, Color(0,0,0,150), 1, Color(0,0,0,100))
  223.  
  224.         --surface.SetDrawColor(180,30,30,200)
  225.         --surface.DrawRect(0,0,w,50)
  226.  
  227.         draw.OutlinedRect(0, 0 + 50, w, h - 50, Color(0,0,0,100), 1, Color(0,0,0,100))
  228.  
  229.  
  230.         draw.text3D("Car Dealer", "BFHUD.Size50", w/2, 50/2 - 25, Color(255,255,255) , TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER )
  231.    
  232.     end
  233.  
  234.     self.CloseButton = vgui.Create("DButton", self.CarListBase)
  235.     self.CloseButton:SetSize(80, 25)
  236.     self.CloseButton:SetPos(self.CarListBase:GetWide() - 80 - 5, 5)
  237.     self.CloseButton:SetText("")
  238.     function self.CloseButton:DoClick()
  239.         CAR_DEALER.BG:Remove()
  240.         HideDarkRPHUD["DarkRP_HUD"] = false
  241.         hook.Remove("CalcView","RG_CAR_MODELPREVIEW")
  242.         if RG_CAR_PREVIEWMODEL then
  243.             RG_CAR_PREVIEWMODEL:Remove()
  244.         end
  245.     end
  246.     function self.CloseButton:Paint(w, h)
  247.  
  248.         draw.OutlinedRect(0,0, w, h, self:IsHovered() and Color(0,0,0,125) or Color(0,0,0,0), 2, Color(255,0,0,255))
  249.  
  250.         draw.text3D("Close", "BFHUD.Size20", w/2, 0, Color(255,0,0) , TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER )
  251.  
  252.     end
  253.  
  254.  
  255.     hook.Remove("CalcView","RG_CAR_MODELPREVIEW")
  256.     hook.Add("CalcView","RG_CAR_MODELPREVIEW", function( ply, origin, angles, fov )
  257.         local view = {}
  258.  
  259.         view.origin = car_dealer:GetPos() + (car_dealer:GetUp()*150) - (car_dealer:GetRight()*200) + (car_dealer:GetForward()*250) -- + Vector(-200,250,150)
  260.         view.angles = car_dealer:LocalToWorldAngles(Angle(30,-110,0)) -- Angle(30,-30,0)
  261.         view.fov = fov
  262.         view.drawviewer = true
  263.  
  264.         return view
  265.     end)
  266.  
  267.  
  268.     if RG_CAR_PREVIEWMODEL then
  269.         RG_CAR_PREVIEWMODEL:Remove()
  270.     end
  271.  
  272.  
  273.     RG_CAR_PREVIEWMODEL = ClientsideModel(self.CarModelBase.VehicleModel,RENDER_GROUP_VIEW_MODEL_OPAQUE)   
  274.     RG_CAR_PREVIEWMODEL:SetNoDraw(false)
  275.  
  276.     RG_CAR_PREVIEWMODEL:SetRenderOrigin(car_dealer:GetPos() + (car_dealer:GetForward()*175))
  277.     RG_CAR_PREVIEWMODEL:SetRenderAngles(car_dealer:LocalToWorldAngles(Angle(0,0,0)))
  278.  
  279.  
  280.  
  281.  
  282.  
  283.     self.ScrollPanel = vgui.Create("DPanelList", self.CarListBase)
  284.     self.ScrollPanel:SetSize(self.CarListBase:GetWide(), self.CarListBase:GetTall() - 50 )
  285.     self.ScrollPanel:SetSpacing( 5 )
  286.     self.ScrollPanel:SetPos(0, 50)
  287.     self.ScrollPanel:EnableVerticalScrollbar( true )
  288.     self.ScrollPanel.VBar.Paint = function( s, w, h )
  289.         draw.RoundedBox( 0, 0, 0, w, h, Color( 0, 0, 0, 100 ) )
  290.     end
  291.     self.ScrollPanel.VBar.btnUp.Paint = function( s, w, h )
  292.         draw.OutlinedRect(0, 0, w, h, Color(100,100,100,20), 1,  Color(0,0,0,256))
  293.         draw.DrawText("^", "BFHUD.Size20", w/2, 0 ,Color( 0,0,0,256 ), TEXT_ALIGN_CENTER)
  294.     end
  295.     self.ScrollPanel.VBar.btnDown.Paint = function( s, w, h )
  296.         draw.OutlinedRect(0, 0, w, h, Color(100,100,100,20), 1,  Color(0,0,0,256))
  297.         draw.DrawText("v", "BFHUD.Size20", w/2, -4 ,Color( 0,0,0,256 ), TEXT_ALIGN_CENTER)
  298.     end
  299.     self.ScrollPanel.VBar.btnGrip.Paint = function( s, w, h )
  300.         draw.OutlinedRect(0, 0, w, h, Color(100,100,100,20), 1,  Color(0,0,0,256))
  301.     end
  302.  
  303.  
  304.     local function VehiclePurchaseConfirm(veh, vehicleowned, sell)
  305.        
  306.         local VehicleData = self:GetVehicle(veh.class)
  307.         if !VehicleData then return end
  308.  
  309.         --PrintTable(veh)
  310.  
  311.         VehicleBG = vgui.Create("DPanel", self.BG)
  312.         VehicleBG:SetSize( 480, 150 )
  313.         VehicleBG:Center()
  314.         function VehicleBG:Paint( w, h )
  315.        
  316.             draw.OutlinedRect( 0, 0, w, h, Color(0,0,0,210), 1, Color(0,0,0,220))
  317.  
  318.         end
  319.  
  320.  
  321.         local VehicleBG_Label = vgui.Create( "DLabel", VehicleBG )
  322.         VehicleBG_Label:SetPos(5, 5)
  323.         VehicleBG_Label:SetSize(VehicleBG:GetWide(), VehicleBG:GetTall())
  324.         VehicleBG_Label:SetFont("BFHUD.Size30")
  325.         VehicleBG_Label:SetColor( Color( 255, 255, 255, 255 ) )
  326.         local text1 = ""
  327.         local text2 = ""
  328.         if sell then
  329.             text1 = "sell your"
  330.             text2 = " for "..DarkRP.formatMoney(veh.price*CAR_DEALER.CFG.SellingMultiplier)
  331.         else
  332.             text1 = vehicleowned and "spawn" or "purchase"
  333.             text2 = vehicleowned and "" or (" for "..DarkRP.formatMoney(veh.price))
  334.         end
  335.         VehicleBG_Label:SetText( "Are you sure you would like to "..text1.." "..VehicleData.Name..text2.."?" )
  336.         VehicleBG_Label:SetContentAlignment(7)
  337.         VehicleBG_Label:SetWrap(true)
  338.  
  339.  
  340.  
  341.         local VehCloseButton = vgui.Create("DButton", VehicleBG)
  342.         VehCloseButton:SetSize(30, 30)
  343.         VehCloseButton:SetPos(VehicleBG:GetWide() - SIZES.close_button, 0)
  344.         VehCloseButton:SetText("")
  345.         function VehCloseButton:DoClick()
  346.             VehicleBG:Remove()
  347.         end
  348.         function VehCloseButton:Paint(w, h)
  349.  
  350.             draw.OutlinedRect(0,0, w, h, self:IsHovered() and Color(0,0,0,100) or Color(0,0,0,50), 1, Color(0,0,0,100))
  351.  
  352.             draw.text3D("X", "BFHUD.Size30", w/2, -2, Color(255,255,255) , TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP )
  353.  
  354.         end
  355.  
  356.                
  357.  
  358.         local VehicleBGYes = vgui.Create( "DButton", VehicleBG )
  359.         VehicleBGYes:SetSize( 80, 40 )
  360.         VehicleBGYes:SetPos( VehicleBG:GetWide()/2 - VehicleBGYes:GetWide() - 5, VehicleBG:GetTall() - VehicleBGYes:GetTall() - 10 )
  361.         VehicleBGYes:SetText("")
  362.         function VehicleBGYes:DoClick()
  363.             if sell then
  364.                 net.Start("RG:Sell_Vehicle")
  365.                     net.WriteTable(veh)
  366.                 net.SendToServer()
  367.                 CAR_DEALER.BG:Remove()
  368.                 HideDarkRPHUD["DarkRP_HUD"] = false
  369.                 if RG_CAR_PREVIEWMODEL then
  370.                     RG_CAR_PREVIEWMODEL:Remove()
  371.                 end
  372.                 --CAR_DEALER:OpenVehicleShop(car_dealer)
  373.             else
  374.                 if vehicleowned then
  375.                     net.Start("RG:SpawnVehicle")
  376.                         net.WriteString(veh.class)
  377.                         net.WriteEntity(car_dealer)
  378.                     net.SendToServer()
  379.                     CAR_DEALER.BG:Remove()
  380.                     HideDarkRPHUD["DarkRP_HUD"] = false    
  381.                     if RG_CAR_PREVIEWMODEL then
  382.                         RG_CAR_PREVIEWMODEL:Remove()
  383.                     end
  384.                 else
  385.                     net.Start("RG:PurchaseVehicle")
  386.                         net.WriteString(veh.class)
  387.                     net.SendToServer()
  388.                     CAR_DEALER.BG:Remove()
  389.                     HideDarkRPHUD["DarkRP_HUD"] = false    
  390.                     if RG_CAR_PREVIEWMODEL then
  391.                         RG_CAR_PREVIEWMODEL:Remove()
  392.                     end
  393.                     --CAR_DEALER:OpenVehicleShop(car_dealer)
  394.  
  395.                 end
  396.             end
  397.            
  398.         end
  399.         function VehicleBGYes:Paint( w, h )
  400.        
  401.             draw.OutlinedRect(0,0, w, h, self:IsHovered() and Color(50,255,50,75) or Color(50,255,50,35), 1, Color(0,0,0,150))
  402.  
  403.             draw.text3D("Yes", "BFHUD.Size30", w/2, h/8, Color(255,255,255) , TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER )
  404.  
  405.         end
  406.  
  407.  
  408.  
  409.         local VehicleBGNo = vgui.Create( "DButton", VehicleBG )
  410.         VehicleBGNo:SetSize( 80, 40 )
  411.         VehicleBGNo:SetPos( VehicleBG:GetWide()/2 + 5, VehicleBG:GetTall() - VehicleBGNo:GetTall() - 10 )
  412.         VehicleBGNo:SetText("")
  413.         function VehicleBGNo:DoClick()
  414.             VehicleBG:Remove()
  415.         end
  416.         function VehicleBGNo:Paint( w, h )
  417.        
  418.             draw.OutlinedRect(0,0, w, h, self:IsHovered() and Color(255,50,50,75) or Color(255,50,50,35), 1, Color(0,0,0,150))
  419.  
  420.             draw.text3D("No", "BFHUD.Size30", w/2, h/8, Color(255,255,255) , TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER )
  421.  
  422.         end
  423.        
  424.  
  425.     end
  426.  
  427.     local VehiclesList_owned = {}
  428.     local VehiclesList_unowned = {}
  429.  
  430.     for k, veh in pairs(VehiclesList) do
  431.         if CAR_DEALER:OwnsVehicle(LocalPlayer(), veh.class) then
  432.             table.insert(VehiclesList_owned,veh)
  433.         else
  434.             table.insert(VehiclesList_unowned,veh)
  435.         end
  436.     end
  437.    
  438.     print("printing owned vehicles")
  439.     PrintTable(VehiclesList_owned)
  440.  
  441.     print("printing unowned vehicles")
  442.     PrintTable(VehiclesList_unowned)
  443.  
  444.  
  445.     local VehicleBGOwned_ = {}
  446.     local VehicleBGUnowned_ = {}
  447.  
  448.    
  449.  
  450.     self.Owned_categoryFrame = vgui.Create( "DCollapsibleCategory", self.ScrollPanel )
  451.     self.Owned_categoryFrame:SetWide( self.ScrollPanel:GetWide() )
  452.     self.Owned_categoryFrame.Header:SetTall(30)
  453.     --self.Owned_categoryFrame:SetPos( 0, -40 + (40*k) - (1*k) )
  454.     self.Owned_categoryFrame:SetExpanded( true )
  455.     self.Owned_categoryFrame:SetLabel("")
  456.     self.Owned_categoryFrame.Paint = function() end
  457.     self.Owned_categoryFrame.PaintOver = function( self, w, h )
  458.         draw.OutlinedRect(0,0, w, 30, Color(50,255,50,100), 1, Color(0,0,0,150))
  459.  
  460.         draw.text3D("Owned", "BFHUD.Size30", 5, 0, Color(255,255,255), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER )
  461.         draw.text3D(self:GetExpanded() and "▼" or !self:GetExpanded() and "▲", "BFHUD.Size30", w - 10, 0, Color(255,255,255), TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER )
  462.     end
  463.  
  464.     self.Owned_categoryFrame_list = vgui.Create( "DPanelList", self.Owned_categoryFrame )
  465.     self.Owned_categoryFrame_list:SetWide( self.Owned_categoryFrame:GetWide() )
  466.     self.Owned_categoryFrame_list:SetAutoSize( true )
  467.     self.Owned_categoryFrame_list:SetSpacing( -1 )
  468.     self.Owned_categoryFrame_list:SetPos( 0, 29 )
  469.     self.Owned_categoryFrame_list:EnableVerticalScrollbar( false )
  470.     self.Owned_categoryFrame_list.Paint = function( s, w, h )
  471.     end
  472.  
  473.  
  474.     for k, veh in pairs(VehiclesList_owned) do
  475.         local VehicleData = self:GetVehicle(veh.class)
  476.         if !VehicleData then continue end
  477.  
  478.  
  479.         VehicleBGOwned_[k] = self.ScrollPanel:Add("DPanel")
  480.         VehicleBGOwned_[k]:SetSize(self.ScrollPanel:GetWide()-13,40)
  481.         VehicleBGOwned_[k]:SetPos( 0, -40 + (40*k) - (1*k) )
  482.         VehicleBGOwned_[k].OwnsVehicle = CAR_DEALER:OwnsVehicle(LocalPlayer(), veh.class) or false
  483.        
  484.         VehicleBGOwned_[k].Paint = function( self, w, h ) end
  485.  
  486.         local VehicleBG_Button = VehicleBGOwned_[k]:Add("DButton")
  487.         VehicleBG_Button:SetPos( 0, 0 )
  488.         VehicleBG_Button:SetSize( VehicleBGOwned_[k]:GetWide(), VehicleBGOwned_[k]:GetTall() )
  489.         VehicleBG_Button:SetText("")
  490.  
  491.         if !LocalPlayer():canAfford(veh.price) and !VehicleBGOwned_[k].OwnsVehicle then
  492.             VehicleBG_Button:SetDisabled(true)
  493.         end
  494.         local clr = Color(0,0,0)
  495.         function VehicleBG_Button:Paint( w, h )
  496.             clr = Color(0,0,0,100)
  497.             if !LocalPlayer():canAfford(veh.price) and !VehicleBGOwned_[k].OwnsVehicle then
  498.                 clr = Color(255,50,50,50)
  499.             end
  500.             draw.OutlinedRect(0,0, w, h, self:IsHovered() and Color(clr.r,clr.g,clr.b,100) or Color(clr.r,clr.g,clr.b,clr.a), 1, Color(0,0,0,100))
  501.             draw.text3D( string.upper(VehicleData.Name), "BFHUD.Size20", 5 + 40, h/4, self:IsHovered() and Color(255,255,255, 1) or Color(255,255,255), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER )
  502.             if self:IsHovered() then
  503.                 draw.text3D( VehicleBGOwned_[k].OwnsVehicle and "Click to Spawn" or !LocalPlayer():canAfford(veh.price) and "Can't afford" or "Click to Purchase", "BFHUD.Size30", 40 + ((w-40)/2), h/8, Color(255,255,255), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER )
  504.             end
  505.             draw.text3D( VehicleBGOwned_[k].OwnsVehicle and "Owned" or DarkRP.formatMoney(veh.price), "BFHUD.Size20", w - (VehicleBGOwned_[k].OwnsVehicle and 70 or 5), h/4, self:IsHovered() and Color(255,255,255, 1) or Color(50,255,50), TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER )
  506.  
  507.  
  508.         end
  509.         function VehicleBG_Button:DoClick()
  510.        
  511.             VehiclePurchaseConfirm( veh, VehicleBGOwned_[k].OwnsVehicle, false )
  512.  
  513.         end
  514.         VehicleBG_Button.OnCursorEntered = function( self )
  515.             CAR_DEALER.CarStatsBase.Vehicle = veh.levels or { speed = 50, acceleration = 50, braking = 50, traction = 50 }
  516.             if IsValid(ModelDisplay) then
  517.                 ModelDisplay:SetModel( CAR_DEALER:GetVehicle(veh.class).Model )
  518.                 FixModelpos(ModelDisplay)
  519.                 --ApplyVehicleCustomizations(ModelDisplay, veh)
  520.             end
  521.             CAR_DEALER.CarModelBase.Vehicle = veh or VehiclesList[1]
  522.             CAR_DEALER.CarModelBase.VehicleModel = CAR_DEALER:GetVehicle(veh.class).Model or "models/tdmcars/minicooper_offroad.mdl"
  523.             RG_CAR_PREVIEWMODEL:SetModel(CAR_DEALER.CarModelBase.VehicleModel)
  524.             RefreshStats(CAR_DEALER.CarStatsBase.Vehicle)
  525.         end
  526.            
  527.        
  528.  
  529.         local VehicleBG_Icon = VehicleBGOwned_[k]:Add("SpawnIcon")
  530.         VehicleBG_Icon:SetPos(0,0)
  531.         VehicleBG_Icon:SetSize(40,40)
  532.         VehicleBG_Icon:SetModel( VehicleData.Model )
  533.         VehicleBG_Icon:SetToolTip(false)
  534.         VehicleBG_Icon:SetMouseInputEnabled(false)
  535.         function VehicleBG_Icon:PaintOver(w,h)
  536.             surface.SetDrawColor(0,0,0,100)
  537.             surface.DrawLine(w-1,0,w-1,h)
  538.         end
  539.  
  540.  
  541.         local VehicleBG_Button_Sell = VehicleBG_Button:Add("DButton")
  542.         VehicleBG_Button_Sell:SetSize( 60, 30 )
  543.         VehicleBG_Button_Sell:SetPos( VehicleBG_Button:GetWide() - VehicleBG_Button_Sell:GetWide() - 5, VehicleBG_Icon:GetTall()/2 - VehicleBG_Button_Sell:GetTall()/2 )
  544.         VehicleBG_Button_Sell:SetText("")
  545.         if VehicleBGOwned_[k].OwnsVehicle then
  546.             VehicleBG_Button_Sell:SetVisible(true)
  547.         else
  548.             VehicleBG_Button_Sell:SetVisible(false)
  549.         end
  550.         function VehicleBG_Button_Sell:Paint( w, h )
  551.             draw.OutlinedRect(0,0, w, h, self:IsHovered() and Color(255,50,50,100) or Color(255,50,50,50), 1, Color(0,0,0,100))
  552.             draw.text3D( "SELL", "BFHUD.Size20", w/2, h/8, Color(255,255,255), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER )
  553.         end
  554.         function VehicleBG_Button_Sell:DoClick()
  555.             VehiclePurchaseConfirm( veh, VehicleBGOwned_[k].OwnsVehicle, true )
  556.         end
  557.         self.Owned_categoryFrame_list:AddItem( VehicleBGOwned_[k] )
  558.     end
  559.     self.ScrollPanel:AddItem( self.Owned_categoryFrame )
  560.  
  561.  
  562.  
  563.  
  564.     self.Unowned_categoryFrame = vgui.Create( "DCollapsibleCategory", self.ScrollPanel )
  565.     self.Unowned_categoryFrame:SetWide( self.ScrollPanel:GetWide() )
  566.     self.Unowned_categoryFrame.Header:SetTall(30)
  567.     --self.Unowned_categoryFrame:SetPos( 0, -40 + (40*k) - (1*k) )
  568.     self.Unowned_categoryFrame:SetExpanded( true )
  569.     self.Unowned_categoryFrame:SetLabel("")
  570.     self.Unowned_categoryFrame.Paint = function() end
  571.     self.Unowned_categoryFrame.PaintOver = function( self, w, h )
  572.         draw.OutlinedRect(0,0, w, 30, Color(255,50,50,100), 1, Color(0,0,0,150))
  573.  
  574.         draw.text3D("Unowned", "BFHUD.Size30", 5, 0, Color(255,255,255), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER )
  575.         draw.text3D(self:GetExpanded() and "▼" or !self:GetExpanded() and "▲", "BFHUD.Size30", w - 10, 0, Color(255,255,255), TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER )
  576.     end
  577.  
  578.     self.Unowned_categoryFrame_list = vgui.Create( "DPanelList", self.Unowned_categoryFrame )
  579.     self.Unowned_categoryFrame_list:SetWide( self.Unowned_categoryFrame:GetWide() )
  580.     self.Unowned_categoryFrame_list:SetAutoSize( true )
  581.     self.Unowned_categoryFrame_list:SetSpacing( -1 )
  582.     self.Unowned_categoryFrame_list:SetPos( 0, 29 )
  583.     self.Unowned_categoryFrame_list:EnableVerticalScrollbar( false )
  584.     self.Unowned_categoryFrame_list.Paint = function( s, w, h ) end
  585.  
  586.     for k, veh in pairs(VehiclesList_unowned) do
  587.         local VehicleData = self:GetVehicle(veh.class)
  588.         if !VehicleData then continue end
  589.  
  590.  
  591.         VehicleBGUnowned_[k] = self.ScrollPanel:Add("DPanel")
  592.         VehicleBGUnowned_[k]:SetSize(self.ScrollPanel:GetWide()-13,40)
  593.         VehicleBGUnowned_[k]:SetPos( 0, -40 + (40*k) - (1*k) )
  594.         VehicleBGUnowned_[k].OwnsVehicle = CAR_DEALER:OwnsVehicle(LocalPlayer(), veh.class) or false
  595.        
  596.         VehicleBGUnowned_[k].Paint = function( self, w, h ) end
  597.  
  598.         local VehicleBG_Button = VehicleBGUnowned_[k]:Add("DButton")
  599.         VehicleBG_Button:SetPos( 0, 0 )
  600.         VehicleBG_Button:SetSize( VehicleBGUnowned_[k]:GetWide(), VehicleBGUnowned_[k]:GetTall() )
  601.         VehicleBG_Button:SetText("")
  602.  
  603.         if !LocalPlayer():canAfford(veh.price) and !VehicleBGUnowned_[k].OwnsVehicle then
  604.             VehicleBG_Button:SetDisabled(true)
  605.         end
  606.         local clr = Color(0,0,0)
  607.         function VehicleBG_Button:Paint( w, h )
  608.             clr = Color(0,0,0,100)
  609.             if !LocalPlayer():canAfford(veh.price) and !VehicleBGUnowned_[k].OwnsVehicle then
  610.                 clr = Color(255,50,50,50)
  611.             end
  612.             draw.OutlinedRect(0,0, w, h, self:IsHovered() and Color(clr.r,clr.g,clr.b,100) or Color(clr.r,clr.g,clr.b,clr.a), 1, Color(0,0,0,100))
  613.             draw.text3D( string.upper(VehicleData.Name), "BFHUD.Size20", 5 + 40, h/4, self:IsHovered() and Color(255,255,255, 1) or Color(255,255,255), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER )
  614.             if self:IsHovered() then
  615.                 draw.text3D( VehicleBGUnowned_[k].OwnsVehicle and "Click to Spawn" or !LocalPlayer():canAfford(veh.price) and "Can't afford" or "Click to Purchase", "BFHUD.Size30", 40 + ((w-40)/2), h/8, Color(255,255,255), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER )
  616.             end
  617.             draw.text3D( VehicleBGUnowned_[k].OwnsVehicle and "Owned" or DarkRP.formatMoney(veh.price), "BFHUD.Size20", w - (VehicleBGUnowned_[k].OwnsVehicle and 70 or 5), h/4, self:IsHovered() and Color(255,255,255, 1) or Color(50,255,50), TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER )
  618.  
  619.  
  620.         end
  621.         function VehicleBG_Button:DoClick()
  622.        
  623.             VehiclePurchaseConfirm( veh, VehicleBGUnowned_[k].OwnsVehicle, false )
  624.  
  625.         end
  626.         VehicleBG_Button.OnCursorEntered = function( self )
  627.             CAR_DEALER.CarStatsBase.Vehicle = veh.levels or { speed = 50, acceleration = 50, braking = 50, traction = 50 }
  628.             if IsValid(ModelDisplay) then
  629.                 ModelDisplay:SetModel( CAR_DEALER:GetVehicle(veh.class).Model )
  630.                 FixModelpos(ModelDisplay)
  631.                 --ApplyVehicleCustomizations(ModelDisplay, veh)
  632.             end
  633.             CAR_DEALER.CarModelBase.Vehicle = veh or VehiclesList[1]
  634.             CAR_DEALER.CarModelBase.VehicleModel = CAR_DEALER:GetVehicle(veh.class).Model or "models/tdmcars/minicooper_offroad.mdl"
  635.             RG_CAR_PREVIEWMODEL:SetModel(CAR_DEALER.CarModelBase.VehicleModel)
  636.             RefreshStats(CAR_DEALER.CarStatsBase.Vehicle)
  637.         end
  638.            
  639.        
  640.  
  641.         local VehicleBG_Icon = VehicleBGUnowned_[k]:Add("SpawnIcon")
  642.         VehicleBG_Icon:SetPos(0,0)
  643.         VehicleBG_Icon:SetSize(40,40)
  644.         VehicleBG_Icon:SetModel( VehicleData.Model )
  645.         VehicleBG_Icon:SetToolTip(false)
  646.         VehicleBG_Icon:SetMouseInputEnabled(false)
  647.         function VehicleBG_Icon:PaintOver(w,h)
  648.             surface.SetDrawColor(0,0,0,100)
  649.             surface.DrawLine(w-1,0,w-1,h)
  650.         end
  651.  
  652.  
  653.         local VehicleBG_Button_Sell = VehicleBG_Button:Add("DButton")
  654.         VehicleBG_Button_Sell:SetSize( 60, 30 )
  655.         VehicleBG_Button_Sell:SetPos( VehicleBG_Button:GetWide() - VehicleBG_Button_Sell:GetWide() - 5, VehicleBG_Icon:GetTall()/2 - VehicleBG_Button_Sell:GetTall()/2 )
  656.         VehicleBG_Button_Sell:SetText("")
  657.         if VehicleBGUnowned_[k].OwnsVehicle then
  658.             VehicleBG_Button_Sell:SetVisible(true)
  659.         else
  660.             VehicleBG_Button_Sell:SetVisible(false)
  661.         end
  662.         function VehicleBG_Button_Sell:Paint( w, h )
  663.             draw.OutlinedRect(0,0, w, h, self:IsHovered() and Color(255,50,50,100) or Color(255,50,50,50), 1, Color(0,0,0,100))
  664.             draw.text3D( "SELL", "BFHUD.Size20", w/2, h/8, Color(255,255,255), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER )
  665.         end
  666.         function VehicleBG_Button_Sell:DoClick()
  667.             VehiclePurchaseConfirm( veh, VehicleBGUnowned_[k].OwnsVehicle, true )
  668.         end
  669.         self.Unowned_categoryFrame_list:AddItem( VehicleBGUnowned_[k] )
  670.     end
  671.     self.ScrollPanel:AddItem( self.Unowned_categoryFrame )
  672.    
  673.  
  674.  
  675.  
  676.     --[[
  677.     local VehicleBG_ = {}
  678.     for k, veh in pairs(VehiclesList) do
  679.        
  680.         local VehicleData = self:GetVehicle(veh.class)
  681.         if !VehicleData then continue end
  682.  
  683.  
  684.         VehicleBG_[k] = self.ScrollPanel:Add("DPanel")
  685.         if table.Count(VehiclesList) > 10 then
  686.             VehicleBG_[k]:SetSize(self.ScrollPanel:GetWide() - 15,40)
  687.         else
  688.             VehicleBG_[k]:SetSize(self.ScrollPanel:GetWide(),40)
  689.         end
  690.         VehicleBG_[k]:SetPos( 0, -40 + (40*k) - (1*k) )
  691.         VehicleBG_[k].OwnsVehicle = CAR_DEALER:OwnsVehicle(LocalPlayer(), veh.class) or false
  692.        
  693.         VehicleBG_[k].Paint = function( self, w, h ) end
  694.  
  695.         local VehicleBG_Button = VehicleBG_[k]:Add("DButton")
  696.         VehicleBG_Button:SetPos( 0, 0 )
  697.         VehicleBG_Button:SetSize( VehicleBG_[k]:GetWide(), VehicleBG_[k]:GetTall() )
  698.         VehicleBG_Button:SetText("")
  699.  
  700.         if !LocalPlayer():canAfford(veh.price) and !VehicleBG_[k].OwnsVehicle then
  701.             VehicleBG_Button:SetDisabled(true)
  702.         end
  703.         local clr = Color(0,0,0)
  704.         function VehicleBG_Button:Paint( w, h )
  705.             clr = Color(0,0,0,100)
  706.             if !LocalPlayer():canAfford(veh.price) and !VehicleBG_[k].OwnsVehicle then
  707.                 clr = Color(255,50,50,50)
  708.             end
  709.             draw.OutlinedRect(0,0, w, h, self:IsHovered() and Color(clr.r,clr.g,clr.b,100) or Color(clr.r,clr.g,clr.b,clr.a), 1, Color(0,0,0,100))
  710.             draw.text3D( string.upper(VehicleData.Name), "BFHUD.Size20", 5 + 40, h/4, self:IsHovered() and Color(255,255,255, 1) or Color(255,255,255), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER )
  711.             if self:IsHovered() then
  712.                 draw.text3D( VehicleBG_[k].OwnsVehicle and "Click to Spawn" or !LocalPlayer():canAfford(veh.price) and "Can't afford" or "Click to Purchase", "BFHUD.Size30", 40 + ((w-40)/2), h/8, Color(255,255,255), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER )
  713.             end
  714.             draw.text3D( VehicleBG_[k].OwnsVehicle and "Owned" or DarkRP.formatMoney(veh.price), "BFHUD.Size20", w - (VehicleBG_[k].OwnsVehicle and 70 or 5), h/4, self:IsHovered() and Color(255,255,255, 1) or Color(50,255,50), TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER )
  715.  
  716.  
  717.         end
  718.         function VehicleBG_Button:DoClick()
  719.        
  720.             VehiclePurchaseConfirm( veh, VehicleBG_[k].OwnsVehicle, false )
  721.  
  722.         end
  723.         VehicleBG_Button.OnCursorEntered = function( self )
  724.             CAR_DEALER.CarStatsBase.Vehicle = veh.levels or { speed = 50, acceleration = 50, braking = 50, traction = 50 }
  725.             if IsValid(ModelDisplay) then
  726.                 ModelDisplay:SetModel( CAR_DEALER:GetVehicle(veh.class).Model )
  727.                 FixModelpos(ModelDisplay)
  728.                 --ApplyVehicleCustomizations(ModelDisplay, veh)
  729.             end
  730.             CAR_DEALER.CarModelBase.Vehicle = veh or VehiclesList[1]
  731.             CAR_DEALER.CarModelBase.VehicleModel = CAR_DEALER:GetVehicle(veh.class).Model or "models/tdmcars/minicooper_offroad.mdl"
  732.             RG_CAR_PREVIEWMODEL:SetModel(CAR_DEALER.CarModelBase.VehicleModel)
  733.             RefreshStats(CAR_DEALER.CarStatsBase.Vehicle)
  734.         end
  735.            
  736.        
  737.  
  738.         local VehicleBG_Icon = VehicleBG_[k]:Add("SpawnIcon")
  739.         VehicleBG_Icon:SetPos(0,0)
  740.         VehicleBG_Icon:SetSize(40,40)
  741.         VehicleBG_Icon:SetModel( VehicleData.Model )
  742.         VehicleBG_Icon:SetToolTip(false)
  743.         VehicleBG_Icon:SetMouseInputEnabled(false)
  744.         function VehicleBG_Icon:PaintOver(w,h)
  745.             surface.SetDrawColor(0,0,0,100)
  746.             surface.DrawLine(w-1,0,w-1,h)
  747.         end
  748.  
  749.  
  750.         local VehicleBG_Button_Sell = VehicleBG_Button:Add("DButton")
  751.         VehicleBG_Button_Sell:SetSize( 60, 30 )
  752.         VehicleBG_Button_Sell:SetPos( VehicleBG_Button:GetWide() - VehicleBG_Button_Sell:GetWide() - 5, VehicleBG_Icon:GetTall()/2 - VehicleBG_Button_Sell:GetTall()/2 )
  753.         VehicleBG_Button_Sell:SetText("")
  754.         if VehicleBG_[k].OwnsVehicle then
  755.             VehicleBG_Button_Sell:SetVisible(true)
  756.         else
  757.             VehicleBG_Button_Sell:SetVisible(false)
  758.         end
  759.         function VehicleBG_Button_Sell:Paint( w, h )
  760.             draw.OutlinedRect(0,0, w, h, self:IsHovered() and Color(255,50,50,100) or Color(255,50,50,50), 1, Color(0,0,0,100))
  761.             draw.text3D( "SELL", "BFHUD.Size20", w/2, h/8, Color(255,255,255), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER )
  762.         end
  763.         function VehicleBG_Button_Sell:DoClick()
  764.             VehiclePurchaseConfirm( veh, VehicleBG_[k].OwnsVehicle, true )
  765.         end
  766.        
  767.     end]]
  768.  
  769.  
  770.  
  771.  
  772.     self.CarStatsBase:SetSize(500,196)
  773.     self.CarStatsBase:SetPos(20,self.BG:GetTall() - self.CarStatsBase:GetTall() - 20)
  774.     function self.CarStatsBase:Paint(w,h)
  775.         JohnnyBlur(self,3,3)
  776.  
  777.         draw.OutlinedRect(0,0, w, h, Color(0,0,0,150), 1, Color(0,0,0,100))
  778.  
  779.         --surface.SetDrawColor(180,30,30,200)
  780.         --surface.DrawRect(0,0,w,50)
  781.  
  782.         --draw.OutlinedRect(0,0 + 30 + 50, w, h - 80, Color(0,0,0,100), 1, Color(0,0,0,100))
  783.  
  784.  
  785.         --draw.text3D("Stats", "BFHUD.Size50", w/2, 50/2 - 25, Color(255,255,255) , TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER )
  786.    
  787.     end
  788.  
  789.  
  790.  
  791.  
  792.     self.StatsScrollPanel = vgui.Create("DScrollPanel", self.CarStatsBase)
  793.     self.StatsScrollPanel:SetSize(self.CarStatsBase:GetWide(), self.CarStatsBase:GetTall() )
  794.     self.StatsScrollPanel:SetPos(0, 0)
  795.     local function createScrollBar()
  796.         local sbar = CAR_DEALER.StatsScrollPanel:GetVBar()
  797.         function sbar:Paint( w, h )
  798.             draw.RoundedBox( 0, 0, 0, w, h, Color( 0, 0, 0, 100 ) )
  799.         end
  800.         function sbar.btnUp:Paint( w, h )
  801.             draw.OutlinedRect(0, 0, w, h, Color(100,100,100,20), 1,  Color(0,0,0,256))
  802.             draw.DrawText("^", "BFHUD.Size20", w/2, 0 ,Color( 0,0,0,256 ), TEXT_ALIGN_CENTER)
  803.         end
  804.         function sbar.btnDown:Paint( w, h )
  805.             draw.OutlinedRect(0, 0, w, h, Color(100,100,100,20), 1,  Color(0,0,0,256))
  806.             draw.DrawText("v", "BFHUD.Size20", w/2, -4 ,Color( 0,0,0,256 ), TEXT_ALIGN_CENTER)
  807.         end
  808.         function sbar.btnGrip:Paint( w, h )
  809.             draw.OutlinedRect(0, 0, w, h, Color(100,100,100,20), 1,  Color(0,0,0,256))
  810.         end
  811.         sbar.btnGrip:SetCursor( "hand" )
  812.     end
  813.     createScrollBar()
  814.  
  815.     function RefreshStats(carstats)
  816.        
  817.  
  818.         local stattable = carstats or self.CarStatsBase.Vehicle
  819.         --PrintTable(stattable)
  820.  
  821.         local VehicleStatsBG_ = {}
  822.        
  823.         local statcounts = 1
  824.  
  825.         self.StatsScrollPanel:Clear()
  826.         for k, v in pairs(stattable) do
  827.  
  828.  
  829.             local maxStat       = 100
  830.             local lastStat  = 0
  831.             local StatAprog     = 0
  832.             local StatProg
  833.            
  834.             VehicleStatsBG_[statcounts] = self.StatsScrollPanel:Add("DPanel")
  835.             VehicleStatsBG_[statcounts]:SetSize(self.StatsScrollPanel:GetWide(),50)
  836.             VehicleStatsBG_[statcounts]:SetPos( 0, -50 + (50*statcounts) - (1*statcounts) )
  837.             VehicleStatsBG_[statcounts]:SetMouseInputEnabled(false)
  838.  
  839.             VehicleStatsBG_[statcounts].Paint = function( self, w, h )
  840.  
  841.                 local width, height = 200, 30
  842.                 StatProg = v / maxStat
  843.                 lastStat = v
  844.  
  845.                 StatAprog = Lerp(FrameTime()*10, StatAprog, StatProg)
  846.  
  847.                 draw.OutlinedRect(0,0, w, h, Color(0,0,0,50), 1, Color(0,0,0,75))
  848.                 draw.text3D( string.upper(k), "BFHUD.Size30", 5, h/4, Color(255,255,255), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER )
  849.  
  850.  
  851.                 draw.OutlinedRect( w - width - 10, h/2 - height/2, width, height, Color(0,0,0,100), 1, Color(0,0,0,100))
  852.  
  853.                 draw.RoundedBox(0,w - width - 10 + 1, h/2 - height/2 + 1, (width - 2)*(math.Clamp(StatAprog or 0, 0, 1)), height - 2,Color(190,20,20,100))
  854.  
  855.             end
  856.  
  857.             statcounts = statcounts + 1
  858.         end
  859.  
  860.  
  861.     end
  862.     RefreshStats(self.CarStatsBase.Vehicle)
  863.  
  864.  
  865.  
  866.  
  867.     self.CarModelBase:SetSize(self.BG:GetWide() - 20 - self.CarListBase:GetWide() - 80 - 80,ScrH()*0.75)
  868.     self.CarModelBase:SetPos(20 + self.CarListBase:GetWide() + 80, ScrH()/2 - self.CarModelBase:GetTall()/2 )
  869.     function self.CarModelBase:Paint(w,h)
  870.  
  871.         draw.OutlinedRect(0,0, w, 50, Color(0,0,0,150), 1, Color(0,0,0,100))
  872.         draw.OutlinedRect(0,0 + 50, w, h - 50, Color(0,0,0,150), 1, Color(0,0,0,100))
  873.  
  874.         --surface.SetDrawColor(180,30,30,200)
  875.         --surface.DrawRect(0,0,w,50)
  876.  
  877.         --draw.OutlinedRect(0,0 + 30 + 50, w, h - 80, Color(0,0,0,100), 1, Color(0,0,0,100))
  878.  
  879.  
  880.         draw.text3D("Model Preview", "BFHUD.Size50", w/2, 50/2 - 25, Color(255,255,255) , TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER )
  881.    
  882.     end
  883.  
  884.     --[[
  885.     self.ModelCloseButton = vgui.Create("DButton", self.CarModelBase)
  886.     self.ModelCloseButton:SetSize(30, 30)
  887.     self.ModelCloseButton:SetPos(self.CarModelBase:GetWide() - SIZES.close_button, 0)
  888.     self.ModelCloseButton:SetText("")
  889.     function self.ModelCloseButton:DoClick()
  890.         CAR_DEALER.BG:Remove()
  891.     end
  892.     function self.ModelCloseButton:Paint(w, h)
  893.         draw.OutlinedRect(0,0, w, h, self:IsHovered() and Color(0,0,0,100) or Color(0,0,0,50), 1, Color(0,0,0,100))
  894.         draw.text3D("X", "BFHUD.Size30", w/2, -2, Color(255,255,255) , TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP )
  895.     end]]
  896.  
  897.  
  898.     ModelDisplay:SetSize( self.CarModelBase:GetWide(), self.CarModelBase:GetTall() - 50)
  899.     ModelDisplay:SetPos( 0, 50 )
  900.     ModelDisplay:SetModel( self:GetVehicle(CAR_DEALER.CarModelBase.Vehicle.class).Model )
  901.     FixModelpos(ModelDisplay)
  902.  
  903. end
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912. function CAR_DEALER:OpenReturnVGUI(car_dealer, vehicle)
  913.  
  914.  
  915.     if IsValid(self.BG) then self.BG:Remove() end
  916.  
  917.  
  918.     local num_buttons = 1
  919.  
  920.  
  921.  
  922.  
  923.  
  924.     self.BG = vgui.Create("DPanel")
  925.  
  926.  
  927.     self.BG:SetSize(SIZES.bg_x, SIZES.header + SIZES.return_button_y*num_buttons)
  928.  
  929.  
  930.     self.BG:Center()
  931.  
  932.  
  933.     self.BG:MakePopup()
  934.  
  935.  
  936.     function self.BG:Think()
  937.  
  938.  
  939.         if !IsValid(car_dealer) then self.BG:Remove() end
  940.  
  941.  
  942.     end
  943.  
  944.  
  945.     function self.BG:Paint(w, h)
  946.  
  947.  
  948.         JohnnyBlur(self,4,4)
  949.  
  950.  
  951.         draw.OutlinedRect(0,0, w, h, Color(0,0,0,50), 1, Color(0,0,0,100))
  952.  
  953.  
  954.         draw.OutlinedRect(0,0, w, SIZES.header, Color(0,0,0,100), 1, Color(0,0,0,100))
  955.  
  956.  
  957.  
  958.  
  959.  
  960.         draw.text3D("Car Dealer - Return", "BFHUD.Size50", w/2, SIZES.header/2 - 25, Color(255,255,255) , TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP )
  961.  
  962.  
  963.     end
  964.  
  965.  
  966.  
  967.  
  968.  
  969.     self.ReturnButton = vgui.Create("DButton", self.BG)
  970.  
  971.  
  972.     self.ReturnButton:SetSize(SIZES.bg_x, SIZES.return_button_y)
  973.  
  974.  
  975.     self.ReturnButton:SetPos(0, SIZES.header)
  976.  
  977.  
  978.     self.ReturnButton:SetText("")
  979.  
  980.  
  981.     function self.ReturnButton:Think()
  982.  
  983.  
  984.         if !IsValid(vehicle) then CAR_DEALER.BG:Remove() end
  985.  
  986.  
  987.         if !IsValid(car_dealer) then CAR_DEALER.BG:Remove() end
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994.  
  995.  
  996.         if self.NextThink and (self.NextThink > CurTime()) then return end
  997.  
  998.  
  999.         self.NextThink = CurTime() + 0.5
  1000.  
  1001.  
  1002.        
  1003.  
  1004.  
  1005.         local CarDealerPos = car_dealer:GetPos()
  1006.  
  1007.  
  1008.         local VehicleTooFar = CarDealerPos:Distance(vehicle:GetPos()) > CAR_DEALER.CFG.ReturnDistance
  1009.  
  1010.  
  1011.         local plyTooFar = CarDealerPos:Distance(LocalPlayer():GetPos()) > CAR_DEALER.CFG.ReturnDistance
  1012.  
  1013.  
  1014.  
  1015.  
  1016.  
  1017.         self.TooFar = VehicleTooFar or plyTooFar
  1018.  
  1019.  
  1020.  
  1021.  
  1022.  
  1023.         if VehicleTooFar then
  1024.  
  1025.  
  1026.             self.text = "Your vehicle is too far from the dealer."
  1027.  
  1028.  
  1029.         elseif plyTooFar then
  1030.  
  1031.  
  1032.             self.text = "You are too far from the dealer."
  1033.  
  1034.  
  1035.         else
  1036.  
  1037.  
  1038.             self.text = "Return Vehicle"
  1039.  
  1040.  
  1041.         end
  1042.  
  1043.  
  1044.     end
  1045.  
  1046.  
  1047.     function self.ReturnButton:DoClick()
  1048.  
  1049.  
  1050.         if self.TooFar then
  1051.  
  1052.  
  1053.         else
  1054.  
  1055.  
  1056.             net.Start("RG:ReturnVehicle")
  1057.  
  1058.  
  1059.             net.WriteEntity(car_dealer)
  1060.  
  1061.  
  1062.             net.SendToServer()
  1063.  
  1064.  
  1065.            
  1066.  
  1067.  
  1068.             CAR_DEALER.BG:Remove()
  1069.  
  1070.  
  1071.         end
  1072.  
  1073.  
  1074.     end
  1075.  
  1076.  
  1077.     function self.ReturnButton:Paint(w, h)
  1078.  
  1079.  
  1080.         draw.OutlinedRect(0,0, w, h, self:IsHovered() and Color(0,0,0,150) or Color(0,0,0,50), 1, Color(0,0,0,100))
  1081.  
  1082.  
  1083.  
  1084.  
  1085.  
  1086.         draw.text3D(self.text or "", "BFHUD.Size35", w/2, h/2 - 15, Color(255,255,255) , TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP )
  1087.  
  1088.  
  1089.     end
  1090.  
  1091.  
  1092.  
  1093.  
  1094.  
  1095.     self.CloseButton = vgui.Create("DButton", self.BG)
  1096.  
  1097.  
  1098.     self.CloseButton:SetSize(30, 30)
  1099.  
  1100.  
  1101.     self.CloseButton:SetPos(SIZES.bg_x - SIZES.close_button, 0)
  1102.  
  1103.  
  1104.     self.CloseButton:SetText("")
  1105.  
  1106.  
  1107.     function self.CloseButton:DoClick()
  1108.  
  1109.  
  1110.         CAR_DEALER.BG:Remove()
  1111.  
  1112.  
  1113.     end
  1114.  
  1115.  
  1116.     function self.CloseButton:Paint(w, h)
  1117.  
  1118.  
  1119.         draw.OutlinedRect(0,0, w, h, self:IsHovered() and Color(0,0,0,100) or Color(0,0,0,50), 1, Color(0,0,0,100))
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.         draw.text3D("X", "BFHUD.Size30", w/2, -2, Color(255,255,255) , TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP )
  1126.  
  1127.  
  1128.     end
  1129.  
  1130.  
  1131. end
  1132.  
  1133.  
  1134.  
  1135.  
  1136.  
  1137.  
  1138.  
  1139.  
  1140. function CAR_DEALER:OpenCropVGUI(crop_shop, stolen_vehicle)
  1141.  
  1142.  
  1143.     if IsValid(self.BG) then self.BG:Remove() end
  1144.  
  1145.  
  1146.     --print(stolen_vehicle)
  1147.  
  1148.  
  1149.     if !IsValid(stolen_vehicle) then return end
  1150.  
  1151.  
  1152.  
  1153.  
  1154.  
  1155.     local VehicleClass = stolen_vehicle:GetVehicleClass()
  1156.  
  1157.  
  1158.  
  1159.  
  1160.  
  1161.     local VehicleData = self:GetVehicle(VehicleClass)
  1162.  
  1163.  
  1164.     local VehicleDealerData = self:GetVehicleData(VehicleClass)
  1165.  
  1166.  
  1167.     if !VehicleDealerData then return end
  1168.  
  1169.  
  1170.  
  1171.  
  1172.  
  1173.     self.BG = vgui.Create("DPanel")
  1174.  
  1175.  
  1176.     self.BG:SetSize(SIZES.bg_x, SIZES.bg_y)
  1177.  
  1178.  
  1179.     self.BG:Center()
  1180.  
  1181.  
  1182.     self.BG:MakePopup()
  1183.  
  1184.  
  1185.     function self.BG:Think()
  1186.  
  1187.  
  1188.         if !IsValid(crop_shop) then self:Remove() return end
  1189.  
  1190.  
  1191.         if !IsValid(stolen_vehicle) then
  1192.  
  1193.  
  1194.             chat.AddText("The vehicle you stole has been removed.")
  1195.  
  1196.  
  1197.             self:Remove()
  1198.  
  1199.  
  1200.             return
  1201.  
  1202.  
  1203.         end
  1204.  
  1205.  
  1206.     end
  1207.  
  1208.  
  1209.     function self.BG:Paint(w, h)
  1210.  
  1211.  
  1212.         JohnnyBlur(self,4,4)
  1213.  
  1214.  
  1215.         draw.OutlinedRect(0,0, w, h, Color(0,0,0,50), 1, Color(0,0,0,100))
  1216.  
  1217.  
  1218.         draw.OutlinedRect(0,0, w, SIZES.header, Color(0,0,0,100), 1, Color(0,0,0,100))
  1219.  
  1220.  
  1221.  
  1222.  
  1223.  
  1224.         draw.text3D("Sell Stolen Vehicles", "BFHUD.Size50", w/2, SIZES.header/2 - 25, Color(255,255,255) , TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP )
  1225.  
  1226.  
  1227.     end
  1228.  
  1229.  
  1230.  
  1231.  
  1232.  
  1233.     self.CloseButton = vgui.Create("DButton", self.BG)
  1234.  
  1235.  
  1236.     self.CloseButton:SetSize(30, 30)
  1237.  
  1238.  
  1239.     self.CloseButton:SetPos(SIZES.bg_x - SIZES.close_button, 0)
  1240.  
  1241.  
  1242.     self.CloseButton:SetText("")
  1243.  
  1244.  
  1245.     function self.CloseButton:DoClick()
  1246.  
  1247.  
  1248.         CAR_DEALER.BG:Remove()
  1249.  
  1250.  
  1251.     end
  1252.  
  1253.  
  1254.     function self.CloseButton:Paint(w, h)
  1255.  
  1256.  
  1257.         draw.OutlinedRect(0,0, w, h, self:IsHovered() and Color(0,0,0,100) or Color(0,0,0,50), 1, Color(0,0,0,100))
  1258.  
  1259.  
  1260.  
  1261.  
  1262.  
  1263.         draw.text3D("X", "BFHUD.Size30", w/2, -2, Color(255,255,255) , TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP )
  1264.  
  1265.  
  1266.     end
  1267.  
  1268.  
  1269.  
  1270.  
  1271.  
  1272.     local VehicleBG = vgui.Create("DPanel", self.BG)
  1273.  
  1274.  
  1275.     local VehicleButton = vgui.Create("DButton", VehicleBG)
  1276.  
  1277.  
  1278.    
  1279.  
  1280.  
  1281.  
  1282.  
  1283.  
  1284.     local VehicleSize = SIZES.bg_x*0.9
  1285.  
  1286.  
  1287.     VehicleBG:SetSize(VehicleSize,VehicleSize)
  1288.  
  1289.  
  1290.     VehicleBG:SetPos(0, SIZES.header+5)
  1291.  
  1292.  
  1293.     VehicleBG:CenterHorizontal(0.5)
  1294.  
  1295.  
  1296.     function VehicleBG:Paint(w, h)
  1297.  
  1298.  
  1299.         draw.OutlinedRect(0,0, w, h, Color(0,0,0,50), 1, Color(0,0,0,100))
  1300.  
  1301.  
  1302.         draw.OutlinedRect(0,0, w, SIZES.vehicle_buybutton, Color(0,0,0,100), 1, Color(0,0,0,100))
  1303.  
  1304.  
  1305.  
  1306.  
  1307.  
  1308.         draw.text3D(VehicleData.Name, "BFHUD.Size25", w/2, 1, Color(230,230,230,230) , TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP )
  1309.  
  1310.  
  1311.  
  1312.  
  1313.  
  1314.         local PriceColor = Color(230,256,230,230)
  1315.  
  1316.  
  1317.  
  1318.  
  1319.  
  1320.         draw.text3D("$".. math.min((VehicleDealerData.price*CAR_DEALER.CFG.SellRate), CAR_DEALER.CFG.MaxStealReward) , "BFHUD.Size20", w/2, SIZES.vehicle_buybutton, PriceColor, TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP )
  1321.  
  1322.  
  1323.     end
  1324.  
  1325.  
  1326.  
  1327.  
  1328.  
  1329.     local VehModel = vgui.Create( 'DModelPanel', VehicleBG )
  1330.  
  1331.  
  1332.     VehModel:SetSize( VehicleSize-2, VehicleSize - 2* SIZES.vehicle_buybutton)
  1333.  
  1334.  
  1335.     VehModel:SetPos( 1, SIZES.vehicle_buybutton )
  1336.  
  1337.  
  1338.     VehModel:SetModel( VehicleData.Model )
  1339.  
  1340.  
  1341.     FixModelpos(VehModel)
  1342.  
  1343.  
  1344.  
  1345.  
  1346.  
  1347.    
  1348.  
  1349.  
  1350.     VehicleButton:SetSize(SIZES.vehicle_bg, SIZES.vehicle_buybutton)
  1351.  
  1352.  
  1353.     VehicleButton:SetText("")
  1354.  
  1355.  
  1356.     VehicleButton:Dock(BOTTOM)
  1357.  
  1358.  
  1359.     function VehicleButton:Paint(w, h)
  1360.  
  1361.  
  1362.         draw.OutlinedRect(0,0, w, h, self:IsHovered() and Color(0,0,0,100) or Color(0,0,0,50), 1, Color(0,0,0,100))
  1363.  
  1364.  
  1365.         draw.text3D("Sell", "BFHUD.Size25", w/2, 0, Color(230,230,230,230) , TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP )
  1366.  
  1367.  
  1368.     end
  1369.  
  1370.  
  1371.     function VehicleButton:DoClick()
  1372.  
  1373.  
  1374.         net.Start("RG:SellVehicle")
  1375.  
  1376.  
  1377.         net.WriteEntity(stolen_vehicle)
  1378.  
  1379.  
  1380.         net.WriteEntity(crop_shop)
  1381.  
  1382.  
  1383.         net.SendToServer()
  1384.  
  1385.  
  1386.  
  1387.  
  1388.  
  1389.         CAR_DEALER.BG:Remove()
  1390.  
  1391.  
  1392.     end
  1393.  
  1394.  
  1395. end
  1396.  
  1397.  
  1398.  
  1399.  
  1400.  
  1401.  
  1402.  
  1403.  
  1404.  
  1405. hook.Add( "InitPostEntity", "RGCarDealerSetCursor", function()
  1406.     LocalPlayer().RGCursor = LocalPlayer().RGCursor or false
  1407.     LocalPlayer().RGCursorCheck = CurTime()
  1408.     LocalPlayer().RGCursorStatus = false
  1409. end )
  1410.  
  1411.  
  1412.  
  1413. --[[-------------------------------------------------------------------------
  1414. Title: Car Customizer
  1415. ---------------------------------------------------------------------------]]
  1416.  
  1417.  
  1418. function CAR_DEALER:OpenVehicleCustomizer(vehicle,LVehicle)
  1419.  
  1420.     --if !IsValid(self) then return end
  1421.  
  1422.  
  1423.        
  1424.     if IsValid( vehicle ) then
  1425.         self.OldVehicleSpecs = {}
  1426.         self.bodygroupsnumlist = {}
  1427.  
  1428.         for k, v in pairs( vehicle:GetBodyGroups() ) do
  1429.             self.bodygroupsnumlist[v.id] = vehicle:GetBodygroup( v.id )
  1430.         end
  1431.         self.OldVehicleSpecs = {
  1432.             paint = vehicle:GetColor(),
  1433.             skin = vehicle:GetSkin(),
  1434.             bodygroups = table.concat( self.bodygroupsnumlist, "", 0, table.Count( self.bodygroupsnumlist )-1 ),
  1435.             underglow = {vehicle:GetNWBool("RG_VEH_UNDERLIGHTS",false),vehicle:GetNWVector("RG_VEH_UNDERLIGHTS_COLOR",Vector(255,255,255))}
  1436.         }
  1437.     end
  1438.  
  1439.     if self.OldVehicleSpecs then
  1440.         --print("printing self.OldVehicleSpecs")
  1441.         --PrintTable( self.OldVehicleSpecs )
  1442.     end
  1443.  
  1444.     if vehicle == nil and IsValid( LVehicle ) then
  1445.         --print( "LVehicle existed" )
  1446.         if IsValid(self.BG) then
  1447.             if !self.BG.HasPurchasedPaint then
  1448.                 --print("CAR_DEALER.ColorTab existed")
  1449.                 LVehicle:SetColor( self.OldVehicleSpecs.paint )
  1450.             end
  1451.  
  1452.             if !self.BG.HasPurchasedSkin then
  1453.                 --print("CAR_DEALER.ColorTab existed")
  1454.                 LVehicle:SetSkin( self.OldVehicleSpecs.skin )
  1455.             end
  1456.            
  1457.             if !self.BG.HasPurchasedBodygroup then
  1458.                 --print("set bodygroups")
  1459.                 LVehicle:SetBodyGroups( self.OldVehicleSpecs.bodygroups )
  1460.             end
  1461.  
  1462.             if !self.BG.HasPurchasedUnderglow then
  1463.                 --print("CAR_DEALER.ColorTab existed")
  1464.                 LVehicle:SetNWBool("RG_VEH_UNDERLIGHTS",self.OldVehicleSpecs.underglow[1])
  1465.                 LVehicle:SetNWVector("RG_VEH_UNDERLIGHTS_COLOR",self.OldVehicleSpecs.underglow[2])
  1466.             end
  1467.  
  1468.         end
  1469.        
  1470.         --LVehicle:SetSkin( self.OldVehicleSpecs.skin )
  1471.         --LVehicle:SetBodyGroups( self.OldVehicleSpecs.bodygroups )
  1472.     end
  1473.  
  1474.  
  1475.     if vehicle == nil then
  1476.         if IsValid(self.BG) then
  1477.             self.BG:Remove()
  1478.         end
  1479.         if IsValid(self.BG_CART) then
  1480.             self.BG_CART:Remove()
  1481.         end
  1482.         if IsValid(self.BG_SPACEBAR) then
  1483.             self.BG_SPACEBAR:Remove()
  1484.         end
  1485.         LocalPlayer().RGCursorStatus = false
  1486.         LocalPlayer().RGCursor = false
  1487.         gui.EnableScreenClicker( false )
  1488.         return
  1489.     else
  1490.         if IsValid(self.BG) then
  1491.             self.BG:Remove()
  1492.         end
  1493.         if IsValid(self.BG_CART) then
  1494.             self.BG_CART:Remove()
  1495.         end
  1496.         if IsValid(self.BG_SPACEBAR) then
  1497.             self.BG_SPACEBAR:Remove()
  1498.         end
  1499.         LocalPlayer().RGCursorStatus = false
  1500.         LocalPlayer().RGCursor = false
  1501.         gui.EnableScreenClicker( false )
  1502.     end
  1503.     LocalPlayer().RGCursorStatus = true
  1504.  
  1505.     local VehiclesList = self:GetAllVehicles()
  1506.  
  1507.     if IsValid(vehicle) then
  1508.         --PrintTable(vehicle:GetBodyGroups())
  1509.         --print("------------------------------------------- ^ old ^ --------------------------------------------------------")
  1510.  
  1511.         local newbodygroups = {}
  1512.         for k, v in pairs( vehicle:GetBodyGroups() ) do
  1513.             if v.num > 1 then
  1514.                 table.insert( newbodygroups, v )
  1515.             end
  1516.         end
  1517.         --PrintTable( newbodygroups )
  1518.     end
  1519.  
  1520.  
  1521.  
  1522.  
  1523.  
  1524.    
  1525.    
  1526.     self.BG = vgui.Create("DPanel")
  1527.     self.BG.HasPurchasedPaint = false
  1528.     self.BG.HasPurchasedSkin = false
  1529.     self.BG.HasPurchasedBodygroup = false
  1530.     self.BG_CART = vgui.Create("DPanel")
  1531.     self.BG_SPACEBAR = vgui.Create("DPanel")
  1532.     self.BG:SetPos( 20, 20 )
  1533.     self.BG:SetSize(400, 600)
  1534.     --self.BG:MakePopup()
  1535.     --self.BG_CART:MakePopup()
  1536.     --self.BG:Center()
  1537.     --self.BG:MakePopup()
  1538.     self.BG.Title = ""
  1539.  
  1540.     function self.BG:Paint(w, h)
  1541.  
  1542.         JohnnyBlur(self,3,3)
  1543.  
  1544.         draw.OutlinedRect(0,30, w, h-30, Color(0,0,0,50), 1, Color(0,0,0,100))
  1545.  
  1546.         draw.OutlinedRect(0,30, w, SIZES.header, Color(0,0,0,100), 1, Color(0,0,0,100))
  1547.  
  1548.         surface.SetDrawColor(180,30,30,230)
  1549.         surface.DrawRect(0,0,w,50)
  1550.  
  1551.         draw.RoundedBox(0,0,0,w,h,Color(0,0,0,150))
  1552.  
  1553.         draw.text3D("Car Customizer", "BFHUD.Size50", w/2, SIZES.header/2 - 25, Color(255,255,255) , TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP )
  1554.  
  1555.         --draw.text3D(CurrentPage.."/"..MaxPages, "BFHUD.Size20", w/2, h-25, Color(255,255,255) , TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP )
  1556.  
  1557.         draw.text3D(CAR_DEALER.BG.Title or "","font_20",5,30 + (SIZES.header/2),Color(255,255,255,255),TEXT_ALIGN_LEFT,TEXT_ALIGN_CENTER)
  1558.     end
  1559.  
  1560.    
  1561.     self.BG_SPACEBAR:SetSize( 430, 50 )
  1562.     self.BG_SPACEBAR:SetPos( ScrW()/2 - self.BG_SPACEBAR:GetWide()/2, 20 )
  1563.     function self.BG_SPACEBAR:Paint( w, h )
  1564.    
  1565.         JohnnyBlur(self,3,3)
  1566.  
  1567.         draw.OutlinedRect(0,30, w, SIZES.header, Color(0,0,0,50), 1, Color(0,0,0,100))
  1568.  
  1569.         draw.OutlinedRect(0,30, w, SIZES.header, Color(0,0,0,100), 1, Color(0,0,0,100))
  1570.  
  1571.         surface.SetDrawColor(180,30,30,215)
  1572.         surface.DrawRect(0,0,w,50)
  1573.  
  1574.         draw.RoundedBox(0,0,0,w,h,Color(0,0,0,150))
  1575.  
  1576.         draw.text3D("Press Space to Toggle Cursor", "BFHUD.Size40", w/2, SIZES.header/2 - 25, Color(255,255,255) , TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP )
  1577.  
  1578.     end
  1579.  
  1580.  
  1581.     self.CloseButton = vgui.Create("DButton", self.BG)
  1582.     self.CloseButton:SetSize(30, 30)
  1583.     self.CloseButton:SetPos(self.BG:GetWide() - SIZES.close_button, 0)
  1584.     self.CloseButton:SetText("")
  1585.  
  1586.     function self.CloseButton:DoClick()
  1587.         net.Start("RG:CustomizerCanLeaveVeh")
  1588.         net.SendToServer()
  1589.         CAR_DEALER:OpenVehicleCustomizer( nil, vehicle )
  1590.         CAR_DEALER.BG:Remove()
  1591.         CAR_DEALER.BG_CART:Remove()
  1592.         CAR_DEALER.BG_SPACEBAR:Remove()
  1593.         LocalPlayer().RGCursorStatus = false
  1594.         LocalPlayer().RGCursor = false
  1595.         gui.EnableScreenClicker( false )
  1596.     end
  1597.  
  1598.  
  1599.     function self.CloseButton:Paint(w, h)
  1600.         draw.OutlinedRect(0,0, w, h, self:IsHovered() and Color(0,0,0,100) or Color(0,0,0,50), 1, Color(0,0,0,100))
  1601.  
  1602.         draw.text3D("X", "BFHUD.Size30", w/2, -2, Color(255,255,255) , TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP )
  1603.     end
  1604.  
  1605.  
  1606.  
  1607.     self.BG_CART:SetSize(400, 400)
  1608.     self.BG_CART:SetPos( ScrW() - self.BG_CART:GetWide() - 20, ScrH() - self.BG_CART:GetTall() - 20 )
  1609.     self.BG_CART.Items = {}
  1610.     --self.BG_CART:Center()
  1611.     --self.BG_CART:MakePopup()
  1612.     --self.BG_CART.Title = ""
  1613.  
  1614.     function self.BG_CART:Paint(w, h)
  1615.  
  1616.         JohnnyBlur(self,3,3)
  1617.  
  1618.         draw.OutlinedRect(0,30, w, h-30, Color(0,0,0,50), 1, Color(0,0,0,100))
  1619.  
  1620.         draw.OutlinedRect(0,30, w, SIZES.header, Color(0,0,0,100), 1, Color(0,0,0,100))
  1621.  
  1622.         surface.SetDrawColor(180,30,30,230)
  1623.         surface.DrawRect(0,0,w,50)
  1624.  
  1625.         draw.RoundedBox(0,0,0,w,h,Color(0,0,0,150))
  1626.  
  1627.         draw.text3D("Cart", "BFHUD.Size50", w/2, SIZES.header/2 - 25, Color(255,255,255) , TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP )
  1628.         draw.text3D("Items: "..(table.Count(CAR_DEALER.BG_CART.Items) or 0), "BFHUD.Size30", 5, 50, Color(255,255,255) , TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER )
  1629.  
  1630.         --draw.text3D(CurrentPage.."/"..MaxPages, "BFHUD.Size20", w/2, h-25, Color(255,255,255) , TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP )
  1631.  
  1632.         --draw.text3D(CAR_DEALER.BG_CART.Title or "","font_20",5,30 + (SIZES.header/2),Color(255,255,255,255),TEXT_ALIGN_LEFT,TEXT_ALIGN_CENTER)
  1633.     end
  1634.  
  1635.  
  1636.     self.CloseButton_CART = vgui.Create("DButton", self.BG_CART)
  1637.     self.CloseButton_CART:SetSize(30, 30)
  1638.     self.CloseButton_CART:SetPos(self.BG_CART:GetWide() - SIZES.close_button, 0)
  1639.     self.CloseButton_CART:SetText("")
  1640.  
  1641.     function self.CloseButton_CART:DoClick()
  1642.         net.Start("RG:CustomizerCanLeaveVeh")
  1643.         net.SendToServer()
  1644.         CAR_DEALER:OpenVehicleCustomizer( nil, vehicle )
  1645.         CAR_DEALER.BG:Remove()
  1646.         CAR_DEALER.BG_CART:Remove()
  1647.         LocalPlayer().RGCursorStatus = false
  1648.         LocalPlayer().RGCursor = false
  1649.         gui.EnableScreenClicker( false )
  1650.     end
  1651.  
  1652.  
  1653.     function self.CloseButton_CART:Paint(w, h)
  1654.         draw.OutlinedRect(0,0, w, h, self:IsHovered() and Color(0,0,0,100) or Color(0,0,0,50), 1, Color(0,0,0,100))
  1655.  
  1656.         draw.text3D("X", "BFHUD.Size30", w/2, -2, Color(255,255,255) , TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP )
  1657.     end
  1658.  
  1659.  
  1660.  
  1661.     self.ScrollPanel_CART = vgui.Create("DScrollPanel", self.BG_CART)
  1662.     self.ScrollPanel_CART:SetSize(self.BG_CART:GetWide(), self.BG_CART:GetTall() - 31 - SIZES.header - 80 )
  1663.     self.ScrollPanel_CART:SetPos(0, 30 + SIZES.header)
  1664.  
  1665.  
  1666.     local function createScrollBar()
  1667.  
  1668.         local sbar = CAR_DEALER.ScrollPanel_CART:GetVBar()
  1669.  
  1670.         function sbar:Paint( w, h )
  1671.             draw.RoundedBox( 0, 0, 0, w, h, Color( 0, 0, 0, 100 ) )
  1672.         end
  1673.  
  1674.         function sbar.btnUp:Paint( w, h )
  1675.             draw.OutlinedRect(0, 0, w, h, Color(100,100,100,20), 1,  Color(0,0,0,256))
  1676.             draw.DrawText("^", "BFHUD.Size20", w/2, 0 ,Color( 0,0,0,256 ), TEXT_ALIGN_CENTER)
  1677.         end
  1678.  
  1679.         function sbar.btnDown:Paint( w, h )
  1680.             draw.OutlinedRect(0, 0, w, h, Color(100,100,100,20), 1,  Color(0,0,0,256))
  1681.             draw.DrawText("v", "BFHUD.Size20", w/2, -4 ,Color( 0,0,0,256 ), TEXT_ALIGN_CENTER)
  1682.         end
  1683.  
  1684.         function sbar.btnGrip:Paint( w, h )
  1685.             draw.OutlinedRect(0, 0, w, h, Color(100,100,100,20), 1,  Color(0,0,0,256))
  1686.         end
  1687.  
  1688.         sbar.btnGrip:SetCursor( "hand" )
  1689.  
  1690.     end
  1691.     createScrollBar()
  1692.  
  1693.     function RefreshScroll_Cart()
  1694.  
  1695.         self.ScrollPanel_CART:Clear()
  1696.  
  1697.         for k, v in pairs(self.BG_CART.Items) do
  1698.  
  1699.             self.CartItemButton = self.ScrollPanel_CART:Add("DButton")
  1700.             self.CartItemButton:SetSize( self.BG:GetWide(), 50 ) --  - 14
  1701.             self.CartItemButton:SetPos(0,-50 + (50*k) - (1*k))
  1702.             --[[
  1703.             self.CartItemButton:SetFont("font_20")
  1704.             self.CartItemButton:SetTextColor( Color(255,255,255,255) )
  1705.             self.CartItemButton:SetText( categories[i] )
  1706.             ]]
  1707.             self.CartItemButton:SetText( "" )
  1708.  
  1709.             function self.CartItemButton:Paint( w, h )
  1710.                 if self:IsHovered() then
  1711.                     draw.OutlinedRect(0,0, w, h, Color(0,0,0,50), 1, Color(0,0,0,100))
  1712.  
  1713.                     --draw.text3D("$500","font_25",w - 5,25/2,Color(255,255,255,255),TEXT_ALIGN_RIGHT,TEXT_ALIGN_CENTER)
  1714.                     --draw.text3D("Test","font_25",w/2,25/2,Color(255,255,255,255),TEXT_ALIGN_CENTER,TEXT_ALIGN_CENTER)
  1715.  
  1716.                     draw.OutlinedRect(0,0, w, h, Color(180,30,30,230), 1, Color(0,0,0,100))
  1717.  
  1718.                     draw.text3D("X", "BFHUD.Size30", w/2, h/6, Color(255,255,255) , TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER )
  1719.                 else
  1720.                     draw.OutlinedRect(0,0, w, h, Color(0,0,0,50), 1, Color(0,0,0,100))
  1721.  
  1722.                     -- DarkRP.formatMoney(CAR_DEALER.CFG.CustomizerPrices.Skin)
  1723.  
  1724.                     if v.type == "paint" then
  1725.                         draw.text3D(DarkRP.formatMoney(CAR_DEALER.CFG.CustomizerPrices.Paint),"font_25",w - 5,25/2,Color(255,255,255,255),TEXT_ALIGN_RIGHT,TEXT_ALIGN_CENTER)
  1726.                         draw.text3D("Paint","font_25",w/2,25/2,v.data.color,TEXT_ALIGN_CENTER,TEXT_ALIGN_CENTER) -- Color(255,255,255,255)
  1727.                     elseif v.type == "skin" then
  1728.                         draw.text3D(DarkRP.formatMoney(CAR_DEALER.CFG.CustomizerPrices.Skin),"font_25",w - 5,25/2,Color(255,255,255,255),TEXT_ALIGN_RIGHT,TEXT_ALIGN_CENTER)
  1729.                         draw.text3D("Skin","font_25",w/2,25/2,Color(255,255,255,255),TEXT_ALIGN_CENTER,TEXT_ALIGN_CENTER) -- Color(255,255,255,255)
  1730.                     elseif v.type == "bodygroups" then
  1731.                         draw.text3D(DarkRP.formatMoney(CAR_DEALER.CFG.CustomizerPrices.BodyGroups),"font_25",w - 5,25/2,Color(255,255,255,255),TEXT_ALIGN_RIGHT,TEXT_ALIGN_CENTER)
  1732.                         if v.data.bodygroups.subgroup then -- v.data.bodygroups.subgroup
  1733.                             draw.text3D( IsValid(vehicle) and ((vehicle:GetBodyGroups()[v.data.bodygroups.id+1].name).." (".. string.StripExtension(vehicle:GetBodyGroups()[v.data.bodygroups.id+1]["submodels"][v.data.bodygroups.num]) ..")") or "Error","font_25",w/2,25/2,Color(255,255,255,255),TEXT_ALIGN_CENTER,TEXT_ALIGN_CENTER) -- Color(255,255,255,255)
  1734.                         else
  1735.                             draw.text3D( IsValid(vehicle) and vehicle:GetBodyGroups()[v.data.bodygroups.id+1].name or "Error","font_25",w/2,25/2,Color(255,255,255,255),TEXT_ALIGN_CENTER,TEXT_ALIGN_CENTER) -- Color(255,255,255,255)
  1736.                         end
  1737.                     elseif v.type == "underglow" then
  1738.                         draw.text3D(DarkRP.formatMoney(CAR_DEALER.CFG.CustomizerPrices.Underglow),"font_25",w - 5,25/2,Color(255,255,255,255),TEXT_ALIGN_RIGHT,TEXT_ALIGN_CENTER)
  1739.                         if v.data.toggled then
  1740.                             draw.text3D("Underglow (Enabled)","font_25",w/2,25/2,Color(255,255,255,255),TEXT_ALIGN_CENTER,TEXT_ALIGN_CENTER)
  1741.                         else
  1742.                             draw.text3D("Underglow (Disabled)","font_25",w/2,25/2,Color(255,255,255,255),TEXT_ALIGN_CENTER,TEXT_ALIGN_CENTER)
  1743.                         end
  1744.                     elseif v.type == "nitro" then
  1745.                         draw.text3D((v.data.nitro == 4) and DarkRP.formatMoney(CAR_DEALER.CFG.NitroRefillCost) or DarkRP.formatMoney(CAR_DEALER.CFG.CustomizerPrices.Nitro[v.data.nitro]),"font_25",w - 5,25/2,Color(255,255,255,255),TEXT_ALIGN_RIGHT,TEXT_ALIGN_CENTER)
  1746.                         if v.data.nitro == 4 then
  1747.                             draw.text3D("Nitro refill","font_25",w/2,25/2,Color(255,255,255,255),TEXT_ALIGN_CENTER,TEXT_ALIGN_CENTER)
  1748.                         elseif v.data.nitro == 0 then
  1749.                             draw.text3D("Remove Nitro","font_25",w/2,25/2,Color(255,255,255,255),TEXT_ALIGN_CENTER,TEXT_ALIGN_CENTER)
  1750.                         else
  1751.                             draw.text3D("Nitro level "..v.data.nitro,"font_25",w/2,25/2,Color(255,255,255,255),TEXT_ALIGN_CENTER,TEXT_ALIGN_CENTER)
  1752.                         end
  1753.                     else
  1754.                         draw.text3D("ERROR","font_25",w/2,25/2,Color(255,255,255,255),TEXT_ALIGN_CENTER,TEXT_ALIGN_CENTER)
  1755.                     end
  1756.                 end
  1757.  
  1758.  
  1759.             end
  1760.             function self.CartItemButton:DoClick()
  1761.            
  1762.                 self:Remove()
  1763.  
  1764.                 --[[
  1765.                 if CAR_DEALER.BG_CART.Items[k].type == "paint" then
  1766.                     print("set CAR_DEALER.ColorTab.HasPurchased to false")
  1767.                     CAR_DEALER.ColorTab.HasPurchased = false
  1768.                 end]]
  1769.  
  1770.  
  1771.                
  1772.  
  1773.                 table.remove( CAR_DEALER.BG_CART.Items, k )
  1774.  
  1775.                 RefreshScroll_Cart()
  1776.  
  1777.             end
  1778.  
  1779.  
  1780.                
  1781.         end
  1782.  
  1783.     end
  1784.     RefreshScroll_Cart()
  1785.  
  1786.  
  1787.     self.CartPurchaseButton = vgui.Create("DButton", self.BG_CART)
  1788.     self.CartPurchaseButton:SetSize(self.BG_CART:GetWide(), 80)
  1789.     self.CartPurchaseButton:SetPos( 0, self.BG_CART:GetTall() - 80 )
  1790.     self.CartPurchaseButton:SetText("")
  1791.  
  1792.     function self.CartPurchaseButton:Paint(w, h)
  1793.         draw.OutlinedRect(0,0, w, h, self:IsHovered() and Color(180,30,30,210) or Color(180,30,30,100), 1, Color(0,0,0,100))
  1794.  
  1795.         draw.text3D("Purchase", "BFHUD.Size50", w/2, h/8, Color(255,255,255) , TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP )
  1796.     end
  1797.     function self.CartPurchaseButton:DoClick()
  1798.         --CAR_DEALER.ScrollPanel_CART:Clear()
  1799.         if table.Count( CAR_DEALER.BG_CART.Items ) < 1 then return end
  1800.         if vehicle == nil then return end
  1801.  
  1802.         for k, v in pairs( CAR_DEALER.BG_CART.Items ) do
  1803.             if v.type == "paint" then
  1804.                 CAR_DEALER.BG.HasPurchasedPaint = true
  1805.             end
  1806.             if v.type == "skin" then
  1807.                 CAR_DEALER.BG.HasPurchasedSkin = true
  1808.             end
  1809.             if v.type == "bodygroups" and !CAR_DEALER.BG.HasPurchasedBodygroup then
  1810.                 CAR_DEALER.BG.HasPurchasedBodygroup = true
  1811.             end
  1812.             if v.type == "underglow" then
  1813.                 CAR_DEALER.BG.HasPurchasedUnderglow = true
  1814.             end
  1815.         end
  1816.            
  1817.  
  1818.         net.Start("RG:CustomizerPurchase")
  1819.             net.WriteEntity( vehicle )
  1820.             net.WriteTable( CAR_DEALER.BG_CART.Items )
  1821.         net.SendToServer()
  1822.  
  1823.         CAR_DEALER.BG_CART.Items = {}
  1824.  
  1825.         RefreshScroll_Cart()
  1826.  
  1827.     end
  1828.    
  1829.  
  1830.  
  1831.  
  1832.  
  1833.     self.BackButton = vgui.Create("DButton", self.BG)
  1834.     self.BackButton:SetSize(SIZES.header - 0, SIZES.header - 20)
  1835.     self.BackButton:SetPos(self.BG:GetWide() - SIZES.header + 0, 50)
  1836.     self.BackButton:SetText("")
  1837.     self.BackButton.Bodygroups = false
  1838.  
  1839.     function self.BackButton:Paint(w, h)
  1840.         draw.OutlinedRect(0,0, w, h, self:IsHovered() and Color(0,0,0,100) or Color(0,0,0,50), 1, Color(0,0,0,100))
  1841.  
  1842.         draw.text3D("<", "BFHUD.Size30", w/2, -2, Color(255,255,255) , TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP )
  1843.     end
  1844.     self.BackButton:SetVisible(false)
  1845.  
  1846.  
  1847.  
  1848.  
  1849.     local categories = {
  1850.         "Paint",
  1851.         "Skin",
  1852.         "BodyGroups",
  1853.         "Underglow",
  1854.         "Nitro"
  1855.         --"Engine"
  1856.     }
  1857.  
  1858.  
  1859.  
  1860.  
  1861.  
  1862.     local function ColorButton()
  1863.    
  1864.         self.ColorTab = vgui.Create( "DPanel", self.BG )
  1865.         self.ColorTab:SetSize( self.BG:GetWide(), self.BG:GetTall() - 31 - SIZES.header )
  1866.         self.ColorTab:SetPos( 0, 30 + SIZES.header )
  1867.         function self.ColorTab:Paint( w, h ) end
  1868.  
  1869.         self.ColorMixer = vgui.Create( "DColorMixer", self.ColorTab )
  1870.         self.ColorMixer:SetPalette( true )
  1871.         self.ColorMixer:SetAlphaBar( false )
  1872.         self.ColorMixer:SetWangs( false )
  1873.         self.ColorMixer:SetColor( IsValid(vehicle) and vehicle:GetColor() or Color( 255, 255, 255 ) )
  1874.         self.ColorMixer:SetSize( self.ColorTab:GetWide() - 20, self.ColorTab:GetWide() - 80 )
  1875.         self.ColorMixer:SetPos( 10, 10 )
  1876.  
  1877.         function self.ColorMixer:ValueChanged( col )
  1878.        
  1879.             if IsValid(vehicle) then
  1880.                 vehicle:SetColor( Color(col.r, col.g, col.b) )
  1881.             end
  1882.  
  1883.         end
  1884.        
  1885.  
  1886.         self.ColorConfirmButton = vgui.Create("DButton", self.ColorTab)
  1887.         self.ColorConfirmButton:SetSize(self.ColorMixer:GetWide(), 50)
  1888.         self.ColorConfirmButton:SetPos(10, self.ColorMixer:GetTall() + 20)
  1889.         self.ColorConfirmButton:SetText("")
  1890.  
  1891.  
  1892.         function self.ColorConfirmButton:Paint(w, h)
  1893.             draw.OutlinedRect(0,0, w, h, self:IsHovered() and Color(CAR_DEALER.ColorMixer:GetColor().r,CAR_DEALER.ColorMixer:GetColor().g,CAR_DEALER.ColorMixer:GetColor().b,100) or Color(CAR_DEALER.ColorMixer:GetColor().r,CAR_DEALER.ColorMixer:GetColor().g,CAR_DEALER.ColorMixer:GetColor().b,50), 1, Color(0,0,0,100))
  1894.  
  1895.             draw.text3D("Add To Cart", "BFHUD.Size30", w/2, h/6, Color(255,255,255) , TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP )
  1896.         end
  1897.  
  1898.         function self.ColorConfirmButton:DoClick()
  1899.        
  1900.             for k, v in pairs( CAR_DEALER.BG_CART.Items ) do
  1901.                 if v.type == "paint" then return end
  1902.             end
  1903.            
  1904.             --CAR_DEALER.ColorTab.HasAdded = true
  1905.             table.insert( CAR_DEALER.BG_CART.Items,
  1906.                 {
  1907.                     type = "paint",
  1908.                     data = {
  1909.                         color = Color(CAR_DEALER.ColorMixer:GetColor().r,CAR_DEALER.ColorMixer:GetColor().g,CAR_DEALER.ColorMixer:GetColor().b)
  1910.                     }
  1911.                 }
  1912.             )
  1913.  
  1914.             RefreshScroll_Cart()
  1915.  
  1916.         end
  1917.        
  1918.  
  1919.     end
  1920.  
  1921.  
  1922.  
  1923.     local function SkinButton()
  1924.    
  1925.         self.SkinTab = vgui.Create( "DPanel", self.BG )
  1926.         self.SkinTab:SetSize( self.BG:GetWide(), self.BG:GetTall() - 31 - SIZES.header )
  1927.         self.SkinTab:SetPos( 0, 30 + SIZES.header )
  1928.         function self.SkinTab:Paint( w, h ) end
  1929.  
  1930.  
  1931.  
  1932.         self.SkinScrollPanel = vgui.Create("DScrollPanel", self.SkinTab)
  1933.         self.SkinScrollPanel:SetSize(self.SkinTab:GetWide(), self.SkinTab:GetTall() - 80 )
  1934.         self.SkinScrollPanel:SetPos(0, 0)
  1935.  
  1936.  
  1937.         local function createScrollBar()
  1938.  
  1939.             local sbar = CAR_DEALER.SkinScrollPanel:GetVBar()
  1940.  
  1941.             function sbar:Paint( w, h )
  1942.                 draw.RoundedBox( 0, 0, 0, w, h, Color( 0, 0, 0, 100 ) )
  1943.             end
  1944.  
  1945.             function sbar.btnUp:Paint( w, h )
  1946.                 draw.OutlinedRect(0, 0, w, h, Color(100,100,100,20), 1,  Color(0,0,0,256))
  1947.                 draw.DrawText("^", "BFHUD.Size20", w/2, 0 ,Color( 0,0,0,256 ), TEXT_ALIGN_CENTER)
  1948.             end
  1949.  
  1950.             function sbar.btnDown:Paint( w, h )
  1951.                 draw.OutlinedRect(0, 0, w, h, Color(100,100,100,20), 1,  Color(0,0,0,256))
  1952.                 draw.DrawText("v", "BFHUD.Size20", w/2, -4 ,Color( 0,0,0,256 ), TEXT_ALIGN_CENTER)
  1953.             end
  1954.  
  1955.             function sbar.btnGrip:Paint( w, h )
  1956.                 draw.OutlinedRect(0, 0, w, h, Color(100,100,100,20), 1,  Color(0,0,0,256))
  1957.             end
  1958.  
  1959.             sbar.btnGrip:SetCursor( "hand" )
  1960.  
  1961.         end
  1962.         createScrollBar()
  1963.  
  1964.  
  1965.         local vtotalskins = IsValid(vehicle) and vehicle:SkinCount() or 8
  1966.         local SkinChooseButton_ = {}
  1967.         for i=1,vtotalskins do
  1968.        
  1969.             SkinChooseButton_[i] = self.SkinScrollPanel:Add("DButton")
  1970.             if vtotalskins > 8 then
  1971.                 SkinChooseButton_[i]:SetSize( self.BG:GetWide() - 14, 50 )
  1972.             else
  1973.                 SkinChooseButton_[i]:SetSize( self.BG:GetWide(), 50 )
  1974.             end
  1975.             SkinChooseButton_[i]:SetPos(0,-50 + (50*i) - (1*i))
  1976.             --[[
  1977.             SkinChooseButton_[i]:SetFont("font_20")
  1978.             SkinChooseButton_[i]:SetTextColor( Color(255,255,255,255) )
  1979.             SkinChooseButton_[i]:SetText( categories[i] )
  1980.             ]]
  1981.             SkinChooseButton_[i]:SetText( "" )
  1982.  
  1983.             SkinChooseButton_[i].Selected = false
  1984.  
  1985.             SkinChooseButton_[i].Paint = function( self, w, h )
  1986.            
  1987.                 draw.OutlinedRect(0,0, w, h, SkinChooseButton_[i].Selected and Color(0,0,0,150) or self:IsHovered() and Color(0,0,0,100) or Color(0,0,0,50), 1, Color(0,0,0,100))
  1988.  
  1989.                 draw.text3D(DarkRP.formatMoney(CAR_DEALER.CFG.CustomizerPrices.Skin),"font_25",w - 5,25/2,Color(255,255,255,255),TEXT_ALIGN_RIGHT,TEXT_ALIGN_CENTER)
  1990.                 draw.text3D("Skin "..i,"font_25",w/2,25/2,Color(255,255,255,255),TEXT_ALIGN_CENTER,TEXT_ALIGN_CENTER)
  1991.  
  1992.             end
  1993.             SkinChooseButton_[i].DoClick = function()
  1994.                 for c=1,vtotalskins do
  1995.                     SkinChooseButton_[c].Selected = false
  1996.                 end
  1997.                
  1998.                 SkinChooseButton_[i].Selected = true
  1999.                 if IsValid(vehicle) then
  2000.  
  2001.                     vehicle:SetSkin( i )
  2002.  
  2003.                     --print( vehicle:GetSkin() )
  2004.  
  2005.                     CAR_DEALER.SkinTab.vskin = i
  2006.  
  2007.                 end
  2008.  
  2009.             end
  2010.  
  2011.         end
  2012.        
  2013.  
  2014.         self.SkinConfirmButton = vgui.Create("DButton", self.SkinTab)
  2015.         self.SkinConfirmButton:SetSize(self.SkinTab:GetWide(), 80)
  2016.         self.SkinConfirmButton:SetPos(0, self.SkinTab:GetTall() - 80)
  2017.         self.SkinConfirmButton:SetText("")
  2018.  
  2019.  
  2020.         function self.SkinConfirmButton:Paint(w, h)
  2021.             draw.OutlinedRect(0,0, w, h, self:IsHovered() and Color(180,30,30,210) or Color(180,30,30,100), 1, Color(0,0,0,100))
  2022.  
  2023.             draw.text3D("Add To Cart", "BFHUD.Size40", w/2, h/4, Color(255,255,255) , TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP )
  2024.         end
  2025.  
  2026.  
  2027.         function self.SkinConfirmButton:DoClick()
  2028.        
  2029.             for k, v in pairs( CAR_DEALER.BG_CART.Items ) do
  2030.                 if v.type == "skin" then return end
  2031.             end
  2032.            
  2033.  
  2034.             table.insert( CAR_DEALER.BG_CART.Items,
  2035.                 {
  2036.                     type = "skin",
  2037.                     data = {
  2038.                         skin = CAR_DEALER.SkinTab.vskin
  2039.                     }
  2040.                 }
  2041.             )
  2042.  
  2043.             RefreshScroll_Cart()
  2044.  
  2045.         end
  2046.  
  2047.  
  2048.  
  2049.     end
  2050.  
  2051.     local newbodygroups = {}
  2052.     if IsValid(vehicle) then
  2053.         for k, v in pairs( vehicle:GetBodyGroups() ) do
  2054.             if v.num > 1 then
  2055.                 table.insert( newbodygroups, v )
  2056.             end
  2057.         end
  2058.     end
  2059.  
  2060.     local function BodygroupsButton()
  2061.    
  2062.         self.BodygroupsTab = vgui.Create( "DPanel", self.BG )
  2063.         self.BodygroupsTab:SetSize( self.BG:GetWide(), self.BG:GetTall() - 31 - SIZES.header )
  2064.         self.BodygroupsTab:SetPos( 0, 30 + SIZES.header )
  2065.         function self.BodygroupsTab:Paint( w, h ) end
  2066.  
  2067.  
  2068.  
  2069.         self.BodygroupScrollPanel = vgui.Create("DScrollPanel", self.BodygroupsTab)
  2070.         self.BodygroupScrollPanel:SetSize(self.BodygroupsTab:GetWide(), self.BodygroupsTab:GetTall() - 80 )
  2071.         self.BodygroupScrollPanel:SetPos(0, 0)
  2072.  
  2073.  
  2074.         local function createScrollBar()
  2075.  
  2076.             local sbar = CAR_DEALER.BodygroupScrollPanel:GetVBar()
  2077.  
  2078.             function sbar:Paint( w, h )
  2079.                 draw.RoundedBox( 0, 0, 0, w, h, Color( 0, 0, 0, 100 ) )
  2080.             end
  2081.  
  2082.             function sbar.btnUp:Paint( w, h )
  2083.                 draw.OutlinedRect(0, 0, w, h, Color(100,100,100,20), 1,  Color(0,0,0,256))
  2084.                 draw.DrawText("^", "BFHUD.Size20", w/2, 0 ,Color( 0,0,0,256 ), TEXT_ALIGN_CENTER)
  2085.             end
  2086.  
  2087.             function sbar.btnDown:Paint( w, h )
  2088.                 draw.OutlinedRect(0, 0, w, h, Color(100,100,100,20), 1,  Color(0,0,0,256))
  2089.                 draw.DrawText("v", "BFHUD.Size20", w/2, -4 ,Color( 0,0,0,256 ), TEXT_ALIGN_CENTER)
  2090.             end
  2091.  
  2092.             function sbar.btnGrip:Paint( w, h )
  2093.                 draw.OutlinedRect(0, 0, w, h, Color(100,100,100,20), 1,  Color(0,0,0,256))
  2094.             end
  2095.  
  2096.             sbar.btnGrip:SetCursor( "hand" )
  2097.  
  2098.         end
  2099.         createScrollBar()
  2100.  
  2101.  
  2102.         local vtotalbodygroups = IsValid(vehicle) and table.Count(newbodygroups) or 0
  2103.         --local tbl_bodygroups = IsValid(vehicle) and vehicle:GetBodyGroups() or {}
  2104.         local BodygroupsChooseButton_ = {}
  2105.         local BodygroupsChooseButtonExtra_ = {}
  2106.  
  2107.         local bodynum = {}
  2108.         local bodynumExtra = {}
  2109.  
  2110.         local function OpenSubCategoryBodygroups( subgroups )
  2111.  
  2112.             --PrintTable(subgroups)
  2113.  
  2114.  
  2115.    
  2116.             self.BodygroupsTabExtra = vgui.Create( "DPanel", self.BG )
  2117.             self.BodygroupsTabExtra:SetSize( self.BG:GetWide(), self.BG:GetTall() - 31 - SIZES.header )
  2118.             self.BodygroupsTabExtra:SetPos( 0, 30 + SIZES.header )
  2119.             function self.BodygroupsTabExtra:Paint( w, h ) end
  2120.  
  2121.  
  2122.  
  2123.             self.BodygroupScrollPanelExtra = vgui.Create("DScrollPanel", self.BodygroupsTabExtra)
  2124.             self.BodygroupScrollPanelExtra:SetSize(self.BodygroupsTabExtra:GetWide(), self.BodygroupsTabExtra:GetTall() - 80 )
  2125.             self.BodygroupScrollPanelExtra:SetPos(0, 0)
  2126.  
  2127.  
  2128.             local function createScrollBar()
  2129.  
  2130.                 local sbar = CAR_DEALER.BodygroupScrollPanelExtra:GetVBar()
  2131.  
  2132.                 function sbar:Paint( w, h )
  2133.                     draw.RoundedBox( 0, 0, 0, w, h, Color( 0, 0, 0, 100 ) )
  2134.                 end
  2135.  
  2136.                 function sbar.btnUp:Paint( w, h )
  2137.                     draw.OutlinedRect(0, 0, w, h, Color(100,100,100,20), 1,  Color(0,0,0,256))
  2138.                     draw.DrawText("^", "BFHUD.Size20", w/2, 0 ,Color( 0,0,0,256 ), TEXT_ALIGN_CENTER)
  2139.                 end
  2140.  
  2141.                 function sbar.btnDown:Paint( w, h )
  2142.                     draw.OutlinedRect(0, 0, w, h, Color(100,100,100,20), 1,  Color(0,0,0,256))
  2143.                     draw.DrawText("v", "BFHUD.Size20", w/2, -4 ,Color( 0,0,0,256 ), TEXT_ALIGN_CENTER)
  2144.                 end
  2145.  
  2146.                 function sbar.btnGrip:Paint( w, h )
  2147.                     draw.OutlinedRect(0, 0, w, h, Color(100,100,100,20), 1,  Color(0,0,0,256))
  2148.                 end
  2149.  
  2150.                 sbar.btnGrip:SetCursor( "hand" )
  2151.  
  2152.             end
  2153.             createScrollBar()
  2154.  
  2155.  
  2156.             for k, v in pairs( subgroups["submodels"] ) do
  2157.  
  2158.                 k = k + 1
  2159.  
  2160.                 BodygroupsChooseButtonExtra_[k] = self.BodygroupScrollPanelExtra:Add("DButton")
  2161.                 if table.Count(subgroups["submodels"]) > 8 then
  2162.                     BodygroupsChooseButtonExtra_[k]:SetSize( self.BG:GetWide() - 14, 50 )
  2163.                 else
  2164.                     BodygroupsChooseButtonExtra_[k]:SetSize( self.BG:GetWide(), 50 )
  2165.                 end
  2166.                 BodygroupsChooseButtonExtra_[k]:SetPos(0,-50 + (50*k) - (1*k))
  2167.                 --[[
  2168.                 BodygroupsChooseButtonExtra_[i]:SetFont("font_20")
  2169.                 BodygroupsChooseButtonExtra_[i]:SetTextColor( Color(255,255,255,255) )
  2170.                 BodygroupsChooseButtonExtra_[i]:SetText( categories[i] )
  2171.                 ]]
  2172.                 BodygroupsChooseButtonExtra_[k]:SetText( "" )
  2173.  
  2174.                 BodygroupsChooseButtonExtra_[k].Selected = false
  2175.  
  2176.                 BodygroupsChooseButtonExtra_[k].BodygroupInfo = subgroups.id
  2177.  
  2178.                 BodygroupsChooseButtonExtra_[k].Paint = function( self, w, h )
  2179.                
  2180.                     draw.OutlinedRect(0,0, w, h, BodygroupsChooseButtonExtra_[k].Selected and Color(0,0,0,150) or self:IsHovered() and Color(0,0,0,100) or Color(0,0,0,50), 1, Color(0,0,0,100))
  2181.  
  2182.  
  2183.                     draw.text3D(DarkRP.formatMoney(CAR_DEALER.CFG.CustomizerPrices.BodyGroups),"font_25",w - 5,25/2,Color(255,255,255,255),TEXT_ALIGN_RIGHT,TEXT_ALIGN_CENTER)
  2184.                     draw.text3D( string.StripExtension(v),"font_25",w/2,25/2,Color(255,255,255,255),TEXT_ALIGN_CENTER,TEXT_ALIGN_CENTER)
  2185.  
  2186.                 end
  2187.                 BodygroupsChooseButtonExtra_[k].DoClick = function()
  2188.  
  2189.                     for c=1,table.Count(subgroups["submodels"]) do
  2190.                         BodygroupsChooseButtonExtra_[c].Selected = false
  2191.                     end
  2192.                        
  2193.                     BodygroupsChooseButtonExtra_[k].Selected = true
  2194.                     if IsValid(vehicle) then
  2195.  
  2196.                         --print("bodygroup numb:",k-1)
  2197.  
  2198.                         vehicle:SetBodygroup( BodygroupsChooseButtonExtra_[k].BodygroupInfo, k-1 )
  2199.  
  2200.                         --print( "yuhayebruv" )
  2201.  
  2202.                         CAR_DEALER.BodygroupsTabExtra.vbodygroup = {id=BodygroupsChooseButtonExtra_[k].BodygroupInfo,num=k-1,subgroup=true}
  2203.                     end
  2204.  
  2205.                 end
  2206.  
  2207.             end
  2208.  
  2209.             self.BodygroupsConfirmButtonExtra = vgui.Create("DButton", self.BodygroupsTabExtra)
  2210.             self.BodygroupsConfirmButtonExtra:SetSize(self.BodygroupsTabExtra:GetWide(), 80)
  2211.             self.BodygroupsConfirmButtonExtra:SetPos(0, self.BodygroupsTabExtra:GetTall() - 80)
  2212.             self.BodygroupsConfirmButtonExtra:SetText("")
  2213.  
  2214.  
  2215.             function self.BodygroupsConfirmButtonExtra:Paint(w, h)
  2216.                 draw.OutlinedRect(0,0, w, h, self:IsHovered() and Color(180,30,30,210) or Color(180,30,30,100), 1, Color(0,0,0,100))
  2217.  
  2218.                 draw.text3D("Add To Cart", "BFHUD.Size40", w/2, h/4, Color(255,255,255) , TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP )
  2219.             end
  2220.  
  2221.  
  2222.             function self.BodygroupsConfirmButtonExtra:DoClick()
  2223.            
  2224.                 for k, v in pairs( CAR_DEALER.BG_CART.Items ) do
  2225.                     if v.type == "bodygroups" then
  2226.                         if v.data.bodygroups.id == CAR_DEALER.BodygroupsTabExtra.vbodygroup.id then
  2227.                             --print("removed tbl val")
  2228.                             table.remove( CAR_DEALER.BG_CART.Items, k )
  2229.                         end
  2230.                     end
  2231.                 end
  2232.                
  2233.  
  2234.                 table.insert( CAR_DEALER.BG_CART.Items,
  2235.                     {
  2236.                         type = "bodygroups",
  2237.                         data = {
  2238.                             bodygroups = CAR_DEALER.BodygroupsTabExtra.vbodygroup
  2239.                         }
  2240.                     }
  2241.                 )
  2242.  
  2243.                 RefreshScroll_Cart()
  2244.  
  2245.             end
  2246.  
  2247.  
  2248.         end
  2249.  
  2250.  
  2251.         for k, v in pairs( newbodygroups ) do
  2252.        
  2253.             BodygroupsChooseButton_[k] = self.BodygroupScrollPanel:Add("DButton")
  2254.             if vtotalbodygroups > 8 then
  2255.                 BodygroupsChooseButton_[k]:SetSize( self.BG:GetWide() - 14, 50 )
  2256.             else
  2257.                 BodygroupsChooseButton_[k]:SetSize( self.BG:GetWide(), 50 )
  2258.             end
  2259.             BodygroupsChooseButton_[k]:SetPos(0,-50 + (50*k) - (1*k))
  2260.             --[[
  2261.             BodygroupsChooseButton_[i]:SetFont("font_20")
  2262.             BodygroupsChooseButton_[i]:SetTextColor( Color(255,255,255,255) )
  2263.             BodygroupsChooseButton_[i]:SetText( categories[i] )
  2264.             ]]
  2265.             BodygroupsChooseButton_[k]:SetText( "" )
  2266.  
  2267.             BodygroupsChooseButton_[k].Selected = false
  2268.  
  2269.             BodygroupsChooseButton_[k].BodygroupInfo = v.id
  2270.  
  2271.             BodygroupsChooseButton_[k].Paint = function( self, w, h )
  2272.            
  2273.                 draw.OutlinedRect(0,0, w, h, BodygroupsChooseButton_[k].Selected and Color(0,0,0,150) or self:IsHovered() and Color(0,0,0,100) or Color(0,0,0,50), 1, Color(0,0,0,100))
  2274.  
  2275.                 local mtxt = DarkRP.formatMoney(CAR_DEALER.CFG.CustomizerPrices.BodyGroups)
  2276.                 local expos = 5
  2277.                 if v.num > 2 then
  2278.                     mtxt = ">"
  2279.                     expos = 20
  2280.                 else
  2281.                     mtxt = DarkRP.formatMoney(CAR_DEALER.CFG.CustomizerPrices.BodyGroups)
  2282.                     expos = 5
  2283.                 end
  2284.  
  2285.                 draw.text3D(mtxt,"font_25",w - expos,25/2,Color(255,255,255,255),TEXT_ALIGN_RIGHT,TEXT_ALIGN_CENTER)
  2286.                 draw.text3D( v.name,"font_25",w/2,25/2,Color(255,255,255,255),TEXT_ALIGN_CENTER,TEXT_ALIGN_CENTER)
  2287.  
  2288.             end
  2289.  
  2290.             bodynum[k] = vehicle:GetBodygroup( BodygroupsChooseButton_[k].BodygroupInfo )
  2291.             BodygroupsChooseButton_[k].DoClick = function()
  2292.  
  2293.                 if v.num > 2 then
  2294.                     CAR_DEALER.BG.Title = v.name
  2295.                     CAR_DEALER.BackButton:SetVisible(true)
  2296.                     CAR_DEALER.BackButton.Bodygroups = true
  2297.                     CAR_DEALER.BodygroupsTab:Remove()
  2298.  
  2299.  
  2300.                     OpenSubCategoryBodygroups( v )
  2301.                     --PrintTable(v)
  2302.                 else
  2303.                     for c=1,vtotalbodygroups do
  2304.                         BodygroupsChooseButton_[c].Selected = false
  2305.                     end
  2306.                    
  2307.                     BodygroupsChooseButton_[k].Selected = true
  2308.                     if IsValid(vehicle) then
  2309.  
  2310.                         --print("bodygroup numb:",bodynum[k])
  2311.                         if bodynum[k] == 0 then
  2312.                             bodynum[k] = 1
  2313.                         elseif bodynum[k] == 1 then
  2314.                             bodynum[k] = 0
  2315.                         end
  2316.  
  2317.                         --print("bodygroup numb:",bodynum[k])
  2318.  
  2319.                         vehicle:SetBodygroup( BodygroupsChooseButton_[k].BodygroupInfo, bodynum[k] )
  2320.  
  2321.                         --print( "yuhayebruv" )
  2322.  
  2323.                         CAR_DEALER.BodygroupsTab.vbodygroup = {id=BodygroupsChooseButton_[k].BodygroupInfo,num=bodynum[k],subgroup=false}
  2324.  
  2325.                     end
  2326.                 end
  2327.  
  2328.             end
  2329.  
  2330.         end
  2331.        
  2332.  
  2333.         self.BodygroupsConfirmButton = vgui.Create("DButton", self.BodygroupsTab)
  2334.         self.BodygroupsConfirmButton:SetSize(self.BodygroupsTab:GetWide(), 80)
  2335.         self.BodygroupsConfirmButton:SetPos(0, self.BodygroupsTab:GetTall() - 80)
  2336.         self.BodygroupsConfirmButton:SetText("")
  2337.  
  2338.  
  2339.         function self.BodygroupsConfirmButton:Paint(w, h)
  2340.             draw.OutlinedRect(0,0, w, h, self:IsHovered() and Color(180,30,30,210) or Color(180,30,30,100), 1, Color(0,0,0,100))
  2341.  
  2342.             draw.text3D("Add To Cart", "BFHUD.Size40", w/2, h/4, Color(255,255,255) , TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP )
  2343.         end
  2344.  
  2345.  
  2346.         function self.BodygroupsConfirmButton:DoClick()
  2347.  
  2348.             for k, v in pairs( CAR_DEALER.BG_CART.Items ) do
  2349.                 if v.type == "bodygroups" then
  2350.                     if v.data.bodygroups.id == CAR_DEALER.BodygroupsTab.vbodygroup.id then
  2351.                         table.remove( CAR_DEALER.BG_CART.Items, k )
  2352.                     end
  2353.                 end
  2354.             end
  2355.  
  2356.             table.insert( CAR_DEALER.BG_CART.Items,
  2357.                 {
  2358.                     type = "bodygroups",
  2359.                     data = {
  2360.                         bodygroups = CAR_DEALER.BodygroupsTab.vbodygroup
  2361.                     }
  2362.                 }
  2363.             )
  2364.  
  2365.             RefreshScroll_Cart()
  2366.  
  2367.         end
  2368.  
  2369.  
  2370.  
  2371.     end
  2372.  
  2373.  
  2374.     local function UnderglowButton()
  2375.  
  2376.         self.BG:SetSize( self.BG:GetWide(), 210 )
  2377.    
  2378.         self.UnderglowTab = vgui.Create( "DPanel", self.BG )
  2379.         self.UnderglowTab:SetSize( self.BG:GetWide(), self.BG:GetTall() - 31 - SIZES.header )
  2380.         self.UnderglowTab:SetPos( 0, 30 + SIZES.header )
  2381.         function self.UnderglowTab:Paint( w, h ) end
  2382.  
  2383.  
  2384.         self.UnderglowToggleRed = vgui.Create( "DPanel", self.UnderglowTab )
  2385.         self.UnderglowToggleRed:SetSize( self.UnderglowTab:GetWide() - 20, 50 ) -- 380
  2386.         self.UnderglowToggleRed:SetPos( 10, 10 )
  2387.         function self.UnderglowToggleRed:Paint( w, h )
  2388.  
  2389.             draw.RoundedBox(0,0,0,w,h,Color(255,50,50,255))
  2390.  
  2391.         end
  2392.  
  2393.         self.UnderglowToggleGreen = vgui.Create( "DPanel", self.UnderglowTab )
  2394.         self.UnderglowToggleGreen:SetSize( self.UnderglowTab:GetWide() - 20, 0 ) -- 380
  2395.         self.UnderglowToggleGreen:SetPos( 10, 10 )
  2396.         function self.UnderglowToggleGreen:Paint( w, h )
  2397.  
  2398.             draw.RoundedBox(0,0,0,w,h,Color(50,255,50,255))
  2399.  
  2400.             draw.RoundedBox(0,0,h-1,w,1,Color(0,0,0,100))
  2401.  
  2402.         end
  2403.  
  2404.         self.UnderglowToggleButton = vgui.Create("DButton", self.UnderglowTab)
  2405.         self.UnderglowToggleButton:SetSize(self.UnderglowTab:GetWide() - 20, 50)
  2406.         self.UnderglowToggleButton:SetPos(10, 10)
  2407.         self.UnderglowToggleButton:SetText("")
  2408.         local getdefaultUGtoggle = false
  2409.         local getdefaultUGcolor = Vector(255,255,255)
  2410.         if IsValid(vehicle) then
  2411.             getdefaultUGtoggle = vehicle:GetNWBool( "RG_VEH_UNDERLIGHTS", false )
  2412.             getdefaultUGcolor = vehicle:GetNWVector( "RG_VEH_UNDERLIGHTS_COLOR", Vector(255,255,255) )
  2413.         end
  2414.         self.UnderglowToggleButton.IsToggled = getdefaultUGtoggle
  2415.         self.UnderglowToggleButton.ButtonText = self.UnderglowToggleButton.IsToggled and "On" or !self.UnderglowToggleButton.IsToggled and "Off"
  2416.         function self.UnderglowToggleButton:Paint(w, h)
  2417.             draw.OutlinedRect(0,0, w, h, self:IsHovered() and Color(255,255,255,35) or Color(255,255,255,0), 1, Color(0,0,0,100))
  2418.  
  2419.             draw.text3D(self.ButtonText, "BFHUD.Size30", w/2, h/6, Color(255,255,255) , TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP )
  2420.         end
  2421.  
  2422.  
  2423.         self.UnderglowMixerBG = vgui.Create( "DPanel", self.UnderglowTab )
  2424.         self.UnderglowMixerBG:SetSize( self.UnderglowTab:GetWide() - 20, 0 ) -- 380
  2425.         self.UnderglowMixerBG:SetPos( 10, 10 + self.UnderglowToggleButton:GetTall() + 10 )
  2426.         function self.UnderglowMixerBG:Paint( w, h ) end
  2427.  
  2428.  
  2429.  
  2430.         self.UnderglowMixer = vgui.Create( "DColorMixer", self.UnderglowMixerBG )
  2431.         self.UnderglowMixer:SetPalette( true )
  2432.         self.UnderglowMixer:SetAlphaBar( false )
  2433.         self.UnderglowMixer:SetWangs( false )
  2434.         self.UnderglowMixer:SetColor( Color( getdefaultUGcolor.x, getdefaultUGcolor.y, getdefaultUGcolor.z ) )
  2435.         self.UnderglowMixer:SetSize( self.UnderglowMixerBG:GetWide(), self.UnderglowMixerBG:GetWide() )
  2436.         self.UnderglowMixer:SetPos( 0, 0 )
  2437.         self.UnderglowMixer.Cooldown = 0.1 + CurTime()
  2438.         function self.UnderglowMixer:ValueChanged( col )
  2439.             if self.Cooldown < CurTime() then
  2440.  
  2441.                 if IsValid(vehicle) then
  2442.                     vehicle:SetNWVector( "RG_VEH_UNDERLIGHTS_COLOR", Vector( col.r, col.g, col.b ) )
  2443.                 end
  2444.                 self.Cooldown = 0.1 + CurTime()
  2445.             end
  2446.  
  2447.         end
  2448.        
  2449.  
  2450.         self.UnderglowConfirmButton = vgui.Create("DButton", self.UnderglowTab)
  2451.         self.UnderglowConfirmButton:SetSize(self.UnderglowTab:GetWide() - 20, 50)
  2452.         --self.UnderglowConfirmButton:SetPos(10, 10 + self.UnderglowToggleButton:GetTall() + 10 + self.UnderglowMixerBG:GetTall() + 10)
  2453.         self.UnderglowConfirmButton:SetPos(10, self.UnderglowTab:GetTall() - 50 - 10)
  2454.         self.UnderglowConfirmButton:SetText("")
  2455.         function self.UnderglowConfirmButton:Paint(w, h)
  2456.             CAR_DEALER.UnderglowConfirmButton:SetPos(10, CAR_DEALER.UnderglowTab:GetTall() - 50 - 10)
  2457.             draw.OutlinedRect(0,0, w, h, self:IsHovered() and Color(255,255,255,100) or Color(255,255,255,50), 1, Color(0,0,0,100))
  2458.             --draw.OutlinedRect(0,0, w, h, self:IsHovered() and Color(CAR_DEALER.UnderglowMixer:GetColor().r,CAR_DEALER.UnderglowMixer:GetColor().g,CAR_DEALER.UnderglowMixer:GetColor().b,100) or Color(CAR_DEALER.UnderglowMixer:GetColor().r,CAR_DEALER.UnderglowMixer:GetColor().g,CAR_DEALER.UnderglowMixer:GetColor().b,50), 1, Color(0,0,0,100))
  2459.  
  2460.             draw.text3D("Add To Cart", "BFHUD.Size30", w/2, h/6, Color(255,255,255) , TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP )
  2461.         end
  2462.  
  2463.  
  2464.         function self.UnderglowToggleButton:DoClick()
  2465.        
  2466.             if !IsValid(CAR_DEALER.UnderglowMixerBG) then return end
  2467.  
  2468.             if CAR_DEALER.UnderglowToggleButton.IsToggled then
  2469.                 self.ButtonText = "Off"
  2470.                 CAR_DEALER.UnderglowToggleGreen:SizeTo(-1,0,0.35,0,-1)
  2471.                 CAR_DEALER.UnderglowToggleButton.IsToggled = false
  2472.  
  2473.                 CAR_DEALER.BG:SizeTo(-1,210,0.35,0,-1)
  2474.                 CAR_DEALER.UnderglowTab:SizeTo(-1,210 - 31 - SIZES.header,0.35,0,-1)
  2475.                 CAR_DEALER.UnderglowMixerBG:SizeTo(-1,0,0.35,0,-1)
  2476.                 CAR_DEALER.UnderglowMixer:SizeTo(-1,0,0.35,0,-1)
  2477.  
  2478.                 if IsValid(vehicle) then
  2479.                     vehicle:SetNWBool( "RG_VEH_UNDERLIGHTS", false )
  2480.                 end
  2481.             else
  2482.  
  2483.                 self.ButtonText = "On"
  2484.                 CAR_DEALER.UnderglowToggleGreen:SizeTo(-1,50,0.35,0,-1)
  2485.  
  2486.                 --self.UnderglowTab:SetSize( self.BG:GetWide(), self.BG:GetTall() - 31 - SIZES.header )
  2487.                 CAR_DEALER.BG:SizeTo(-1,600,0.35,0,-1)
  2488.                 CAR_DEALER.UnderglowTab:SizeTo(-1,600 - 31 - SIZES.header,0.35,0,-1)
  2489.                 CAR_DEALER.UnderglowMixerBG:SizeTo(-1,380,0.35,0,-1)
  2490.                 CAR_DEALER.UnderglowMixer:SizeTo(-1,380,0.35,0,-1)
  2491.                 --CAR_DEALER.UnderglowConfirmButton:MoveTo(10,number posY,number time,number delay=0,number ease=-1,function callback)
  2492.  
  2493.                 CAR_DEALER.UnderglowToggleButton.IsToggled = true
  2494.  
  2495.                 if IsValid(vehicle) then
  2496.                     vehicle:SetNWBool( "RG_VEH_UNDERLIGHTS", true )
  2497.                 end
  2498.             end
  2499.  
  2500.         end
  2501.  
  2502.         if vehicle:GetNWBool( "RG_VEH_UNDERLIGHTS", false ) then
  2503.             self.UnderglowToggleButton.ButtonText = "On"
  2504.             self.UnderglowToggleGreen:SizeTo(-1,50,0.35,0,-1)
  2505.  
  2506.             --self.UnderglowTab:SetSize( self.BG:GetWide(), self.BG:GetTall() - 31 - SIZES.header )
  2507.             self.BG:SizeTo(-1,600,0.35,0,-1)
  2508.             self.UnderglowTab:SizeTo(-1,600 - 31 - SIZES.header,0.35,0,-1)
  2509.             self.UnderglowMixerBG:SizeTo(-1,380,0.35,0,-1)
  2510.             self.UnderglowMixer:SizeTo(-1,380,0.35,0,-1)
  2511.             --self.UnderglowConfirmButton:MoveTo(10,number posY,number time,number delay=0,number ease=-1,function callback)
  2512.  
  2513.             self.UnderglowToggleButton.IsToggled = true
  2514.         end
  2515.        
  2516.         function self.UnderglowConfirmButton:DoClick()
  2517.            
  2518.  
  2519.             for k, v in pairs( CAR_DEALER.BG_CART.Items ) do
  2520.                 if v.type == "underglow" then return end
  2521.             end
  2522.             local edittedvector = Vector(255,255,255)
  2523.             if CAR_DEALER.UnderglowToggleButton.IsToggled then
  2524.                 edittedvector = Vector(CAR_DEALER.UnderglowMixer:GetColor().r,CAR_DEALER.UnderglowMixer:GetColor().g,CAR_DEALER.UnderglowMixer:GetColor().b)
  2525.             end
  2526.            
  2527.             --CAR_DEALER.UnderglowTab.HasAdded = true
  2528.             table.insert( CAR_DEALER.BG_CART.Items,
  2529.                 {
  2530.                     type = "underglow",
  2531.                     data = {
  2532.                         toggled = CAR_DEALER.UnderglowToggleButton.IsToggled,
  2533.                         underglowcolor = edittedvector
  2534.                     }
  2535.                 }
  2536.             )
  2537.  
  2538.             RefreshScroll_Cart()
  2539.  
  2540.         end
  2541.        
  2542.  
  2543.     end
  2544.  
  2545.  
  2546.  
  2547.  
  2548.  
  2549.     local function NitroButton()
  2550.    
  2551.         self.NitroTab = vgui.Create( "DPanel", self.BG )
  2552.         self.NitroTab:SetSize( self.BG:GetWide(), self.BG:GetTall() - 31 - SIZES.header )
  2553.         self.NitroTab:SetPos( 0, 30 + SIZES.header )
  2554.         self.NitroTab.level = vehicle:GetNWFloat("RG_VEH_NITRO",0)
  2555.         function self.NitroTab:Paint( w, h ) end
  2556.  
  2557.  
  2558.  
  2559.         self.NitroScrollPanel = vgui.Create("DScrollPanel", self.NitroTab)
  2560.         self.NitroScrollPanel:SetSize(self.NitroTab:GetWide(), self.NitroTab:GetTall() - 80 )
  2561.         self.NitroScrollPanel:SetPos(0, 0)
  2562.  
  2563.  
  2564.         local function createScrollBar()
  2565.  
  2566.             local sbar = CAR_DEALER.NitroScrollPanel:GetVBar()
  2567.  
  2568.             function sbar:Paint( w, h )
  2569.                 draw.RoundedBox( 0, 0, 0, w, h, Color( 0, 0, 0, 100 ) )
  2570.             end
  2571.  
  2572.             function sbar.btnUp:Paint( w, h )
  2573.                 draw.OutlinedRect(0, 0, w, h, Color(100,100,100,20), 1,  Color(0,0,0,256))
  2574.                 draw.DrawText("^", "BFHUD.Size20", w/2, 0 ,Color( 0,0,0,256 ), TEXT_ALIGN_CENTER)
  2575.             end
  2576.  
  2577.             function sbar.btnDown:Paint( w, h )
  2578.                 draw.OutlinedRect(0, 0, w, h, Color(100,100,100,20), 1,  Color(0,0,0,256))
  2579.                 draw.DrawText("v", "BFHUD.Size20", w/2, -4 ,Color( 0,0,0,256 ), TEXT_ALIGN_CENTER)
  2580.             end
  2581.  
  2582.             function sbar.btnGrip:Paint( w, h )
  2583.                 draw.OutlinedRect(0, 0, w, h, Color(100,100,100,20), 1,  Color(0,0,0,256))
  2584.             end
  2585.  
  2586.             sbar.btnGrip:SetCursor( "hand" )
  2587.  
  2588.         end
  2589.         createScrollBar()
  2590.  
  2591.  
  2592.         local vtotalnitros = IsValid(vehicle) and 5
  2593.         local NitroChooseButton_ = {}
  2594.         for i=1,vtotalnitros do
  2595.        
  2596.             NitroChooseButton_[i] = self.NitroScrollPanel:Add("DButton")
  2597.             NitroChooseButton_[i]:SetSize( self.BG:GetWide(), 50 )
  2598.             NitroChooseButton_[i]:SetPos(0,-50 + (50*i) - (1*i))
  2599.             --[[
  2600.             NitroChooseButton_[i]:SetFont("font_20")
  2601.             NitroChooseButton_[i]:SetTextColor( Color(255,255,255,255) )
  2602.             NitroChooseButton_[i]:SetText( categories[i] )
  2603.             ]]
  2604.             NitroChooseButton_[i]:SetText( "" )
  2605.  
  2606.             NitroChooseButton_[i].Selected = false
  2607.  
  2608.             NitroChooseButton_[i].Paint = function( self, w, h )
  2609.            
  2610.                 draw.OutlinedRect(0,0, w, h, NitroChooseButton_[i].Selected and Color(0,0,0,150) or self:IsHovered() and Color(0,0,0,100) or Color(0,0,0,50), 1, Color(0,0,0,100))
  2611.  
  2612.                 if i == 5 then
  2613.                     draw.text3D("Refill Nitro","font_25",w/2,25/2,Color(255,255,255,255),TEXT_ALIGN_CENTER,TEXT_ALIGN_CENTER)
  2614.                     draw.text3D( DarkRP.formatMoney(CAR_DEALER.CFG.NitroRefillCost),"font_25",w - 5,25/2,Color(255,255,255,255),TEXT_ALIGN_RIGHT,TEXT_ALIGN_CENTER)
  2615.                 elseif i == 1 then
  2616.                     draw.text3D("Remove Nitro","font_25",w/2,25/2,Color(255,255,255,255),TEXT_ALIGN_CENTER,TEXT_ALIGN_CENTER)
  2617.                     draw.text3D( DarkRP.formatMoney(CAR_DEALER.CFG.CustomizerPrices.Nitro[i]),"font_25",w - 5,25/2,Color(255,255,255,255),TEXT_ALIGN_RIGHT,TEXT_ALIGN_CENTER)
  2618.                 else
  2619.                     draw.text3D("Nitro level "..i-1,"font_25",w/2,25/2,Color(255,255,255,255),TEXT_ALIGN_CENTER,TEXT_ALIGN_CENTER)
  2620.                     draw.text3D( DarkRP.formatMoney(CAR_DEALER.CFG.CustomizerPrices.Nitro[i]),"font_25",w - 5,25/2,Color(255,255,255,255),TEXT_ALIGN_RIGHT,TEXT_ALIGN_CENTER)
  2621.                 end
  2622.                
  2623.  
  2624.             end
  2625.             NitroChooseButton_[i].DoClick = function()
  2626.                 for c=1,vtotalnitros do
  2627.                     NitroChooseButton_[c].Selected = false
  2628.                 end
  2629.                
  2630.                 NitroChooseButton_[i].Selected = true
  2631.                 if IsValid(vehicle) then
  2632.  
  2633.                     CAR_DEALER.NitroTab.level = i-1
  2634.  
  2635.                 end
  2636.  
  2637.             end
  2638.  
  2639.         end
  2640.        
  2641.  
  2642.         self.NitroConfirmButton = vgui.Create("DButton", self.NitroTab)
  2643.         self.NitroConfirmButton:SetSize(self.NitroTab:GetWide(), 80)
  2644.         self.NitroConfirmButton:SetPos(0, self.NitroTab:GetTall() - 80)
  2645.         self.NitroConfirmButton:SetText("")
  2646.  
  2647.  
  2648.         function self.NitroConfirmButton:Paint(w, h)
  2649.             draw.OutlinedRect(0,0, w, h, self:IsHovered() and Color(180,30,30,210) or Color(180,30,30,100), 1, Color(0,0,0,100))
  2650.  
  2651.             draw.text3D("Add To Cart", "BFHUD.Size40", w/2, h/4, Color(255,255,255) , TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP )
  2652.         end
  2653.  
  2654.  
  2655.         function self.NitroConfirmButton:DoClick()
  2656.        
  2657.             for k, v in pairs( CAR_DEALER.BG_CART.Items ) do
  2658.                 if v.type == "nitro" then return end
  2659.             end
  2660.            
  2661.  
  2662.             table.insert( CAR_DEALER.BG_CART.Items,
  2663.                 {
  2664.                     type = "nitro",
  2665.                     data = {
  2666.                         nitro = CAR_DEALER.NitroTab.level
  2667.                     }
  2668.                 }
  2669.             )
  2670.  
  2671.             RefreshScroll_Cart()
  2672.  
  2673.         end
  2674.  
  2675.  
  2676.  
  2677.     end
  2678.  
  2679.  
  2680.  
  2681.  
  2682.  
  2683.  
  2684.  
  2685.     local function ButtonDashboard()
  2686.  
  2687.         if not CAR_DEALER.BG:IsValid() then return end
  2688.         if IsValid(CAR_DEALER.DashboardScrollPanel) then CAR_DEALER.DashboardScrollPanel:Remove() end
  2689.  
  2690.         self.DashboardScrollPanel = vgui.Create("DScrollPanel", self.BG)
  2691.         self.DashboardScrollPanel:SetSize(self.BG:GetWide(), self.BG:GetTall() - 31 - SIZES.header )
  2692.         self.DashboardScrollPanel:SetPos(0, 30 + SIZES.header)
  2693.  
  2694.  
  2695.         for i=1,#categories do
  2696.  
  2697.             self.DashboardCategoryButton = self.DashboardScrollPanel:Add("DButton")
  2698.             self.DashboardCategoryButton:SetSize( self.BG:GetWide(), 50 )
  2699.             self.DashboardCategoryButton:SetPos(0,-50 + (50*i) - (1*i))
  2700.             --[[
  2701.             self.DashboardCategoryButton:SetFont("font_20")
  2702.             self.DashboardCategoryButton:SetTextColor( Color(255,255,255,255) )
  2703.             self.DashboardCategoryButton:SetText( categories[i] )
  2704.             ]]
  2705.             self.DashboardCategoryButton:SetText( "" )
  2706.  
  2707.             function self.DashboardCategoryButton:Paint( w, h )
  2708.            
  2709.                 draw.OutlinedRect(0,0, w, h, self:IsHovered() and Color(0,0,0,100) or Color(0,0,0,50), 1, Color(0,0,0,100))
  2710.  
  2711.                 draw.text3D(">","font_25",w - 20,25/2,Color(255,255,255,255),TEXT_ALIGN_CENTER,TEXT_ALIGN_CENTER)
  2712.                 draw.text3D(categories[i],"font_25",w/2,25/2,Color(255,255,255,255),TEXT_ALIGN_CENTER,TEXT_ALIGN_CENTER)
  2713.  
  2714.             end
  2715.             function self.DashboardCategoryButton:DoClick()
  2716.            
  2717.                 CAR_DEALER.BG.Title = categories[i]
  2718.                 CAR_DEALER.BackButton:SetVisible(true)
  2719.                 CAR_DEALER.DashboardScrollPanel:Remove()
  2720.  
  2721.                 if categories[i] == "Paint" then
  2722.                     ColorButton()
  2723.                 elseif categories[i] == "Skin" then
  2724.                     SkinButton()
  2725.                 elseif categories[i] == "BodyGroups" then
  2726.                     BodygroupsButton()
  2727.                 elseif categories[i] == "Underglow" then
  2728.                     UnderglowButton()
  2729.                 elseif categories[i] == "Nitro" then
  2730.                     NitroButton()
  2731.                 end
  2732.  
  2733.             end
  2734.            
  2735.            
  2736.         end
  2737.  
  2738.     end
  2739.     ButtonDashboard()
  2740.  
  2741.     function self.BackButton:DoClick()
  2742.         if self.Bodygroups then
  2743.             BodygroupsButton()
  2744.             CAR_DEALER.BG.Title = "BodyGroups"
  2745.             CAR_DEALER.BodygroupsTabExtra:Remove()
  2746.             self.Bodygroups = false
  2747.             --self:SetVisible(false)
  2748.         else
  2749.             CAR_DEALER.BG.Title = ""
  2750.             self:SetVisible(false)
  2751.             if IsValid(CAR_DEALER.ColorTab) then
  2752.                 CAR_DEALER.ColorTab:SetVisible(false)
  2753.             end
  2754.             if IsValid(CAR_DEALER.SkinTab) then
  2755.                 CAR_DEALER.SkinTab:SetVisible(false)
  2756.             end
  2757.             if IsValid(CAR_DEALER.BodygroupsTab) then
  2758.                 CAR_DEALER.BodygroupsTab:Remove()
  2759.             end
  2760.             if IsValid(CAR_DEALER.BodygroupsTab) then
  2761.                 CAR_DEALER.BodygroupsTab:Remove()
  2762.             end
  2763.             if IsValid(CAR_DEALER.UnderglowTab) then
  2764.                 CAR_DEALER.BG:SetSize(400, 600)
  2765.                 CAR_DEALER.UnderglowTab:Remove()
  2766.             end
  2767.             if IsValid(CAR_DEALER.NitroTab) then
  2768.                 CAR_DEALER.NitroTab:Remove()
  2769.             end
  2770.             ButtonDashboard()
  2771.         end
  2772.        
  2773.     end
  2774.  
  2775.  
  2776.  
  2777.    
  2778.  
  2779.  
  2780.  
  2781.     --[[
  2782.     timer.Simple(30,function()
  2783.         if self.BG:IsValid() then
  2784.             self.BG:Remove()
  2785.         end
  2786.         if self.BG_CART:IsValid() then
  2787.             self.BG_CART:Remove()
  2788.         end
  2789.     end)]]
  2790. end
  2791.  
  2792. CAR_DEALER:OpenVehicleCustomizer(nil)
  2793.  
  2794.  
  2795.  
  2796. hook.Add( "KeyPress", "RGCarDealerToggleCursor", function( ply, key )
  2797.     if( key == IN_JUMP
  2798.         and LocalPlayer().RGCursorStatus
  2799.         and ply == LocalPlayer()
  2800.         and LocalPlayer().RGCursorCheck < CurTime() ) then
  2801.         LocalPlayer().RGCursor = !LocalPlayer().RGCursor
  2802.         gui.EnableScreenClicker( LocalPlayer().RGCursor )
  2803.         LocalPlayer().RGCursorCheck = CurTime() + 0.25
  2804.     end
  2805. end )
  2806.  
  2807.  
  2808.  
  2809. g_lightVehicles = g_lightVehicles or {}
  2810. hook.Add( "OnEntityCreated", "RGCarDealerRegisterUnderlights", function( ent )
  2811.     if not IsValid( ent ) then return end
  2812.     if not ent:IsVehicle() then return end
  2813.  
  2814.     --table.insert( lightVehicles, ent )
  2815.     g_lightVehicles[ent] = true
  2816.     ent:SetNWBool( "RG_VEH_TOGGLEUNDERGLOW", true )
  2817. end )
  2818.  
  2819.  
  2820. local lastGlowPress = 0
  2821. hook.Add( "Tick", "RGCarDealerToggleUnderLights", function()
  2822.     if input.IsKeyDown( CAR_DEALER.CFG.ToggleUnderglowKey ) then
  2823.         if not IsValid( LocalPlayer():GetVehicle() ) then return end
  2824.         if LocalPlayer():GetVehicle():GetClass() ~= "prop_vehicle_jeep" then return end
  2825.         if vgui.CursorVisible() then return end
  2826.        
  2827.         if lastGlowPress > CurTime() then return end
  2828.         lastGlowPress = CurTime() + 0.5
  2829.  
  2830.         RunConsoleCommand( "RG_VEH_TOGGLEUNDERGLOW" )
  2831.     end
  2832. end )
  2833.  
  2834. hook.Add( "Think", "RGCarDealerUnderLights", function()
  2835.     local curTime, lightDieTime = CurTime(), FrameTime() *6
  2836.     local lightDecay, lightBrightness, lightSize = 1000 *lightDieTime, 6, 96
  2837.  
  2838.     for veh, k in pairs( g_lightVehicles ) do
  2839.         if IsValid(veh) and veh:IsVehicle() then
  2840.             if veh:GetNWBool( "RG_VEH_UNDERLIGHTS", false ) and isvector(veh:GetNWVector( "RG_VEH_UNDERLIGHTS_COLOR" )) then
  2841.  
  2842.                 if !veh:GetNWBool( "RG_VEH_TOGGLEUNDERGLOW" ) then continue end
  2843.            
  2844.                 if veh:GetPos():DistToSqr( LocalPlayer():GetPos() ) > 1500^2 then continue end
  2845.  
  2846.  
  2847.                 veh:DrawShadow( false )
  2848.                 veh:DestroyShadow()
  2849.  
  2850.                 local up = veh:GetUp()
  2851.                 local right = veh:GetRight()
  2852.                 if( !veh.RGUnderglowData ) then
  2853.                     local center = veh:OBBCenter()
  2854.                     local mins = veh:OBBMins()
  2855.                     local maxs = veh:OBBMaxs()
  2856.  
  2857.                     veh.RGUnderglowData = {
  2858.                         center = center,
  2859.                         sizeCenter = maxs.x,
  2860.  
  2861.                         distToFront = center:Distance( Vector( mins.x, mins.y , center.z ) / 2 ),
  2862.                         distToBack = center:Distance( Vector( maxs.x, maxs.y, center.z ) / 2 ),
  2863.                         distToUnder = center:Distance( Vector( 0, 0, mins.z ) ) / 2,
  2864.                     }
  2865.  
  2866.                     veh.RGUnderglowFunc = {
  2867.                         function()
  2868.                             return veh:LocalToWorld( veh.RGUnderglowData.center ) + up * -veh.RGUnderglowData.distToUnder
  2869.                         end,
  2870.  
  2871.                         function()
  2872.                             return veh:LocalToWorld( veh.RGUnderglowData.center ) + veh:GetRight() * -( veh.RGUnderglowData.distToFront - 20 ) + veh:GetUp() * -veh.RGUnderglowData.distToUnder
  2873.                         end,
  2874.  
  2875.                         function()
  2876.                             return veh:LocalToWorld( veh.RGUnderglowData.center ) + veh:GetRight() * -( veh.RGUnderglowData.distToFront - 25 ) + veh:GetUp() * -veh.RGUnderglowData.distToUnder
  2877.                         end,
  2878.  
  2879.                         function()
  2880.                             return veh:LocalToWorld( veh.RGUnderglowData.center ) + veh:GetRight() * ( veh.RGUnderglowData.distToBack - 10 ) + veh:GetUp() * veh.RGUnderglowData.distToUnder
  2881.                         end,
  2882.  
  2883.                         function()
  2884.                             return veh:LocalToWorld( veh.RGUnderglowData.center ) + veh:GetRight() * ( veh.RGUnderglowData.distToBack - 15 ) + veh:GetUp() * -veh.RGUnderglowData.distToUnder
  2885.                         end,
  2886.                     }
  2887.                 end
  2888.  
  2889.                 local color = veh:GetNWVector( "RG_VEH_UNDERLIGHTS_COLOR", Vector( 255, 255, 255, 255 ) ) -- Vector( 255, 0, 0, 255 )
  2890.  
  2891.  
  2892.                 if( type( color ) != "Vector" ) then return end
  2893.  
  2894.                 color = Vector( color.r, color.g, color.b, 255 )
  2895.  
  2896.                 for i, v in pairs( veh.RGUnderglowFunc ) do
  2897.                     local light = DynamicLight( veh:EntIndex() + i )
  2898.                     light.pos = v()
  2899.                     light.nomodel = true
  2900.                     light.brightness = lightBrightness
  2901.                     light.Decay = 1000
  2902.                     light.Size = lightSize
  2903.                     light.DieTime = curTime +lightDieTime
  2904.  
  2905.                     light.r, light.g, light.b = color.x, color.y, color.z
  2906.                 end
  2907.             end
  2908.         end
  2909.     end
  2910. end )
  2911.  
  2912.  
  2913. local blur = Material("pp/blurscreen")
  2914. function drawBlurRect(x, y, w, h, layers, density, alpha)
  2915.     surface.SetDrawColor(255, 255, 255, alpha)
  2916.     surface.SetMaterial(blur)
  2917.     for i = 1, 3 do
  2918.         blur:SetFloat("$blur", (i / layers) * density)
  2919.         blur:Recompute()
  2920.         render.UpdateScreenEffectTexture()
  2921.         render.SetScissorRect(x, y, x+w, y+h, true)
  2922.             surface.DrawTexturedRect(0 * -1, 0 * -1, ScrW(), ScrH())
  2923.         render.SetScissorRect(0, 0, 0, 0, false)
  2924.     end
  2925. end
  2926.  
  2927. local maxNitro                      = 80
  2928. local lastNitro                         = 150
  2929. local NitroAprog                        = 0
  2930. local NitroProg
  2931. hook.Add( "HUDPaint", "RG_VEHICLE_NITRO_DRAW", function()
  2932.  
  2933.     if not IsValid(LocalPlayer():GetVehicle()) then return end
  2934.     print(LocalPlayer():GetVehicle():GetNWFloat("RG_VEH_NITRO",0))
  2935.     if LocalPlayer():GetVehicle():GetNWFloat("RG_VEH_NITRO",0) < 1 then return end
  2936.  
  2937.     if LocalPlayer():GetVehicle():RG_CAR_GETNITRO() < 1 then return end
  2938.     --print("RG_CAR_GETNITRO",LocalPlayer():Health())
  2939.  
  2940.     local width, height = 400, 100
  2941.     local width2, height2 = 350, 30
  2942.  
  2943.     drawBlurRect( ScrW()/2 - width/2, ScrH() - height - 20, width, height, 3, 3, 255 )
  2944.  
  2945.     draw.OutlinedRect( ScrW()/2 - width/2, ScrH() - height - 20, width, height, Color(0,0,0,100), 1, Color(0,0,0,200))
  2946.  
  2947.     draw.text3D("Nitro Bar", "BFHUD.Size40", ScrW()/2, ScrH() - height - 20, Color(255,255,255) , TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP )
  2948.  
  2949.     maxNitro = LocalPlayer():GetVehicle():RG_CAR_GETNITROLEVEL()*10
  2950.  
  2951.     draw.OutlinedRect( ScrW()/2 - width2/2, ScrH() - height2 - 20 - 20, width2, height2, Color(0,0,0,100), 1, Color(0,0,0,200))
  2952.  
  2953.     NitroProg = LocalPlayer():GetVehicle():RG_CAR_GETNITRO() / maxNitro
  2954.     lastNitro = LocalPlayer():GetVehicle():RG_CAR_GETNITRO()
  2955.  
  2956.     NitroAprog = Lerp(FrameTime()*10, NitroAprog, NitroProg)
  2957.  
  2958.     draw.RoundedBox(0,ScrW()/2 - width2/2 + 1, ScrH() - height2 - 20 - 20 + 1, (width2 - 2)*(math.Clamp(NitroAprog or 0, 0, 1)), height2 - 2,Color(255,50,50,255))
  2959.  
  2960.  
  2961. end )
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top