Decompiled source of ItemPoser v1.0.1

plugins/com.github.MiiMii1205.ItemPoser.dll

Decompiled 2 months ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Configuration;
using BepInEx.Logging;
using HarmonyLib;
using Microsoft.CodeAnalysis;
using Photon.Pun;
using Photon.Voice.Unity.Demos;
using UnityEngine;
using UnityEngine.SceneManagement;
using Zorro.Core.CLI;
using pworld.Scripts.Extensions;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: IgnoresAccessChecksTo("Assembly-CSharp")]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("com.github.MiiMii1205.ItemPoser")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyFileVersion("1.0.1.0")]
[assembly: AssemblyInformationalVersion("1.0.1+be8c29e94632dc872552385934e0ac6b628cf85c")]
[assembly: AssemblyProduct("com.github.MiiMii1205.ItemPoser")]
[assembly: AssemblyTitle("ItemPoser")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.1.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)]
	internal sealed class NullableAttribute : Attribute
	{
		public readonly byte[] NullableFlags;

		public NullableAttribute(byte P_0)
		{
			NullableFlags = new byte[1] { P_0 };
		}

		public NullableAttribute(byte[] P_0)
		{
			NullableFlags = P_0;
		}
	}
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)]
	internal sealed class NullableContextAttribute : Attribute
	{
		public readonly byte Flag;

		public NullableContextAttribute(byte P_0)
		{
			Flag = P_0;
		}
	}
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace BepInEx
{
	[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)]
	[Conditional("CodeGeneration")]
	internal sealed class BepInAutoPluginAttribute : Attribute
	{
		public BepInAutoPluginAttribute(string? id = null, string? name = null, string? version = null)
		{
		}
	}
}
namespace BepInEx.Preloader.Core.Patching
{
	[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)]
	[Conditional("CodeGeneration")]
	internal sealed class PatcherAutoPluginAttribute : Attribute
	{
		public PatcherAutoPluginAttribute(string? id = null, string? name = null, string? version = null)
		{
		}
	}
}
namespace ItemPoser
{
	[BepInPlugin("com.github.MiiMii1205.ItemPoser", "ItemPoser", "1.0.1")]
	public class ItemPoser : BaseUnityPlugin
	{
		private Renderer m_greenScreenRenderer1;

		private Renderer m_greenScreenRenderer2;

		private Renderer m_greenScreenRenderer3;

		private ConfigEntry<int> m_byteR;

		private ConfigEntry<int> m_byteG;

		private ConfigEntry<int> m_byteB;

		private ConfigEntry<float> m_setupAngle;

		private static GameObject _itemHolder = null;

		private static GameObject _cameraHolder = null;

		private static GameObject _itemPoserSetup = null;

		private static readonly Vector3 ItemPosePosition = new Vector3(54.25f, -5f, 37f);

		private static Color _greenScreenColor = Color.green;

		private static readonly int EmissionColorPropertyId = Shader.PropertyToID("_EmissionColor");

		private static Vector3[] extentPoints = (Vector3[])(object)new Vector3[8];

		private static Bounds _itemBounds;

		public const string Id = "com.github.MiiMii1205.ItemPoser";

		internal static ManualLogSource Log { get; private set; } = null;


		public static string Name => "ItemPoser";

		public static string Version => "1.0.1";

