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)
{
}
}
}