rendered paste bodyinclude('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