Decompiled source of MeFiuValuables v1.3.1

MeFiuValuables.dll

Decompiled 3 hours ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Logging;
using HarmonyLib;
using Microsoft.CodeAnalysis;
using Photon.Pun;
using REPOLib;
using REPOLib.Modules;
using UnityEngine;
using UnityEngine.Events;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: IgnoresAccessChecksTo("")]
[assembly: AssemblyCompany("MeFiu Dywan")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.2.3.0")]
[assembly: AssemblyInformationalVersion("1.2.3")]
[assembly: AssemblyProduct("MeFiuValuables")]
[assembly: AssemblyTitle("MeFiuValuables")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.2.3.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[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]
	[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]
	[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;
		}
	}
}
public class FarelkaTrap : Trap
{
	public enum States
	{
		Idle,
		Active
	}

	public UnityEvent fanTimer;

	public Transform fanButton;

	public HurtCollider hurtCollider;

	public MeshRenderer buttonMesh;

	private float initialPlayerHitForce;

	private float initialPhysHitForce;

	private float initialEnemyHitForce;

	[Header("Fan Blade")]
	public Transform fanBlades;

	public AnimationCurve fanBladeSpeedCurve;

	private PhysGrabObject physgrabobject;

	private float fanBladeSpeed;

	private float fanBladeMaxSpeed = 1500f;

	private float fanBladeLerp;

	private float secondsToStart = 2f;

	private float secondsToStop = 4f;

	internal States currentState;

	private bool stateStart;

	[Header("Sounds")]
	public Sound sfxButtonOn;

	public Sound sfxButtonOff;

	public Sound sfxFanLoop;

	[Header("Particles")]
	public ParticleSystem windParticles;

	public ParticleSystem windSmallParticles;

	public override void Start()
	{
		((Trap)this).Start();
		((Component)hurtCollider).gameObject.SetActive(false);
		physgrabobject = ((Component)this).GetComponent<PhysGrabObject>();
		base.photonView = ((Component)this).GetComponent<PhotonView>();
		initialPlayerHitForce = hurtCollider.playerHitForce;
		initialPhysHitForce = hurtCollider.physHitForce;
		initialEnemyHitForce = hurtCollider.enemyHitForce;
	}

	private void FixedUpdate()
	{
	}

	public override void Update()
	{
		((Trap)this).Update();
		switch (currentState)
		{
		case States.Active:
			StateActive();
			break;
		case States.Idle:
			StateIdle();
			break;
		}
		((Component)hurtCollider).gameObject.SetActive(currentState == States.Active);
		sfxFanLoop.PlayLoop(currentState == States.Active, 0.1f, 0.025f, 1f, 1f);
		sfxFanLoop.LoopPitch = Mathf.Lerp(0.1f, 1f, fanBladeSpeedCurve.Evaluate(fanBladeLerp));
		hurtCollider.playerHitForce = Mathf.Lerp(0f, initialPlayerHitForce, fanBladeSpeedCurve.Evaluate(fanBladeLerp));
		hurtCollider.physHitForce = Mathf.Lerp(0f, initialPhysHitForce, fanBladeSpeedCurve.Evaluate(fanBladeLerp));
		hurtCollider.enemyHitForce = Mathf.Lerp(0f, initialEnemyHitForce, fanBladeSpeedCurve.Evaluate(fanBladeLerp));
		fanBladeSpeed = Mathf.Lerp(0f, fanBladeMaxSpeed, fanBladeSpeedCurve.Evaluate(fanBladeLerp));
	}

