Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- easylua.Start(Ply"oh")
- local ENT = {}
- ENT.Type = "anim"
- ENT.Base = "base_entity"
- ENT.Model = Model("models/props_wasteland/cargo_container01b.mdl")
- ENT.ClassName = "my test entity"
- if CLIENT then
- local mat_MotionBlur = Material( "pp/motionblur" )
- local mat_Screen = Material( "pp/fb" )
- local tex_MotionBlur = render.GetMoBlurTex0()
- mat_MotionBlur:SetMaterialFloat( "$alpha", 0.6 )
- mat_MotionBlur:SetMaterialTexture( "$basetexture", tex_MotionBlur )
- mat_Screen:SetMaterialFloat( "$alpha", 1 )
- hook.Add("RenderScreenspaceEffects",0, function()
- for k,v in pairs(ents.FindByClass(ENT.ClassName)) do
- v:DrawEffect()
- end
- end)
- local function Check(ent)
- 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()
- end
- local function DrawMotionBlur(self)
- --render.Clear(255,255,255,255)
- local OldRT = render.GetRenderTarget();
- render.SetRenderTarget( tex_MotionBlur )
- render.SetMaterial( mat_Screen )
- render.DrawScreenQuad()
- render.SetRenderTarget( OldRT )
- render.SetMaterial( mat_MotionBlur )
- render.DrawScreenQuad()
- end
- local function DrawModelWithBlur(self)
- render.ClearStencil()
- render.SetStencilEnable( true )
- render.SetStencilReferenceValue( 1 )
- render.SetStencilPassOperation( STENCILOPERATION_REPLACE )
- render.SetStencilCompareFunction( STENCILCOMPARISONFUNCTION_ALWAYS )
- --local _,_,_,a = self:GetColor() / 255
- --render.SetBlend(a)
- self:DrawModel()
- render.SetStencilCompareFunction( STENCILCOMPARISONFUNCTION_EQUAL )
- DrawMotionBlur(self)
- render.SetStencilEnable(false)
- end
- local function Draw(self)
- --if math.random() > 0.96 then self:SetSequence(math.random(50)) end
- --self:SetPlaybackRate(0.01)
- --self:SetRenderAngles(Angle(0))
- if false and self:GetVelocity():Length() < 10 then
- self:DrawModel()
- else
- DrawModelWithBlur(self)
- end
- end
- function ENT:DrawEffect()
- Draw(self)
- end
- function ENT:Draw()
- Draw(self)
- end
- else
- function ENT:Initialize()
- self:SetModel( self.Model )
- self:SetSkin(2)
- self:PhysicsInit( SOLID_VPHYSICS )
- self:SetMoveType( MOVETYPE_VPHYSICS )
- self:SetSolid( SOLID_VPHYSICS )
- self:PhysWake()
- end
- end
- scripted_ents.Register(ENT, ENT.ClassName, true)
- for key, entity in pairs(ents.FindByClass(ENT.ClassName)) do
- table.Merge(entity:GetTable(), ENT)
- end
- if SERVER then
- if #ents.FindByClass(ENT.ClassName) == 0 then create(ENT.ClassName) end
- end
- easylua.End()
Advertisement
Add Comment
Please, Sign In to add comment