private void _initTileDefinitions() { // Register space first because I'm a hard coding hack. var spaceDef = _prototypeManager.Index <ContentTileDefinition>("space"); _tileDefinitionManager.Register(spaceDef); var prototypeList = new List <ContentTileDefinition>(); foreach (var tileDef in _prototypeManager.EnumeratePrototypes <ContentTileDefinition>()) { if (tileDef.Name == "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.Name, b.Name, StringComparison.Ordinal)); foreach (var tileDef in prototypeList) { _tileDefinitionManager.Register(tileDef); } _tileDefinitionManager.Initialize(); }
public override void PostInit() { base.PostInit(); // DEVNOTE: You might want to put special init handlers for, say, tiles here. // TODO: Document what else you might want to put here _tileDefinitionManager.Register(new DefaultTile()); _tileDefinitionManager.Initialize(); }
private void Startup() { ThreadUtility.MainThread = Thread.CurrentThread; InitIoC(); SetupLogging(); // Set up custom synchronization context. // Sorry Godot. _taskManager.Initialize(); // Load config. _configurationManager.LoadFromFile(PathHelpers.ExecutableRelativeFile("client_config.toml")); if (Mode == DisplayMode.Clyde) { _clyde = IoCManager.Resolve <IClyde>(); } // Init resources. // Doesn't do anything right now because TODO Godot asset management is a bit ad-hoc. _resourceCache.LoadBaseResources(); _resourceCache.LoadLocalResources(); // Bring display up as soon as resources are mounted. _displayManager.Initialize(); _displayManager.SetWindowTitle("Space Station 14"); if (Mode == DisplayMode.Clyde) { _fontManager = IoCManager.Resolve <IFontManagerInternal>(); _fontManager.Initialize(); } //identical code for server in baseserver if (!AssemblyLoader.TryLoadAssembly <GameShared>(_resourceManager, $"Content.Shared")) { Logger.Warning($"[ENG] Could not load any Shared DLL."); } if (!AssemblyLoader.TryLoadAssembly <GameClient>(_resourceManager, $"Content.Client")) { Logger.Warning($"[ENG] Could not load any Client DLL."); } // Call Init in game assemblies. AssemblyLoader.BroadcastRunLevel(AssemblyLoader.RunLevel.Init); _eyeManager.Initialize(); _serializer.Initialize(); _userInterfaceManager.Initialize(); _networkManager.Initialize(false); _inputManager.Initialize(); _console.Initialize(); _prototypeManager.LoadDirectory(new ResourcePath(@"/Prototypes/")); _prototypeManager.Resync(); _tileDefinitionManager.Initialize(); _mapManager.Initialize(); _lightManager.Initialize(); _entityManager.Initialize(); _gameStateManager.Initialize(); _overlayManager.Initialize(); _placementManager.Initialize(); _viewVariablesManager.Initialize(); RichPresenceClient presence = new RichPresenceClient(); _client.Initialize(); AssemblyLoader.BroadcastRunLevel(AssemblyLoader.RunLevel.PostInit); _stateManager.RequestStateChange <MainScreen>(); _clyde?.Ready(); var args = GetCommandLineArgs(); if (args.Contains("--connect")) { _client.ConnectToServer("127.0.0.1", 1212); } }