Ejemplo n.º 1
0
 private void Start()
 {
     CommonCode.instance.RefreshPermanentLanguage();
     CommonCode.instance.InstallLanguage();
     CommonCode.instance.Install();
     T2Module.SetupAll_PluginStart(allModules);
 }
        private void Awake()
        {
            Debug.Log("Loading assets.");
            using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("ArtifactOfHaste.artifactofhaste"))
            {
                var bundle   = AssetBundle.LoadFromStream(stream);
                var provider = new AssetBundleResourcesProvider("@ArtifactOfHaste", bundle);
                ResourcesAPI.AddProvider(provider);
            }

            config = new ConfigFile(Path.Combine(Paths.ConfigPath, modGuid + ".cfg"), true);

            Debug.Log("Creating mod info.");
            itemList = T2Module.InitAll <CatalogBoilerplate>(new T2Module.ModInfo
            {
                displayName     = "Artifact of Haste",
                longIdentifier  = "ArtifactOfHaste",
                shortIdentifier = "AOH",
                mainConfigFile  = config
            });

            Debug.Log("Initializing mod.");
            T2Module.SetupAll_PluginAwake(itemList);
            T2Module.SetupAll_PluginStart(itemList);
        }
Ejemplo n.º 3
0
        private void Awake()
        {
            _logger = Logger;

            using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("SupplyDrop.supplydrop_assets"))
            {
                MainAssets = AssetBundle.LoadFromStream(stream);
            }
            ConfigFile = new ConfigFile(Path.Combine(Paths.ConfigPath, ModGuid + ".cfg"), true);

            masterItemList = T2Module.InitAll <CatalogBoilerplate>(new T2Module.ModInfo
            {
                displayName     = "Supply Drop",
                longIdentifier  = "SUPPLYDROP",
                shortIdentifier = "SUPPDRP",
                mainConfigFile  = ConfigFile
            });

            using (var bankStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("SupplyDrop.SupplyDropSounds.bnk"))
            {
                var bytes = new byte[bankStream.Length];
                bankStream.Read(bytes, 0, bytes.Length);
                SoundAPI.SoundBanks.Add(bytes);
            }

            T2Module.SetupAll_PluginAwake(masterItemList);
            T2Module.SetupAll_PluginStart(masterItemList);
        }
