@@ -11,6 +11,7 @@ public sealed class ColorFlashEffectSystem : SharedColorFlashEffectSystem
|
|||||||
{
|
{
|
||||||
[Dependency] private readonly IGameTiming _timing = default!;
|
[Dependency] private readonly IGameTiming _timing = default!;
|
||||||
[Dependency] private readonly AnimationPlayerSystem _animation = default!;
|
[Dependency] private readonly AnimationPlayerSystem _animation = default!;
|
||||||
|
[Dependency] private readonly IComponentFactory _factory = default!;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// It's a little on the long side but given we use multiple colours denoting what happened it makes it easier to register.
|
/// It's a little on the long side but given we use multiple colours denoting what happened it makes it easier to register.
|
||||||
@@ -86,8 +87,13 @@ public sealed class ColorFlashEffectSystem : SharedColorFlashEffectSystem
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
var player = EnsureComp<AnimationPlayerComponent>(ent);
|
if (!TryComp(ent, out AnimationPlayerComponent? player))
|
||||||
player.NetSyncEnabled = false;
|
{
|
||||||
|
player = (AnimationPlayerComponent) _factory.GetComponent(typeof(AnimationPlayerComponent));
|
||||||
|
player.Owner = ent;
|
||||||
|
player.NetSyncEnabled = false;
|
||||||
|
AddComp(ent, player);
|
||||||
|
}
|
||||||
|
|
||||||
// Need to stop the existing animation first to ensure the sprite color is fixed.
|
// Need to stop the existing animation first to ensure the sprite color is fixed.
|
||||||
// Otherwise we might lerp to a red colour instead.
|
// Otherwise we might lerp to a red colour instead.
|
||||||
@@ -111,8 +117,14 @@ public sealed class ColorFlashEffectSystem : SharedColorFlashEffectSystem
|
|||||||
if (animation == null)
|
if (animation == null)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
var comp = EnsureComp<ColorFlashEffectComponent>(ent);
|
if (!TryComp(ent, out ColorFlashEffectComponent? comp))
|
||||||
comp.NetSyncEnabled = false;
|
{
|
||||||
|
comp = (ColorFlashEffectComponent) _factory.GetComponent(typeof(ColorFlashEffectComponent));
|
||||||
|
comp.Owner = ent;
|
||||||
|
comp.NetSyncEnabled = false;
|
||||||
|
AddComp(ent, comp);
|
||||||
|
}
|
||||||
|
|
||||||
comp.Color = sprite.Color;
|
comp.Color = sprite.Color;
|
||||||
_animation.Play((ent, player), animation, AnimationKey);
|
_animation.Play((ent, player), animation, AnimationKey);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ public sealed partial class GunSystem : SharedGunSystem
|
|||||||
[Dependency] private readonly AnimationPlayerSystem _animPlayer = default!;
|
[Dependency] private readonly AnimationPlayerSystem _animPlayer = default!;
|
||||||
[Dependency] private readonly InputSystem _inputSystem = default!;
|
[Dependency] private readonly InputSystem _inputSystem = default!;
|
||||||
[Dependency] private readonly SharedCameraRecoilSystem _recoil = default!;
|
[Dependency] private readonly SharedCameraRecoilSystem _recoil = default!;
|
||||||
|
[Dependency] private readonly IComponentFactory _factory = default!;
|
||||||
|
|
||||||
[ValidatePrototypeId<EntityPrototype>]
|
[ValidatePrototypeId<EntityPrototype>]
|
||||||
public const string HitscanProto = "HitscanEffect";
|
public const string HitscanProto = "HitscanEffect";
|
||||||
@@ -309,8 +310,14 @@ public sealed partial class GunSystem : SharedGunSystem
|
|||||||
};
|
};
|
||||||
|
|
||||||
_animPlayer.Play(ent, anim, "muzzle-flash");
|
_animPlayer.Play(ent, anim, "muzzle-flash");
|
||||||
var light = EnsureComp<PointLightComponent>(uid);
|
if (!TryComp(uid, out PointLightComponent? light))
|
||||||
light.NetSyncEnabled = false;
|
{
|
||||||
|
light = (PointLightComponent) _factory.GetComponent(typeof(PointLightComponent));
|
||||||
|
light.Owner = uid;
|
||||||
|
light.NetSyncEnabled = false;
|
||||||
|
AddComp(uid, light);
|
||||||
|
}
|
||||||
|
|
||||||
Lights.SetEnabled(uid, true, light);
|
Lights.SetEnabled(uid, true, light);
|
||||||
Lights.SetRadius(uid, 2f, light);
|
Lights.SetRadius(uid, 2f, light);
|
||||||
Lights.SetColor(uid, Color.FromHex("#cc8e2b"), light);
|
Lights.SetColor(uid, Color.FromHex("#cc8e2b"), light);
|
||||||
|
|||||||
Reference in New Issue
Block a user