using Content.Shared.CharacterAppearance; using Content.Shared.Chemistry.Reaction; using Content.Shared.Chemistry.Reagent; using Content.Shared.IoC; using Content.Shared.Localizations; using Content.Shared.Maps; using Content.Shared.Markings; using Robust.Shared; using Robust.Shared.Configuration; using Robust.Shared.ContentPack; using Robust.Shared.Map; using Robust.Shared.Prototypes; namespace Content.Shared.Entry { public sealed class EntryPoint : GameShared { [Dependency] private readonly IPrototypeManager _prototypeManager = default!; [Dependency] private readonly ITileDefinitionManager _tileDefinitionManager = default!; public override void PreInit() { IoCManager.InjectDependencies(this); SharedContentIoC.Register(); Localization.Init(); } public override void Init() { } public override void PostInit() { base.PostInit(); _initTileDefinitions(); IoCManager.Resolve().Initialize(); IoCManager.Resolve().Initialize(); #if !FULL_RELEASE var configMan = IoCManager.Resolve(); configMan.OverrideDefault(CVars.NetFakeLagMin, 0.075f); configMan.OverrideDefault(CVars.NetFakeLagRand, 0.01f); configMan.OverrideDefault(CVars.NetFakeLoss, 0.005f); configMan.OverrideDefault(CVars.NetFakeDuplicates, 0.005f); #endif } private void _initTileDefinitions() { // Register space first because I'm a hard coding hack. var spaceDef = _prototypeManager.Index("space"); _tileDefinitionManager.Register(spaceDef); var prototypeList = new List(); foreach (var tileDef in _prototypeManager.EnumeratePrototypes()) { if (tileDef.ID == "space") { continue; } prototypeList.Add(tileDef); } // Sort ordinal to ensure it's consistent client and server. // So that tile IDs match up. prototypeList.Sort((a, b) => string.Compare(a.ID, b.ID, StringComparison.Ordinal)); foreach (var tileDef in prototypeList) { _tileDefinitionManager.Register(tileDef); } _tileDefinitionManager.Initialize(); } } }