NetSyncEnabled fixes (#23553)

NetSyncEnabled  fixes
This commit is contained in:
Leon Friedrich
2024-01-04 23:11:26 -05:00
committed by GitHub
parent 78f4bec3e1
commit 663983bfc3
2 changed files with 25 additions and 6 deletions

View File

@@ -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);
} }

View File

@@ -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);