Files
tbd-station-14/Content.Server/AI/Utility/Considerations/ConsiderationsManager.cs
DrSmugleaf 5c0cf1b1a0 Use 'new' expression in places where the type is evident for content (#2590)
* Content.Client

* Content.Benchmarks

* Content.IntegrationTests

* Content.Server

* Content.Server.Database

* Content.Shared

* Content.Tests

* Merge fixes

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2020-11-27 21:00:49 +11:00

30 lines
884 B
C#

using System;
using System.Collections.Generic;
using Robust.Shared.Interfaces.Reflection;
using Robust.Shared.IoC;
namespace Content.Server.AI.Utility.Considerations
{
public class ConsiderationsManager
{
private readonly Dictionary<Type, Consideration> _considerations = new();
public void Initialize()
{
var reflectionManager = IoCManager.Resolve<IReflectionManager>();
var typeFactory = IoCManager.Resolve<IDynamicTypeFactory>();
foreach (var conType in reflectionManager.GetAllChildren(typeof(Consideration)))
{
var con = (Consideration) typeFactory.CreateInstance(conType);
_considerations.Add(conType, con);
}
}
public T Get<T>() where T : Consideration
{
return (T) _considerations[typeof(T)];
}
}
}