	private void StateActive()
	{
		//IL_0018: Unknown result type (might be due to invalid IL or missing references)
		//IL_00bb: Unknown result type (might be due to invalid IL or missing references)
		if (stateStart)
		{
			sfxButtonOn.Play(physgrabobject.centerPoint, 1f, 1f, 1f, 1f);
			windParticles.Play();
			windSmallParticles.Play();
			((Renderer)buttonMesh).material.EnableKeyword("_EMISSION");
			fanTimer.Invoke();
			stateStart = false;
		}
		base.enemyInvestigate = true;
		if (SemiFunc.IsMasterClientOrSingleplayer() && !physgrabobject.grabbed)
		{
			SetState(States.Idle);
		}
		fanButton.localEulerAngles = new Vector3(21f, 0f, 0f);
		if (fanBladeLerp < 1f)
		{
			fanBladeLerp += Time.deltaTime / secondsToStart;
		}
	}

	private void StateIdle()
	{
		//IL_0018: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
		if (stateStart)
		{
			sfxButtonOff.Play(physgrabobject.centerPoint, 1f, 1f, 1f, 1f);
			windParticles.Stop();
			windSmallParticles.Stop();
			((Renderer)buttonMesh).material.DisableKeyword("_EMISSION");
			stateStart = false;
		}
		if (SemiFunc.IsMasterClientOrSingleplayer() && physgrabobject.grabbed)
		{
			SetState(States.Active);
		}
		fanButton.localEulerAngles = new Vector3(0f, 0f, 0f);
		if (fanBladeLerp > 0f)
		{
			fanBladeLerp -= Time.deltaTime / secondsToStop;
		}
	}

	[PunRPC]
	public void SetStateRPC(States state, PhotonMessageInfo _info = default(PhotonMessageInfo))
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		if (SemiFunc.MasterOnlyRPC(_info))
		{
			currentState = state;
			stateStart = true;
		}
	}

	private void SetState(States state)
	{
		//IL_001c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0022: Unknown result type (might be due to invalid IL or missing references)
		if (SemiFunc.IsMasterClientOrSingleplayer())
		{
			if (!SemiFunc.IsMultiplayer())
			{
				SetStateRPC(state);
				return;
			}
			base.photonView.RPC("SetStateRPC", (RpcTarget)0, new object[1] { state });
		}
	}
}
public class MefiuModLightScript : MonoBehaviour
{
	private Light myLight;

	private int powerOfLight = 0;

	private bool goUp = true;

	private void Start()
	{
		myLight = ((Component)this).GetComponent<Light>();
	}

	private void Update()
	{
		if (goUp)
		{
			if (powerOfLight > 59)
			{
				goUp = false;
			}
			else
			{
				powerOfLight++;
			}
		}
		else if (powerOfLight < 1)
		{
			goUp = true;
		}
		else
		{
			powerOfLight--;
		}
		if ((Object)(object)myLight != (Object)null)
		{
			myLight.intensity = (float)((double)powerOfLight / 6.0);
		}
	}
}
namespace MeFiuValuables
{
	[HarmonyPatch(typeof(PlayerController))]
	internal static class ExamplePlayerControllerPatch
	{
		[HarmonyPrefix]
		[HarmonyPatch("Start")]
		private static void Start_Prefix(PlayerController __instance)
		{
			MeFiuValuables.Logger.LogDebug((object)$"{__instance} Start Prefix");
		}

