include('shared.lua') local matScreen = Material( "models/scroller2/screen" ) -- GetRenderTarget returns the texture if it exists, or creates it if it doesn't local RTTexture = GetRenderTarget( "scrollx", 256, 256 ) surface.CreateFont( "coolvetica", 24, 500, false, false, "scrollt" ) local function DrawScrollingText( text, y, texwide ) surface.SetDrawColor( 0, 0, 0, 255 ) surface.DrawRect( 0, 0, 1024, 1024) w,h=surface.GetTextSize(text) h = h + 1024 local x = math.fmod( CurTime()*150, w ) * -1; while ( x < texwide ) do surface.SetTextColor( 255, 255, 255, 255 ) surface.SetTextPos( x, y ) surface.DrawText( text ) x = x + w end end function ENT:Draw() self.Entity:DrawModel() if ( LocalPlayer():EyePos():Distance(self.Entity:GetPos() )< 512 ) then local NewRT = RTTexture matScreen:SetMaterialTexture( "$basetexture", NewRT ) local OldRT = render.GetRenderTarget(); render.SetRenderTarget( NewRT ) render.SetViewPort( 0, 0, 256, 256 ) render.Clear( 0, 0, 0, 255, true ) cam.Start2D() surface.SetFont( "scrollt" ) DrawScrollingText( self.Entity:GetNetworkedString("text"), 128, 256 ) cam.End2D() render.SetViewPort( 0, 0, ScrW(), ScrH() ) render.SetRenderTarget( OldRT ) end end