Ejemplo n.º 4
0
        private void Awake()
        {
            _logger = Logger;

            using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("TinkersSatchel.tinkerssatchel_assets")) {
                resources = AssetBundle.LoadFromStream(stream);
            }

            try {
                UnstubShaders();
            } catch (Exception ex) {
                _logger.LogError($"Shader unstub failed: {ex} {ex.Message}");
            }

            cfgFile = new ConfigFile(Path.Combine(Paths.ConfigPath, ModGuid + ".cfg"), true);

            var modInfo = new T2Module.ModInfo {
                displayName     = "Tinker's Satchel",
                longIdentifier  = "TinkersSatchel",
                shortIdentifier = "TKSAT",
                mainConfigFile  = cfgFile
            };

            allModules = T2Module.InitAll <T2Module>(modInfo);

            var earlyLoad = new[] { CommonCode.instance };

            T2Module.SetupAll_PluginAwake(earlyLoad);
            T2Module.SetupAll_PluginAwake(allModules.Except(earlyLoad));
        }
        private void Awake()
        {
            _logger = Logger;

            Logger.LogDebug("Loading assets...");

            //BundleInfo bundleInfo = new BundleInfo("@RiskOfBulletstorm", "RiskOfBulletstorm.riskofgungeonassets", BundleType.UnityAssetBundle);
            BundleInfo bundleInfo = new BundleInfo("RiskOfBulletstorm.riskofgungeonassets", BundleType.UnityAssetBundle);

            assetBundle = new AssetsManager(bundleInfo).Register() as AssetBundle;

            ConfigFile = new ConfigFile(Path.Combine(Paths.ConfigPath, ModGuid + ".cfg"), true);

            masterItemList = T2Module.InitAll <CatalogBoilerplate>(new T2Module.ModInfo
            {
                displayName     = displayName,
                longIdentifier  = "RISKOFBULLETSTORMMOD",
                shortIdentifier = "RBS",
                mainConfigFile  = ConfigFile
            });
            T2Module.SetupAll_PluginAwake(masterItemList);

            Shared.Buffs.BuffsController.Init();

            R2API.Utils.CommandHelper.AddToConsoleWhenReady();
        }
        private void Awake()
        {
#if DEBUG
            On.RoR2.Networking.GameNetworkManager.OnClientConnect += (self, user, t) => { };
#endif
            _logger = Logger;

            Logger.LogDebug("Loading assets...");
            ResourcesAPI.AddProvider(Assets.PopulateAssets());


            cfgFile = new ConfigFile(Path.Combine(Paths.ConfigPath, ModGuid + ".cfg"), true);

            Logger.LogDebug("Replacing Item Shaders with Hopoo shaders...");
            Assets.ReplaceShaders();

            masterItemList = T2Module.InitAll <CatalogBoilerplate>(new T2Module.ModInfo
            {
                displayName     = "Kevin's Additional Items",
                longIdentifier  = "KevinsAdditions",
                shortIdentifier = "KAI",
                mainConfigFile  = cfgFile
            });

            T2Module.SetupAll_PluginAwake(masterItemList);

            Logger.LogDebug("Adding Imp Mechanics...");
            ImpPlayerAdjustments.AddExtras();
        }
        private void Awake()
        {
            logger = Logger;

            Logger.LogDebug($"Initialising plugin -- Version {ModVersion}");
            Logger.LogDebug("Loading configuration...");

            config = new ConfigFile(Path.Combine(Paths.ConfigPath, $"{ModGuid}.cfg"), true);

            Logger.LogDebug("Loading assets...");
            using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("MoreItems.moreitems"))
            {
                AssetBundle bundle = AssetBundle.LoadFromStream(stream);
                AssetBundleResourcesProvider provider = new AssetBundleResourcesProvider("@MoreItems", bundle);

                ResourcesAPI.AddProvider(provider);
            }

            masterItemList = T2Module.InitAll <CatalogBoilerplate>(new T2Module.ModInfo
            {
                displayName     = "More Items",
                longIdentifier  = "MoreItems",
                shortIdentifier = "More",
                mainConfigFile  = config
            });

            T2Module.SetupAll_PluginAwake(masterItemList);
        }
        private void Awake()
        {
            Log = new Log(Logger);

#if DEBUG
            MultiplayerTest.Enable(Logger, "Running test build with debug enabled! Report to CHEN if you're seeing this!");
#endif

            Log.Debug("Loading assets...");
            BundleInfo bundleInfo = new BundleInfo("ChensBombasticMod.chensbombasticmod_assets", BundleType.UnityAssetBundle);
            assetBundle = new AssetsManager(bundleInfo).Register();

            cfgFile = new ConfigFile(Path.Combine(Paths.ConfigPath, ModGuid + ".cfg"), true);

            Log.Debug("Instantiating item classes...");
            chensItemList = T2Module.InitAll <CatalogBoilerplate>(new T2Module.ModInfo
            {
                displayName     = "Chen's Bombastic Mod",
                longIdentifier  = "ChensBombasticMod",
                shortIdentifier = "CBM",
                mainConfigFile  = cfgFile
            });

            T2Module.SetupAll_PluginAwake(chensItemList);
            T2Module.SetupAll_PluginStart(chensItemList);
        }
