public override void Init() { #if DEBUG GodotResourceCopy.DoDirCopy("../../Resources", "Content"); #endif var factory = IoCManager.Resolve <IComponentFactory>(); var prototypes = IoCManager.Resolve <IPrototypeManager>(); factory.RegisterIgnore("Interactable"); factory.RegisterIgnore("Damageable"); factory.RegisterIgnore("Destructible"); factory.RegisterIgnore("Temperature"); factory.RegisterIgnore("PowerTransfer"); factory.RegisterIgnore("PowerNode"); factory.RegisterIgnore("PowerProvider"); factory.RegisterIgnore("PowerDevice"); factory.RegisterIgnore("PowerStorage"); factory.RegisterIgnore("PowerGenerator"); factory.RegisterIgnore("Wirecutter"); factory.RegisterIgnore("Screwdriver"); factory.RegisterIgnore("Multitool"); factory.RegisterIgnore("Welder"); factory.RegisterIgnore("Wrench"); factory.RegisterIgnore("Crowbar"); factory.RegisterIgnore("HitscanWeapon"); factory.RegisterIgnore("ProjectileWeapon"); factory.RegisterIgnore("Projectile"); factory.RegisterIgnore("MeleeWeapon"); factory.RegisterIgnore("Storeable"); factory.RegisterIgnore("Material"); factory.RegisterIgnore("Stack"); factory.Register <HandsComponent>(); factory.RegisterReference <HandsComponent, IHandsComponent>(); factory.Register <ClientStorageComponent>(); factory.Register <ClientInventoryComponent>(); factory.Register <PowerDebugTool>(); factory.Register <ConstructorComponent>(); factory.Register <ConstructionGhostComponent>(); factory.Register <IconSmoothComponent>(); factory.Register <ClothingComponent>(); factory.Register <ItemComponent>(); factory.RegisterReference <ClothingComponent, ItemComponent>(); factory.RegisterIgnore("Construction"); factory.RegisterIgnore("Apc"); factory.RegisterIgnore("Door"); factory.RegisterIgnore("PoweredLight"); factory.RegisterIgnore("Smes"); prototypes.RegisterIgnore("material"); }
public override void Main(Godot.SceneTree tree) { #if !X64 throw new InvalidOperationException("The client cannot start outside x64."); #endif Mode = DisplayMode.Godot; tree.SetAutoAcceptQuit(false); IoCManager.Register <ISceneTreeHolder, SceneTreeHolder>(); IoCManager.BuildGraph(); IoCManager.Resolve <ISceneTreeHolder>().Initialize(tree); #if DEBUG // Ensure Godot's side of the resources are up to date. GodotResourceCopy.DoDirCopy("../Resources", "Engine"); #endif Startup(); _gameTimingGodotGodot = IoCManager.Resolve <GameTimingGodot>(); }
public override void Init() { #if DEBUG GodotResourceCopy.DoDirCopy("../../Resources", "Content"); #endif var factory = IoCManager.Resolve <IComponentFactory>(); var prototypes = IoCManager.Resolve <IPrototypeManager>(); factory.RegisterIgnore("Interactable"); factory.RegisterIgnore("Destructible"); factory.RegisterIgnore("Temperature"); factory.RegisterIgnore("PowerTransfer"); factory.RegisterIgnore("PowerNode"); factory.RegisterIgnore("PowerProvider"); factory.RegisterIgnore("PowerDevice"); factory.RegisterIgnore("PowerStorage"); factory.RegisterIgnore("PowerGenerator"); factory.RegisterIgnore("Wirecutter"); factory.RegisterIgnore("Screwdriver"); factory.RegisterIgnore("Multitool"); factory.RegisterIgnore("Welder"); factory.RegisterIgnore("Wrench"); factory.RegisterIgnore("Crowbar"); factory.Register <ClientRangedWeaponComponent>(); factory.RegisterIgnore("HitscanWeapon"); factory.RegisterIgnore("ProjectileWeapon"); factory.RegisterIgnore("Projectile"); factory.RegisterIgnore("MeleeWeapon"); factory.RegisterIgnore("Storeable"); factory.RegisterIgnore("Material"); factory.RegisterIgnore("Stack"); factory.Register <HandsComponent>(); factory.RegisterReference <HandsComponent, IHandsComponent>(); factory.Register <ClientStorageComponent>(); factory.Register <ClientInventoryComponent>(); factory.Register <PowerDebugTool>(); factory.Register <ConstructorComponent>(); factory.Register <ConstructionGhostComponent>(); factory.Register <IconSmoothComponent>(); factory.Register <DamageableComponent>(); factory.Register <ClothingComponent>(); factory.Register <ItemComponent>(); factory.Register <SoundComponent>(); factory.RegisterReference <ClothingComponent, ItemComponent>(); factory.Register <SpeciesUI>(); factory.Register <CharacterInterface>(); factory.RegisterIgnore("Construction"); factory.RegisterIgnore("Apc"); factory.RegisterIgnore("Door"); factory.RegisterIgnore("PoweredLight"); factory.RegisterIgnore("Smes"); factory.RegisterIgnore("Powercell"); factory.RegisterIgnore("HandheldLight"); prototypes.RegisterIgnore("material"); factory.RegisterIgnore("PowerCell"); factory.Register <SharedSpawnPointComponent>(); factory.Register <CameraRecoilComponent>(); factory.RegisterReference <CameraRecoilComponent, SharedCameraRecoilComponent>(); IoCManager.Register <IClientNotifyManager, ClientNotifyManager>(); IoCManager.Register <ISharedNotifyManager, ClientNotifyManager>(); IoCManager.Register <IClientGameTicker, ClientGameTicker>(); IoCManager.Register <IParallaxManager, ParallaxManager>(); IoCManager.BuildGraph(); IoCManager.Resolve <IParallaxManager>().LoadParallax(); IoCManager.Resolve <IBaseClient>().PlayerJoinedServer += SubscribePlayerAttachmentEvents; var stylesheet = new NanoStyle(); IoCManager.Resolve <IUserInterfaceManager>().Stylesheet = stylesheet.Stylesheet; }
public override void Main(Godot.SceneTree tree) { #if !X64 throw new InvalidOperationException("The client cannot start outside x64."); #endif ThreadUtility.MainThread = Thread.CurrentThread; PreInitIoC(); IoCManager.Resolve <ISceneTreeHolder>().Initialize(tree); InitIoC(); Godot.OS.SetWindowTitle("Space Station 14"); SetupLogging(); // Set up custom synchronization context. // Sorry Godot. _taskManager.Initialize(); tree.SetAutoAcceptQuit(false); // Load config. _configurationManager.LoadFromFile(PathHelpers.ExecutableRelativeFile("client_config.toml")); displayManager.Initialize(); // Ensure Godot's side of the resources are up to date. #if DEBUG GodotResourceCopy.DoDirCopy("../Resources", "Engine"); #endif // Init resources. // Doesn't do anything right now because TODO Godot asset management is a bit ad-hoc. _resourceCache.LoadBaseResources(); _resourceCache.LoadLocalResources(); //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(); placementManager.Initialize(); lightManager.Initialize(); _entityManager.Initialize(); gameStateManager.Initialize(); overlayManager.Initialize(); _viewVariablesManager.Initialize(); _client.Initialize(); AssemblyLoader.BroadcastRunLevel(AssemblyLoader.RunLevel.PostInit); _stateManager.RequestStateChange <MainScreen>(); var args = (ICollection <string>)Godot.OS.GetCmdlineArgs(); if (args.Contains("--connect")) { _client.ConnectToServer("127.0.0.1", 1212); } }