Files
wnsrc/lua/pac3/core/client/parts/halo.lua
lifestorm 94063e4369 Upload
2024-08-04 22:55:00 +03:00

94 lines
2.1 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 Color = Color
local Vector = Vector
local BUILDER, PART = pac.PartTemplate("base")
PART.ClassName = "halo"
PART.ThinkTime = 0
PART.Group = {'effects', 'model'}
PART.Icon = 'icon16/shading.png'
BUILDER:StartStorableVars()
BUILDER:SetPropertyGroup("generic")
BUILDER:SetPropertyGroup("appearance")
BUILDER:GetSet("BlurX", 2)
BUILDER:GetSet("BlurY", 2)
BUILDER:GetSet("Amount", 1)
BUILDER:GetSet("Passes", 1)
BUILDER:GetSet("SphericalSize", 1)
BUILDER:GetSet("Shape", 1)
BUILDER:GetSet("Color", Vector(255, 255, 255), {editor_panel = "color"})
BUILDER:GetSet("Additive", true)
BUILDER:GetSet("IgnoreZ", false)
BUILDER:GetSet("AffectChildren", false)
BUILDER:GetSet("AffectTargetChildren", false)
BUILDER:EndStorableVars()
function PART:GetNiceName()
local h = pac.ColorToNames(self:GetColor())
return h .. " halo"
end
function PART:SetShape(n)
self.Shape = math.Clamp(n, 0, 1)
end
function PART:SetPasses(n)
self.Passes = math.min(n, 50)
end
function PART:GetTarget()
local parent = self:GetTargetEntity()
if parent:IsValid() then
return parent
end
return self:GetParent()
end
function PART:OnThink()
local tbl = {}
local ent = self:GetOwner()
if ent:IsValid() then
tbl[1] = ent
end
local target = self:GetTarget()
if self.AffectTargetChildren and target:IsValid() then
for _, part in ipairs(target:GetChildrenList()) do
local ent = part:GetOwner()
if ent:IsValid() and not part:IsHiddenCached() then
table.insert(tbl, ent)
end
end
end
if self.AffectChildren then
for _, part in ipairs(self:GetChildrenList()) do
local ent = part:GetOwner()
if ent:IsValid() and not part:IsHiddenCached() then
table.insert(tbl, ent)
end
end
end
pac.haloex.Add(tbl, Color(self.Color.r, self.Color.g, self.Color.b), self.BlurX, self.BlurY, self.Passes, self.Additive, self.IgnoreZ, self.Amount, self.SphericalSize, self.Shape)
end
BUILDER:Register()