Ejemplo n.º 9
0
        private void Awake() //Sourced almost entirely from ThinkInvis' Classic Items. It is also extremely handy.
        {
            _logger = Logger;

#if DEBUG
            Logger.LogWarning("DEBUG mode is enabled! Ignore this message if you are actually debugging.");
            On.RoR2.Networking.GameNetworkManager.OnClientConnect += (self, user, t) => { };
#endif

            using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Aetherium.aetherium_assets"))
            {
                var bundle   = AssetBundle.LoadFromStream(stream);
                var provider = new AssetBundleResourcesProvider("@Aetherium", bundle);
                ResourcesAPI.AddProvider(provider);
            }

            ConfigFile = new ConfigFile(Path.Combine(Paths.ConfigPath, ModGuid + ".cfg"), true);

            masterItemList = T2Module.InitAll <CatalogBoilerplate>(new T2Module.ModInfo
            {
                displayName     = "Aetherium",
                longIdentifier  = "AETHERIUMMOD",
                shortIdentifier = "ATHRM",
                mainConfigFile  = ConfigFile
            });


            T2Module.SetupAll_PluginAwake(masterItemList);
            T2Module.SetupAll_PluginStart(masterItemList);
        }
Ejemplo n.º 10
0
        private void Start()
        {
            Logger.LogDebug("Performing late setup:");

            Logger.LogDebug("Late setup for individual items...");
            T2Module.SetupAll_PluginStart(masterItemList);

            Logger.LogDebug("Late setup done!");
        }
Ejemplo n.º 11
0
        private void Start()
        {
            pluginIsStarted = true;

            Logger.LogDebug("Performing late setup:");

            Logger.LogDebug("Late setup for individual items...");
            T2Module.SetupAll_PluginStart(masterItemList);

            Logger.LogDebug("Late setup done!");

            CatalogBoilerplate.ConsoleDump(Logger, masterItemList);
        }
Ejemplo n.º 12
0
        private void Awake()
        {
            _logger = Logger;

            using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("SupplyDrop.supplydrop_assets"))
            {
                var bundle   = AssetBundle.LoadFromStream(stream);
                var provider = new AssetBundleResourcesProvider("@SupplyDrop", bundle);
                ResourcesAPI.AddProvider(provider);
            }
            ConfigFile = new ConfigFile(Path.Combine(Paths.ConfigPath, ModGuid + ".cfg"), true);

            masterItemList = T2Module.InitAll <CatalogBoilerplate>(new T2Module.ModInfo
            {
                displayName     = "Supply Drop",
                longIdentifier  = "SUPPLYDROP",
                shortIdentifier = "SUPPDRP",
                mainConfigFile  = ConfigFile
            });

            T2Module.SetupAll_PluginAwake(masterItemList);
        }
