Advertisement
Guest User

Untitled

a guest
Mar 19th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.60 KB | None | 0 0
  1. include('shared.lua')
  2.  
  3. local CurTime = CurTime
  4. local render = render
  5.  
  6. function ENT:Initialize()
  7.     self.RTID = "scooter_retro_" .. self:EntIndex()
  8.     self.RT = GetRenderTarget(self.RTID, 512, 512, false)
  9.     self.RTMat = CreateMaterial(self.RTID, "UnlitGeneric",{
  10.         ['$basetexture'] = self.RT,
  11.         ['$ignorez'] = 0,
  12.         ['$vertexcolor'] = 1,
  13.         ['$nolod'] = 1,
  14.     })
  15.     self.NextPreRender = 0
  16.     self.DrawScreen = false
  17.     self.TVOn = true
  18. end
  19.  
  20. local DrawLP = false
  21. hook.Add("ShouldDrawLocalPlayer", "Scooter_retro", function()
  22.     if DrawLP then
  23.         return DrawLP
  24.     end
  25. end)
  26.  
  27. local CCTV_PreRenderCD = CurTime()
  28. hook.Add("PreRender", "Scooter_retro_l", function()
  29.     local CTime = CurTime()
  30.     if CCTV_PreRenderCD < CTime then
  31.         CCTV_PreRenderCD = CTime + 0.03
  32.         local Player = LocalPlayer()
  33.        
  34.         for k, v in pairs(ents.FindByClass("retro_l")) do
  35.             local Distance = Player:GetPos():Distance(v:GetPos())
  36.             local pos1, ang1 = LocalToWorld( Vector(0,0,0), Angle(0,180,0), v:GetPos(), v:GetAngles() )
  37.             if Distance < 60 and Player:InVehicle() then
  38.                 v.DrawScreen = true
  39.                 if v.NextPreRender < CTime then
  40.                     v.NextPreRender = CurTime() + (0)      
  41.                             local RT = render.GetRenderTarget()
  42.                             local OldW, OldH = ScrW(), ScrH()
  43.                             render.SetRenderTarget(v.RT)
  44.                             render.SetViewPort(0, 0, 512, 512)
  45.  
  46.                             render.ClearDepth()
  47.                             render.Clear(0, 0, 0, 0)
  48.                             --cam.Start3D(Player:GetPos(), Player:EyeAngles(), 60)
  49.                             cam.Start2D()
  50.                                 DrawLP = true
  51.                                 render.RenderView( {
  52.                                     origin = pos1,
  53.                                     angles = ang1,
  54.                                     x = 0,
  55.                                     y = 0,
  56.                                     w = ScrW(),
  57.                                     h = ScrH(),
  58.                                     fov = 75,
  59.                                 })
  60.                                 DrawLP = false
  61.                             cam.End2D()
  62.  
  63.                             render.SetRenderTarget(RT)
  64.                             render.SetViewPort(0, 0, OldW, OldH)
  65.                 end
  66.             else
  67.                 v.DrawScreen = false
  68.             end
  69.         end
  70.     end
  71. end)
  72.  
  73. local ScreenTbl = {
  74. ["models/retro_l/retro_l.mdl"] = {W = 90, H = 220, Pos = Vector(-4.6,-6.2,4), Ang = Angle(9,270+32,90-11), StatusPos = Vector(5.5,-2,2), StatusAng = Angle(0,90,90), TextPos = Vector(5.5,-9.3,6.4)},
  75. }
  76. function ENT:Draw()
  77.     self:DrawModel()
  78.  
  79.     if self.DrawScreen then
  80.         local STbl = ScreenTbl[self:GetModel()]
  81.         if STbl then
  82.             if self.TVOn then
  83.                 self.RTMat:SetTexture('$basetexture', self.RT)
  84.                 self:SetMaterial(self.RTMat)
  85.                 cam.Start3D2D(self:LocalToWorld(STbl.Pos), self:LocalToWorldAngles(STbl.Ang), 0.033)
  86.                     surface.SetDrawColor(255, 255, 255)
  87.                         self.RTMat:SetTexture('$basetexture', self.RT)
  88.                         surface.SetMaterial(self.RTMat)
  89.                     surface.DrawTexturedRect(0,0,STbl.H, STbl.W)
  90.                 cam.End3D2D()
  91.             end
  92.         end
  93.     end
  94. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement