Files
wwdpublic/Content.Client/_Shitcode/Wizard/Systems/FadingTimedDespawnSystem.cs
Kai5 091a8ff433 [GoobPort] WIZ REAL (#465)
* Уэээээээ

* Почти настрадались

* Скоро конец....

* СКОРО

* Мышки плакали, кололись, но продолжали упорно жрать кактус

* Все ближе!

* Это такой конец?

* Книжка говна

* фиксики

* ОНО ЖИВОЕ

* Телепорт

* разное

* Added byond

* ивенты теперь работают

* Разфикс телепорта

* Свет мой зеркальце скажи, да всю правду доложи - Я ль робастней всех на свете?

* Разное

* Еще многа всего

* Многа разнава

* Скоро конец....

* ЭТО КОНЕЦ

* Фикс линтера (ну, или я на это надеюсь)

* Еще один фикс линтера

* Победа!

* фиксики

* пу пу пу

* Фикс подмастерья

* Мисклик

* Высокочастотный меч

* Неймспейсы

* Пул способностей мага
2025-04-26 10:18:58 +03:00

56 lines
1.8 KiB
C#

// SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
// SPDX-FileCopyrightText: 2025 Aviu00 <93730715+Aviu00@users.noreply.github.com>
// SPDX-FileCopyrightText: 2025 Misandry <mary@thughunt.ing>
// SPDX-FileCopyrightText: 2025 gus <august.eymann@gmail.com>
//
// SPDX-License-Identifier: AGPL-3.0-or-later
using Content.Shared._Shitcode.Wizard.FadingTimedDespawn;
using Robust.Client.Animations;
using Robust.Client.GameObjects;
namespace Content.Client._Shitcode.Wizard.Systems;
public sealed class FadingTimedDespawnSystem : SharedFadingTimedDespawnSystem
{
[Dependency] private readonly AnimationPlayerSystem _animationSystem = default!;
protected override void FadeOut(Entity<FadingTimedDespawnComponent> ent)
{
base.FadeOut(ent);
var (uid, comp) = ent;
if (_animationSystem.HasRunningAnimation(uid, FadingTimedDespawnComponent.AnimationKey))
return;
if (!TryComp(uid, out SpriteComponent? sprite))
return;
var animation = new Animation
{
Length = TimeSpan.FromSeconds(comp.FadeOutTime),
AnimationTracks =
{
new AnimationTrackComponentProperty
{
ComponentType = typeof(SpriteComponent),
Property = nameof(SpriteComponent.Color),
KeyFrames =
{
new AnimationTrackProperty.KeyFrame(sprite.Color, 0f),
new AnimationTrackProperty.KeyFrame(sprite.Color.WithAlpha(0f), comp.FadeOutTime),
},
},
},
};
_animationSystem.Play(uid, animation, FadingTimedDespawnComponent.AnimationKey);
}
protected override bool CanDelete(EntityUid uid)
{
return IsClientSide(uid);
}
}