Decompiled source of Kadath Modpack v3.1.3

plugins/jtv.dll

Decompiled 10 months ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security.Permissions;
using BepInEx;
using HarmonyLib;
using Jotunn;
using Jotunn.Configs;
using Jotunn.Entities;
using Jotunn.Managers;
using Jotunn.Utils;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: AssemblyTitle("jtv")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("jtv")]
[assembly: AssemblyCopyright("Copyright ©  2022")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("e3243d22-4307-4008-ba36-9f326008cde5")]
[assembly: AssemblyFileVersion("1.1.8.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.6.2", FrameworkDisplayName = ".NET Framework 4.6.2")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.1.8.0")]
namespace jtv;

[HarmonyPatch(typeof(OfferingBowl), "Awake")]
public static class AlterOfferBowlAwake
{
	public static void Prefix(OfferingBowl __instance)
	{
		if ((Object)(object)__instance == (Object)null)
		{
			return;
		}
		Logger.LogDebug((object)("Calling OfferingBowl.Awake for " + ((Object)__instance).name));
		GameObject val = GameObject.Find("JotunnAltar(Clone)");
		if ((Object)(object)val != (Object)null)
		{
			GameObject prefab = ZNetScene.instance.GetPrefab("RRRM_Jotunn");
			if ((Object)(object)prefab != (Object)null)
			{
				((Character)prefab.GetComponent<Humanoid>()).m_staggerWhenBlocked = false;
				((Character)prefab.GetComponent<Humanoid>()).m_staggerDamageFactor = 0f;
				OfferingBowl componentInChildren = val.gameObject.GetComponentInChildren<OfferingBowl>();
				componentInChildren.m_name = ((Character)prefab.gameObject.GetComponent<Humanoid>()).m_name;
				componentInChildren.m_bossPrefab = prefab.gameObject;
			}
			else
			{
				Logger.LogDebug((object)"Did not find boss <RRRM_Jotunn>");
			}
		}
		else
		{
			Logger.LogDebug((object)"Did not find altar <JotunnAltar>");
		}
		GameObject val2 = GameObject.Find("BlazingDamnedOneAltar(Clone)");
		if ((Object)(object)val2 != (Object)null)
		{
			GameObject prefab2 = ZNetScene.instance.GetPrefab("RRRM_DamnedOne");
			GameObject prefab3 = ZNetScene.instance.GetPrefab("RRRM_BlazingDamnedOne");
			if ((Object)(object)prefab2 != (Object)null && (Object)(object)prefab3 != (Object)null)
			{
				((Character)prefab2.GetComponent<Humanoid>()).m_staggerWhenBlocked = false;
				((Character)prefab2.GetComponent<Humanoid>()).m_staggerDamageFactor = 0f;
				((Character)prefab3.GetComponent<Humanoid>()).m_staggerWhenBlocked = false;
				((Character)prefab3.GetComponent<Humanoid>()).m_staggerDamageFactor = 0f;
				OfferingBowl componentInChildren2 = val2.gameObject.GetComponentInChildren<OfferingBowl>();
				componentInChildren2.m_name = ((Character)prefab2.gameObject.GetComponent<Humanoid>()).m_name;
				componentInChildren2.m_bossPrefab = prefab2.gameObject;
			}
			else
			{
				Logger.LogDebug((object)"Did not find boss <RRRM_DamnedOne>");
			}
		}
		else
		{
			Logger.LogDebug((object)"Did not find altar <BlazingDamnedOneAltar>");
		}
	}
}
[BepInPlugin("thedefside.jtv", "jtv", "1.1.8")]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency("MonsterLabZ", "2.4.1")]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[NetworkCompatibility(/*Could not decode attribute arguments.*/)]
internal class Jtv : BaseUnityPlugin
{
	public const string PluginGUID = "thedefside.jtv";

	public const string PluginName = "jtv";

	public const string PluginVersion = "1.1.8";

	private AssetBundle bundle;

	private GameObject MineRock_Salt;

	private GameObject Salt;

	private Harmony _harmony;

	public static CustomLocalization Localization = LocalizationManager.Instance.GetLocalization();

	private void Awake()
	{
		_harmony = Harmony.CreateAndPatchAll(Assembly.GetExecutingAssembly(), "thedefside.jtv");
		bundle = AssetUtils.LoadAssetBundleFromResources("jtvbundle", typeof(Jtv).Assembly);
		LoadPrefabs();
		PrefabManager.OnVanillaPrefabsAvailable += AddVegetation;
		PrefabManager.OnVanillaPrefabsAvailable += AddItems;
		PieceManager.OnPiecesRegistered += AddForges;
		PrefabManager.OnVanillaPrefabsAvailable += AddCreatures;
		PrefabManager.OnVanillaPrefabsAvailable += UpdateVegvisirs;
	}

	private void LoadPrefabs()
	{
		MineRock_Salt = bundle.LoadAsset<GameObject>("MineRock_Salt");
		Salt = bundle.LoadAsset<GameObject>("SaltCube");
	}

	private void AddVegetation()
	{
		//IL_0022: Unknown result type (might be due to invalid IL or missing references)
		//IL_0027: Unknown result type (might be due to invalid IL or missing references)
		//IL_003d: Expected O, but got Unknown
		//IL_003f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0044: Unknown result type (might be due to invalid IL or missing references)
		//IL_005a: Expected O, but got Unknown
		//IL_006b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0070: Unknown result type (might be due to invalid IL or missing references)
		//IL_007b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0082: Unknown result type (might be due to invalid IL or missing references)
		//IL_0089: Unknown result type (might be due to invalid IL or missing references)
		//IL_0094: Unknown result type (might be due to invalid IL or missing references)
		//IL_009b: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a3: Unknown result type (might be due to invalid IL or missing references)
		//IL_00ae: Unknown result type (might be due to invalid IL or missing references)
		//IL_00be: Expected O, but got Unknown
		//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c3: Expected O, but got Unknown
		Logger.LogInfo((object)"Adding JTV Vegetation");
		try
		{
			MineRock_Salt.GetComponent<Destructible>().m_destroyedEffect.m_effectPrefabs = (EffectData[])(object)new EffectData[2]
			{
				new EffectData
				{
					m_prefab = PrefabManager.Instance.GetPrefab("vfx_RockDestroyed_Obsidian")
				},
				new EffectData
				{
					m_prefab = PrefabManager.Instance.GetPrefab("sfx_rock_destroyed")
				}
			};
			ZoneManager.Instance.AddCustomVegetation(new CustomVegetation(MineRock_Salt, false, new VegetationConfig
			{
				Max = 3f,
				GroupSizeMin = 1,
				GroupSizeMax = 2,
				GroupRadius = 15f,
				BlockCheck = true,
				Biome = (Biome)64,
				MinAltitude = 0f,
				MaxTilt = 30f
			}));
		}
		catch (Exception ex)
		{
			Logger.LogError((object)(ex.Message + ex.StackTrace));
		}
		finally
		{
			PrefabManager.OnVanillaPrefabsAvailable -= AddVegetation;
		}
	}

	private void AddForges()
	{
		//IL_009a: Unknown result type (might be due to invalid IL or missing references)
		//IL_009f: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a6: Unknown result type (might be due to invalid IL or missing references)
		//IL_00ad: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c5: Expected O, but got Unknown
		//IL_00c7: Unknown result type (might be due to invalid IL or missing references)
		//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d3: Unknown result type (might be due to invalid IL or missing references)
		//IL_00da: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e1: Unknown result type (might be due to invalid IL or missing references)
		//IL_00f2: Expected O, but got Unknown
		//IL_00f4: Unknown result type (might be due to invalid IL or missing references)
		//IL_00f9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0100: Unknown result type (might be due to invalid IL or missing references)
		//IL_0107: Unknown result type (might be due to invalid IL or missing references)
		//IL_010e: Unknown result type (might be due to invalid IL or missing references)
		//IL_011f: Expected O, but got Unknown
		//IL_0140: Unknown result type (might be due to invalid IL or missing references)
		//IL_0145: Unknown result type (might be due to invalid IL or missing references)
		//IL_014c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0153: Unknown result type (might be due to invalid IL or missing references)
		//IL_015a: Unknown result type (might be due to invalid IL or missing references)
		//IL_016b: Expected O, but got Unknown
		//IL_016d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0172: Unknown result type (might be due to invalid IL or missing references)
		//IL_0179: Unknown result type (might be due to invalid IL or missing references)
		//IL_0180: Unknown result type (might be due to invalid IL or missing references)
		//IL_0187: Unknown result type (might be due to invalid IL or missing references)
		//IL_0198: Expected O, but got Unknown
		//IL_019a: Unknown result type (might be due to invalid IL or missing references)
		//IL_019f: Unknown result type (might be due to invalid IL or missing references)
		//IL_01a6: Unknown result type (might be due to invalid IL or missing references)
		//IL_01ad: Unknown result type (might be due to invalid IL or missing references)
		//IL_01b4: Unknown result type (might be due to invalid IL or missing references)
		//IL_01c5: Expected O, but got Unknown
		//IL_01c7: Unknown result type (might be due to invalid IL or missing references)
		//IL_01cc: Unknown result type (might be due to invalid IL or missing references)
		//IL_01d3: Unknown result type (might be due to invalid IL or missing references)
		//IL_01da: Unknown result type (might be due to invalid IL or missing references)
		//IL_01e1: Unknown result type (might be due to invalid IL or missing references)
		//IL_01f2: Expected O, but got Unknown
		try
		{
			Logger.LogInfo((object)"Repurposing Crafting Stations");
			GameObject prefab = PrefabManager.Instance.GetPrefab("piece_alchemystation");
			Renderer[] componentsInChildren = prefab.GetComponentsInChildren<Renderer>();
			foreach (Renderer obj in componentsInChildren)
			{
				obj.materials = ((IEnumerable<Material>)obj.materials).Select((Func<Material, Material>)((Material m) => new Material(m)
				{
					color = new Color(0.2f, 0.8f, 1.3f)
				})).ToArray();
			}
			prefab.GetComponent<CraftingStation>().m_name = "Cold Forge";
			Piece component = prefab.GetComponent<Piece>();
			component.m_name = "Cold Forge";
			component.m_description = "A table for crafting Frometal weapons and armor.";
			component.m_resources = (Requirement[])(object)new Requirement[3]
			{
				new Requirement
				{
					m_amount = 1,
					m_amountPerLevel = 0,
					m_recover = true,
					m_resItem = Cache.GetPrefab<ItemDrop>("QueenDrop")
				},
				new Requirement
				{
					m_amount = 8,
					m_amountPerLevel = 0,
					m_recover = true,
					m_resItem = Cache.GetPrefab<ItemDrop>("BlackMetal")
				},
				new Requirement
				{
					m_amount = 6,
					m_amountPerLevel = 0,
					m_recover = true,
					m_resItem = Cache.GetPrefab<ItemDrop>("FreezeGland")
				}
			};
			PrefabManager.Instance.GetPrefab("piece_thorsforge").GetComponent<Piece>().m_resources = (Requirement[])(object)new Requirement[4]
			{
				new Requirement
				{
					m_amount = 2,
					m_amountPerLevel = 0,
					m_recover = true,
					m_resItem = Cache.GetPrefab<ItemDrop>("JotunnBone")
				},
				new Requirement
				{
					m_amount = 4,
					m_amountPerLevel = 0,
					m_recover = true,
					m_resItem = Cache.GetPrefab<ItemDrop>("Thunderstone")
				},
				new Requirement
				{
					m_amount = 6,
					m_amountPerLevel = 0,
					m_recover = true,
					m_resItem = Cache.GetPrefab<ItemDrop>("BurningWorldTreeFragment")
				},
				new Requirement
				{
					m_amount = 6,
					m_amountPerLevel = 0,
					m_recover = true,
					m_resItem = Cache.GetPrefab<ItemDrop>("Tar")
				}
			};
		}
		finally
		{
			PieceManager.OnPiecesRegistered -= AddForges;
		}
	}