		private void Awake()
		{
			//IL_0032: Unknown result type (might be due to invalid IL or missing references)
			//IL_003c: Expected O, but got Unknown
			//IL_006c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0076: Expected O, but got Unknown
			//IL_00a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ac: Expected O, but got Unknown
			//IL_00e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ea: Expected O, but got Unknown
			//IL_0125: Unknown result type (might be due to invalid IL or missing references)
			//IL_012a: Unknown result type (might be due to invalid IL or missing references)
			Log = ((BaseUnityPlugin)this).Logger;
			m_byteR = ((BaseUnityPlugin)this).Config.Bind<int>("Backdrop", "Red Value", 0, new ConfigDescription("The red value of the item backdrop", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), Array.Empty<object>()));
			m_byteG = ((BaseUnityPlugin)this).Config.Bind<int>("Backdrop", "Green Value", 255, new ConfigDescription("The green value of the item backdrop", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), Array.Empty<object>()));
			m_byteB = ((BaseUnityPlugin)this).Config.Bind<int>("Backdrop", "Blue Value", 0, new ConfigDescription("The blue value of the item backdrop", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), Array.Empty<object>()));
			m_setupAngle = ((BaseUnityPlugin)this).Config.Bind<float>("Setup", "Setup Rotation", -100f, new ConfigDescription("Rotation of the whole item poser setup. Use this to weak lights", (AcceptableValueBase)(object)new AcceptableValueRange<float>(-360f, 360f), Array.Empty<object>()));
			_greenScreenColor = new Color((float)m_byteR.Value / 255f, (float)m_byteG.Value / 255f, (float)m_byteB.Value / 255f);
			m_byteR.SettingChanged += OnConfigSettingChanged;
			m_byteG.SettingChanged += OnConfigSettingChanged;
			m_byteB.SettingChanged += OnConfigSettingChanged;
			m_setupAngle.SettingChanged += OnSetupAngleChanged;
			Log.LogInfo((object)("Plugin " + Name + " is loaded!"));
		}

		private void OnSetupAngleChanged(object sender, EventArgs args)
		{
			//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)
			if ((Object)(object)_itemPoserSetup != (Object)null)
			{
				_itemPoserSetup.transform.rotation = Quaternion.AngleAxis(m_setupAngle.Value, Vector3.up);
			}
		}

		private void OnConfigSettingChanged(object sender, EventArgs e)
		{
			//IL_0036: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Unknown result type (might be due to invalid IL or missing references)
			_greenScreenColor = new Color((float)m_byteR.Value / 255f, (float)m_byteG.Value / 255f, (float)m_byteB.Value / 255f);
			if (Object.op_Implicit((Object)(object)m_greenScreenRenderer1))
			{
				UpdateObjects();
			}
		}

		private static Renderer CreateCube(Vector3 pos, Vector3 scale, Quaternion rotation, Material material, string objectName)
		{
			//IL_001b: 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_0033: Unknown result type (might be due to invalid IL or missing references)
			GameObject val = GameObject.CreatePrimitive((PrimitiveType)3);
			Renderer component = val.GetComponent<Renderer>();
			component.material = material;
			val.transform.position = pos;
			val.transform.localScale = scale;
			val.transform.rotation = rotation;
			((Object)val).name = objectName;
			return component;
		}

		private void OnEnable()
		{
			SceneManager.sceneLoaded += OnSceneLoaded;
		}

		private void OnDisable()
		{
			SceneManager.sceneLoaded -= OnSceneLoaded;
		}

		private void OnSceneLoaded(Scene scene, LoadSceneMode loadSceneMode)
		{
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_0026: Expected O, but got Unknown
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0030: Unknown result type (might be due to invalid IL or missing references)
			//IL_0036: Unknown result type (might be due to invalid IL or missing references)
			//IL_0045: Expected O, but got Unknown
			//IL_0055: Unknown result type (might be due to invalid IL or missing references)
			//IL_0069: Unknown result type (might be due to invalid IL or missing references)
			//IL_006e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0093: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_0104: Unknown result type (might be due to invalid IL or missing references)
			//IL_010e: Expected O, but got Unknown
			//IL_0113: Unknown result type (might be due to invalid IL or missing references)
			//IL_011d: Expected O, but got Unknown
			//IL_01b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_01bc: 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_01e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0202: Unknown result type (might be due to invalid IL or missing references)
			//IL_0216: Unknown result type (might be due to invalid IL or missing references)
			if (((Scene)(ref scene)).name == "Airport")
			{
				Material material = new Material(Shader.Find("Unlit/Color"));
				GameObject val = new GameObject("ItemPoserSetup");
				val.transform.position = ItemPosePosition;
				_itemPoserSetup = val;
				m_greenScreenRenderer1 = CreateCube(new Vector3(54.25f, -6f, 37f), new Vector3(22f, 1f, 22f), Quaternion.identity, material, "SetupBackdrop_001");
				m_greenScreenRenderer2 = CreateCube(new Vector3(43.25f, 5f, 37f), new Vector3(1f, 22f, 22f), Quaternion.identity, material, "SetupBackdrop_002");
				m_greenScreenRenderer3 = CreateCube(new Vector3(54.25f, 5f, 48f), new Vector3(22f, 22f, 1f), Quaternion.identity, material, "SetupBackdrop_003");
				_itemHolder = new GameObject("ItemPoserItemHolder");
				_cameraHolder = new GameObject("ItemPoserCameraHolder");
				((Component)m_greenScreenRenderer1).transform.SetParent(_itemPoserSetup.transform, true);
				((Component)m_greenScreenRenderer2).transform.SetParent(_itemPoserSetup.transform, true);
				((Component)m_greenScreenRenderer3).transform.SetParent(_itemPoserSetup.transform, true);
				_itemHolder.transform.SetParent(_itemPoserSetup.transform, false);
				_cameraHolder.transform.SetParent(_itemPoserSetup.transform, false);
				_itemPoserSetup.transform.rotation = Quaternion.AngleAxis(m_setupAngle.Value, Vector3.up);
				_itemHolder.transform.localPosition = Vector3.zero;
				_itemHolder.transform.localRotation = Quaternion.identity;
				_cameraHolder.transform.localPosition = Vector3.back * 2f;
				_cameraHolder.transform.localRotation = Quaternion.identity;
				UpdateObjects();
			}
		}

		private void UpdateObjects()
		{
			//IL_000b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0025: Unknown result type (might be due to invalid IL or missing references)
			//IL_002f: 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_005e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_007d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0097: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a1: Unknown result type (might be due to invalid IL or missing references)
			m_greenScreenRenderer1.material.color = _greenScreenColor;
			m_greenScreenRenderer1.material.SetColor(EmissionColorPropertyId, _greenScreenColor * 10f);
			m_greenScreenRenderer2.material.color = _greenScreenColor;
			m_greenScreenRenderer2.material.SetColor(EmissionColorPropertyId, _greenScreenColor * 10f);
			m_greenScreenRenderer3.material.color = _greenScreenColor;
			m_greenScreenRenderer3.material.SetColor(EmissionColorPropertyId, _greenScreenColor * 10f);
		}

		private static Bounds TransformBounds(Transform item, Bounds bounds)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_000a: Unknown result type (might be due to invalid IL or missing references)
			//IL_000f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Unknown result type (might be due to invalid IL or missing references)
			//IL_001d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_002a: 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_0037: Unknown result type (might be due to invalid IL or missing references)
			//IL_003e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0043: Unknown result type (might be due to invalid IL or missing references)
			//IL_0048: Unknown result type (might be due to invalid IL or missing references)
			//IL_0054: Unknown result type (might be due to invalid IL or missing references)
			//IL_005a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Unknown result type (might be due to invalid IL or missing references)
			//IL_0067: Unknown result type (might be due to invalid IL or missing references)
			//IL_006e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0074: 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_0080: Unknown result type (might be due to invalid IL or missing references)
			//IL_0085: Unknown result type (might be due to invalid IL or missing references)
			//IL_0091: Unknown result type (might be due to invalid IL or missing references)
			//IL_0097: Unknown result type (might be due to invalid IL or missing references)
			//IL_009e: 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)
			//IL_00ab: 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_00b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bd: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c2: 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_00d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00db: 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_00e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ee: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_010b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0111: Unknown result type (might be due to invalid IL or missing references)
			//IL_0118: Unknown result type (might be due to invalid IL or missing references)
			//IL_011e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0125: Unknown result type (might be due to invalid IL or missing references)
			//IL_012b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0132: Unknown result type (might be due to invalid IL or missing references)
			//IL_0137: Unknown result type (might be due to invalid IL or missing references)
			//IL_013c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0148: Unknown result type (might be due to invalid IL or missing references)
			//IL_014e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0155: Unknown result type (might be due to invalid IL or missing references)
			//IL_015b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0162: Unknown result type (might be due to invalid IL or missing references)
			//IL_0168: Unknown result type (might be due to invalid IL or missing references)
			//IL_016f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0174: 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_0185: Unknown result type (might be due to invalid IL or missing references)
			//IL_018b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0192: Unknown result type (might be due to invalid IL or missing references)
			//IL_0198: 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_01a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ee: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0203: Unknown result type (might be due to invalid IL or missing references)
			//IL_020a: Unknown result type (might be due to invalid IL or missing references)
			//IL_020f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0220: 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_0227: Unknown result type (might be due to invalid IL or missing references)
			//IL_0228: Unknown result type (might be due to invalid IL or missing references)
			//IL_022a: Unknown result type (might be due to invalid IL or missing references)
			//IL_022f: 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_0231: Unknown result type (might be due to invalid IL or missing references)
			//IL_0233: Unknown result type (might be due to invalid IL or missing references)
			//IL_0238: Unknown result type (might be due to invalid IL or missing references)
			//IL_0249: Unknown result type (might be due to invalid IL or missing references)
			//IL_024a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0250: Unknown result type (might be due to invalid IL or missing references)
			Vector3 center = ((Bounds)(ref bounds)).center;
			Vector3 extents = ((Bounds)(ref bounds)).extents;
			extentPoints[0] = item.InverseTransformPoint(new Vector3(center.x - extents.x, center.y - extents.y, center.z - extents.z));
			extentPoints[1] = item.InverseTransformPoint(new Vector3(center.x + extents.x, center.y - extents.y, center.z - extents.z));
			extentPoints[2] = item.InverseTransformPoint(new Vector3(center.x - extents.x, center.y - extents.y, center.z + extents.z));
			extentPoints[3] = item.InverseTransformPoint(new Vector3(center.x + extents.x, center.y - extents.y, center.z + extents.z));
			extentPoints[4] = item.InverseTransformPoint(new Vector3(center.x - extents.x, center.y + extents.y, center.z - extents.z));
			extentPoints[5] = item.InverseTransformPoint(new Vector3(center.x + extents.x, center.y + extents.y, center.z - extents.z));
			extentPoints[6] = item.InverseTransformPoint(new Vector3(center.x - extents.x, center.y + extents.y, center.z + extents.z));
			extentPoints[7] = item.InverseTransformPoint(new Vector3(center.x + extents.x, center.y + extents.y, center.z + extents.z));
			Vector3 val = extentPoints[0];
			Vector3 val2 = extentPoints[0];
			Vector3[] array = extentPoints;
			foreach (Vector3 val3 in array)
			{
				val = Vector3.Min(val, val3);
				val2 = Vector3.Max(val2, val3);
			}
			((Bounds)(ref bounds)).SetMinMax(val, val2);
			return bounds;
		}

		[ConsoleCommand]
		public static void PoseItem(ushort id)
		{
			//IL_005c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Unknown result type (might be due to invalid IL or missing references)
			//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_0075: Unknown result type (might be due to invalid IL or missing references)
			//IL_008c: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0156: Unknown result type (might be due to invalid IL or missing references)
			//IL_0166: Unknown result type (might be due to invalid IL or missing references)
			//IL_0108: Unknown result type (might be due to invalid IL or missing references)
			//IL_011c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0130: Unknown result type (might be due to invalid IL or missing references)
			//IL_03db: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_0406: Unknown result type (might be due to invalid IL or missing references)
			//IL_0264: Unknown result type (might be due to invalid IL or missing references)
			//IL_026e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0289: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c9: 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_0300: Unknown result type (might be due to invalid IL or missing references)
			//IL_0305: Unknown result type (might be due to invalid IL or missing references)
			//IL_0314: Unknown result type (might be due to invalid IL or missing references)
			//IL_0319: Unknown result type (might be due to invalid IL or missing references)
			//IL_031e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0322: Unknown result type (might be due to invalid IL or missing references)
			//IL_0327: Unknown result type (might be due to invalid IL or missing references)
			//IL_032b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0330: Unknown result type (might be due to invalid IL or missing references)
			//IL_0332: Unknown result type (might be due to invalid IL or missing references)
			//IL_0340: Unknown result type (might be due to invalid IL or missing references)
			//IL_0390: Unknown result type (might be due to invalid IL or missing references)
			//IL_035d: Unknown result type (might be due to invalid IL or missing references)
			//IL_036b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0374: Unknown result type (might be due to invalid IL or missing references)
			Item val = default(Item);
			if (!ItemDatabase.TryGetItem(id, ref val))
			{
				return;
			}
			Log.LogInfo((object)("Posing " + val.GetName() + " (" + ((Object)val).name + ")..."));
			GameObject val2 = PhotonNetwork.Instantiate("0_Items/" + ((Object)val).name, ItemPosePosition + Vector3.up * 100f, Quaternion.identity, (byte)0, (object[])null);
			float y = _itemPoserSetup.transform.localPosition.y;
			float num = _itemPoserSetup.transform.localPosition.y;
			Item val3 = default(Item);
			if (val2.TryGetComponent<Item>(ref val3))
			{
				val3.rig.isKinematic = true;
				val3.blockInteraction = true;
				if (_itemHolder.transform.childCount > 0)
				{
					Log.LogInfo((object)"Deleting previous item...");
					UiExtensions.DestroyChildren(_itemHolder.transform);
					_itemHolder.transform.localPosition = Vector3.zero;
					_itemHolder.transform.localRotation = Quaternion.identity;
					_itemHolder.transform.localScale = Vector3.one;
				}
				val2.transform.SetParent(_itemHolder.transform, false);
				val2.transform.localPosition = Vector3.zero;
				val2.transform.localRotation = Quaternion.identity;
				Renderer[] array = CollectionExtensions.AddToArray<Renderer>(val3.addtlRenderers, val3.mainRenderer);
				List<Renderer> list = new List<Renderer>();
				Renderer[] array2 = array;
				foreach (Renderer val4 in array2)
				{
					Transform val5 = ((Component)val4).transform.parent;
					if ((Object)(object)((Component)val5).gameObject == (Object)(object)val2.gameObject)
					{
						val5 = ((Component)val4).transform;
					}
					list.AddRange((IEnumerable<Renderer>)(object)((Component)val5).GetComponentsInChildren<MeshRenderer>(true));
					list.AddRange((IEnumerable<Renderer>)(object)((Component)val5).GetComponentsInChildren<SkinnedMeshRenderer>(true));
				}
				array = CollectionExtensions.AddRangeToArray<Renderer>(array, list.ToArray());
				Renderer[] array3 = array;
				foreach (Renderer val6 in array3)
				{
					Transform val7 = ((Component)val6).transform.parent;
					if ((Object)(object)((Component)val7).gameObject == (Object)(object)val2.gameObject)
					{
						val7 = ((Component)val6).transform;
					}
					val7.SetParent(_itemHolder.transform, true);
				}
				val2.transform.localPosition = Vector3.up * 100f;
				_itemHolder.transform.Translate(val3.UIData.iconPositionOffset);
				_itemHolder.transform.Rotate(val3.UIData.iconRotationOffset);
				_itemHolder.transform.localScale = Vector3.one * val3.UIData.iconScaleOffset;
				_itemBounds = array.Aggregate(val3.mainRenderer.bounds, delegate(Bounds acc, Renderer renderer)
				{
					//IL_0003: Unknown result type (might be due to invalid IL or missing references)
					//IL_000d: Unknown result type (might be due to invalid IL or missing references)
					((Bounds)(ref acc)).Encapsulate(renderer.bounds);
					return acc;
				});
				Bounds val8 = TransformBounds(_cameraHolder.transform, _itemBounds);
				Vector3 size = ((Bounds)(ref val8)).size;
				Vector3 size2 = ((Bounds)(ref val8)).size;
				if (size2.x > float.Epsilon && size2.y > float.Epsilon)
				{
					float num2 = (float)Screen.width / (float)Screen.height;
					float num3 = size.x / num2;
					if (num3 < size.y)
					{
						num3 = size.y;
					}
					num = num3 / 2f;
				}
				else
				{
					num = 0.5f;
				}
				y = ((Bounds)(ref val8)).center.y;
			}
			GameObject val9 = GameObject.Find("UE_Freecam");
			Camera val10 = default(Camera);
			if (Object.op_Implicit((Object)(object)val9) && val9.TryGetComponent<Camera>(ref val10))
			{
				Log.LogInfo((object)"Found UE freecam. Setting freecam to camera holder's position and location");
				val9.transform.SetPositionAndRotation(_cameraHolder.transform.position, _cameraHolder.transform.rotation);
				ExtTransform.SetYPos(val9.transform, y + _cameraHolder.transform.position.y);
				val10.orthographic = true;
				val10.orthographicSize = num * 1.05f;
			}
		}
	}
}
namespace System.Runtime.CompilerServices
{
	[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
	internal sealed class IgnoresAccessChecksToAttribute : Attribute
	{
		public IgnoresAccessChecksToAttribute(string assemblyName)
		{
		}
	}
}