Ejemplo n.º 13
0
        private void Awake()
        {
            _logger = Logger;

            Logger.LogDebug("Performing plugin setup:");

            #if DEBUG
            Logger.LogWarning("Running test build with debug enabled! If you're seeing this after downloading the mod from Thunderstore, please panic.");
            #endif

            Logger.LogDebug("Loading assets...");
            using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("ClassicItems.classicitems_assets")) {
                var bundle   = AssetBundle.LoadFromStream(stream);
                var provider = new AssetBundleResourcesProvider("@ClassicItems", bundle);
                ResourcesAPI.AddProvider(provider);
            }

            cfgFile = new ConfigFile(Path.Combine(Paths.ConfigPath, ModGuid + ".cfg"), true);

            Logger.LogDebug("Loading global configs...");

            globalConfig.BindAll(cfgFile, "ClassicItems", "Global");
            globalConfig.ConfigEntryChanged += (sender, args) => {
                if (args.target.boundProperty.Name == nameof(globalConfig.hSV2NoStomp))
                {
                    var toBind = (bool)args.newValue == true;
                    if (toBind && !globalConfig.hSV2Bound)
                    {
                        IL.EntityStates.Headstompers.HeadstompersIdle.FixedUpdate += IL_ESHeadstompersIdleFixedUpdate;
                    }
                    else if (!toBind)
                    {
                        IL.EntityStates.Headstompers.HeadstompersIdle.FixedUpdate -= IL_ESHeadstompersIdleFixedUpdate;
                    }
                }
            };

            Logger.LogDebug("Instantiating item classes...");
            masterItemList = T2Module.InitAll <CatalogBoilerplate>(new T2Module.ModInfo {
                displayName     = "Classic Items",
                longIdentifier  = "ClassicItems",
                shortIdentifier = "CI",
                mainConfigFile  = cfgFile
            });

            var itemType    = typeof(Item <>);
            var scep        = (Scepter)FormatterServices.GetUninitializedObject(typeof(Scepter));
            var embryo      = (Embryo)FormatterServices.GetUninitializedObject(typeof(Embryo));
            var scepGenType = itemType.MakeGenericType(typeof(Scepter));
            var embGenType  = itemType.MakeGenericType(typeof(Embryo));
            scepGenType.GetProperty("instance", BindingFlags.Public | BindingFlags.Static).GetSetMethod(true).Invoke(null, new[] { scep });
            embGenType.GetProperty("instance", BindingFlags.Public | BindingFlags.Static).GetSetMethod(true).Invoke(null, new[] { embryo });

            Logger.LogDebug("Loading item configs...");
            foreach (CatalogBoilerplate x in masterItemList)
            {
                x.SetupConfig();
            }

            Logger.LogDebug("Registering item attributes...");

            foreach (CatalogBoilerplate x in masterItemList)
            {
                string mpnOvr = null;
                if (x is Item_V2 item)
                {
                    mpnOvr = "@ClassicItems:Assets/ClassicItems/models/" + modelNameMap[item.itemTier] + ".prefab";
                }
                else if (x is Equipment_V2 eqp)
                {
                    mpnOvr = "@ClassicItems:Assets/ClassicItems/models/" + (eqp.isLunar ? "LqpCard.prefab" : "EqpCard.prefab");
                }
                var ipnOvr = "@ClassicItems:Assets/ClassicItems/icons/" + x.name.Replace("_V2", "") + "_icon.png";

                if (mpnOvr != null)
                {
                    typeof(CatalogBoilerplate).GetProperty(nameof(CatalogBoilerplate.modelResourcePath)).SetValue(x, mpnOvr);
                    typeof(CatalogBoilerplate).GetProperty(nameof(CatalogBoilerplate.iconResourcePath)).SetValue(x, ipnOvr);
                }

                x.SetupAttributes();
            }

            Logger.LogDebug("Tweaking vanilla stuff...");

            //Remove the H3AD-5T V2 state transition from idle to stomp, as Headstompers has similar functionality
            if (globalConfig.hSV2NoStomp && !globalConfig.hSV2Bound)
            {
                globalConfig.hSV2Bound = true;
                IL.EntityStates.Headstompers.HeadstompersIdle.FixedUpdate += IL_ESHeadstompersIdleFixedUpdate;
            }

            On.RoR2.PickupCatalog.Init += On_PickupCatalogInit;
            On.RoR2.UI.LogBook.LogBookController.BuildPickupEntries += On_LogbookBuildPickupEntries;
            Language.onCurrentLanguageChanged += Language_onCurrentLanguageChanged;

            if (globalConfig.spinMod)
            {
                IL.RoR2.PickupDisplay.Update += IL_PickupDisplayUpdate;
            }

            Logger.LogDebug("Registering shared buffs...");
            //used only for purposes of Death Mark; applied by Permafrost and Snowglobe
            var freezeBuffDef = new CustomBuff(new BuffDef {
                buffColor = Color.cyan,
                canStack  = false,
                isDebuff  = true,
                name      = "CIFreeze",
                iconPath  = "@ClassicItems:Assets/ClassicItems/icons/permafrost_icon.png"
            });
            freezeBuff = BuffAPI.Add(freezeBuffDef);

            var fearBuffDef = new CustomBuff(new BuffDef {
                buffColor = Color.red,
                canStack  = false,
                isDebuff  = true,
                name      = "CIFear",
                iconPath  = "textures/miscicons/texSprintIcon"
            });
            fearBuff = BuffAPI.Add(fearBuffDef);
            IL.EntityStates.AI.Walker.Combat.UpdateAI += IL_ESAIWalkerCombatUpdateAI;

            Logger.LogDebug("Registering item behaviors...");

            foreach (CatalogBoilerplate x in masterItemList)
            {
                x.SetupBehavior();
            }

            Logger.LogDebug("Initial setup done!");
        }
