mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 21:53:46 +03:00
94 lines
2.1 KiB
Lua
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()
|