	private void AddItems()
	{
		//IL_001c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0026: Expected O, but got Unknown
		//IL_008c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0096: Expected O, but got Unknown
		//IL_00f9: Unknown result type (might be due to invalid IL or missing references)
		//IL_00fe: Unknown result type (might be due to invalid IL or missing references)
		//IL_0109: Unknown result type (might be due to invalid IL or missing references)
		//IL_0119: Expected O, but got Unknown
		//IL_0114: Unknown result type (might be due to invalid IL or missing references)
		//IL_011a: Expected O, but got Unknown
		//IL_0184: Unknown result type (might be due to invalid IL or missing references)
		//IL_023e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0245: Expected O, but got Unknown
		//IL_0283: Unknown result type (might be due to invalid IL or missing references)
		//IL_0288: Unknown result type (might be due to invalid IL or missing references)
		//IL_028f: Unknown result type (might be due to invalid IL or missing references)
		//IL_029b: Expected O, but got Unknown
		//IL_029d: Unknown result type (might be due to invalid IL or missing references)
		//IL_02a2: Unknown result type (might be due to invalid IL or missing references)
		//IL_02a9: Unknown result type (might be due to invalid IL or missing references)
		//IL_02b5: Expected O, but got Unknown
		//IL_02bc: Unknown result type (might be due to invalid IL or missing references)
		//IL_02c2: Expected O, but got Unknown
		//IL_02fb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0302: Expected O, but got Unknown
		//IL_0341: Unknown result type (might be due to invalid IL or missing references)
		//IL_0346: Unknown result type (might be due to invalid IL or missing references)
		//IL_034e: Unknown result type (might be due to invalid IL or missing references)
		//IL_035a: Expected O, but got Unknown
		//IL_035c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0361: Unknown result type (might be due to invalid IL or missing references)
		//IL_0369: Unknown result type (might be due to invalid IL or missing references)
		//IL_0375: Expected O, but got Unknown
		//IL_037c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0383: Expected O, but got Unknown
		//IL_039a: Unknown result type (might be due to invalid IL or missing references)
		//IL_039f: Unknown result type (might be due to invalid IL or missing references)
		//IL_03aa: Unknown result type (might be due to invalid IL or missing references)
		//IL_03ba: Expected O, but got Unknown
		//IL_03b5: Unknown result type (might be due to invalid IL or missing references)
		//IL_03bc: Expected O, but got Unknown
		//IL_047e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0483: Unknown result type (might be due to invalid IL or missing references)
		//IL_048e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0499: Unknown result type (might be due to invalid IL or missing references)
		//IL_04a4: Unknown result type (might be due to invalid IL or missing references)
		//IL_04b4: Expected O, but got Unknown
		//IL_04af: Unknown result type (might be due to invalid IL or missing references)
		//IL_04b6: Expected O, but got Unknown
		//IL_04cd: Unknown result type (might be due to invalid IL or missing references)
		//IL_04d2: Unknown result type (might be due to invalid IL or missing references)
		//IL_04dd: Unknown result type (might be due to invalid IL or missing references)
		//IL_04ed: Expected O, but got Unknown
		//IL_04e8: Unknown result type (might be due to invalid IL or missing references)
		//IL_04ef: Expected O, but got Unknown
		//IL_0534: Unknown result type (might be due to invalid IL or missing references)
		//IL_053b: Expected O, but got Unknown
		//IL_0579: Unknown result type (might be due to invalid IL or missing references)
		//IL_057e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0585: Unknown result type (might be due to invalid IL or missing references)
		//IL_0591: Expected O, but got Unknown
		//IL_0593: Unknown result type (might be due to invalid IL or missing references)
		//IL_0598: Unknown result type (might be due to invalid IL or missing references)
		//IL_059f: Unknown result type (might be due to invalid IL or missing references)
		//IL_05ab: Expected O, but got Unknown
		//IL_05b2: Unknown result type (might be due to invalid IL or missing references)
		//IL_05b9: Expected O, but got Unknown
		//IL_067b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0682: Expected O, but got Unknown
		//IL_06c1: Unknown result type (might be due to invalid IL or missing references)
		//IL_06c6: Unknown result type (might be due to invalid IL or missing references)
		//IL_06ce: Unknown result type (might be due to invalid IL or missing references)
		//IL_06da: Expected O, but got Unknown
		//IL_06dc: Unknown result type (might be due to invalid IL or missing references)
		//IL_06e1: Unknown result type (might be due to invalid IL or missing references)
		//IL_06e9: Unknown result type (might be due to invalid IL or missing references)
		//IL_06f5: Expected O, but got Unknown
		//IL_06fc: Unknown result type (might be due to invalid IL or missing references)
		//IL_0703: Expected O, but got Unknown
		//IL_071a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0721: Expected O, but got Unknown
		//IL_075f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0764: Unknown result type (might be due to invalid IL or missing references)
		//IL_076b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0777: Expected O, but got Unknown
		//IL_0779: Unknown result type (might be due to invalid IL or missing references)
		//IL_077e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0785: Unknown result type (might be due to invalid IL or missing references)
		//IL_0791: Expected O, but got Unknown
		//IL_0793: Unknown result type (might be due to invalid IL or missing references)
		//IL_0798: Unknown result type (might be due to invalid IL or missing references)
		//IL_079f: Unknown result type (might be due to invalid IL or missing references)
		//IL_07ab: Expected O, but got Unknown
		//IL_07ad: Unknown result type (might be due to invalid IL or missing references)
		//IL_07b2: Unknown result type (might be due to invalid IL or missing references)
		//IL_07b9: Unknown result type (might be due to invalid IL or missing references)
		//IL_07c5: Expected O, but got Unknown
		//IL_07cc: Unknown result type (might be due to invalid IL or missing references)
		//IL_07d3: Expected O, but got Unknown
		//IL_08e7: Unknown result type (might be due to invalid IL or missing references)
		//IL_08ee: Expected O, but got Unknown
		//IL_092d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0932: Unknown result type (might be due to invalid IL or missing references)
		//IL_093a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0946: Expected O, but got Unknown
		//IL_0948: Unknown result type (might be due to invalid IL or missing references)
		//IL_094d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0955: Unknown result type (might be due to invalid IL or missing references)
		//IL_0961: Expected O, but got Unknown
		//IL_0963: Unknown result type (might be due to invalid IL or missing references)
		//IL_0968: Unknown result type (might be due to invalid IL or missing references)
		//IL_0970: Unknown result type (might be due to invalid IL or missing references)
		//IL_097c: Expected O, but got Unknown
		//IL_097e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0983: Unknown result type (might be due to invalid IL or missing references)
		//IL_098b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0997: Expected O, but got Unknown
		//IL_099e: Unknown result type (might be due to invalid IL or missing references)
		//IL_09a5: Expected O, but got Unknown
		//IL_09bc: Unknown result type (might be due to invalid IL or missing references)
		//IL_09c3: Expected O, but got Unknown
		//IL_0a01: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a06: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a0d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a19: Expected O, but got Unknown
		//IL_0a1b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a20: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a27: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a33: Expected O, but got Unknown
		//IL_0a35: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a3a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a41: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a4d: Expected O, but got Unknown
		//IL_0a54: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a5b: Expected O, but got Unknown
		//IL_0b02: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b09: Expected O, but got Unknown
		//IL_0b48: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b4d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b55: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b61: Expected O, but got Unknown
		//IL_0b63: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b68: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b70: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b7c: Expected O, but got Unknown
		//IL_0b7e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b83: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b8b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b97: Expected O, but got Unknown
		//IL_0b9e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ba5: Expected O, but got Unknown
		//IL_0bd7: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bdc: Unknown result type (might be due to invalid IL or missing references)
		//IL_0be9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bf3: Expected O, but got Unknown
		//IL_0c05: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c0c: Expected O, but got Unknown
		//IL_0c3a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c3f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c4a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c52: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c5a: Expected O, but got Unknown
		//IL_0c5c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c61: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c6c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c74: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c7c: Expected O, but got Unknown
		//IL_0c7e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c83: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c8e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c95: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c9d: Expected O, but got Unknown
		//IL_0c9f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ca4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0caf: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cb6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cbe: Expected O, but got Unknown
		//IL_0cc5: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ccc: Expected O, but got Unknown
		//IL_0cea: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cf1: Expected O, but got Unknown
		//IL_0d1f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d24: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d2f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d36: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d3e: Expected O, but got Unknown
		//IL_0d40: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d45: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d50: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d57: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d5f: Expected O, but got Unknown
		//IL_0d66: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d6d: Expected O, but got Unknown
		//IL_0dbb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0dc2: Expected O, but got Unknown
		//IL_0eaf: Unknown result type (might be due to invalid IL or missing references)
		//IL_0eb6: Expected O, but got Unknown
		//IL_0ee4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ee9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ef4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0efc: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f04: Expected O, but got Unknown
		//IL_0f06: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f0b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f16: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f1e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f26: Expected O, but got Unknown
		//IL_0f28: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f2d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f38: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f3f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f47: Expected O, but got Unknown
		//IL_0f49: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f4e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f59: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f60: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f68: Expected O, but got Unknown
		//IL_0f6f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f76: Expected O, but got Unknown
		//IL_0e4d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e54: Expected O, but got Unknown
		//IL_10b3: Unknown result type (might be due to invalid IL or missing references)
		Logger.LogInfo((object)"Adding Food");
		try
		{
			ItemManager.Instance.AddItem(new CustomItem(Salt, false));
			foreach (string item in new List<string> { "Amethyst", "JotunnBone", "FrozenRemains", "BurnedRemains", "SpiderSilk" })
			{
				try
				{
					GameObject val = bundle.LoadAsset<GameObject>(item);
					ItemManager.Instance.AddItem(new CustomItem(val, false));
				}
				catch (Exception ex)
				{
					Logger.LogError((object)("Error Adding item: " + item + " " + ex.Message + ex.StackTrace));
				}
			}
			CustomItem val2 = new CustomItem("Banana", "WolfFang", new ItemConfig
			{
				Name = "Banana",
				Description = "A sweet fruit packed with nutrients that increase stamina."
			});
			MeshRenderer[] componentsInChildren = val2.ItemPrefab.GetComponentsInChildren<MeshRenderer>();
			foreach (MeshRenderer obj in componentsInChildren)
			{
				((Renderer)obj).materials = ((IEnumerable<Material>)((Renderer)obj).materials).Select((Func<Material, Material>)((Material m) => new Material(m)
				{
					color = Color.yellow
				})).ToArray();
			}
			val2.ItemDrop.m_itemData.m_shared.m_itemType = (ItemType)2;
			val2.ItemDrop.m_itemData.m_shared.m_food = 15f;
			val2.ItemDrop.m_itemData.m_shared.m_foodStamina = 50f;
			val2.ItemDrop.m_itemData.m_shared.m_foodBurnTime = 900f;
			val2.ItemDrop.m_itemData.m_shared.m_foodRegen = 2f;
			val2.ItemDrop.m_autoPickup = true;
			Sprite val3 = LoadEmbeddedSprite("bananas_icon");
			val2.ItemDrop.m_itemData.m_shared.m_icons = (Sprite[])(object)new Sprite[1] { val3 };
			ItemManager.Instance.AddItem(val2);
			ItemConfig val4 = new ItemConfig();
			val4.Amount = 1;
			val4.CraftingStation = "piece_cauldron";
			val4.MinStationLevel = 4;
			val4.Name = "Banana Bread Dough";
			val4.Description = "Dough that when baked in the oven will produce Banana Bread";
			val4.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Amount = 5,
					Item = "BarleyFlour"
				},
				new RequirementConfig
				{
					Amount = 3,
					Item = "Banana"
				}
			};
			CustomItem val5 = new CustomItem("BananaBreadDough", "BreadDough", val4);
			Sprite val6 = LoadEmbeddedSprite("BananaBreadDough");
			val5.ItemDrop.m_itemData.m_shared.m_icons = (Sprite[])(object)new Sprite[1] { val6 };
			ItemManager.Instance.AddItem(val5);
			RecipeConfig val7 = new RecipeConfig();
			val7.Amount = 20;
			val7.Item = "BananaBreadDough";
			val7.CraftingStation = "piece_cauldron";
			val7.MinStationLevel = 4;
			val7.Name = "Banana Bread Dough x20";
			val7.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Amount = 100,
					Item = "BarleyFlour"
				},
				new RequirementConfig
				{
					Amount = 60,
					Item = "Banana"
				}
			};
			CustomRecipe val8 = new CustomRecipe(val7);
			ItemManager.Instance.AddRecipe(val8);
			CustomItem val9 = new CustomItem("BananaBread", "Bread", new ItemConfig
			{
				Name = "Banana Bread",
				Description = "A powerful stamina booster containing nutrients from bananas combined with the energy from the bread carbs."
			});
			val9.ItemDrop.m_itemData.m_shared.m_food = 90f;
			val9.ItemDrop.m_itemData.m_shared.m_foodStamina = 115f;
			val9.ItemDrop.m_itemData.m_shared.m_foodEitr = 75f;
			val9.ItemDrop.m_itemData.m_shared.m_foodBurnTime = 1800f;
			val9.ItemDrop.m_itemData.m_shared.m_foodRegen = 6f;
			Sprite val10 = LoadEmbeddedSprite("BananaBread");
			val9.ItemDrop.m_itemData.m_shared.m_icons = (Sprite[])(object)new Sprite[1] { val10 };
			ItemManager.Instance.AddItem(val9);
			CustomItemConversion val11 = new CustomItemConversion((ConversionConfig)new CookingConversionConfig
			{
				Station = "piece_oven",
				FromItem = "BananaBreadDough",
				ToItem = "BananaBread",
				CookTime = 60f
			});
			ItemManager.Instance.AddItemConversion(val11);
			CustomItem val12 = new CustomItem("Liver", "Entrails", new ItemConfig
			{
				Name = "Liver",
				Description = "The liver of an elf. Full of iron and other nutrients."
			});
			Sprite val13 = LoadEmbeddedSprite("Liver");
			val12.ItemDrop.m_itemData.m_shared.m_icons = (Sprite[])(object)new Sprite[1] { val13 };
			ItemManager.Instance.AddItem(val12);
			val4 = new ItemConfig();
			val4.Name = "Smoky Liver and Onions";
			val4.Description = "The charred remains of what used to be men mixed with onions. An acquired taste.";
			val4.Amount = 1;
			val4.CraftingStation = "piece_cauldron";
			val4.MinStationLevel = 4;
			val4.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Amount = 2,
					Item = "Liver"
				},
				new RequirementConfig
				{
					Amount = 3,
					Item = "Onion"
				}
			};
			CustomItem val14 = new CustomItem("LiverAndOnions", "OnionSoup", val4);
			val14.ItemDrop.m_itemData.m_shared.m_food = 115f;
			val14.ItemDrop.m_itemData.m_shared.m_foodStamina = 90f;
			val14.ItemDrop.m_itemData.m_shared.m_foodEitr = 75f;
			val14.ItemDrop.m_itemData.m_shared.m_foodBurnTime = 1800f;
			val14.ItemDrop.m_itemData.m_shared.m_foodRegen = 6f;
			Sprite val15 = LoadEmbeddedSprite("LiverAndOnions");
			val14.ItemDrop.m_itemData.m_shared.m_icons = (Sprite[])(object)new Sprite[1] { val15 };
			ItemManager.Instance.AddItem(val14);
			val7 = new RecipeConfig();
			val7.Amount = 10;
			val7.Item = "LiverAndOnions";
			val7.CraftingStation = "piece_cauldron";
			val7.MinStationLevel = 4;
			val7.Name = "Liver and Onions x10";
			val7.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Amount = 20,
					Item = "Liver"
				},
				new RequirementConfig
				{
					Amount = 30,
					Item = "Onion"
				}
			};
			CustomRecipe val16 = new CustomRecipe(val7);
			ItemManager.Instance.AddRecipe(val16);
			val4 = new ItemConfig();
			val4.Name = "$chicken_noodle_soup";
			val4.Description = "$chicken_noodle_description";
			val4.Amount = 1;
			val4.CraftingStation = "piece_cauldron";
			val4.MinStationLevel = 4;
			val4.Requirements = (RequirementConfig[])(object)new RequirementConfig[4]
			{
				new RequirementConfig
				{
					Amount = 2,
					Item = "BarleyFlour"
				},
				new RequirementConfig
				{
					Amount = 3,
					Item = "ChickenEgg"
				},
				new RequirementConfig
				{
					Amount = 1,
					Item = "CookedChickenMeat"
				},
				new RequirementConfig
				{
					Amount = 1,
					Item = "SaltCube"
				}
			};
			CustomItem val17 = new CustomItem("ChickenNoodleSoup", "TurnipStew", val4);
			val17.ItemDrop.m_itemData.m_shared.m_food = 35f;
			val17.ItemDrop.m_itemData.m_shared.m_foodStamina = 100f;
			val17.ItemDrop.m_itemData.m_shared.m_foodBurnTime = 1800f;
			val17.ItemDrop.m_itemData.m_shared.m_foodRegen = 6f;
			Sprite val18 = LoadEmbeddedSprite("ChickenNoodleIcon");
			Texture2D chickenNoodleTexture = LoadEmbeddedTexture("ChickenNoodleSoup");
			val17.ItemDrop.m_itemData.m_shared.m_icons = (Sprite[])(object)new Sprite[1] { val18 };
			componentsInChildren = val17.ItemPrefab.GetComponentsInChildren<MeshRenderer>();
			foreach (MeshRenderer obj2 in componentsInChildren)
			{
				((Renderer)obj2).materials = ((IEnumerable<Material>)((Renderer)obj2).materials).Select((Func<Material, Material>)((Material m) => new Material(m)
				{
					mainTexture = (Texture)(object)chickenNoodleTexture
				})).ToArray();
			}
			ItemManager.Instance.AddItem(val17);
			val7 = new RecipeConfig();
			val7.Amount = 10;
			val7.Item = "ChickenNoodleSoup";
			val7.CraftingStation = "piece_cauldron";
			val7.MinStationLevel = 4;
			val7.Name = "Chicken Noodle Soup x10";
			val7.Requirements = (RequirementConfig[])(object)new RequirementConfig[4]
			{
				new RequirementConfig
				{
					Amount = 20,
					Item = "BarleyFlour"
				},
				new RequirementConfig
				{
					Amount = 30,
					Item = "ChickenEgg"
				},
				new RequirementConfig
				{
					Amount = 10,
					Item = "CookedChickenMeat"
				},
				new RequirementConfig
				{
					Amount = 10,
					Item = "SaltCube"
				}
			};
			CustomRecipe val19 = new CustomRecipe(val7);
			ItemManager.Instance.AddRecipe(val19);
			val4 = new ItemConfig();
			val4.Name = "$salted_meat";
			val4.Description = "$salted_meat_description";
			val4.Amount = 1;
			val4.CraftingStation = "piece_cauldron";
			val4.MinStationLevel = 4;
			val4.Requirements = (RequirementConfig[])(object)new RequirementConfig[3]
			{
				new RequirementConfig
				{
					Amount = 2,
					Item = "CookedLoxMeat"
				},
				new RequirementConfig
				{
					Amount = 1,
					Item = "CookedWolfMeat"
				},
				new RequirementConfig
				{
					Amount = 3,
					Item = "SaltCube"
				}
			};
			CustomItem val20 = new CustomItem("SaltedMeat", "CookedLoxMeat", val4);
			val20.ItemDrop.m_itemData.m_shared.m_food = 100f;
			val20.ItemDrop.m_itemData.m_shared.m_foodStamina = 35f;
			val20.ItemDrop.m_itemData.m_shared.m_foodBurnTime = 1800f;
			val20.ItemDrop.m_itemData.m_shared.m_foodRegen = 6f;
			Sprite val21 = LoadEmbeddedSprite("SaltedMeat");
			val20.ItemDrop.m_itemData.m_shared.m_icons = (Sprite[])(object)new Sprite[1] { val21 };
			ItemManager.Instance.AddItem(val20);
			val7 = new RecipeConfig();
			val7.Amount = 20;
			val7.Item = "SaltedMeat";
			val7.CraftingStation = "piece_cauldron";
			val7.MinStationLevel = 4;
			val7.Name = "Salted Meat x20";
			val7.Requirements = (RequirementConfig[])(object)new RequirementConfig[3]
			{
				new RequirementConfig
				{
					Amount = 40,
					Item = "CookedLoxMeat"
				},
				new RequirementConfig
				{
					Amount = 20,
					Item = "CookedWolfMeat"
				},
				new RequirementConfig
				{
					Amount = 60,
					Item = "SaltCube"
				}
			};
			CustomRecipe val22 = new CustomRecipe(val7);
			ItemManager.Instance.AddRecipe(val22);
			GameObject val23 = bundle.LoadAsset<GameObject>("ObsidianGolemTrophy");
			val23.GetComponent<ItemDrop>().m_itemData.m_shared.m_trophyPos = new Vector2Int(5, 5);
			ItemManager.Instance.AddItem(new CustomItem(val23, true));
			GameObject obj3 = bundle.LoadAsset<GameObject>("FrometalWarhammer");
			val4 = new ItemConfig();
			val4.Name = "$frometal_warhammer";
			val4.Description = "$frometal_warhammer_description";
			val4.CraftingStation = "piece_alchemystation";
			val4.Requirements = (RequirementConfig[])(object)new RequirementConfig[4]
			{
				new RequirementConfig
				{
					Item = "FrometalBar",
					Amount = 15,
					AmountPerLevel = 7
				},
				new RequirementConfig
				{
					Item = "Silver",
					Amount = 10,
					AmountPerLevel = 3
				},
				new RequirementConfig
				{
					Item = "ArcticWolfPelt",
					Amount = 4,
					AmountPerLevel = 2
				},
				new RequirementConfig
				{
					Item = "YggdrasilWood",
					Amount = 4,
					AmountPerLevel = 2
				}
			};
			CustomItem val24 = new CustomItem(obj3, false, val4);
			ItemManager.Instance.AddItem(val24);
			GameObject obj4 = bundle.LoadAsset<GameObject>("ShieldFrometalBuckler");
			val4 = new ItemConfig();
			val4.Name = "$frometal_buckler";
			val4.Description = "$frometal_buckler_description";
			val4.CraftingStation = "piece_alchemystation";
			val4.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "FrometalBar",
					Amount = 8,
					AmountPerLevel = 2
				},
				new RequirementConfig
				{
					Item = "YggdrasilWood",
					Amount = 4,
					AmountPerLevel = 2
				}
			};
			CustomItem val25 = new CustomItem(obj4, false, val4);
			ItemManager.Instance.AddItem(val25);
			componentsInChildren = ItemManager.Instance.GetItem("ShieldFrometal").ItemPrefab.GetComponentsInChildren<MeshRenderer>();
			foreach (MeshRenderer val26 in componentsInChildren)
			{
				List<Material> list = new List<Material>();
				Material[] materials = ((Renderer)val26).materials;
				for (int j = 0; j < materials.Length; j++)
				{
					Material val27 = new Material(materials[j]);
					val27.SetTexture("_BumpMap", (Texture)(object)LoadEmbeddedTexture("bam2"));
					list.Add(val27);
				}
				((Renderer)val26).materials = list.ToArray();
			}
			componentsInChildren = ItemManager.Instance.GetItem("ShieldFrometalTower").ItemPrefab.GetComponentsInChildren<MeshRenderer>();
			foreach (MeshRenderer val28 in componentsInChildren)
			{
				List<Material> list2 = new List<Material>();
				Material[] materials = ((Renderer)val28).materials;
				for (int j = 0; j < materials.Length; j++)
				{
					Material val29 = new Material(materials[j]);
					val29.SetTexture("_BumpMap", (Texture)(object)LoadEmbeddedTexture("bam2"));
					list2.Add(val29);
				}
				((Renderer)val28).materials = list2.ToArray();
			}
			GameObject obj5 = bundle.LoadAsset<GameObject>("FlametalWarhammer");
			val4 = new ItemConfig();
			val4.Name = "$flametal_warhammer";
			val4.Description = "$flametal_warhammer_description";
			val4.CraftingStation = "piece_thorsforge";
			val4.Requirements = (RequirementConfig[])(object)new RequirementConfig[4]
			{
				new RequirementConfig
				{
					Item = "Flametal",
					Amount = 15,
					AmountPerLevel = 7
				},
				new RequirementConfig
				{
					Item = "Silver",
					Amount = 10,
					AmountPerLevel = 3
				},
				new RequirementConfig
				{
					Item = "SpiderSilk",
					Amount = 4,
					AmountPerLevel = 2
				},
				new RequirementConfig
				{
					Item = "BurningWorldTreeFragment",
					Amount = 4,
					AmountPerLevel = 2
				}
			};
			CustomItem val30 = new CustomItem(obj5, false, val4);
			val30.ItemPrefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_damagesPerLevel.m_frost = 0f;
			ItemManager.Instance.AddItem(val30);
			foreach (string item2 in new List<string>
			{
				"BowFlametal", "AtgeirFlametal", "SledgeFlametal", "BattleaxeFlametal", "SpearFlametal", "KnifeFlametal", "MaceFlametal", "GreatSwordFlametal", "SwordFlametal", "ShieldFlametal",
				"ShieldFlametalTower", "AxeFlametal", "PickaxeFlametal"
			})
			{
				componentsInChildren = ItemManager.Instance.GetItem(item2).ItemPrefab.GetComponentsInChildren<MeshRenderer>();
				foreach (MeshRenderer val31 in componentsInChildren)
				{
					for (int k = 0; k < ((Renderer)val31).materials.Length; k++)
					{
						if (((Object)((Renderer)val31).materials[k]).name.StartsWith("Flametal_Color"))
						{
							((Renderer)val31).materials[k].SetColor("_EmissionColor", new Color(1.5f, 0.7f, 0.1f));
						}
					}
				}
			}
		}
		catch (Exception ex2)
		{
			Logger.LogError((object)(ex2.Message + ex2.StackTrace));
		}
		finally
		{
			PrefabManager.OnVanillaPrefabsAvailable -= AddItems;
			bundle.Unload(false);
		}
	}

	private void AddCreatures()
	{
		//IL_000a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0011: Expected O, but got Unknown
		//IL_0051: Unknown result type (might be due to invalid IL or missing references)
		//IL_0057: Expected O, but got Unknown
		//IL_00ac: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b1: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c7: Expected O, but got Unknown
		//IL_00c9: Unknown result type (might be due to invalid IL or missing references)
		//IL_00ce: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e4: Expected O, but got Unknown
		//IL_00f7: Unknown result type (might be due to invalid IL or missing references)
		//IL_00fc: Unknown result type (might be due to invalid IL or missing references)
		//IL_0112: Expected O, but got Unknown
		//IL_0114: Unknown result type (might be due to invalid IL or missing references)
		//IL_0119: Unknown result type (might be due to invalid IL or missing references)
		//IL_012f: Expected O, but got Unknown
		//IL_0131: Unknown result type (might be due to invalid IL or missing references)
		//IL_0136: Unknown result type (might be due to invalid IL or missing references)
		//IL_014c: Expected O, but got Unknown
		//IL_0167: Unknown result type (might be due to invalid IL or missing references)
		//IL_016e: Expected O, but got Unknown
		//IL_0191: Unknown result type (might be due to invalid IL or missing references)
		//IL_0196: Unknown result type (might be due to invalid IL or missing references)
		//IL_01a1: Unknown result type (might be due to invalid IL or missing references)
		//IL_01a8: Unknown result type (might be due to invalid IL or missing references)
		//IL_01af: Unknown result type (might be due to invalid IL or missing references)
		//IL_01ba: Unknown result type (might be due to invalid IL or missing references)
		//IL_01c1: Unknown result type (might be due to invalid IL or missing references)
		//IL_01c9: Expected O, but got Unknown
		//IL_01cb: Unknown result type (might be due to invalid IL or missing references)
		//IL_01d0: Unknown result type (might be due to invalid IL or missing references)
		//IL_01db: Unknown result type (might be due to invalid IL or missing references)
		//IL_01e3: Unknown result type (might be due to invalid IL or missing references)
		//IL_01eb: Unknown result type (might be due to invalid IL or missing references)
		//IL_01f6: Unknown result type (might be due to invalid IL or missing references)
		//IL_01fd: Unknown result type (might be due to invalid IL or missing references)
		//IL_0205: Expected O, but got Unknown
		//IL_0207: Unknown result type (might be due to invalid IL or missing references)
		//IL_020c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0217: Unknown result type (might be due to invalid IL or missing references)
		//IL_021e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0225: Unknown result type (might be due to invalid IL or missing references)
		//IL_0230: Unknown result type (might be due to invalid IL or missing references)
		//IL_0237: Unknown result type (might be due to invalid IL or missing references)
		//IL_023f: Expected O, but got Unknown
		//IL_0246: Unknown result type (might be due to invalid IL or missing references)
		//IL_024c: Expected O, but got Unknown
		//IL_0266: Unknown result type (might be due to invalid IL or missing references)
		//IL_029b: Unknown result type (might be due to invalid IL or missing references)
		//IL_02a2: Expected O, but got Unknown
		//IL_02c5: Unknown result type (might be due to invalid IL or missing references)
		//IL_02ca: Unknown result type (might be due to invalid IL or missing references)
		//IL_02d5: Unknown result type (might be due to invalid IL or missing references)
		//IL_02dc: Unknown result type (might be due to invalid IL or missing references)
		//IL_02e3: Unknown result type (might be due to invalid IL or missing references)
		//IL_02ee: Unknown result type (might be due to invalid IL or missing references)
		//IL_02f5: Unknown result type (might be due to invalid IL or missing references)
		//IL_02fd: Expected O, but got Unknown
		//IL_02ff: Unknown result type (might be due to invalid IL or missing references)
		//IL_0304: Unknown result type (might be due to invalid IL or missing references)
		//IL_030f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0316: Unknown result type (might be due to invalid IL or missing references)
		//IL_031d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0328: Unknown result type (might be due to invalid IL or missing references)
		//IL_032f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0337: Expected O, but got Unknown
		//IL_033e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0344: Expected O, but got Unknown
		//IL_038b: Unknown result type (might be due to invalid IL or missing references)
		try
		{
			CreatureConfig val = new CreatureConfig();
			val.Name = "$swedish_chef";
			val.Faction = (Faction)2;
			val.Consumables = new string[3] { "Resin", "PineCone", "FirCone" };
			CustomCreature val2 = new CustomCreature("SwedishChef_JTV", "Greydwarf_Purple_Shroom", val);
			Humanoid component = val2.Prefab.GetComponent<Humanoid>();
			((Character)component).m_name = "$swedish_chef";
			component.m_defaultItems = (GameObject[])(object)new GameObject[2]
			{
				PrefabManager.Instance.GetPrefab("Greydwarf_attack"),
				PrefabManager.Instance.GetPrefab("Greydwarf_throw")
			};
			((Character)component).m_hitEffects.m_effectPrefabs = (EffectData[])(object)new EffectData[2]
			{
				new EffectData
				{
					m_prefab = PrefabManager.Instance.GetPrefab("vfx_greydwarf_hit")
				},
				new EffectData
				{
					m_prefab = PrefabManager.Instance.GetPrefab("sfx_greydwarf_hit")
				}
			};
			((Character)component).m_deathEffects.m_effectPrefabs = (EffectData[])(object)new EffectData[3]
			{
				new EffectData
				{
					m_prefab = PrefabManager.Instance.GetPrefab("vfx_greydwarf_death")
				},
				new EffectData
				{
					m_prefab = PrefabManager.Instance.GetPrefab("sfx_greydwarf_death")
				},
				new EffectData
				{
					m_prefab = PrefabManager.Instance.GetPrefab("Greydwarf_Purple_ragdoll")
				}
			};
			CreatureManager.Instance.AddCreature(val2);
			val = new CreatureConfig();
			val.Name = "$obsidian_golem";
			val.Faction = (Faction)5;
			val.DropConfigs = (DropConfig[])(object)new DropConfig[3]
			{
				new DropConfig
				{
					Item = "ObsidianGolemTrophy",
					MinAmount = 1,
					MaxAmount = 1,
					Chance = 5f,
					OnePerPlayer = false,
					LevelMultiplier = false
				},
				new DropConfig
				{
					Item = "Obsidian",
					MinAmount = 10,
					MaxAmount = 15,
					Chance = 100f,
					OnePerPlayer = false,
					LevelMultiplier = true
				},
				new DropConfig
				{
					Item = "Crystal",
					MinAmount = 3,
					MaxAmount = 6,
					Chance = 100f,
					OnePerPlayer = false,
					LevelMultiplier = true
				}
			};
			CustomCreature val3 = new CustomCreature("ObsidianGolem_JTV", "ObsidianGolem", val);
			val3.Prefab.transform.localScale = new Vector3(0.75f, 0.75f, 0.75f);
			((Character)val3.Prefab.GetComponent<Humanoid>()).m_name = "$obsidian_golem";
			CreatureManager.Instance.AddCreature(val3);
			val = new CreatureConfig();
			val.Name = "$molluscan";
			val.Faction = (Faction)3;
			val.DropConfigs = (DropConfig[])(object)new DropConfig[2]
			{
				new DropConfig
				{
					Item = "FishRaw",
					MinAmount = 1,
					MaxAmount = 2,
					Chance = 60f,
					OnePerPlayer = false,
					LevelMultiplier = true
				},
				new DropConfig
				{
					Item = "Chitin",
					MinAmount = 2,
					MaxAmount = 4,
					Chance = 100f,
					OnePerPlayer = false,
					LevelMultiplier = true
				}
			};
			CustomCreature val4 = new CustomCreature("Molluscan_JTV", "Molluscan", val);
			((Character)val4.Prefab.GetComponent<Humanoid>()).m_name = "$molluscan";
			((Character)val4.Prefab.GetComponent<Humanoid>()).m_health = 240f;
			val4.Prefab.GetComponent<BaseAI>().m_avoidWater = false;
			val4.Prefab.GetComponent<BaseAI>().m_pathAgentType = (AgentType)8;
			val4.Prefab.GetComponent<Character>().m_tolerateWater = true;
			CreatureManager.Instance.AddCreature(val4);
		}
		catch (Exception ex)
		{
			Logger.LogError((object)(ex.Message + ex.StackTrace));
		}
		finally
		{
			PrefabManager.OnVanillaPrefabsAvailable -= AddCreatures;
		}
	}

	private void UpdateVegvisirs()
	{
		try
		{
			PrefabManager.Instance.GetPrefab("Vegvisir_BlazingDamnedOne").GetComponentInChildren<Vegvisir>().m_pinName = "Damned One";
		}
		catch (Exception ex)
		{
			Logger.LogError((object)(ex.Message + ex.StackTrace));
		}
		finally
		{
			PrefabManager.OnVanillaPrefabsAvailable -= UpdateVegvisirs;
		}
	}

	private Sprite LoadEmbeddedSprite(string imageName)
	{
		//IL_0078: Unknown result type (might be due to invalid IL or missing references)
		//IL_007e: Expected O, but got Unknown
		//IL_009f: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
		Assembly executingAssembly = Assembly.GetExecutingAssembly();
		string text = executingAssembly.GetManifestResourceNames().SingleOrDefault((string str) => str.EndsWith("." + imageName + ".png"));
		if (text == null)
		{
			throw new Exception(imageName + ".png not found.");
		}
		Logger.LogDebug((object)("Resource name : " + text));
		byte[] array = ReadFully(executingAssembly.GetManifestResourceStream(text));
		Logger.LogDebug((object)$"Byte array length : {array.Length}");
		Texture2D val = new Texture2D(2, 2);
		ImageConversion.LoadImage(val, array);
		return Sprite.Create(val, new Rect(0f, 0f, (float)((Texture)val).width, (float)((Texture)val).height), Vector2.zero);
	}

	private Texture2D LoadEmbeddedTexture(string imageName)
	{
		//IL_005f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0064: Unknown result type (might be due to invalid IL or missing references)
		//IL_006b: Expected O, but got Unknown
		//IL_006d: Expected O, but got Unknown
		Assembly executingAssembly = Assembly.GetExecutingAssembly();
		string text = executingAssembly.GetManifestResourceNames().Single((string str) => str.EndsWith("." + imageName + ".png"));
		Logger.LogDebug((object)("Resource name : " + text));
		byte[] array = ReadFully(executingAssembly.GetManifestResourceStream(text));
		Logger.LogDebug((object)$"Byte array length : {array.Length}");
		Texture2D val = new Texture2D(2, 2);
		ImageConversion.LoadImage(val, array);
		return val;
	}

	public static byte[] ReadFully(Stream input)
	{
		using MemoryStream memoryStream = new MemoryStream();
		input.CopyTo(memoryStream);
		return memoryStream.ToArray();
	}
}

