mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 21:53:46 +03:00
52 lines
1.3 KiB
Lua
52 lines
1.3 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 ScrW = ScrW
|
|
local ScrH = ScrH
|
|
local DrawSunbeams
|
|
|
|
local BUILDER, PART = pac.PartTemplate("base_drawable")
|
|
|
|
PART.ClassName = "sunbeams"
|
|
PART.Group = 'effects'
|
|
PART.Icon = 'icon16/weather_sun.png'
|
|
|
|
BUILDER:StartStorableVars()
|
|
BUILDER:GetSet("Darken", 0)
|
|
BUILDER:GetSet("Multiplier", 0.25, {editor_sensitivity = 0.25})
|
|
BUILDER:GetSet("Size", 0.1, {editor_sensitivity = 0.25})
|
|
BUILDER:GetSet("Translucent", true)
|
|
BUILDER:EndStorableVars()
|
|
|
|
function PART:GetNiceName()
|
|
local mult = self:GetMultiplier()
|
|
return mult > 0 and "bright sunbeams" or mult < 0 and "dark sunbeams" or self.ClassName
|
|
end
|
|
|
|
function PART:OnDraw()
|
|
if not DrawSunbeams then DrawSunbeams = _G.DrawSunbeams end
|
|
|
|
cam.Start2D()
|
|
local pos = self:GetDrawPosition()
|
|
local spos = pos:ToScreen()
|
|
|
|
local dist_mult = - math.Clamp(pac.EyePos:Distance(pos) / 1000, 0, 1) + 1
|
|
|
|
DrawSunbeams(
|
|
self.Darken,
|
|
dist_mult * self.Multiplier * (math.Clamp(pac.EyeAng:Forward():Dot((pos - pac.EyePos):GetNormalized()) - 0.5, 0, 1) * 2) ^ 5,
|
|
self.Size,
|
|
spos.x / ScrW(),
|
|
spos.y / ScrH()
|
|
)
|
|
cam.End2D()
|
|
end
|
|
|
|
BUILDER:Register() |