public override void Init()
    {
        var factory    = IoCManager.Resolve <IComponentFactory>();
        var prototypes = IoCManager.Resolve <IPrototypeManager>();

        factory.DoAutoRegistrations();

        foreach (var ignoreName in IgnoredComponents.List)
        {
            factory.RegisterIgnore(ignoreName);
        }

        foreach (var ignoreName in IgnoredPrototypes.List)
        {
            prototypes.RegisterIgnore(ignoreName);
        }

        ClientContentIoC.Register();

        IoCManager.BuildGraph();

        factory.GenerateNetIds();

        // DEVNOTE: This is generally where you'll be setting up the IoCManager further.
    }
Example #2
0
        protected override void OverrideIoC()
        {
            base.OverrideIoC();

            if (Project == UnitTestProject.Server)
            {
                ServerContentIoC.Register();
            }
            else if (Project == UnitTestProject.Client)
            {
                ClientContentIoC.Register();
            }
        }
Example #3
0
        public override void Init()
        {
            var factory    = IoCManager.Resolve <IComponentFactory>();
            var prototypes = IoCManager.Resolve <IPrototypeManager>();

            factory.DoAutoRegistrations();

            foreach (var ignoreName in IgnoredComponents.List)
            {
                factory.RegisterIgnore(ignoreName);
            }

            factory.RegisterClass <SharedResearchConsoleComponent>();
            factory.RegisterClass <SharedLatheComponent>();
            factory.RegisterClass <SharedSpawnPointComponent>();
            factory.RegisterClass <SharedVendingMachineComponent>();
            factory.RegisterClass <SharedWiresComponent>();
            factory.RegisterClass <SharedCargoConsoleComponent>();
            factory.RegisterClass <SharedReagentDispenserComponent>();
            factory.RegisterClass <SharedChemMasterComponent>();
            factory.RegisterClass <SharedGravityGeneratorComponent>();
            factory.RegisterClass <SharedAMEControllerComponent>();

            prototypes.RegisterIgnore("accent");
            prototypes.RegisterIgnore("material");
            prototypes.RegisterIgnore("reaction"); //Chemical reactions only needed by server. Reactions checks are server-side.
            prototypes.RegisterIgnore("gasReaction");
            prototypes.RegisterIgnore("seed");     // Seeds prototypes are server-only.
            prototypes.RegisterIgnore("barSign");
            prototypes.RegisterIgnore("objective");
            prototypes.RegisterIgnore("holiday");
            prototypes.RegisterIgnore("aiFaction");
            prototypes.RegisterIgnore("gameMap");
            prototypes.RegisterIgnore("behaviorSet");
            prototypes.RegisterIgnore("advertisementsPack");
            prototypes.RegisterIgnore("metabolizerType");
            prototypes.RegisterIgnore("metabolismGroup");
            prototypes.RegisterIgnore("salvageMap");
            prototypes.RegisterIgnore("gamePreset");
            prototypes.RegisterIgnore("gameRule");
            prototypes.RegisterIgnore("worldSpell");
            prototypes.RegisterIgnore("entitySpell");
            prototypes.RegisterIgnore("instantSpell");

            ClientContentIoC.Register();

            foreach (var callback in TestingCallbacks)
            {
                var cast = (ClientModuleTestingCallbacks)callback;
                cast.ClientBeforeIoC?.Invoke();
            }

            IoCManager.BuildGraph();
            factory.GenerateNetIds();

            IoCManager.Resolve <IClientAdminManager>().Initialize();
            IoCManager.Resolve <IParallaxManager>().LoadParallax();
            IoCManager.Resolve <IBaseClient>().PlayerJoinedServer += SubscribePlayerAttachmentEvents;
            IoCManager.Resolve <IStylesheetManager>().Initialize();
            IoCManager.Resolve <IScreenshotHook>().Initialize();
            IoCManager.Resolve <ChangelogManager>().Initialize();
            IoCManager.Resolve <RulesManager>().Initialize();
            IoCManager.Resolve <ViewportManager>().Initialize();

            IoCManager.InjectDependencies(this);

            _escapeMenuOwner.Initialize();

            _baseClient.PlayerJoinedServer += (_, _) =>
            {
                IoCManager.Resolve <IMapManager>().CreateNewMapEntity(MapId.Nullspace);
            };
        }
        public override void Init()
        {
            var factory    = IoCManager.Resolve <IComponentFactory>();
            var prototypes = IoCManager.Resolve <IPrototypeManager>();

            factory.DoAutoRegistrations();
            factory.IgnoreMissingComponents();

            // Do not add to these, they are legacy.
            factory.RegisterClass <SharedLatheComponent>();
            factory.RegisterClass <SharedSpawnPointComponent>();
            factory.RegisterClass <SharedReagentDispenserComponent>();
            factory.RegisterClass <SharedChemMasterComponent>();
            factory.RegisterClass <SharedGravityGeneratorComponent>();
            factory.RegisterClass <SharedAMEControllerComponent>();
            // Do not add to the above, they are legacy

            prototypes.RegisterIgnore("accent");
            prototypes.RegisterIgnore("material");
            prototypes.RegisterIgnore("reaction"); //Chemical reactions only needed by server. Reactions checks are server-side.
            prototypes.RegisterIgnore("gasReaction");
            prototypes.RegisterIgnore("seed");     // Seeds prototypes are server-only.
            prototypes.RegisterIgnore("barSign");
            prototypes.RegisterIgnore("objective");
            prototypes.RegisterIgnore("holiday");
            prototypes.RegisterIgnore("aiFaction");
            prototypes.RegisterIgnore("gameMap");
            prototypes.RegisterIgnore("behaviorSet");
            prototypes.RegisterIgnore("lobbyBackground");
            prototypes.RegisterIgnore("advertisementsPack");
            prototypes.RegisterIgnore("metabolizerType");
            prototypes.RegisterIgnore("metabolismGroup");
            prototypes.RegisterIgnore("salvageMap");
            prototypes.RegisterIgnore("gamePreset");
            prototypes.RegisterIgnore("gameRule");
            prototypes.RegisterIgnore("worldSpell");
            prototypes.RegisterIgnore("entitySpell");
            prototypes.RegisterIgnore("instantSpell");
            prototypes.RegisterIgnore("roundAnnouncement");
            prototypes.RegisterIgnore("wireLayout");
            prototypes.RegisterIgnore("alertLevels");
            prototypes.RegisterIgnore("nukeopsRole");

            ClientContentIoC.Register();

            foreach (var callback in TestingCallbacks)
            {
                var cast = (ClientModuleTestingCallbacks)callback;
                cast.ClientBeforeIoC?.Invoke();
            }

            IoCManager.BuildGraph();
            factory.GenerateNetIds();

            IoCManager.Resolve <IClientAdminManager>().Initialize();
            IoCManager.Resolve <IBaseClient>().PlayerJoinedServer += SubscribePlayerAttachmentEvents;
            IoCManager.Resolve <IStylesheetManager>().Initialize();
            IoCManager.Resolve <IScreenshotHook>().Initialize();
            IoCManager.Resolve <ChangelogManager>().Initialize();
            IoCManager.Resolve <RulesManager>().Initialize();
            IoCManager.Resolve <ViewportManager>().Initialize();
            IoCManager.Resolve <GhostKickManager>().Initialize();
            IoCManager.Resolve <ExtendedDisconnectInformationManager>().Initialize();

            IoCManager.InjectDependencies(this);

            _escapeMenuOwner.Initialize();

            _baseClient.PlayerJoinedServer += (_, _) =>
            {
                IoCManager.Resolve <IMapManager>().CreateNewMapEntity(MapId.Nullspace);
            };
        }