plugins/MonsterMobs.dll

Decompiled 10 months ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security.Permissions;
using BepInEx;
using Jotunn;
using Jotunn.Configs;
using Jotunn.Entities;
using Jotunn.Managers;
using Jotunn.Utils;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: AssemblyTitle("MonsterMobs")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("MonsterMobs")]
[assembly: AssemblyCopyright("Copyright ©  2021")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("e3243d22-4307-4008-ba36-9f326008cde5")]
[assembly: AssemblyFileVersion("1.1.10.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.6.2", FrameworkDisplayName = ".NET Framework 4.6.2")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.1.10.0")]
namespace MonsterMobs;

[BepInPlugin("thedefside.MonsterMobs", "MonsterMobs", "1.1.10")]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency("MonsterLabZ", "2.4.1")]
[NetworkCompatibility(/*Could not decode attribute arguments.*/)]
internal class MonsterMobs : BaseUnityPlugin
{
	public const string PluginGUID = "thedefside.MonsterMobs";

	public const string PluginName = "MonsterMobs";

	public const string PluginVersion = "1.1.10";

	public static bool Debug = false;

	private AssetBundle bundle;

	public static CustomLocalization Localization = LocalizationManager.Instance.GetLocalization();

	private void Awake()
	{
		bundle = AssetUtils.LoadAssetBundleFromResources("mmbundle", typeof(MonsterMobs).Assembly);
		PrefabManager.OnVanillaPrefabsAvailable += AddClonedItems;
	}

