/// <summary>
        ///     Gets all mods, this should be fired before gameInitialization.
        /// </summary>
        public void GetMods()
        {
            ModBase[] mods = FindObjectsOfType <ModBase>();

            foreach (ModBase mod in mods)
            {
                ModInfo info = new ModInfo
                {
                    ModClass = mod
                };

                Logging.Info(Language.ForgeModRegistered + GenericHelpers.GetAttribute <Mod>(mod.GetType()).ModId);

                mod.transform.SetParent(transform.parent);
                _registeredMods.Add(GenericHelpers.GetAttribute <Mod>(mod.GetType()).ModId, info);
            }

            foreach (Type type in GenericHelpers.GetTypesWithAttribute(typeof(Mod), null))
            {
                if (mods.Any(m => type.Name == m.GetType().Name))
                {
                    continue;
                }

                ModInfo info = TypeToModInfo(type);

                Logging.Info(Language.ForgeModRegistered + GenericHelpers.GetAttribute <Mod>(type).ModId);

                _registeredMods.Add(GenericHelpers.GetAttribute <Mod>(type).ModId, info);
            }
        }
        /// <summary>
        ///     Converts a type to a modInfo
        /// </summary>
        /// <param name="type">Converts a given type to a modInfo Class</param>
        /// <returns> A ModInfo object containing the neccesairy mod data</returns>
        public ModInfo TypeToModInfo(Type type)
        {
            GameObject modObject = new GameObject(GenericHelpers.GetAttribute <Mod>(type).ModId);

            ModInfo info = new ModInfo
            {
                ModClass = modObject.AddComponent(type) as ModBase,
            };

            modObject.transform.SetParent(transform.parent);

            return(info);
        }
        /// <summary>
        ///     Gets a list of mods from the given assembly
        /// </summary>
        /// <param name="assembly">The assembly from which the mods will be registered</param>
        /// <returns>An array of all found mods converted to ModInfo objects</returns>
        public ModInfo[] GetMods(Assembly assembly)
        {
            List <ModInfo> modInfos = new List <ModInfo>();

            foreach (Type type in GenericHelpers.GetTypesWithAttribute(typeof(Mod), assembly))
            {
                ModInfo info = TypeToModInfo(type);

                Logging.Info(Language.ForgeModRegistered + GenericHelpers.GetAttribute <Mod>(type).ModId);

                _registeredMods.Add(GenericHelpers.GetAttribute <Mod>(type).ModId, info);

                modInfos.Add(info);
            }

            return(modInfos.ToArray());
        }