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", 128, 128 )
surface.CreateFont( "coolvetica", 32, 32, false, false, "scrollz" )
function ENT:Initialize()
self.Pair=self.Entity
self.Entity:SetNetworkedBool("set",false)
end
function ENT:Draw()
self.Pair=self.Entity
if self.Entity:GetNetworkedBool("set")==true then
self.Pair=self.Entity:GetNetworkedEntity("pair")
end
if not self.Pair:IsValid() or self.Pair==nil or self.Pair==NULL then
self.Pair=self.Entity
end
if ( EyePos():Distance( self.Entity:GetPos() ) < 400 ) then
local NewRT = RTTexture
matScreen:SetMaterialTexture( "$basetexture", NewRT )
local OldRT = render.GetRenderTarget();
render.SetRenderTarget( NewRT )
render.SetViewPort( 0, 0, 128, 128 )
render.Clear( 0, 0, 0, 255, true )
cam.Start2D()
if self.Pair==self.Entity then
surface.SetFont( "scrollz" )
local Fraction = 127 + math.sin( CurTime()*2 ) * 127
surface.SetTextColor(255,255,255,Fraction)
surface.SetTextPos( 5, 5 )
surface.DrawText("No signal")
else
local camData = {}
camData.origin = self.Pair:GetPos()
camData.angles = self.Pair:GetAngles()
camData.fov = 90
camData.w=128
camData.h=128
camData.x=0
camData.y=0
render.RenderView(camData)
end
cam.End2D()
render.SetViewPort( 0, 0, ScrW(), ScrH() )
render.SetRenderTarget( OldRT )
end
self.Entity:DrawModel()
end