	private void AddClonedItems()
	{
		//IL_03a0: Unknown result type (might be due to invalid IL or missing references)
		//IL_03a6: Expected O, but got Unknown
		//IL_045d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0462: Unknown result type (might be due to invalid IL or missing references)
		//IL_046a: Expected O, but got Unknown
		//IL_046c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0471: Unknown result type (might be due to invalid IL or missing references)
		//IL_0487: Expected O, but got Unknown
		//IL_0489: Unknown result type (might be due to invalid IL or missing references)
		//IL_048e: Unknown result type (might be due to invalid IL or missing references)
		//IL_04a4: Expected O, but got Unknown
		//IL_0509: Unknown result type (might be due to invalid IL or missing references)
		//IL_0510: Expected O, but got Unknown
		//IL_05cf: Unknown result type (might be due to invalid IL or missing references)
		//IL_05d4: Unknown result type (might be due to invalid IL or missing references)
		//IL_05dd: Expected O, but got Unknown
		//IL_05df: Unknown result type (might be due to invalid IL or missing references)
		//IL_05e4: Unknown result type (might be due to invalid IL or missing references)
		//IL_05fa: Expected O, but got Unknown
		//IL_05fc: Unknown result type (might be due to invalid IL or missing references)
		//IL_0601: Unknown result type (might be due to invalid IL or missing references)
		//IL_0617: Expected O, but got Unknown
		//IL_066c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0673: Expected O, but got Unknown
		//IL_06ce: Unknown result type (might be due to invalid IL or missing references)
		//IL_06d3: Unknown result type (might be due to invalid IL or missing references)
		//IL_06dc: Expected O, but got Unknown
		//IL_06de: Unknown result type (might be due to invalid IL or missing references)
		//IL_06e3: Unknown result type (might be due to invalid IL or missing references)
		//IL_06f9: Expected O, but got Unknown
		//IL_06fb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0700: Unknown result type (might be due to invalid IL or missing references)
		//IL_0716: Expected O, but got Unknown
		//IL_0740: Unknown result type (might be due to invalid IL or missing references)
		//IL_0745: Unknown result type (might be due to invalid IL or missing references)
		//IL_0752: Unknown result type (might be due to invalid IL or missing references)
		//IL_075c: Expected O, but got Unknown
		//IL_0789: Unknown result type (might be due to invalid IL or missing references)
		//IL_07d1: Unknown result type (might be due to invalid IL or missing references)
		//IL_07d6: Unknown result type (might be due to invalid IL or missing references)
		//IL_07df: Expected O, but got Unknown
		//IL_07e1: Unknown result type (might be due to invalid IL or missing references)
		//IL_07e6: Unknown result type (might be due to invalid IL or missing references)
		//IL_07ef: Expected O, but got Unknown
		//IL_080b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0812: Expected O, but got Unknown
		//IL_083e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0845: Expected O, but got Unknown
		//IL_0885: Unknown result type (might be due to invalid IL or missing references)
		//IL_088c: Expected O, but got Unknown
		//IL_08b8: Unknown result type (might be due to invalid IL or missing references)
		//IL_08bf: Expected O, but got Unknown
		//IL_08e4: Unknown result type (might be due to invalid IL or missing references)
		//IL_08e9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0921: Unknown result type (might be due to invalid IL or missing references)
		//IL_0928: Expected O, but got Unknown
		//IL_0956: Unknown result type (might be due to invalid IL or missing references)
		//IL_095b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0962: Unknown result type (might be due to invalid IL or missing references)
		//IL_096d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0975: Expected O, but got Unknown
		//IL_0985: Unknown result type (might be due to invalid IL or missing references)
		//IL_098c: Expected O, but got Unknown
		//IL_0a38: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a3f: Expected O, but got Unknown
		//IL_0a6b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a72: Expected O, but got Unknown
		//IL_0aa6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0aab: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ae2: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ae7: Unknown result type (might be due to invalid IL or missing references)
		//IL_0af4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0afe: Expected O, but got Unknown
		//IL_0b24: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b29: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b36: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b40: Expected O, but got Unknown
		//IL_0b5b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b60: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b6b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b7b: Expected O, but got Unknown
		//IL_0b76: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b80: Expected O, but got Unknown
		//IL_0b92: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b99: Expected O, but got Unknown
		//IL_0bdf: Unknown result type (might be due to invalid IL or missing references)
		//IL_0be4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0beb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bf6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bfe: Expected O, but got Unknown
		//IL_0c05: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c0c: Expected O, but got Unknown
		//IL_0c33: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c3a: Expected O, but got Unknown
		//IL_0c60: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c65: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c6c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c77: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c7f: Expected O, but got Unknown
		//IL_0c81: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c86: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c8d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c99: Expected O, but got Unknown
		//IL_0c9b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ca0: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ca7: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cb2: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cba: Expected O, but got Unknown
		//IL_0cc1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ccb: Expected O, but got Unknown
		//IL_0ce6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ced: Expected O, but got Unknown
		//IL_0d13: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d18: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d1f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d2a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d32: Expected O, but got Unknown
		//IL_0d34: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d39: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d40: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d4c: Expected O, but got Unknown
		//IL_0d4e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d53: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d5a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d65: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d6d: Expected O, but got Unknown
		//IL_0d74: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d7e: Expected O, but got Unknown
		//IL_0d96: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d9d: Expected O, but got Unknown
		//IL_0dd1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0dd8: Expected O, but got Unknown
		//IL_0e08: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e0d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e36: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e3d: Expected O, but got Unknown
		//IL_0e71: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e78: Expected O, but got Unknown
		//IL_0ea8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ead: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ed6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0edd: Expected O, but got Unknown
		//IL_0f09: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f10: Expected O, but got Unknown
		//IL_0f40: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f45: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f6e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f75: Expected O, but got Unknown
		//IL_0fa1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fa8: Expected O, but got Unknown
		//IL_0fd8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fdd: Unknown result type (might be due to invalid IL or missing references)
		//IL_1006: Unknown result type (might be due to invalid IL or missing references)
		//IL_100d: Expected O, but got Unknown
		//IL_1039: Unknown result type (might be due to invalid IL or missing references)
		//IL_1040: Expected O, but got Unknown
		//IL_1070: Unknown result type (might be due to invalid IL or missing references)
		//IL_1075: Unknown result type (might be due to invalid IL or missing references)
		//IL_109e: Unknown result type (might be due to invalid IL or missing references)
		//IL_10a5: Expected O, but got Unknown
		//IL_10d1: Unknown result type (might be due to invalid IL or missing references)
		//IL_10d8: Expected O, but got Unknown
		//IL_1108: Unknown result type (might be due to invalid IL or missing references)
		//IL_110d: Unknown result type (might be due to invalid IL or missing references)
		//IL_1136: Unknown result type (might be due to invalid IL or missing references)
		//IL_113d: Expected O, but got Unknown
		//IL_1169: Unknown result type (might be due to invalid IL or missing references)
		//IL_1170: Expected O, but got Unknown
		//IL_11a0: Unknown result type (might be due to invalid IL or missing references)
		//IL_11a5: Unknown result type (might be due to invalid IL or missing references)
		//IL_11dc: Unknown result type (might be due to invalid IL or missing references)
		//IL_11e1: Unknown result type (might be due to invalid IL or missing references)
		//IL_11ee: Unknown result type (might be due to invalid IL or missing references)
		//IL_11f8: Expected O, but got Unknown
		//IL_121e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1223: Unknown result type (might be due to invalid IL or missing references)
		//IL_1230: Unknown result type (might be due to invalid IL or missing references)
		//IL_123a: Expected O, but got Unknown
		//IL_1252: Unknown result type (might be due to invalid IL or missing references)
		//IL_1259: Expected O, but got Unknown
		//IL_1285: Unknown result type (might be due to invalid IL or missing references)
		//IL_128c: Expected O, but got Unknown
		//IL_12c7: Unknown result type (might be due to invalid IL or missing references)
		//IL_12e9: Unknown result type (might be due to invalid IL or missing references)
		//IL_12ee: Unknown result type (might be due to invalid IL or missing references)
		//IL_09c6: Unknown result type (might be due to invalid IL or missing references)
		//IL_09cb: Unknown result type (might be due to invalid IL or missing references)
		//IL_09db: Unknown result type (might be due to invalid IL or missing references)
		//IL_09ea: Expected O, but got Unknown
		//IL_139a: Unknown result type (might be due to invalid IL or missing references)
		//IL_139f: Unknown result type (might be due to invalid IL or missing references)
		//IL_132d: Unknown result type (might be due to invalid IL or missing references)
		//IL_1332: Unknown result type (might be due to invalid IL or missing references)
		//IL_1333: Unknown result type (might be due to invalid IL or missing references)
		//IL_1342: Expected O, but got Unknown
		Cache.GetPrefab<GameObject>("TentaRoot").AddComponent<CharacterDrop>();
		foreach (Clone item in new List<Clone>
		{
			new Clone("Deathsquito", "AshMosquito", "AshMosquito"),
			new Clone("Fenring", "DevourerFenring", "DevourerFenring"),
			new Clone("Fenring_ragdoll", "DevourerFenring_ragdoll", "DevourerFenring"),
			new Clone("Troll", "Jotunn_mm", "Jotunn"),
			new Clone("Troll_ragdoll", "Jotunn_ragdoll_mm", "Jotunn"),
			new Clone("Fenring", "PolarFenring", "PolarFenring"),
			new Clone("Fenring_ragdoll", "PolarFenring_ragdoll", "PolarFenring"),
			new Clone("Lox", "PolarLox", "PolarLox"),
			new Clone("lox_ragdoll", "PolarLox_ragdoll", "PolarLox"),
			new Clone("Fenring", "StormFenring", "StormFenring"),
			new Clone("Fenring_ragdoll", "StormFenring_ragdoll", "StormFenring"),
			new Clone("Wolf", "StormWolf", "StormWolf"),
			new Clone("Wolf_Ragdoll", "StormWolf_ragdoll", "StormWolf"),
			new Clone("Draugr", "SwollenBody", "SwollenBody"),
			new Clone("Draugr_ragdoll", "SwollenBody_ragdoll", "SwollenBody"),
			new Clone("NormalSkeletonWarrior", "BurnedBones", "BurnedBones"),
			new Clone("TreeSpider", "DarkSpider", "DarkSpider"),
			new Clone("TreeSpider_ragdoll", "DarkSpider_ragdoll", "DarkSpider"),
			new Clone("TreeSpider", "MotherDarkSpider", "MotherDarkSpider"),
			new Clone("Wolf", "ArcticWolf", "ArcticWolf"),
			new Clone("Wolf_Ragdoll", "ArcticWolf_ragdoll", "ArcticWolf"),
			new Clone("TentaRoot", "Froot", "Froot")
		})
		{
			try
			{
				Logger.LogDebug((object)("Creating new Prefab: " + item.NewPrefab + " from " + item.BasePrefab));
				GameObject val = PrefabManager.Instance.CreateClonedPrefab(item.NewPrefab, item.BasePrefab);
				Logger.LogDebug((object)("Setting texture: " + item.Texture + ".png"));
				Texture2D texture = LoadEmbeddedTexture(item.Texture);
				val.ChangeTexture(texture);
				Logger.LogDebug((object)("Add Prefab: " + item.NewPrefab));
				PrefabManager.Instance.AddPrefab(val);
			}
			catch (Exception ex)
			{
				Logger.LogError((object)("Adding prefab failed for " + item.NewPrefab));
				Logger.LogError((object)ex.Message);
				Logger.LogError((object)ex.StackTrace);
			}
		}
		GameObject val2 = bundle.LoadAsset<GameObject>("AshHatchling");
		PrefabManager.Instance.AddPrefab(val2);
		GameObject val3 = PrefabManager.Instance.CreateClonedPrefab("AshHatchling_ragdoll", "Hatchling_ragdoll");
		Transform val4 = val3.transform.Find("Hatchling_mountain");
		SkinnedMeshRenderer component = ((Component)((Component)val4).transform.Find("eyes")).GetComponent<SkinnedMeshRenderer>();
		Material val5 = new Material(((Renderer)component).material);
		val5.SetTexture("_MainTex", (Texture)(object)LoadEmbeddedTexture("AshHatchling"));
		val5.SetTexture("_BumpMap", (Texture)(object)LoadEmbeddedTexture("Hatchling_n"));
		val5.SetTexture("_EmissionMap", (Texture)(object)LoadEmbeddedTexture("Hatchling_E"));
		((Renderer)component).material = val5;
		((Renderer)((Component)((Component)val4).transform.Find("Hatchling")).GetComponent<SkinnedMeshRenderer>()).material = val5;
		((Renderer)((Component)((Component)val4).transform.Find("Hatchling.001")).GetComponent<SkinnedMeshRenderer>()).material = val5;
		((Renderer)((Component)((Component)val4).transform.Find("Horns")).GetComponent<SkinnedMeshRenderer>()).material = val5;
		PrefabManager.Instance.AddPrefab(val3);
		((Character)val2.GetComponent<Humanoid>()).m_deathEffects.m_effectPrefabs = (EffectData[])(object)new EffectData[3]
		{
			new EffectData
			{
				m_prefab = val3
			},
			new EffectData
			{
				m_prefab = PrefabManager.Instance.GetPrefab("vfx_hatchling_death")
			},
			new EffectData
			{
				m_prefab = PrefabManager.Instance.GetPrefab("sfx_hatchling_death")
			}
		};
		GameObject val6 = bundle.LoadAsset<GameObject>("StormHatchling");
		PrefabManager.Instance.AddPrefab(val6);
		GameObject val7 = PrefabManager.Instance.CreateClonedPrefab("StormHatchling_ragdoll", "Hatchling_ragdoll");
		Transform obj = val7.transform.Find("Hatchling_mountain");
		SkinnedMeshRenderer component2 = ((Component)((Component)val4).transform.Find("eyes")).GetComponent<SkinnedMeshRenderer>();
		Material val8 = new Material(((Renderer)component2).material);
		val8.SetTexture("_MainTex", (Texture)(object)LoadEmbeddedTexture("StormHatchling"));
		val8.SetTexture("_BumpMap", (Texture)(object)LoadEmbeddedTexture("Hatchling_n"));
		val8.SetTexture("_Emission", (Texture)(object)LoadEmbeddedTexture("Hatchling_E"));
		((Renderer)component2).material = val8;
		((Renderer)((Component)((Component)obj).transform.Find("Hatchling")).GetComponent<SkinnedMeshRenderer>()).material = val8;
		((Renderer)((Component)((Component)obj).transform.Find("Hatchling.001")).GetComponent<SkinnedMeshRenderer>()).material = val8;
		((Renderer)((Component)((Component)obj).transform.Find("Horns")).GetComponent<SkinnedMeshRenderer>()).material = val8;
		PrefabManager.Instance.AddPrefab(val7);
		((Character)val6.GetComponent<Humanoid>()).m_deathEffects.m_effectPrefabs = (EffectData[])(object)new EffectData[3]
		{
			new EffectData
			{
				m_prefab = val7
			},
			new EffectData
			{
				m_prefab = PrefabManager.Instance.GetPrefab("vfx_hatchling_death")
			},
			new EffectData
			{
				m_prefab = PrefabManager.Instance.GetPrefab("sfx_hatchling_death")
			}
		};
		GameObject val9 = bundle.LoadAsset<GameObject>("AshNeck");
		PrefabManager.Instance.AddPrefab(val9);
		GameObject val10 = PrefabManager.Instance.CreateClonedPrefab("AshNeck_ragdoll1", "Neck_Ragdoll");
		SkinnedMeshRenderer component3 = ((Component)val10.transform.Find("Body")).GetComponent<SkinnedMeshRenderer>();
		Material val11 = new Material(((Renderer)component3).material);
		val11.SetTexture("_MainTex", (Texture)(object)LoadEmbeddedTexture("AshNeck"));
		((Renderer)component3).material = val11;
		((Renderer)((Component)val10.transform.Find("Lillies")).GetComponent<SkinnedMeshRenderer>()).material = val11;
		PrefabManager.Instance.AddPrefab(val10);
		((Character)val9.GetComponent<Humanoid>()).m_deathEffects.m_effectPrefabs = (EffectData[])(object)new EffectData[3]
		{
			new EffectData
			{
				m_prefab = val10
			},
			new EffectData
			{
				m_prefab = PrefabManager.Instance.GetPrefab("vfx_neck_death")
			},
			new EffectData
			{
				m_prefab = PrefabManager.Instance.GetPrefab("sfx_dragon_death")
			}
		};
		GameObject val12 = bundle.LoadAsset<GameObject>("AshNeckTrophy");
		val12.GetComponent<ItemDrop>().m_itemData.m_shared.m_trophyPos = new Vector2Int(0, 8);
		ItemManager.Instance.AddItem(new CustomItem(val12, false));
		GameObject val13 = PrefabManager.Instance.CreateClonedPrefab("fx_polarlox_death", "fx_lox_death");
		((Component)val13.transform.Find("skinflakes")).GetComponent<ParticleSystem>().startColor = Color.white;
		PrefabManager.Instance.AddPrefab(val13);
		GameObject prefab = PrefabManager.Instance.GetPrefab("PolarLox");
		GameObject prefab2 = PrefabManager.Instance.GetPrefab("PolarLox_ragdoll");
		((Character)prefab.GetComponent<Humanoid>()).m_deathEffects.m_effectPrefabs = (EffectData[])(object)new EffectData[2]
		{
			new EffectData
			{
				m_prefab = prefab2
			},
			new EffectData
			{
				m_prefab = val13
			}
		};
		Sprite val14 = LoadEmbeddedSprite("ArcticWolfPeltIcon");
		ItemConfig val15 = new ItemConfig();
		val15.Name = "Arctic Wolf Pelt";
		val15.Description = "The fur of an Arctic Wolf";
		val15.Icons = (Sprite[])(object)new Sprite[1] { val14 };
		CustomItem val16 = new CustomItem("ArcticWolfPelt", "WolfPelt", val15);
		Texture2D texture2 = LoadEmbeddedTexture("ArcticWolfPelt");
		val16.ItemPrefab.ChangeMeshTexture(texture2);
		ItemManager.Instance.AddItem(val16);
		Sprite val17 = LoadEmbeddedSprite("ArcticWolfTrophy");
		val15 = new ItemConfig();
		val15.Name = "Arctic Wolf Trophy";
		val15.Description = "The head of the beast";
		val15.Icons = (Sprite[])(object)new Sprite[1] { val17 };
		CustomItem val18 = new CustomItem("ArcticWolfTrophy", "TrophyWolf", val15);
		Texture2D texture3 = LoadEmbeddedTexture("ArcticWolf");
		val18.ItemPrefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_trophyPos = new Vector2Int(0, 7);
		val18.ItemPrefab.ChangeMeshTexture(texture3);
		ItemManager.Instance.AddItem(val18);
		Sprite icon = LoadEmbeddedSprite("ArcticWolfRugIcon");
		PieceConfig val19 = new PieceConfig();
		val19.Name = "Arctic Wolf Rug";
		val19.Description = "A rug made from the fur of the frozen beast.";
		val19.PieceTable = "Hammer";
		val19.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
		{
			new RequirementConfig
			{
				Amount = 4,
				Item = "ArcticWolfPelt",
				Recover = true
			}
		};
		val19.Icon = icon;
		CustomPiece val20 = new CustomPiece("ArcticWolfRug", "rug_wolf", val19);
		MeshRenderer[] componentsInChildren = val20.PiecePrefab.GetComponentsInChildren<MeshRenderer>();
		foreach (MeshRenderer val21 in componentsInChildren)
		{
			List<Material> list = new List<Material>();
			Material[] materials = ((Renderer)val21).materials;
			foreach (Material val22 in materials)
			{
				list.Add(new Material(val22)
				{
					color = new Color(1.5f, 1.5f, 1.5f)
				});
			}
			((Renderer)val21).materials = list.ToArray();
		}
		PieceManager.Instance.AddPiece(val20);
		Sprite val23 = LoadEmbeddedSprite("StormWolfTrophy");
		val15 = new ItemConfig();
		val15.Name = "Storm Wolf Trophy";
		val15.Description = "The head of a Storm Wolf";
		val15.Icons = (Sprite[])(object)new Sprite[1] { val23 };
		CustomItem val24 = new CustomItem("StormWolfTrophy", "TrophyWolf", val15);
		Texture2D texture4 = LoadEmbeddedTexture("StormWolf");
		val24.ItemPrefab.ChangeMeshTexture(texture4);
		val24.ItemPrefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_trophyPos = new Vector2Int(2, 5);
		ItemManager.Instance.AddItem(val24);
		GameObject val25 = bundle.LoadAsset<GameObject>("StormHatchlingTrophy");
		val25.GetComponent<ItemDrop>().m_itemData.m_shared.m_trophyPos = new Vector2Int(3, 5);
		ItemManager.Instance.AddItem(new CustomItem(val25, false));
		GameObject val26 = bundle.LoadAsset<GameObject>("AshHatchlingTrophy");
		val26.GetComponent<ItemDrop>().m_itemData.m_shared.m_trophyPos = new Vector2Int(1, 8);
		ItemManager.Instance.AddItem(new CustomItem(val26, false));
		GameObject val27 = bundle.LoadAsset<GameObject>("StormWolfPelt");
		ItemManager.Instance.AddItem(new CustomItem(val27, false, new ItemConfig
		{
			Name = "Storm Wolf Pelt",
			Description = "The pelt of a Storm Wolf"
		}));
		GameObject obj2 = bundle.LoadAsset<GameObject>("StormWolfRug");
		val19 = new PieceConfig();
		val19.CraftingStation = "piece_workbench";
		val19.PieceTable = "Hammer";
		val19.Category = "Furniture";
		val19.Name = "Storm Wolf Rug";
		val19.Description = "It's soft and warm and makes your hair stand on end";
		val19.Requirements = (RequirementConfig[])(object)new RequirementConfig[1]
		{
			new RequirementConfig
			{
				Amount = 4,
				Item = "StormWolfPelt",
				Recover = true
			}
		};
		CustomPiece val28 = new CustomPiece(obj2, false, val19);
		PieceManager.Instance.AddPiece(val28);
		GameObject val29 = bundle.LoadAsset<GameObject>("StormWolfCape");
		ItemManager instance = ItemManager.Instance;
		val15 = new ItemConfig();
		val15.Amount = 1;
		val15.CraftingStation = "piece_workbench";
		val15.MinStationLevel = 1;
		val15.Requirements = (RequirementConfig[])(object)new RequirementConfig[3]
		{
			new RequirementConfig
			{
				Amount = 8,
				Item = "StormWolfPelt",
				AmountPerLevel = 2
			},
			new RequirementConfig
			{
				Amount = 1,
				Item = "StormWolfTrophy"
			},
			new RequirementConfig
			{
				Amount = 1,
				Item = "Thunderstone",
				AmountPerLevel = 1
			}
		};
		instance.AddItem(new CustomItem(val29, false, val15));
		GameObject val30 = bundle.LoadAsset<GameObject>("ArcticWolfCape");
		ItemManager instance2 = ItemManager.Instance;
		val15 = new ItemConfig();
		val15.Amount = 1;
		val15.CraftingStation = "piece_alchemystation";
		val15.MinStationLevel = 1;
		val15.Requirements = (RequirementConfig[])(object)new RequirementConfig[3]
		{
			new RequirementConfig
			{
				Amount = 8,
				Item = "ArcticWolfPelt",
				AmountPerLevel = 2
			},
			new RequirementConfig
			{
				Amount = 1,
				Item = "ArcticWolfTrophy"
			},
			new RequirementConfig
			{
				Amount = 1,
				Item = "FrometalBar",
				AmountPerLevel = 1
			}
		};
		instance2.AddItem(new CustomItem(val30, false, val15));
		Sprite val31 = LoadEmbeddedSprite("StormFenringTrophy");
		val15 = new ItemConfig();
		val15.Amount = 1;
		val15.Name = "Storm Fenring Trophy";
		val15.Description = "All that remains from the mighty beast";
		val15.Icons = (Sprite[])(object)new Sprite[1] { val31 };
		CustomItem val32 = new CustomItem("StormFenringTrophy", "TrophyFenring", val15);
		val32.ItemPrefab.ChangeMeshTexture(LoadEmbeddedTexture("StormFenring"));
		val32.ItemPrefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_trophyPos = new Vector2Int(4, 5);
		ItemManager.Instance.AddItem(val32);
		Sprite val33 = LoadEmbeddedSprite("DevourerFenringTrophy");
		val15 = new ItemConfig();
		val15.Amount = 1;
		val15.Name = "Blood-thirsty Fenring Trophy";
		val15.Description = "A blood-soaked arm of a Fenring";
		val15.Icons = (Sprite[])(object)new Sprite[1] { val33 };
		CustomItem val34 = new CustomItem("DevourerFenringTrophy", "TrophyFenring", val15);
		val34.ItemPrefab.ChangeMeshTexture(LoadEmbeddedTexture("DevourerFenring"));
		val34.ItemPrefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_trophyPos = new Vector2Int(1, 7);
		ItemManager.Instance.AddItem(val34);
		Sprite val35 = LoadEmbeddedSprite("PolarLoxTrophy");
		val15 = new ItemConfig();
		val15.Name = "Ice-breaker Lox Trophy";
		val15.Description = "The head of a Polar Lox";
		val15.Icons = (Sprite[])(object)new Sprite[1] { val35 };
		CustomItem val36 = new CustomItem("PolarLoxTrophy", "TrophyLox", val15);
		val36.ItemPrefab.ChangeMeshTexture(LoadEmbeddedTexture("PolarLox"));
		val36.ItemPrefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_trophyPos = new Vector2Int(2, 7);
		ItemManager.Instance.AddItem(val36);
		Sprite val37 = LoadEmbeddedSprite("BurnedBonesTrophy");
		val15 = new ItemConfig();
		val15.Name = "Burned Bones Trophy";
		val15.Description = "The head of a Burned Bones";
		val15.Icons = (Sprite[])(object)new Sprite[1] { val37 };
		CustomItem val38 = new CustomItem("BurnedBonesTrophy", "TrophySkeleton", val15);
		val38.ItemPrefab.ChangeMeshTexture(LoadEmbeddedTexture("BurnedBonesTex"));
		val38.ItemPrefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_trophyPos = new Vector2Int(2, 8);
		ItemManager.Instance.AddItem(val38);
		Sprite val39 = LoadEmbeddedSprite("FrozenCorpseTrophy");
		val15 = new ItemConfig();
		val15.Name = "Frozen Corpse Trophy";
		val15.Description = "The head of a Frozen Corpse";
		val15.Icons = (Sprite[])(object)new Sprite[1] { val39 };
		CustomItem val40 = new CustomItem("FrozenCorpseTrophy", "TrophySkeleton", val15);
		val40.ItemPrefab.ChangeMeshTexture(LoadEmbeddedTexture("FrozenCorpse"));
		val40.ItemPrefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_trophyPos = new Vector2Int(5, 7);
		ItemManager.Instance.AddItem(val40);
		Sprite val41 = LoadEmbeddedSprite("SwollenBodyTrophy");
		val15 = new ItemConfig();
		val15.Name = "Swollen Body Trophy";
		val15.Description = "A foul piece of rotting flesh";
		val15.Icons = (Sprite[])(object)new Sprite[1] { val41 };
		CustomItem val42 = new CustomItem("SwollenBodyTrophy", "TrophyDraugr", val15);
		val42.ItemPrefab.ChangeMeshTexture(LoadEmbeddedTexture("SwollenBody"));
		val42.ItemPrefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_trophyPos = new Vector2Int(4, 8);
		ItemManager.Instance.AddItem(val42);
		Sprite val43 = LoadEmbeddedSprite("PolarFenringTrophy");
		val15 = new ItemConfig();
		val15.Name = "Pale-coat Fenring Trophy";
		val15.Description = "The arm of a Polar Fenring";
		val15.Icons = (Sprite[])(object)new Sprite[1] { val43 };
		CustomItem val44 = new CustomItem("PolarFenringTrophy", "TrophyFenring", val15);
		val44.ItemPrefab.ChangeMeshTexture(LoadEmbeddedTexture("PolarFenring"));
		val44.ItemPrefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_trophyPos = new Vector2Int(6, 7);
		ItemManager.Instance.AddItem(val44);
		GameObject val45 = bundle.LoadAsset<GameObject>("JotunnTrophy");
		val45.GetComponent<ItemDrop>().m_itemData.m_shared.m_trophyPos = new Vector2Int(3, 7);
		ItemManager.Instance.AddItem(new CustomItem(val45, false));
		GameObject val46 = bundle.LoadAsset<GameObject>("SmallPolarSerpentTrophy");
		val46.GetComponent<ItemDrop>().m_itemData.m_shared.m_trophyPos = new Vector2Int(4, 7);
		ItemManager.Instance.AddItem(new CustomItem(val46, false));
		Sprite val47 = LoadEmbeddedSprite("SilverGolemTrophyIcon");
		val15 = new ItemConfig();
		val15.Name = "Silver Golem Trophy";
		val15.Description = "The massive head of a defeated Silver Golem";
		val15.Icons = (Sprite[])(object)new Sprite[1] { val47 };
		CustomItem val48 = new CustomItem("SilverGolemTrophy", "TrophySGolem", val15);
		Object.DestroyImmediate((Object)(object)((Component)((Component)val48.ItemPrefab.transform.Find("attach")).transform.Find("Particle System")).gameObject);
		val48.ItemPrefab.GetComponentInChildren<Light>().color = Color.gray;
		val48.ItemPrefab.GetComponent<ItemDrop>().m_itemData.m_shared.m_trophyPos = new Vector2Int(4, 6);
		componentsInChildren = val48.ItemPrefab.GetComponentsInChildren<MeshRenderer>();
		foreach (MeshRenderer val49 in componentsInChildren)
		{
			List<Material> list2 = new List<Material>();
			Material[] materials = ((Renderer)val49).materials;
			foreach (Material val50 in materials)
			{
				list2.Add(new Material(val50)
				{
					color = Color.gray
				});
			}
			((Renderer)val49).materials = list2.ToArray();
		}
		ItemManager.Instance.AddItem(val48);
		ItemDrop component4 = PrefabManager.Instance.GetPrefab("TrophyHelDemon").GetComponent<ItemDrop>();
		component4.m_itemData.m_shared.m_trophyPos = new Vector2Int(3, 8);
		component4.m_itemData.m_shared.m_name = "Blazing Damned One Trophy";
		PrefabManager.OnVanillaPrefabsAvailable -= AddClonedItems;
		bundle.Unload(false);
	}