Ejemplo n.º 14
0
        private void Awake()
        {
            Log = new Log(Logger);

            Log.Debug("Performing plugin setup:");

#if DEBUG
            MultiplayerTest.Enable(Logger, "Running test build with debug enabled! Report to CHEN if you're seeing this!");
#endif

            Log.Debug("Loading assets...");
            BundleInfo bundleInfo = new BundleInfo("Chen.ClassicItems.chensclassicitems_assets", BundleType.UnityAssetBundle);
            assetBundle = new AssetsManager(bundleInfo).Register();
            assetBundle.ConvertShaders();

            cfgFile = new ConfigFile(Path.Combine(Paths.ConfigPath, ModGuid + ".cfg"), true);

            Log.Debug("Loading global configs...");
            globalCfg.BindAll(cfgFile, ModName, "Global");

            Log.Debug("Instantiating item classes...");
            chensItemList = T2Module.InitAll <CatalogBoilerplate>(new T2Module.ModInfo
            {
                displayName     = "Chen's Classic Items",
                longIdentifier  = "ChensClassicItems",
                shortIdentifier = "CCI",
                mainConfigFile  = cfgFile
            });

            Log.Debug("Loading item configs...");
            foreach (CatalogBoilerplate x in chensItemList)
            {
                x.SetupConfig();
                x.ConfigEntryChanged += (sender, args) =>
                {
                    if ((args.flags & AutoConfigUpdateActionTypes.InvalidateLanguage) == 0)
                    {
                        return;
                    }
                    var y = sender as CatalogBoilerplate;
                    if (y.pickupDef != null)
                    {
                        var c = y.pickupDef.displayPrefab;
                        if (!c)
                        {
                            return;
                        }
                        var ctsf   = c.transform;
                        var cfront = ctsf.Find("cardfront");
                        if (!cfront)
                        {
                            return;
                        }

                        cfront.Find("carddesc").GetComponent <TextMeshPro>().text = Language.GetString(longDesc ? y.descToken : y.pickupToken);
                        cfront.Find("cardname").GetComponent <TextMeshPro>().text = Language.GetString(y.nameToken);
                    }
                    if (y.logbookEntry != null)
                    {
                        y.logbookEntry.modelPrefab = y.pickupDef.displayPrefab;
                    }
                };
            }

            Log.Debug("Registering item attributes...");
            foreach (CatalogBoilerplate x in chensItemList)
            {
                string mpnOvr = null;
                if (x is Item item)
                {
                    mpnOvr = "Assets/ClassicItems/models/" + modelNameMap[item.itemTier] + ".prefab";
                }
                else if (x is Equipment eqp)
                {
                    mpnOvr = "Assets/ClassicItems/models/" + (eqp.isLunar ? "LqpCard.prefab" : "EqpCard.prefab");
                }
                var ipnOvr = "Assets/ClassicItems/icons/" + x.name + "_icon.png";

                if (mpnOvr != null)
                {
                    typeof(CatalogBoilerplate).GetProperty(nameof(CatalogBoilerplate.modelResource)).SetValue(x, assetBundle.LoadAsset <GameObject>(mpnOvr));
                    typeof(CatalogBoilerplate).GetProperty(nameof(CatalogBoilerplate.iconResource)).SetValue(x, assetBundle.LoadAsset <Sprite>(ipnOvr));
                }

                x.SetupAttributes();
            }

            Log.Debug("Registering item behaviors...");
            foreach (CatalogBoilerplate x in chensItemList)
            {
                x.SetupBehavior();
            }

            Log.Debug("Performing early finalization...");
            T2Module.SetupAll_PluginStart(chensItemList);

            new ContentProvider().Initialize();

            if (globalCfg.logEvolutionItemList)
            {
                RunArtifactManager.onArtifactEnabledGlobal  += OnEvolutionEnable;
                RunArtifactManager.onArtifactDisabledGlobal += OnEvolutionDisable;
            }

            Log.Debug("Initial setup done!");
        }
