Files
wnsrc/lua/includes/modules/effects.lua
lifestorm 94063e4369 Upload
2024-08-04 22:55:00 +03:00

88 lines
1.5 KiB
Lua

--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
local ents = ents
local pairs = pairs
local ipairs = ipairs
local string = string
local table = table
--[[---------------------------------------------------------
Name: effects
Desc: Engine effects hooking
-----------------------------------------------------------]]
module( "effects" )
local EffectList = {}
function Register( t, name )
name = string.lower( name )
local old = EffectList[ name ]
EffectList[ name ] = t
--
-- If we're reloading this entity class
-- then refresh all the existing entities.
--
if ( old != nil ) then
--
-- For each entity using this class
--
for _, entity in ipairs( ents.FindByClass( name ) ) do
--
-- Replace the contents with this entity table
--
table.Merge( entity, t )
end
end
end
function Create( name, retval )
name = string.lower( name )
--Msg( "Create.. ".. name .. "\n" )
if ( EffectList[ name ] == nil ) then return nil end
local NewEffect = retval or {}
for k, v in pairs( EffectList[ name ] ) do
NewEffect[ k ] = v
end
table.Merge( NewEffect, EffectList[ "base" ] )
return NewEffect
end
function GetList()
local result = {}
for k, v in pairs( EffectList ) do
table.insert( result, v )
end
return result
end