All pastes #491391 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-05-16 17:03 UTC
rendered paste body
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