Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- include('shared.lua')
- local CurTime = CurTime
- local render = render
- function ENT:Initialize()
- self.RTID = "scooter_retro_" .. self:EntIndex()
- self.RT = GetRenderTarget(self.RTID, 512, 512, false)
- self.RTMat = CreateMaterial(self.RTID, "UnlitGeneric",{
- ['$basetexture'] = self.RT,
- ['$ignorez'] = 0,
- ['$vertexcolor'] = 1,
- ['$nolod'] = 1,
- })
- self.NextPreRender = 0
- self.DrawScreen = false
- self.TVOn = true
- end
- local DrawLP = false
- hook.Add("ShouldDrawLocalPlayer", "Scooter_retro", function()
- if DrawLP then
- return DrawLP
- end
- end)
- local CCTV_PreRenderCD = CurTime()
- hook.Add("PreRender", "Scooter_retro_l", function()
- local CTime = CurTime()
- if CCTV_PreRenderCD < CTime then
- CCTV_PreRenderCD = CTime + 0.03
- local Player = LocalPlayer()
- for k, v in pairs(ents.FindByClass("retro_l")) do
- local Distance = Player:GetPos():Distance(v:GetPos())
- local pos1, ang1 = LocalToWorld( Vector(0,0,0), Angle(0,180,0), v:GetPos(), v:GetAngles() )
- if Distance < 60 and Player:InVehicle() then
- v.DrawScreen = true
- if v.NextPreRender < CTime then
- v.NextPreRender = CurTime() + (0)
- local RT = render.GetRenderTarget()
- local OldW, OldH = ScrW(), ScrH()
- render.SetRenderTarget(v.RT)
- render.SetViewPort(0, 0, 512, 512)
- render.ClearDepth()
- render.Clear(0, 0, 0, 0)
- --cam.Start3D(Player:GetPos(), Player:EyeAngles(), 60)
- cam.Start2D()
- DrawLP = true
- render.RenderView( {
- origin = pos1,
- angles = ang1,
- x = 0,
- y = 0,
- w = ScrW(),
- h = ScrH(),
- fov = 75,
- })
- DrawLP = false
- cam.End2D()
- render.SetRenderTarget(RT)
- render.SetViewPort(0, 0, OldW, OldH)
- end
- else
- v.DrawScreen = false
- end
- end
- end
- end)
- local ScreenTbl = {
- ["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)},
- }
- function ENT:Draw()
- self:DrawModel()
- if self.DrawScreen then
- local STbl = ScreenTbl[self:GetModel()]
- if STbl then
- if self.TVOn then
- self.RTMat:SetTexture('$basetexture', self.RT)
- self:SetMaterial(self.RTMat)
- cam.Start3D2D(self:LocalToWorld(STbl.Pos), self:LocalToWorldAngles(STbl.Ang), 0.033)
- surface.SetDrawColor(255, 255, 255)
- self.RTMat:SetTexture('$basetexture', self.RT)
- surface.SetMaterial(self.RTMat)
- surface.DrawTexturedRect(0,0,STbl.H, STbl.W)
- cam.End3D2D()
- end
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement