CapsAdmin

Untitled

May 6th, 2011
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.60 KB | None | 0 0
  1. easylua.Start(Ply"oh")
  2.  
  3. local ENT = {}
  4.  
  5. ENT.Type = "anim"
  6. ENT.Base = "base_entity"
  7.  
  8. ENT.Model = Model("models/props_wasteland/cargo_container01b.mdl")
  9. ENT.ClassName = "my test entity"
  10.  
  11. if CLIENT then
  12.  
  13.     local mat_MotionBlur = Material( "pp/motionblur" )
  14.     local mat_Screen = Material( "pp/fb" )
  15.     local tex_MotionBlur = render.GetMoBlurTex0()
  16.  
  17.     mat_MotionBlur:SetMaterialFloat( "$alpha", 0.6 )
  18.     mat_MotionBlur:SetMaterialTexture( "$basetexture", tex_MotionBlur )
  19.     mat_Screen:SetMaterialFloat( "$alpha", 1 )
  20.    
  21.     hook.Add("RenderScreenspaceEffects",0, function()
  22.         for k,v in pairs(ents.FindByClass(ENT.ClassName)) do
  23.             v:DrawEffect()
  24.         end
  25.     end)
  26.    
  27.     local function Check(ent)
  28.         return ent:GetPos() ~= vector_origin and not ent:IsPlayer() and not ent:GetOwner():IsPlayer() and not ent:GetParent():IsPlayer() and LocalPlayer():GetViewModel() ~= ent and ent:GetModel()
  29.     end
  30.    
  31.     local function DrawMotionBlur(self)
  32.         --render.Clear(255,255,255,255)
  33.    
  34.         local OldRT = render.GetRenderTarget();
  35.         render.SetRenderTarget( tex_MotionBlur )
  36.             render.SetMaterial( mat_Screen )
  37.             render.DrawScreenQuad()
  38.         render.SetRenderTarget( OldRT )
  39.            
  40.         render.SetMaterial( mat_MotionBlur )
  41.         render.DrawScreenQuad()
  42.        
  43.     end
  44.    
  45.     local function DrawModelWithBlur(self)
  46.         render.ClearStencil()
  47.         render.SetStencilEnable( true )
  48.             render.SetStencilReferenceValue( 1 )
  49.             render.SetStencilPassOperation( STENCILOPERATION_REPLACE )
  50.             render.SetStencilCompareFunction( STENCILCOMPARISONFUNCTION_ALWAYS )
  51.                 --local _,_,_,a = self:GetColor() / 255
  52.                 --render.SetBlend(a)
  53.                 self:DrawModel()
  54.             render.SetStencilCompareFunction( STENCILCOMPARISONFUNCTION_EQUAL )
  55.            
  56.             DrawMotionBlur(self)
  57.  
  58.         render.SetStencilEnable(false)
  59.     end
  60.    
  61.     local function Draw(self)
  62.         --if math.random() > 0.96 then self:SetSequence(math.random(50)) end
  63.         --self:SetPlaybackRate(0.01)
  64.         --self:SetRenderAngles(Angle(0))
  65.        
  66.         if false and self:GetVelocity():Length() < 10 then  
  67.             self:DrawModel()
  68.         else
  69.             DrawModelWithBlur(self)
  70.         end
  71.     end
  72.        
  73.     function ENT:DrawEffect()
  74.         Draw(self) 
  75.     end
  76.    
  77.     function ENT:Draw()
  78.         Draw(self)
  79.     end
  80. else
  81.     function ENT:Initialize()
  82.         self:SetModel( self.Model )
  83.         self:SetSkin(2)
  84.         self:PhysicsInit( SOLID_VPHYSICS )
  85.         self:SetMoveType( MOVETYPE_VPHYSICS )
  86.         self:SetSolid( SOLID_VPHYSICS )
  87.         self:PhysWake()
  88.     end
  89. end
  90.  
  91. scripted_ents.Register(ENT, ENT.ClassName, true)
  92.  
  93. for key, entity in pairs(ents.FindByClass(ENT.ClassName)) do
  94.     table.Merge(entity:GetTable(), ENT)
  95. end
  96.  
  97. if SERVER then
  98.     if #ents.FindByClass(ENT.ClassName) == 0 then create(ENT.ClassName) end
  99. end
  100.  
  101. easylua.End()
Advertisement
Add Comment
Please, Sign In to add comment