Change some data definitions to not do IoC resolve in their constructors.
This commit is contained in:
@@ -26,7 +26,7 @@ namespace Content.Client.Light.Components
|
||||
[ImplicitDataDefinitionForInheritors]
|
||||
public abstract class LightBehaviourAnimationTrack : AnimationTrackProperty
|
||||
{
|
||||
protected readonly IRobustRandom _random = IoCManager.Resolve<IRobustRandom>();
|
||||
protected IRobustRandom _random = default!;
|
||||
|
||||
[DataField("id")] [ViewVariables] public string ID { get; set; } = string.Empty;
|
||||
|
||||
@@ -53,8 +53,9 @@ namespace Content.Client.Light.Components
|
||||
private float _maxTime = default;
|
||||
private IEntity _parent = default!;
|
||||
|
||||
public void Initialize(IEntity parent)
|
||||
public void Initialize(IEntity parent, IRobustRandom random)
|
||||
{
|
||||
_random = random;
|
||||
_parent = parent;
|
||||
|
||||
if (Enabled && _parent.TryGetComponent(out PointLightComponent? light))
|
||||
@@ -399,7 +400,7 @@ namespace Content.Client.Light.Components
|
||||
|
||||
foreach (var container in _animations)
|
||||
{
|
||||
container.LightBehaviour.Initialize(Owner);
|
||||
container.LightBehaviour.Initialize(Owner, IoCManager.Resolve<IRobustRandom>());
|
||||
}
|
||||
|
||||
// we need to initialize all behaviours before starting any
|
||||
@@ -541,7 +542,7 @@ namespace Content.Client.Light.Components
|
||||
AnimationTracks = {behaviour}
|
||||
};
|
||||
|
||||
behaviour.Initialize(Owner);
|
||||
behaviour.Initialize(Owner, IoCManager.Resolve<IRobustRandom>());
|
||||
|
||||
var container = new AnimationContainer(key, animation, behaviour);
|
||||
_animations.Add(container);
|
||||
|
||||
@@ -5,13 +5,13 @@ using Content.Shared.Audio;
|
||||
using Content.Shared.Chemistry.Reaction;
|
||||
using Content.Shared.Sound;
|
||||
using JetBrains.Annotations;
|
||||
using Robust.Server.GameObjects;
|
||||
using Robust.Shared.Audio;
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.IoC;
|
||||
using Robust.Shared.Log;
|
||||
using Robust.Shared.Map;
|
||||
using Robust.Shared.Player;
|
||||
using Robust.Shared.Serialization;
|
||||
using Robust.Shared.Serialization.Manager.Attributes;
|
||||
|
||||
namespace Content.Server.Chemistry.ReactionEffects
|
||||
@@ -21,7 +21,7 @@ namespace Content.Server.Chemistry.ReactionEffects
|
||||
/// </summary>
|
||||
[UsedImplicitly]
|
||||
[ImplicitDataDefinitionForInheritors]
|
||||
public abstract class AreaReactionEffect : IReactionEffect
|
||||
public abstract class AreaReactionEffect : IReactionEffect, ISerializationHooks
|
||||
{
|
||||
[Dependency] private readonly IMapManager _mapManager = default!;
|
||||
|
||||
@@ -82,7 +82,7 @@ namespace Content.Server.Chemistry.ReactionEffects
|
||||
/// </summary>
|
||||
[DataField("sound", required: true)] private SoundSpecifier _sound = default!;
|
||||
|
||||
protected AreaReactionEffect()
|
||||
void ISerializationHooks.AfterDeserialization()
|
||||
{
|
||||
IoCManager.InjectDependencies(this);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user