	private Texture2D LoadEmbeddedTexture(string imageName)
	{
		//IL_005f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0064: Unknown result type (might be due to invalid IL or missing references)
		//IL_006b: Expected O, but got Unknown
		//IL_006d: Expected O, but got Unknown
		Assembly executingAssembly = Assembly.GetExecutingAssembly();
		string text = executingAssembly.GetManifestResourceNames().Single((string str) => str == "MonsterMobs.Assets." + imageName + ".png");
		Logger.LogDebug((object)("Resource name : " + text));
		byte[] array = ReadFully(executingAssembly.GetManifestResourceStream(text));
		Logger.LogDebug((object)$"Byte array length : {array.Length}");
		Texture2D val = new Texture2D(2, 2);
		ImageConversion.LoadImage(val, array);
		return val;
	}

	private Sprite LoadEmbeddedSprite(string imageName)
	{
		//IL_0078: Unknown result type (might be due to invalid IL or missing references)
		//IL_007e: Expected O, but got Unknown
		//IL_009f: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
		Assembly executingAssembly = Assembly.GetExecutingAssembly();
		string text = executingAssembly.GetManifestResourceNames().SingleOrDefault((string str) => str == "MonsterMobs.Assets.Sprites." + imageName + ".png");
		if (text == null)
		{
			throw new Exception(imageName + ".png not found.");
		}
		Logger.LogDebug((object)("Resource name : " + text));
		byte[] array = ReadFully(executingAssembly.GetManifestResourceStream(text));
		Logger.LogDebug((object)$"Byte array length : {array.Length}");
		Texture2D val = new Texture2D(2, 2);
		ImageConversion.LoadImage(val, array);
		return Sprite.Create(val, new Rect(0f, 0f, (float)((Texture)val).width, (float)((Texture)val).height), Vector2.zero);
	}

