Example #1
0
        public void Awake()
        {
            ModLogger = this.Logger;

            using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Tempest.tempest_assets"))
            {
                MainAssets = AssetBundle.LoadFromStream(stream);
            }

            //ModLogger.LogInfo("----------------------ASSETS--------------------");
            //foreach (var asset in MainAssets.GetAllAssetNames())
            //{
            //    ModLogger.LogMessage(asset);
            //}

            if (Helpers.InDebugMode())
            {
                ModLogger.LogWarning("Tempest has been compiled in debug mode!");
            }

            ModLogger.LogInfo("----------------------SYSTEMS--------------------");
            var SystemTypes = Assembly.GetExecutingAssembly().GetTypes().Where(type => !type.IsAbstract && type.IsSubclassOf(typeof(BaseSystem)));

            foreach (var systemType in SystemTypes)
            {
                BaseSystem system = (BaseSystem)System.Activator.CreateInstance(systemType);

                if (!Helpers.InDebugMode() && system.StripFromRelease)
                {
                    ModLogger.LogWarning("System: " + systemType.Name + " stripped from release!");
                    continue;
                }

                system.Init(this);
                ModLogger.LogInfo("System: " + systemType.Name + " initialized!");
            }

            ModLogger.LogInfo("----------------------ITEMS--------------------");
            var ItemTypes = Assembly.GetExecutingAssembly().GetTypes().Where(type => !type.IsAbstract && type.IsSubclassOf(typeof(BaseItem)));

            foreach (var itemType in ItemTypes)
            {
                BaseItem item = (BaseItem)System.Activator.CreateInstance(itemType);
                if (ValidateItem(item, Items))
                {
                    item.Init(Config);
                    CustomItems.Add(item.ItemDef.name, item.ItemDef);
                    ModLogger.LogInfo("Item: " + item.ItemName + " initialized!");
                }
                else
                {
                    ModLogger.LogWarning("Item: " + item.ItemName + " disabled!");
                }
            }

            ModLogger.LogInfo("----------------------EQUIPMENT--------------------");
            var EquipmetTypes = Assembly.GetExecutingAssembly().GetTypes().Where(type => !type.IsAbstract && type.IsSubclassOf(typeof(BaseEquipment)));

            foreach (var EquipmetType in EquipmetTypes)
            {
                BaseEquipment equipment = (BaseEquipment)System.Activator.CreateInstance(EquipmetType);
                equipment.Init(Config);

                ModLogger.LogInfo("Equpment: " + equipment.EquipmentName + " initialized!");
            }

            ModLogger.LogInfo("----------------------TEMPEST DONE--------------------");
        }