using Content.Server.Administration; using Content.Server.AI.Utility.Considerations; using Content.Server.AI.WorldState; using Content.Server.Database; using Content.Server.Eui; using Content.Server.GameObjects.Components.Mobs.Speech; using Content.Server.GameObjects.Components.NodeContainer.NodeGroups; using Content.Server.Interfaces; using Content.Server.Interfaces.Chat; using Content.Server.Interfaces.GameTicking; using Content.Server.Interfaces.PDA; using Content.Server.Sandbox; using Content.Shared.Kitchen; using Content.Shared.Alert; using Robust.Server.Interfaces.Player; using Robust.Shared.ContentPack; using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.Log; using Robust.Shared.IoC; using Robust.Shared.Log; using Robust.Shared.Timing; namespace Content.Server { public class EntryPoint : GameServer { private IGameTicker _gameTicker; private EuiManager _euiManager; private StatusShell _statusShell; /// public override void Init() { base.Init(); var factory = IoCManager.Resolve(); factory.DoAutoRegistrations(); foreach (var ignoreName in IgnoredComponents.List) { factory.RegisterIgnore(ignoreName); } ServerContentIoC.Register(); foreach (var callback in TestingCallbacks) { var cast = (ServerModuleTestingCallbacks) callback; cast.ServerBeforeIoC?.Invoke(); } IoCManager.BuildGraph(); _gameTicker = IoCManager.Resolve(); _euiManager = IoCManager.Resolve(); IoCManager.Resolve().Initialize(); IoCManager.Resolve().Initialize(); var playerManager = IoCManager.Resolve(); _statusShell = new StatusShell(); var logManager = IoCManager.Resolve(); logManager.GetSawmill("Storage").Level = LogLevel.Info; logManager.GetSawmill("db.ef").Level = LogLevel.Info; IoCManager.Resolve().Initialize(); IoCManager.Resolve().Init(); IoCManager.Resolve().Init(); IoCManager.Resolve().Initialize(); IoCManager.Resolve().Initialize(); IoCManager.Resolve().Initialize(); } public override void PostInit() { base.PostInit(); _gameTicker.Initialize(); IoCManager.Resolve().Initialize(); IoCManager.Resolve().Initialize(); IoCManager.Resolve().Initialize(); IoCManager.Resolve().Initialize(); IoCManager.Resolve().Initialize(); IoCManager.Resolve().Initialize(); _euiManager.Initialize(); } public override void Update(ModUpdateLevel level, FrameEventArgs frameEventArgs) { base.Update(level, frameEventArgs); switch (level) { case ModUpdateLevel.PreEngine: { _gameTicker.Update(frameEventArgs); break; } case ModUpdateLevel.PostEngine: { _euiManager.SendUpdates(); break; } } } } }