using Content.Server.GameObjects;
using Content.Server.GameObjects.Components;
using Content.Server.GameObjects.Components.Power;
using Content.Server.GameObjects.Components.Interactable.Tools;
using Content.Server.Interfaces.GameObjects;
using Content.Server.Placement;
using SS14.Server;
using SS14.Server.Interfaces;
using SS14.Server.Interfaces.Chat;
using SS14.Server.Interfaces.Maps;
using SS14.Server.Interfaces.Player;
using SS14.Server.Player;
using SS14.Shared.Console;
using SS14.Shared.ContentPack;
using SS14.Shared.Enums;
using SS14.Shared.Interfaces.GameObjects;
using SS14.Shared.Interfaces.Map;
using SS14.Shared.Interfaces.Timers;
using SS14.Shared.IoC;
using SS14.Shared.Log;
using SS14.Shared.Map;
using SS14.Shared.Timers;
using SS14.Shared.Interfaces.Timing;
using SS14.Shared.Maths;
using Content.Server.GameObjects.Components.Weapon.Ranged.Hitscan;
using Content.Server.GameObjects.Components.Weapon.Ranged.Projectile;
using Content.Server.GameObjects.Components.Projectiles;
using Content.Server.GameObjects.Components.Weapon.Melee;
using Content.Server.GameObjects.Components.Materials;
using Content.Server.GameObjects.Components.Stack;
using Content.Server.GameObjects.Components.Construction;
using Content.Server.GameObjects.Components.Mobs;
using Content.Server.GameObjects.EntitySystems;
using Content.Server.Mobs;
using Content.Server.Players;
using Content.Server.GameObjects.Components.Interactable;
using Content.Server.GameObjects.Components.Weapon.Ranged;
using Content.Server.GameTicking;
using Content.Server.Interfaces;
using Content.Server.Interfaces.GameTicking;
using Content.Shared.GameObjects.Components.Inventory;
using Content.Shared.Interfaces;
using SS14.Server.Interfaces.ServerStatus;
using SS14.Shared.Timing;
namespace Content.Server
{
public class EntryPoint : GameServer
{
private IGameTicker _gameTicker;
private StatusShell _statusShell;
///
public override void Init()
{
base.Init();
var factory = IoCManager.Resolve();
factory.Register();
factory.RegisterReference();
factory.Register();
factory.Register();
factory.Register();
factory.RegisterReference();
factory.Register();
factory.RegisterReference();
factory.Register();
factory.Register();
factory.Register();
factory.Register();
//Power Components
factory.Register();
factory.Register();
factory.RegisterReference();
factory.Register();
factory.Register();
factory.RegisterReference();
factory.Register();
factory.RegisterReference();
factory.Register();
factory.Register();
//Tools
factory.Register();
factory.Register();
factory.Register();
factory.Register();
factory.Register();
factory.Register();
factory.Register();
factory.Register();
factory.Register();
factory.Register();
factory.Register();
factory.Register();
factory.Register();
factory.Register();
factory.RegisterReference();
factory.Register();
factory.Register();
factory.Register();
factory.Register();
factory.Register();
factory.Register();
factory.Register();
factory.Register();
factory.RegisterIgnore("ConstructionGhost");
factory.Register();
factory.Register();
IoCManager.Register();
IoCManager.Register();
IoCManager.Register();
IoCManager.BuildGraph();
_gameTicker = IoCManager.Resolve();
IoCManager.Resolve().Initialize();
var playerManager = IoCManager.Resolve();
_statusShell = new StatusShell();
}
public override void PostInit()
{
base.PostInit();
_gameTicker.Initialize();
}
public override void Update(AssemblyLoader.UpdateLevel level, float frameTime)
{
base.Update(level, frameTime);
_gameTicker.Update(new FrameEventArgs(frameTime));
}
}
}