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); }
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() { _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 }); 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); }
public static void Init() { if (Loaded) { return; } Loaded = true; var execAssembly = Assembly.GetExecutingAssembly(); using (var stream = execAssembly.GetManifestResourceStream("JarlykMods.Umbrella.umbrella.assets")) { var bundle = AssetBundle.LoadFromStream(stream); var provider = new AssetBundleResourcesProvider(Prefix.TrimEnd(':'), bundle); ResourcesAPI.AddProvider(provider); BulletTimerPrefab = bundle.LoadAsset <GameObject>("Assets/Import/bullet_timer/BulletTimer.prefab"); JestersDicePrefab = bundle.LoadAsset <GameObject>("Assets/Prefabs/JestersDice.prefab"); } using (var bankStream = execAssembly.GetManifestResourceStream("JarlykMods.Umbrella.Umbrella.bnk")) { var bytes = new byte[bankStream.Length]; bankStream.Read(bytes, 0, bytes.Length); SoundBanks.Add(bytes); } }
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); }
public static void PopulateAssets() { if (MainAssetBundle == null) { using (var assetStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("ExampleSurvivor.examplesurvivorbundle")) { MainAssetBundle = AssetBundle.LoadFromStream(assetStream); Provider = new AssetBundleResourcesProvider("@ExampleSurvivor", MainAssetBundle); } } // include this if you're using a custom soundbank /*using (Stream manifestResourceStream2 = Assembly.GetExecutingAssembly().GetManifestResourceStream("ExampleSurvivor.ExampleSurvivor.bnk")) * { * byte[] array = new byte[manifestResourceStream2.Length]; * manifestResourceStream2.Read(array, 0, array.Length); * SoundAPI.SoundBanks.Add(array); * }*/ // and now we gather the assets charPortrait = MainAssetBundle.LoadAsset <Sprite>("ExampleSurvivorBody").texture; iconP = MainAssetBundle.LoadAsset <Sprite>("PassiveIcon"); icon1 = MainAssetBundle.LoadAsset <Sprite>("Skill1Icon"); icon2 = MainAssetBundle.LoadAsset <Sprite>("Skill2Icon"); icon3 = MainAssetBundle.LoadAsset <Sprite>("Skill3Icon"); icon4 = MainAssetBundle.LoadAsset <Sprite>("Skill4Icon"); }
public static void PopulateAssets() { if (MainAssetBundle == null) { //Should probably change this away from ExampleSurvivor but that sounds like it might break things using (var assetStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("ExampleSurvivor.examplesurvivorbundle")) { MainAssetBundle = AssetBundle.LoadFromStream(assetStream); Provider = new AssetBundleResourcesProvider("@ExampleSurvivor", MainAssetBundle); } } // include this if you're using a custom soundbank /*using (Stream manifestResourceStream2 = Assembly.GetExecutingAssembly().GetManifestResourceStream("ExampleSurvivor.ExampleSurvivor.bnk")) * { * byte[] array = new byte[manifestResourceStream2.Length]; * manifestResourceStream2.Read(array, 0, array.Length); * SoundAPI.SoundBanks.Add(array); * }*/ // and now we gather the assets Texture2D skinText = MainAssetBundle.LoadAsset <Texture2D>("Skin"); skin = TextToSprite(skinText); Texture2D iconPText = MainAssetBundle.LoadAsset <Texture2D>("Passive"); iconP = TextToSprite(iconPText); Texture2D icon1Text = MainAssetBundle.LoadAsset <Texture2D>("Skill1"); icon1 = TextToSprite(icon1Text); Texture2D icon2Text = MainAssetBundle.LoadAsset <Texture2D>("Skill2"); icon2 = TextToSprite(icon2Text); Texture2D icon2RegenText = MainAssetBundle.LoadAsset <Texture2D>("Skill2_Heal"); icon2_invigorate = TextToSprite(icon2RegenText); Texture2D icon3SiphonText = MainAssetBundle.LoadAsset <Texture2D>("Skill3_Siphon"); icon3_siphon = TextToSprite(icon3SiphonText); Texture2D icon3TetherText = MainAssetBundle.LoadAsset <Texture2D>("Skill3_Tether"); icon3_tether = TextToSprite(icon3TetherText); Texture2D icon4Text = MainAssetBundle.LoadAsset <Texture2D>("Skill4"); icon4 = TextToSprite(icon4Text); charPortrait = MainAssetBundle.LoadAsset <Texture2D>("WispPreview"); footstepPrefab = MainAssetBundle.LoadAsset <GameObject>("OrbFootstep"); }
private static void RegisterAssetBundleProvider() { using (System.IO.Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("AffixGen.affixgen")) { AssetBundle bundle = AssetBundle.LoadFromStream(stream); AssetBundleResourcesProvider provider = new AssetBundleResourcesProvider("@AffixGen", bundle); ResourcesAPI.AddProvider(provider); } }
private static void AddProvider() { using (System.IO.Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("GiganticAmethyst.amethyst")) { AssetBundle bundle = AssetBundle.LoadFromStream(stream); AssetBundleResourcesProvider provider = new AssetBundleResourcesProvider("@Amethyst", bundle); ResourcesAPI.AddProvider(provider); }; }
static MoreItems() { using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("MoreItems.itemasset")) { bundle = AssetBundle.LoadFromStream(stream); var provider = new AssetBundleResourcesProvider(ModPrefix.TrimEnd(':'), bundle); ResourcesAPI.AddProvider(provider); } }
public static IResourceProvider PopulateAssets() { using (var assetStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("ForgottenFoes.forgottenfoes_assets")) { mainAssetBundle = AssetBundle.LoadFromStream(assetStream); Provider = new AssetBundleResourcesProvider("@ForgottenFoes", mainAssetBundle); } return(Provider); }
private void AddAssetBundleProvider() { using (System.IO.Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("WispDeathBonus.wdbp")) { AssetBundle bundle = AssetBundle.LoadFromStream(stream); AssetBundleResourcesProvider provider = new AssetBundleResourcesProvider("@WDBP", bundle); ResourcesAPI.AddProvider(provider); } }
public void Awake() { using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("LuckyItems.itemassets")) { bundle = AssetBundle.LoadFromStream(stream); var provider = new AssetBundleResourcesProvider(ModPrefix.Trim(':'), bundle); ResourcesAPI.AddProvider(provider); } ExtraShrineRoll.Init(); ExtraItemPickup.Init(); }
public void Awake() { logger = Logger; cfgFile = new ConfigFile(Path.Combine(Paths.ConfigPath, ModGuid + ".cfg"), true); mainMenuOpenDelay = cfgFile.Bind(new ConfigDefinition("Client", "MainMenuOpenDelay"), 0.2f, new ConfigDescription("Time between ping keydown and opening of the radial menu. Faster keyups will cause a quick ping (vanilla behavior).", new AcceptableValueRange <float>(0f, float.MaxValue))).Value; //todo: option to keep first ping preview as result using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("RadialPings.radialpings_assets")) { var bundle = AssetBundle.LoadFromStream(stream); var provider = new AssetBundleResourcesProvider("@RadialPings", bundle); ResourcesAPI.AddProvider(provider); } using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("RadialPings.lang_en.json")) using (var reader = new StreamReader(stream)) { LanguageAPI.Add(reader.ReadToEnd()); } RadialMenu.Setup(); new MainPingMenuBindings(); new PlayersMenuBindings(); new DroneMenuBindings(); new RespondablesMenuBindings(); On.RoR2.PlayerCharacterMasterController.CheckPinging += On_PlayerCharacterMasterController_CheckPinging; On.RoR2.Run.OnDestroy += On_Run_OnDestroy; R2API.Networking.NetworkingAPI.RegisterMessageType <PingMenuHelper.MsgCustomPing>(); #if DEBUG On.RoR2.Networking.GameNetworkManager.OnClientConnect += (orig, self, conn) => { if (!self.clientLoadedScene) { ClientScene.Ready(conn); if (self.autoCreatePlayer) { ClientScene.AddPlayer(0); } } self.clientRttFrame = 0f; self.filteredClientRttFixed = 0f; self.ClientSetPlayers(conn); RoR2.Networking.RttManager.OnConnectionDiscovered(conn); }; On.RoR2.NetworkUser.UpdateUserName += (orig, self) => { self.userName = $"DEBUG USER NetID:{self.netId}"; }; #endif }
internal static void Init() { using (System.IO.Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("GiganticAmethyst.amethyst")) { AmethystBundle = AssetBundle.LoadFromStream(stream); AmethystProvider = new AssetBundleResourcesProvider(ModPrefix.Trim(':'), AmethystBundle); ResourcesAPI.AddProvider(AmethystProvider); AmethystPrefab = AmethystBundle.LoadAsset <GameObject>("Assets/Amethyst.prefab"); }; AmethystAsEquip(); }
public static void Init() { if (Loaded) { return; } Loaded = true; var execAssembly = Assembly.GetExecutingAssembly(); using (var stream = execAssembly.GetManifestResourceStream("JarlykMods.Hailstorm.hailstorm.assets")) { var bundle = AssetBundle.LoadFromStream(stream); var provider = new AssetBundleResourcesProvider(Prefix.TrimEnd(':'), bundle); ResourcesAPI.AddProvider(provider); DarknessShader = bundle.LoadAsset <Shader>("Assets/Effects/darkness.shader"); PureBlack = bundle.LoadAsset <Material>("Assets/Materials/PureBlack.mat"); PurpleCracks = bundle.LoadAsset <Material>("Assets/Materials/PurpleCracks.mat"); TwisterVisualPrefab = bundle.LoadAsset <GameObject>("Assets/Prefabs/TwisterVisual.prefab"); TwisterPrefab = bundle.LoadAsset <GameObject>("Assets/Prefabs/Twister.prefab"); TwisterProjectileController.AugumentPrefab(TwisterPrefab); BarrierMaterial = Resources.Load <GameObject>("Prefabs/TemporaryVisualEffects/barriereffect") .GetComponentInChildren <MeshRenderer>().material; CataclysmPlatformPrefab = bundle.LoadAsset <GameObject>("Assets/Prefabs/CataclysmPlatform.prefab"); CataclysmPlatformPrefab.AddComponent <MobilePlatform>(); CataclysmSkyboxMaterial = bundle.LoadAsset <Material>("Assets/SpaceSkies Free/Skybox_3/Purple_4K_Resolution.mat"); CataclysmArenaPrefab = bundle.LoadAsset <GameObject>("Assets/Prefabs/CataclysmArena.prefab"); GravBombPrefab = bundle.LoadAsset <GameObject>("Assets/Prefabs/GravBomb.prefab"); GravBombEffect.AugmentPrefab(GravBombPrefab); AsteroidProjectilePrefab = bundle.LoadAsset <GameObject>("Assets/Prefabs/AsteroidProjectile.prefab"); AsteroidProjectileController.AugmentPrefab(AsteroidProjectilePrefab); LaserChargerPrefab = bundle.LoadAsset <GameObject>("Assets/Prefabs/LaserCharger.prefab"); LaserChargerInteraction.AugmentPrefab(LaserChargerPrefab); } using (var bankStream = execAssembly.GetManifestResourceStream("JarlykMods.Hailstorm.Hailstorm.bnk")) { var bytes = new byte[bankStream.Length]; bankStream.Read(bytes, 0, bytes.Length); SoundBanks.Add(bytes); } On.RoR2.Networking.GameNetworkManager.OnStartClient += GameNetworkManager_OnStartClient; }
public static void PopulateAssets() { // populate ASSets if (MainAssetBundle == null) { using (var assetStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("FastArtiBolts.arti")) { MainAssetBundle = AssetBundle.LoadFromStream(assetStream); Provider = new AssetBundleResourcesProvider("@FastArtiBolts", MainAssetBundle); ResourcesAPI.AddProvider(Provider); } } // gather assets FastBoltIcon = MainAssetBundle.LoadAsset <Sprite>("texMageSkillIcon"); }
public void Awake() { using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("GlassArtifactOHP.glassohp_assets")) { var bundle = AssetBundle.LoadFromStream(stream); var provider = new AssetBundleResourcesProvider("@GlassArtifactOHP", bundle); ResourcesAPI.AddProvider(provider); } IL.RoR2.CharacterBody.RecalculateStats += IL_CBRecalcStats; if (!ilFailed) { ArtifactCatalog.getAdditionalEntries += Evt_ACGetAdditionalEntries; } }
internal static void PopulateAssets() { if (mainAssetBundle == null) { using (var assetStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("HenryMod.pleasechangethisnameinyourprojectorelseyouwillcauseconflicts")) { mainAssetBundle = AssetBundle.LoadFromStream(assetStream); var provider = new AssetBundleResourcesProvider("@Henry", mainAssetBundle); ResourcesAPI.AddProvider(provider); } } using (Stream manifestResourceStream2 = Assembly.GetExecutingAssembly().GetManifestResourceStream("HenryMod.HenryBank.bnk")) { byte[] array = new byte[manifestResourceStream2.Length]; manifestResourceStream2.Read(array, 0, array.Length); SoundAPI.SoundBanks.Add(array); } swordHitSoundEvent = CreateNetworkSoundEventDef("HenrySwordHit"); punchHitSoundEvent = CreateNetworkSoundEventDef("HenryPunchHit"); dustEffect = LoadEffect("HenryDustEffect"); bombExplosionEffect = LoadEffect("BombExplosionEffect"); ShakeEmitter shakeEmitter = bombExplosionEffect.AddComponent <ShakeEmitter>(); shakeEmitter.amplitudeTimeDecay = true; shakeEmitter.duration = 0.5f; shakeEmitter.radius = 200f; shakeEmitter.scaleShakeRadiusWithLocalScale = false; shakeEmitter.wave = new Wave { amplitude = 1f, frequency = 40f, cycleOffset = 0f }; swordSwingEffect = Assets.LoadEffect("HenrySwordSwingEffect"); swordHitImpactEffect = Assets.LoadEffect("ImpactHenrySlash"); punchSwingEffect = Assets.LoadEffect("HenryFistSwingEffect"); //punchImpactEffect = Assets.LoadEffect("ImpactHenryPunch"); // on second thought my effect sucks so imma just clone loader's punchImpactEffect = PrefabAPI.InstantiateClone(Resources.Load <GameObject>("Prefabs/Effects/OmniEffect/OmniImpactVFXLoader"), "ImpactHenryPunch"); punchImpactEffect.AddComponent <NetworkIdentity>(); EffectAPI.AddEffect(punchImpactEffect); }
public void Awake() { using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("ExtraItems.extraitem_assets")) { MainAssets = AssetBundle.LoadFromStream(stream); var provider = new AssetBundleResourcesProvider($"@{ModName}", MainAssets); ResourcesAPI.AddProvider(provider); } //Item initialization var ItemTypes = Assembly.GetExecutingAssembly().GetTypes().Where(type => !type.IsAbstract && type.IsSubclassOf(typeof(ItemBase))); foreach (var itemType in ItemTypes) { ItemBase item = (ItemBase)System.Activator.CreateInstance(itemType); if (ValidateItem(item, Items)) { item.Init(Config); ModLogger.LogInfo("Item: " + item.ItemName + " Initialized!"); } } //Material Shader Conversion var materialAssets = MainAssets.LoadAllAssets <Material>(); ModLogger.LogInfo("Intersection Shader is: " + IntersectionShader); foreach (Material material in materialAssets) { if (!material.shader.name.StartsWith("Fake")) { continue; } switch (material.shader.name.ToLower()) { case ("fake ror/hopoo games/deferred/hgstandard"): material.shader = HopooShader; break; case ("fake ror/hopoo games/fx/hgcloud intersection remap"): material.shader = IntersectionShader; break; case ("fake ror/hopoo games/fx/hgcloud remap"): material.shader = CloudRemapShader; break; } } }
internal static void PopulateAssets() { if (mainAssetBundle == null) { using (var assetStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("MonsterVariants.monstervariants")) { mainAssetBundle = AssetBundle.LoadFromStream(assetStream); var provider = new AssetBundleResourcesProvider("@MonsterVariants", mainAssetBundle); ResourcesAPI.AddProvider(provider); } } armoredMesh = mainAssetBundle.LoadAsset <Mesh>("meshArmoredBeetle"); speedyBeetleMesh = mainAssetBundle.LoadAsset <Mesh>("meshSpeedyBeetle"); }
internal static void Init() { using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("GNCProtoRocket.exampleitemmod")) { Debug.Log(Assembly.GetExecutingAssembly().GetManifestResourceNames()[0]); var bundle = AssetBundle.LoadFromStream(stream); var provider = new AssetBundleResourcesProvider(ModPrefix.TrimEnd(':'), bundle); ResourcesAPI.AddProvider(provider); GNCProtoRocketPrefab = bundle.LoadAsset <GameObject>("Assets/Import/belt/belt.prefab"); } AddTokens(); AddGNCProtoRocket(); }
internal static void PopulateAssets() { if (mainAssetBundle == null) { using (var assetStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("HenryMod.PleaseChangeThisNameInYourProjectOrElseYouWillCauseConflicts")) { mainAssetBundle = AssetBundle.LoadFromStream(assetStream); var provider = new AssetBundleResourcesProvider("@Henry", mainAssetBundle); ResourcesAPI.AddProvider(provider); } } //swordSwingEffect = Assets.LoadEffect("HenrySwingEffect"); //swordHitImpactEffect = Assets.LoadEffect("HenrySwingImpactEffect"); }
public static IResourceProvider PopulateAssets() { using (var assetStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("KevinsAdditions.kevinsadditions_assets")) { mainAssetBundle = AssetBundle.LoadFromStream(assetStream); Provider = new AssetBundleResourcesProvider("@KevinsAdditions", mainAssetBundle); } iconP = mainAssetBundle.LoadAsset <Sprite>("@KevinsAdditions:Assets/KevinsAdditions/textures/icons/icon"); icon1 = mainAssetBundle.LoadAsset <Sprite>("@KevinsAdditions:Assets/KevinsAdditions/textures/icons/icon"); icon2 = mainAssetBundle.LoadAsset <Sprite>("@KevinsAdditions:Assets/KevinsAdditions/textures/icons/icon"); icon3 = mainAssetBundle.LoadAsset <Sprite>("@KevinsAdditions:Assets/KevinsAdditions/textures/icons/icon"); icon4 = mainAssetBundle.LoadAsset <Sprite>("@KevinsAdditions:Assets/KevinsAdditions/textures/icons/icon"); return(Provider); }
private void Awake() { using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Ares.ares_assets")) { var bundle = AssetBundle.LoadFromStream(stream); var provider = new AssetBundleResourcesProvider("@Ares", bundle); ResourcesAPI.AddProvider(provider); } AffixEquipment.Add(new TheirReminder()); foreach (AffixEquipmentBase AffixEquip in AffixEquipment) { AffixEquip.Init(base.Config); } }
public Assets() { Log.LogI("Loading assets..."); commandoMaterial = Resources.Load <GameObject>("Prefabs/CharacterBodies/CommandoBody").GetComponentInChildren <CharacterModel>().baseRendererInfos[0].defaultMaterial; // populate ASSETS if (mainAssetBundle == null) { using (var assetStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Henry.henrybundle")) { mainAssetBundle = AssetBundle.LoadFromStream(assetStream); provider = new AssetBundleResourcesProvider("@IGiveEnigmaAllRightsToMyMod", mainAssetBundle); ResourcesAPI.AddProvider(provider); } } }
public void Assets() { const string ModPrefix = "@CustomItem:"; const string PrefabPath = ModPrefix + "Assets/Import/belt/belt.prefab"; const string IconPath = ModPrefix + "Assets/Import/belt_icon/belt_icon.png"; using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("ModItem.rampage")) { var bundle = AssetBundle.LoadFromStream(stream); var provider = new AssetBundleResourcesProvider(ModPrefix.TrimEnd(':'), bundle); ResourcesAPI.AddProvider(provider); BiscoLeashPrefab = bundle.LoadAsset <GameObject>("Assets/Import/belt/belt.prefab"); } ItemDef itemDef = new ItemDef { name = "ThornsPotion", tier = ItemTier.Tier2, pickupModelPath = PrefabPath, pickupIconPath = IconPath, nameToken = "Thorn's Potion", pickupToken = "Return to sender", descriptionToken = "Have a 30% chance to return the damage delt to you (+100%)", loreToken = "Empty", tags = new[] { ItemTag.Utility, ItemTag.Damage } }; ItemDisplayRule[] itemDisplayRules = new ItemDisplayRule[1]; // keep this null if you don't want the item to show up on the survivor 3d model. You can also have multiple rules ! itemDisplayRules[0].followerPrefab = BiscoLeashPrefab; // the prefab that will show up on the survivor itemDisplayRules[0].childName = "Chest"; // this will define the starting point for the position of the 3d model, you can see what are the differents name available in the prefab model of the survivors itemDisplayRules[0].localScale = new Vector3(0.15f, 0.15f, 0.15f); // scale the model itemDisplayRules[0].localAngles = new Vector3(0f, 180f, 0f); // rotate the model itemDisplayRules[0].localPos = new Vector3(-0.35f, -0.1f, 0f); // position offset relative to the childName, here the survivor Chest var thornsPotion = new CustomItem(itemDef, itemDisplayRules); Class1.ThornsPotion = ItemAPI.Add(thornsPotion); // ItemAPI sends back the ItemIndex of your item }
internal static void Init() { // First registering your AssetBundle into the ResourcesAPI with a modPrefix that'll also be used for your prefab and icon paths // note that the string parameter of this GetManifestResourceStream call will change depending on // your namespace and file name using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("CustomItem.rampage")) { var bundle = AssetBundle.LoadFromStream(stream); var provider = new AssetBundleResourcesProvider(ModPrefix.TrimEnd(':'), bundle); ResourcesAPI.AddProvider(provider); BiscoLeashPrefab = bundle.LoadAsset <GameObject>("Assets/Import/belt/belt.prefab"); } BiscoLeashAsRedTierItem(); BiscoLeashAsEquipment(); AddLanguageTokens(); }
internal static void Init() { using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("FloppyCrabsItems.floppycrabsitems")) { var bundle = AssetBundle.LoadFromStream(stream); var provider = new AssetBundleResourcesProvider(ModPrefix.TrimEnd(':'), bundle); ResourcesAPI.AddProvider(provider); } // null = Do not display on Character var nullDisplay = new ItemDisplayRuleDict(null); aPistolAsRedTierItem(nullDisplay); garbAsGreenTierItem(nullDisplay); lightArmourAsBuff(); // Adds string definitions for the language tokens defined below AddLanguageTokens(); }
internal static void Init() { using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("GNCItemSuite.exampleitemmod")) { Debug.Log(Assembly.GetExecutingAssembly().GetManifestResourceNames()[0]); var bundle = AssetBundle.LoadFromStream(stream); var provider = new AssetBundleResourcesProvider(ModPrefix.TrimEnd(':'), bundle); ResourcesAPI.AddProvider(provider); PoisonOnHitPrefab = bundle.LoadAsset <GameObject>("Assets/Import/belt/Poison.prefab"); BlightOnHitPrefab = bundle.LoadAsset <GameObject>("Assets/Import/belt/Blight.prefab"); RitualDaggerPrefab = bundle.LoadAsset <GameObject>("Assets/Import/belt/dagger.prefab"); } AddTokens(); AddPoisonOnHit(); AddBlightOnHit(); AddRitualDagger(); }