Ejemplo n.º 15
0
        private void Awake()
        {
            _logger = Logger;

            Logger.LogDebug("Performing plugin setup:");

            Logger.LogDebug("Loading assets...");
            using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("ClassicItems.classicitems_assets")) {
                resources = AssetBundle.LoadFromStream(stream);
            }

            cfgFile = new ConfigFile(Path.Combine(Paths.ConfigPath, ModGuid + ".cfg"), true);

            Logger.LogDebug("Loading global configs...");

            globalConfig.BindAll(cfgFile, "ClassicItems", "Global");

            Logger.LogDebug("Instantiating item classes...");
            masterItemList = T2Module.InitAll <CatalogBoilerplate>(new T2Module.ModInfo {
                displayName     = "Classic Items",
                longIdentifier  = "ClassicItems",
                shortIdentifier = "CI",
                mainConfigFile  = cfgFile
            });

            Logger.LogDebug("Loading item configs...");
            foreach (CatalogBoilerplate x in masterItemList)
            {
                x.SetupConfig();
            }

            Logger.LogDebug("Registering item attributes...");
            foreach (CatalogBoilerplate x in masterItemList)
            {
                x.SetupAttributes();
            }

            Logger.LogDebug("Registering shared buffs...");
            //used only for purposes of Death Mark; applied by Permafrost and Snowglobe
            freezeBuff            = ScriptableObject.CreateInstance <BuffDef>();
            freezeBuff.buffColor  = Color.cyan;
            freezeBuff.canStack   = false;
            freezeBuff.isDebuff   = true;
            freezeBuff.name       = "CIFreeze";
            freezeBuff.iconSprite = resources.LoadAsset <Sprite>("Assets/ClassicItems/Textures/ClassicIcons/permafrost_icon.png");
            ContentAddition.AddBuffDef(freezeBuff);

            fearBuff            = ScriptableObject.CreateInstance <BuffDef>();
            fearBuff.buffColor  = Color.red;
            fearBuff.canStack   = false;
            fearBuff.isDebuff   = true;
            fearBuff.name       = "CIFear";
            fearBuff.iconSprite = LegacyResourcesAPI.Load <Sprite>("textures/miscicons/texSprintIcon");

            ContentAddition.AddBuffDef(fearBuff);
            IL.EntityStates.AI.Walker.Combat.UpdateAI += IL_ESAIWalkerCombatUpdateAI;

            Logger.LogDebug("Registering item behaviors...");

            foreach (CatalogBoilerplate x in masterItemList)
            {
                x.SetupBehavior();
            }

            Logger.LogDebug("Initial setup done!");
        }
Ejemplo n.º 16
0
 private void Start()
 {
     T2Module.SetupAll_PluginStart(masterItemList);
     CatalogBoilerplate.ConsoleDump(Logger, masterItemList);
 }
 private void Start()
 {
     T2Module.SetupAll_PluginStart(masterItemList);
     CatalogBoilerplate.ConsoleDump(Logger, masterItemList);
     On.RoR2.CharacterBody.OnInventoryChanged += On_InventoryChanged;
 }