All pastes #509202 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-05-25 10:35 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( "msscreen", 512, 512 )

surface.CreateFont( "coolvetica", 64, 32, false, false, "scrollz" )

function ENT:Initialize()
	self.Pair=self.Entity
	self.Entity:SetNetworkedBool("set",false)
	self.MyRT=RTTexture   --GetRenderTarget( "msscreen"..tostring(self.Entity:EntIndex()), 512, 512 )
end

function ENT:Texture()

	self.Pair=self.Entity
		if self.Entity:GetNetworkedBool("set")==true then
		self.Pair=self.Entity:GetNetworkedEntity("pair")
		self.Pair.RPair=self.Entity
	end

	if not self.Pair:IsValid() or self.Pair==nil or self.Pair==NULL then
		self.Pair=self.Entity
	end


	local NewRT = self.MyRT
	--matScreen:SetMaterialTexture( "$basetexture", NewRT )
	local OldRT = render.GetRenderTarget()
	render.SetRenderTarget( NewRT )
	render.SetViewPort(0,0,512,512)
	render.Clear(0,0,0,255)
		if self.Pair==self.Entity then
			cam.Start2D()
				surface.SetFont( "scrollz" )
				local Fraction = 127 + math.sin( CurTime()*2 ) * 127
				surface.SetTextColor(255,255,255,Fraction)
				surface.SetTextPos( 5, 5 )
				surface.DrawText("No input signal")
				local Fraction = 127 + math.sin( CurTime()*4 ) * 127
				surface.SetTextColor(255,255,255,Fraction)
				surface.SetTextPos( 5, 70 )
				surface.DrawText("Check connection")
			cam.End2D()
		else
				local camData = {}
				camData.origin = self.Pair:GetPos()
				camData.angles = self.Pair:GetAngles()
				camData.fov = 90
				camData.w=512
				camData.h=512
				camData.x=0
				camData.y=0

				local r,g,b,a = self.Pair:GetColor()
				self.Pair:SetColor(255,255,255,0)
				render.RenderView(camData)
				self.Pair:SetColor(r,g,b,a)
				cam.Start2D()
					surface.SetDrawColor(0,0,0,128)
					local Fraction = 256 + math.sin( CurTime() ) * 256
					surface.DrawRect(0,Fraction,512,5)
				cam.End2D()
		end
	render.SetViewPort( 0, 0, ScrW(), ScrH() )
	render.SetRenderTarget( OldRT )

end

function ENT:Draw()
	self.Entity:Texture()
	matScreen:SetMaterialTexture( "$basetexture", self.MyRT )
	self.Entity:DrawModel()
end