		[HarmonyPostfix]
		[HarmonyPatch("Start")]
		private static void Start_Postfix(PlayerController __instance)
		{
			MeFiuValuables.Logger.LogDebug((object)$"{__instance} Start Postfix");
		}
	}
	internal class Farelka
	{
		private void Awake()
		{
			BundleLoader.LoadBundle("your_assetbundle_file_path", (Action<AssetBundle>)delegate(AssetBundle assetBundle)
			{
				GameObject val = assetBundle.LoadAsset<GameObject>("Valuable Farelka");
				List<string> list = new List<string> { "Valuables - Arctic" };
				Valuables.RegisterValuable(val, list);
			}, false);
		}
	}
	[BepInPlugin("MeFiuDywan.MeFiuValuables", "MeFiuValuables", "1.2.3")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	public class MeFiuValuables : BaseUnityPlugin
	{
		internal static MeFiuValuables Instance { get; private set; }

		internal static ManualLogSource Logger => Instance._logger;

		private ManualLogSource _logger => ((BaseUnityPlugin)this).Logger;

		internal Harmony? Harmony { get; set; }

		private void Awake()
		{
			Instance = this;
			((Component)this).gameObject.transform.parent = null;
			((Object)((Component)this).gameObject).hideFlags = (HideFlags)61;
			Patch();
			Logger.LogInfo((object)"MeFiuValuables test code has loaded!");
		}

		internal void Patch()
		{
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			//IL_001f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0021: Expected O, but got Unknown
			//IL_0026: Expected O, but got Unknown
			if (Harmony == null)
			{
				Harmony val = new Harmony(((BaseUnityPlugin)this).Info.Metadata.GUID);
				Harmony val2 = val;
				Harmony = val;
			}
			Harmony.PatchAll();
		}

		internal void Unpatch()
		{
			Harmony? harmony = Harmony;
			if (harmony != null)
			{
				harmony.UnpatchSelf();
			}
		}

		private void Update()
		{
		}
	}
	public class PPSHScript : MonoBehaviour
	{
		public enum States
		{
			Idle,
			Shooting,
			EndShooting
		}

		public Transform gunMuzzle;

		public int numberOfBullets = 1;

		[Range(0f, 65f)]
		public float gunRandomSpread;

		public float cameraShakeMultiplier = 1f;

		public float investigateRadius = 35f;

		public float gunRange = 35f;

		public float gunRecoilForce = 0.75f;

		public AnimationCurve shootLineWidthCurve;

		public Sound soundHit;

		public Sound soundShoot;

		public Sound soundShootGlobal;

		public GameObject bulletPrefab;

		public GameObject muzzleFlashPrefab;

		internal HurtCollider hurtCollider;

		private PhotonView photonView;

		internal States state;

		public PhysGrabObject pepesza;

		public ValuableObject ppszaValue;

		public Sound shitpostSound;

		private bool playingShitpostSound;

		private bool emptiedMagazine;

		private void Start()
		{
			state = States.Idle;
			playingShitpostSound = false;
			emptiedMagazine = false;
			photonView = ((Component)this).GetComponent<PhotonView>();
		}

		private void Update()
		{
			switch (state)
			{
			case States.Idle:
				((MonoBehaviour)this).StartCoroutine(StateIdle());
				break;
			case States.Shooting:
				((MonoBehaviour)this).StartCoroutine(StateShooting());
				break;
			case States.EndShooting:
				StateEndShooting();
				break;
			}
		}

		private IEnumerator StateIdle()
		{
			if (pepesza.playerGrabbing.Count > 0 && !playingShitpostSound)
			{
				playingShitpostSound = true;
				shitpostSound.Play(pepesza.currentPosition, 1f, 1f, 1f, 1f);
				yield return (object)new WaitForSeconds(2f);
				playingShitpostSound = false;
			}
		}

		public void PPSHFire()
		{
			state = States.Shooting;
			MeFiuValuables.Logger.LogMessage((object)"PPSH fire trigger triggered");
		}

		private IEnumerator StateShooting()
		{
			for (int i = 0; i < 35; i++)
			{
				Shoot();
				yield return (object)new WaitForSeconds(0.05f);
			}
			state = States.EndShooting;
		}

		private void StateEndShooting()
		{
			MeFiuValuables.Logger.LogMessage((object)"PPSH should stop shooting");
			emptiedMagazine = true;
			ppszaValue.dollarValueCurrent = 0.1f * ppszaValue.dollarValueCurrent;
			state = States.Idle;
		}

		public bool Shoot()
		{
			//IL_0037: Unknown result type (might be due to invalid IL or missing references)
			//IL_003d: Unknown result type (might be due to invalid IL or missing references)
			if (!emptiedMagazine)
			{
				if (SemiFunc.IsMultiplayer())
				{
					photonView.RPC("ShootRPC", (RpcTarget)0, Array.Empty<object>());
				}
				else
				{
					ShootRPC();
				}
				state = States.Shooting;
			}
			else
			{
				state = States.Idle;
			}
			return true;
		}

		private void MuzzleFlash()
		{
			//IL_000d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Unknown result type (might be due to invalid IL or missing references)
			Object.Instantiate<GameObject>(muzzleFlashPrefab, gunMuzzle.position, gunMuzzle.rotation, gunMuzzle).GetComponent<ItemGunMuzzleFlash>().ActivateAllEffects();
		}

		[PunRPC]
		public void ShootRPC(PhotonMessageInfo _info = default(PhotonMessageInfo))
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			//IL_0058: 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_00b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_012f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0134: Unknown result type (might be due to invalid IL or missing references)
			//IL_013f: Unknown result type (might be due to invalid IL or missing references)
			//IL_014a: 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_0165: Unknown result type (might be due to invalid IL or missing references)
			//IL_016a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0178: Unknown result type (might be due to invalid IL or missing references)
			//IL_017d: Unknown result type (might be due to invalid IL or missing references)
			//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_0216: 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_01be: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c3: 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_01cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d1: 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_01d7: 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_01e0: 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_01e7: 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_01f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f9: 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_0242: Unknown result type (might be due to invalid IL or missing references)
			//IL_0247: Unknown result type (might be due to invalid IL or missing references)
			//IL_028a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0263: 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_0279: Unknown result type (might be due to invalid IL or missing references)
			//IL_027e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0283: Unknown result type (might be due to invalid IL or missing references)
			if (!SemiFunc.MasterOnlyRPC(_info))
			{
				return;
			}
			float num = 3f * cameraShakeMultiplier;
			float num2 = 16f * cameraShakeMultiplier;
			SemiFunc.CameraShakeImpactDistance(gunMuzzle.position, 5f * cameraShakeMultiplier, 0.1f, num, num2);
			SemiFunc.CameraShakeDistance(gunMuzzle.position, 0.1f * cameraShakeMultiplier, 0.1f * cameraShakeMultiplier, num, num2);
			soundShoot.Play(gunMuzzle.position, 1f, 1f, 1f, 1f);
			soundShootGlobal.Play(gunMuzzle.position, 1f, 1f, 1f, 1f);
			MuzzleFlash();
			if (!SemiFunc.IsMasterClientOrSingleplayer())
			{
				return;
			}
			if (investigateRadius > 0f)
			{
				EnemyDirector.instance.SetInvestigate(((Component)this).transform.position, investigateRadius, false);
			}
			pepesza.rb.AddForceAtPosition(-gunMuzzle.forward * gunRecoilForce, gunMuzzle.position, (ForceMode)1);
			RaycastHit val4 = default(RaycastHit);
			for (int i = 0; i < numberOfBullets; i++)
			{
				Vector3 endPosition = gunMuzzle.position;
				bool hit = false;
				bool flag = false;
				Vector3 val = gunMuzzle.forward;
				if (gunRandomSpread > 0f)
				{
					float num3 = Random.Range(0f, gunRandomSpread / 2f);
					float num4 = Random.Range(0f, 360f);
					Vector3 val2 = Vector3.Cross(val, Random.onUnitSphere);
					Vector3 normalized = ((Vector3)(ref val2)).normalized;
					Quaternion val3 = Quaternion.AngleAxis(num3, normalized);
					val2 = Quaternion.AngleAxis(num4, val) * val3 * val;
					val = ((Vector3)(ref val2)).normalized;
				}
				if (Physics.Raycast(gunMuzzle.position, val, ref val4, gunRange, LayerMask.op_Implicit(SemiFunc.LayerMaskGetVisionObstruct()) + LayerMask.GetMask(new string[1] { "Enemy" })))
				{
					endPosition = ((RaycastHit)(ref val4)).point;
					hit = true;
				}
				else
				{
					flag = true;
				}
				if (flag)
				{
					endPosition = gunMuzzle.position + gunMuzzle.forward * gunRange;
					hit = true;
				}
				ShootBullet(endPosition, hit);
			}
		}

		private void ShootBullet(Vector3 _endPosition, bool _hit)
		{
			//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_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_0057: Unknown result type (might be due to invalid IL or missing references)
			if (SemiFunc.IsMasterClientOrSingleplayer())
			{
				int num = (Object.op_Implicit((Object)(object)pepesza.lastPlayerGrabbing) ? pepesza.lastPlayerGrabbing.photonView.ViewID : (-1));
				if (SemiFunc.IsMultiplayer())
				{
					photonView.RPC("ShootBulletRPC", (RpcTarget)0, new object[3] { _endPosition, _hit, num });
				}
				else
				{
					ShootBulletRPC(_endPosition, _hit, num);
				}
			}
		}

		[PunRPC]
		public void ShootBulletRPC(Vector3 _endPosition, bool _hit, int _shooterID, PhotonMessageInfo _info = default(PhotonMessageInfo))
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0063: 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_007f: 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_009f: Unknown result type (might be due to invalid IL or missing references)
			if (SemiFunc.MasterOnlyRPC(_info))
			{
				if (pepesza.playerGrabbing.Count > 1 && pepesza.grabbedLocal)
				{
					PlayerAvatar.instance.physGrabber.OverrideGrabRelease(photonView.ViewID, 0.5f);
				}
				ItemGunBullet component = Object.Instantiate<GameObject>(bulletPrefab, gunMuzzle.position, gunMuzzle.rotation).GetComponent<ItemGunBullet>();
				component.hitPosition = _endPosition;
				component.bulletHit = _hit;
				hurtCollider = ((Component)component).GetComponentInChildren<HurtCollider>(true);
				soundHit.Play(_endPosition, 1f, 1f, 1f, 1f);
				component.shootLineWidthCurve = shootLineWidthCurve;
				component.ActivateAll();
				if (Object.op_Implicit((Object)(object)hurtCollider))
				{
					PlayerAvatar playerCausingHurt = ((_shooterID >= 0) ? SemiFunc.PlayerAvatarGetFromPhotonID(_shooterID) : pepesza.lastPlayerGrabbing);
					hurtCollider.playerCausingHurt = playerCausingHurt;
					hurtCollider.playerHitFullRuckus = true;
				}
			}
		}
	}
	internal class TrappedMonster
	{
		private void Awake()
		{
			BundleLoader.LoadBundle("your_assetbundle_file_path", (Action<AssetBundle>)delegate(AssetBundle assetBundle)
			{
				GameObject val = assetBundle.LoadAsset<GameObject>("Valuable Trapped Monster");
				List<string> list = new List<string> { "Valuables - Wizard" };
				Valuables.RegisterValuable(val, list);
			}, false);
		}
	}
	internal class Volcano
	{
		private void Awake()
		{
			BundleLoader.LoadBundle("your_assetbundle_file_path", (Action<AssetBundle>)delegate(AssetBundle assetBundle)
			{
				GameObject val = assetBundle.LoadAsset<GameObject>("Valuable Farelka");
				List<string> list = new List<string> { "Valuables - Museum", "Valuables - Wizard" };
				Valuables.RegisterValuable(val, list);
			}, false);
		}
	}
	public class VolcanoPukeScript : MonoBehaviour
	{
		public PhysGrabObject physGrabObject;

		public SemiPuke puke;

		private void Start()
		{
		}

		public void TriggerPuking()
		{
			//IL_000d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Unknown result type (might be due to invalid IL or missing references)
			puke.PukeActive(physGrabObject.centerPoint, physGrabObject.currentRotation);
		}
	}
}