	public static byte[] ReadFully(Stream input)
	{
		using MemoryStream memoryStream = new MemoryStream();
		input.CopyTo(memoryStream);
		return memoryStream.ToArray();
	}

	public static void WriteChildren(Transform go)
	{
		if (go.childCount == 0)
		{
			DebugLog(((Object)go).name);
			return;
		}
		for (int i = 0; i < go.childCount; i++)
		{
			Transform child = go.GetChild(i);
			DebugLog($"{((Object)go).name} {i} {((Object)child).name}");
			WriteChildren(((Component)child).transform);
		}
	}

	public static void DebugLog(string message)
	{
		if (Debug)
		{
			Logger.LogInfo((object)("DEBUG | " + message));
		}
	}
}
public static class GameObjectExtensions
{
	public static GameObject ChangeTexture(this GameObject go, Texture2D texture)
	{
		MonsterMobs.DebugLog("Changing texture for " + ((Object)go).name);
		if ((Object)(object)texture == (Object)null)
		{
			MonsterMobs.DebugLog("Texture is null for " + ((Object)go).name);
		}
		Renderer[] componentsInChildren = go.GetComponentsInChildren<Renderer>();
		foreach (Renderer val in componentsInChildren)
		{
			MonsterMobs.DebugLog("Changing texture for material " + ((Object)val).name);
			val.materials = ((IEnumerable<Material>)val.materials).Select((Func<Material, Material>)((Material m) => new Material(m)
			{
				mainTexture = (Texture)(object)texture
			})).ToArray();
		}
		return go;
	}

	public static GameObject ChangeMeshTexture(this GameObject go, Texture2D texture)
	{
		//IL_002c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0031: Unknown result type (might be due to invalid IL or missing references)
		//IL_003d: Expected O, but got Unknown
		MeshRenderer[] componentsInChildren = go.GetComponentsInChildren<MeshRenderer>();
		foreach (MeshRenderer val in componentsInChildren)
		{
			List<Material> list = new List<Material>();
			Material[] materials = ((Renderer)val).materials;
			foreach (Material val2 in materials)
			{
				list.Add(new Material(val2)
				{
					mainTexture = (Texture)(object)texture
				});
			}
			((Renderer)val).materials = list.ToArray();
		}
		return go;
	}
}
public struct Clone
{
	public string BasePrefab { get; set; }

	public string NewPrefab { get; set; }

	public string Texture { get; set; }

	public Clone(string basePrefab, string newPrefab, string texture)
	{
		BasePrefab = basePrefab;
		NewPrefab = newPrefab;
		Texture = texture;
	}
}