Decompiled source of MinecraftStrongholdLevel v1.13.0

Minecraft Stronghold Scripts.dll

Decompiled a week ago
using System;
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 Microsoft.CodeAnalysis;
using Photon.Pun;
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-CSharp-firstpass")]
[assembly: IgnoresAccessChecksTo("Assembly-CSharp")]
[assembly: IgnoresAccessChecksTo("Autodesk.Fbx")]
[assembly: IgnoresAccessChecksTo("Discord.Sdk")]
[assembly: IgnoresAccessChecksTo("Domain_Reload")]
[assembly: IgnoresAccessChecksTo("Facepunch.Steamworks.Win64")]
[assembly: IgnoresAccessChecksTo("FbxBuildTestAssets")]
[assembly: IgnoresAccessChecksTo("Klattersynth")]
[assembly: IgnoresAccessChecksTo("Photon3Unity3D")]
[assembly: IgnoresAccessChecksTo("PhotonChat")]
[assembly: IgnoresAccessChecksTo("PhotonRealtime")]
[assembly: IgnoresAccessChecksTo("PhotonUnityNetworking")]
[assembly: IgnoresAccessChecksTo("PhotonUnityNetworking.Utilities")]
[assembly: IgnoresAccessChecksTo("PhotonVoice.API")]
[assembly: IgnoresAccessChecksTo("PhotonVoice")]
[assembly: IgnoresAccessChecksTo("PhotonVoice.PUN")]
[assembly: IgnoresAccessChecksTo("SingularityGroup.HotReload.Runtime")]
[assembly: IgnoresAccessChecksTo("SingularityGroup.HotReload.Runtime.Public")]
[assembly: IgnoresAccessChecksTo("Sirenix.OdinInspector.Attributes")]
[assembly: IgnoresAccessChecksTo("Sirenix.Serialization.Config")]
[assembly: IgnoresAccessChecksTo("Sirenix.Serialization")]
[assembly: IgnoresAccessChecksTo("Sirenix.Utilities")]
[assembly: IgnoresAccessChecksTo("Unity.AI.Navigation")]
[assembly: IgnoresAccessChecksTo("Unity.Burst")]
[assembly: IgnoresAccessChecksTo("Unity.Burst.Unsafe")]
[assembly: IgnoresAccessChecksTo("Unity.Collections")]
[assembly: IgnoresAccessChecksTo("Unity.Collections.LowLevel.ILSupport")]
[assembly: IgnoresAccessChecksTo("Unity.Formats.Fbx.Runtime")]
[assembly: IgnoresAccessChecksTo("Unity.InputSystem")]
[assembly: IgnoresAccessChecksTo("Unity.InputSystem.ForUI")]
[assembly: IgnoresAccessChecksTo("Unity.Mathematics")]
[assembly: IgnoresAccessChecksTo("Unity.MemoryProfiler")]
[assembly: IgnoresAccessChecksTo("Unity.Postprocessing.Runtime")]
[assembly: IgnoresAccessChecksTo("Unity.Profiling.Core")]
[assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.Core.Runtime")]
[assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.Core.ShaderLibrary")]
[assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.ShaderGraph.ShaderGraphLibrary")]
[assembly: IgnoresAccessChecksTo("Unity.Splines")]
[assembly: IgnoresAccessChecksTo("Unity.TextMeshPro")]
[assembly: IgnoresAccessChecksTo("Unity.Timeline")]
[assembly: IgnoresAccessChecksTo("Unity.VisualScripting.Antlr3.Runtime")]
[assembly: IgnoresAccessChecksTo("Unity.VisualScripting.Core")]
[assembly: IgnoresAccessChecksTo("Unity.VisualScripting.Flow")]
[assembly: IgnoresAccessChecksTo("Unity.VisualScripting.State")]
[assembly: IgnoresAccessChecksTo("UnityEngine.ARModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.NVIDIAModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.UI")]
[assembly: IgnoresAccessChecksTo("websocket-sharp")]
[assembly: AssemblyCompany("AriIcedT")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("Minecraft Stronghold Scripts")]
[assembly: AssemblyTitle("Minecraft Stronghold Scripts")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.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;
		}
	}
}
public class ButtonScript : MonoBehaviour
{
	public Animator ButtonToggleAnimation;

	public Sound ButtonOnSound;

	public Sound DoorOpenSound;

	private PhotonView photonView;

	private StaticGrabObject staticGrabObject;

	private void Start()
	{
		photonView = ((Component)this).GetComponent<PhotonView>();
		staticGrabObject = ((Component)this).GetComponent<StaticGrabObject>();
	}

	public void animatorStart()
	{
		if (SemiFunc.IsMultiplayer())
		{
			if (SemiFunc.IsMasterClient())
			{
				photonView.RPC("animatorStartRPC", (RpcTarget)0, Array.Empty<object>());
			}
		}
		else
		{
			animatorStartRPC();
		}
	}

	[PunRPC]
	public void animatorStartRPC()
	{
		//IL_0033: Unknown result type (might be due to invalid IL or missing references)
		//IL_0062: Unknown result type (might be due to invalid IL or missing references)
		//IL_007e: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a9: Unknown result type (might be due to invalid IL or missing references)
		Animator component = ((Component)this).GetComponent<Animator>();
		component.SetTrigger("buttonOn");
		GameDirector.instance.CameraShake.ShakeDistance(2f, 1f, 2f, ((Component)this).transform.position, 0.1f);
		GameDirector.instance.CameraImpact.ShakeDistance(2f, 1f, 3f, ((Component)this).transform.position, 0.1f);
		ButtonOnSound.Play(((Component)this).transform.position, 1f, 1f, 1f, 1f);
		DoorOpenSound.Play(((Component)this).transform.position, 1f, 1f, 1f, 1f);
	}
}
public class LeverScript : MonoBehaviour
{
	public Animator LeverToggleAnimation;

	public Sound ButtonOnSound;

	public Sound ButtonOffSound;

	private PhotonView photonView;

	private StaticGrabObject staticGrabObject;

	private void Start()
	{
		photonView = ((Component)this).GetComponent<PhotonView>();
		staticGrabObject = ((Component)this).GetComponent<StaticGrabObject>();
	}

	public void animatorStart()
	{
		if (SemiFunc.IsMultiplayer())
		{
			if (SemiFunc.IsMasterClient())
			{
				photonView.RPC("animatorStartRPC", (RpcTarget)0, Array.Empty<object>());
			}
		}
		else
		{
			animatorStartRPC();
		}
	}

	[PunRPC]
	public void animatorStartRPC()
	{
		//IL_003f: 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_008a: Unknown result type (might be due to invalid IL or missing references)
		Animator component = ((Component)this).GetComponent<Animator>();
		component.SetTrigger("leverOn");
		component.ResetTrigger("leverOff");
		GameDirector.instance.CameraShake.ShakeDistance(2f, 1f, 2f, ((Component)this).transform.position, 0.1f);
		GameDirector.instance.CameraImpact.ShakeDistance(2f, 1f, 3f, ((Component)this).transform.position, 0.1f);
		ButtonOnSound.Play(((Component)this).transform.position, 1f, 1f, 1f, 1f);
	}

	public void animatorStay()
	{
		if (SemiFunc.IsMultiplayer())
		{
			if (SemiFunc.IsMasterClient())
			{
				photonView.RPC("animatorStartRPC", (RpcTarget)0, Array.Empty<object>());
			}
		}
		else
		{
			animatorStayRPC();
		}
	}

	[PunRPC]
	public void animatorStayRPC()
	{
		Animator component = ((Component)this).GetComponent<Animator>();
		component.SetTrigger("leverOn");
		component.ResetTrigger("leverOff");
	}

	public void animatorStop()
	{
		if (SemiFunc.IsMultiplayer())
		{
			if (SemiFunc.IsMasterClient())
			{
				photonView.RPC("animatorStartRPC", (RpcTarget)0, Array.Empty<object>());
			}
		}
		else
		{
			animatorStopRPC();
		}
	}

	[PunRPC]
	public void animatorStopRPC()
	{
		//IL_003f: 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_008a: Unknown result type (might be due to invalid IL or missing references)
		Animator component = ((Component)this).GetComponent<Animator>();
		component.SetTrigger("leverOff");
		component.ResetTrigger("leverOn");
		GameDirector.instance.CameraShake.ShakeDistance(2f, 1f, 2f, ((Component)this).transform.position, 0.1f);
		GameDirector.instance.CameraImpact.ShakeDistance(2f, 1f, 3f, ((Component)this).transform.position, 0.1f);
		ButtonOffSound.Play(((Component)this).transform.position, 1f, 1f, 1f, 1f);
	}
}
public class ObjectAreaTrigger : MonoBehaviour
{
	[SerializeField]
	private UnityEvent onTriggerEnter;

	[SerializeField]
	private UnityEvent onTriggerStay;

	[SerializeField]
	private UnityEvent onTriggerExit;

	private PhotonView photonView;

	private void OnTriggerEnter(Collider other)
	{
		onTriggerEnter.Invoke();
	}

	private void OnTriggerStay(Collider other)
	{
		onTriggerStay.Invoke();
	}

	private void OnTriggerExit(Collider other)
	{
		onTriggerExit.Invoke();
	}
}
public class PotionDanceTrigger : MonoBehaviour
{
	public enum State
	{
		start,
		levitate,
		end,
		inactive
	}

	private PhotonView photonView;

	internal State state = State.inactive;

	private bool stateStart = true;

	public Transform sphereEffects;

	public float range = 3f;

	private List<PlayerAvatar> capturedPlayerAvatars = new List<PlayerAvatar>();

	private float checkTimer;

	private int particleCount;

	private float stateTimer;

	private void StateMachine()
	{
		switch (state)
		{
		case State.start:
			StateStart();
			break;
		case State.levitate:
			StateLevitate();
			break;
		case State.end:
			StateEnd();
			break;
		case State.inactive:
			StateInactive();
			break;
		}
	}

	private void Reset()
	{
		//IL_0025: Unknown result type (might be due to invalid IL or missing references)
		checkTimer = 0f;
		particleCount = 0;
		capturedPlayerAvatars.Clear();
		sphereEffects.localScale = Vector3.zero;
		((Component)sphereEffects).gameObject.SetActive(false);
	}

	private void StateInactive()
	{
		if (stateStart)
		{
			Reset();
			stateStart = false;
			((Component)this).gameObject.SetActive(false);
		}
	}

	private void StateEnd()
	{
		//IL_0035: Unknown result type (might be due to invalid IL or missing references)
		//IL_003a: Unknown result type (might be due to invalid IL or missing references)
		//IL_004a: Unknown result type (might be due to invalid IL or missing references)
		//IL_005b: Unknown result type (might be due to invalid IL or missing references)
		if (stateStart)
		{
			stateStart = false;
		}
		if (((Component)sphereEffects).gameObject.activeSelf)
		{
			sphereEffects.localScale = Vector3.Lerp(sphereEffects.localScale, Vector3.zero, Time.deltaTime * 20f);
			if (sphereEffects.localScale.x < 0.01f)
			{
				StateSet(State.inactive);
			}
		}
		else
		{
			StateSet(State.inactive);
		}
	}

	private void StateStart()
	{
		//IL_0039: 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_0048: 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_0069: 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_008f: Unknown result type (might be due to invalid IL or missing references)
		if (stateStart)
		{
			Reset();
			((Component)sphereEffects).gameObject.SetActive(true);
			stateStart = false;
		}
		sphereEffects.localScale = Vector3.Lerp(sphereEffects.localScale, Vector3.one * 1.2f, Time.deltaTime * 6f);
		if (sphereEffects.localScale.x > 1.19f)
		{
			sphereEffects.localScale = Vector3.one * 1.2f;
			StateSet(State.levitate);
		}
	}

	private void StateLevitate()
	{
		if (stateStart)
		{
			stateTimer = 0f;
			stateStart = false;
			GetAllWithinRange();
		}
		if (checkTimer > 0.35f)
		{
			GetAllWithinRange();
			checkTimer = 0f;
		}
		checkTimer += Time.deltaTime;
		stateTimer += Time.deltaTime;
	}

	private void RemoveAllOutOfRange()
	{
		//IL_0046: Unknown result type (might be due to invalid IL or missing references)
		//IL_0056: Unknown result type (might be due to invalid IL or missing references)
		//IL_0066: 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)
		for (int num = capturedPlayerAvatars.Count - 1; num >= 0; num--)
		{
			PlayerAvatar val = capturedPlayerAvatars[num];
			if (!Object.op_Implicit((Object)(object)val))
			{
				capturedPlayerAvatars.RemoveAt(num);
			}
			else if (Vector3.Distance(new Vector3(((Component)val).transform.position.x, ((Component)this).transform.position.y, ((Component)val).transform.position.z), ((Component)this).transform.position) > range * 1.2f)
			{
				capturedPlayerAvatars.RemoveAt(num);
			}
		}
	}

	private void StateLevitateFixed()
	{
		//IL_0034: Unknown result type (might be due to invalid IL or missing references)
		//IL_0039: Unknown result type (might be due to invalid IL or missing references)
		//IL_008a: Unknown result type (might be due to invalid IL or missing references)
		//IL_008f: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b6: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c0: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c5: 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_00e0: 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_00e3: 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)
		if (state != State.levitate)
		{
			return;
		}
		int count = capturedPlayerAvatars.Count;
		if (particleCount < count)
		{
			Vector3 val = Vector3.zero;
			bool flag = false;
			if (particleCount < capturedPlayerAvatars.Count)
			{
				if (Object.op_Implicit((Object)(object)capturedPlayerAvatars[particleCount]))
				{
					val = ((Component)capturedPlayerAvatars[particleCount]).transform.position;
					flag = true;
				}
			}
			else
			{
				int num = particleCount - capturedPlayerAvatars.Count;
			}
			if (flag)
			{
				Vector3 val2 = Random.insideUnitSphere * 2f;
				val2.y = 0f - Mathf.Abs(val2.y);
				val += val2;
			}
			particleCount++;
		}
		else
		{
			particleCount = 0;
		}
	}

	private void FixedUpdate()
	{
		if (state != State.levitate)
		{
			return;
		}
		foreach (PlayerAvatar capturedPlayerAvatar in capturedPlayerAvatars)
		{
			if (Object.op_Implicit((Object)(object)capturedPlayerAvatar) && capturedPlayerAvatar.isLocal && Object.op_Implicit((Object)(object)PlayerController.instance))
			{
				float num = Mathf.Sin(Time.time * 11.5f) * 0.7f;
				float num2 = Mathf.Sin(Time.time * 11.5f) * 25f;
				CameraAim.Instance.AdditiveAimY(num);
				PlayerExpressionsUI.instance.playerAvatarVisuals.playerAvatar.playerExpression.OverrideExpressionSet(4, 100f);
				PlayerExpressionsUI.instance.playerExpression.OverrideExpressionSet(4, 100f);
				PlayerExpressionsUI.instance.playerAvatarVisuals.HeadTiltOverride(num2 * 0.5f);
			}
		}
		if (SemiFunc.IsMasterClientOrSingleplayer())
		{
			StateLevitateFixed();
		}
	}

	private void Update()
	{
		StateMachine();
	}

	public void StateSet(State _state)
	{
		if (state != _state)
		{
			state = _state;
			stateStart = true;
		}
	}

	public void GetAllWithinRange()
	{
		//IL_0015: 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_0023: Unknown result type (might be due to invalid IL or missing references)
		RemoveAllOutOfRange();
		foreach (PlayerAvatar item in SemiFunc.PlayerGetAllPlayerAvatarWithinRange(range, ((Component)this).transform.position, false, default(LayerMask)))
		{
			if (!capturedPlayerAvatars.Contains(item))
			{
				capturedPlayerAvatars.Add(item);
			}
		}
	}

	private void OnEnable()
	{
		StateSet(State.start);
	}

	private void OnDisable()
	{
		StateSet(State.inactive);
		StateInactive();
	}
}
namespace Minecraft_Stronghold_Scripts
{
	[BepInPlugin("MinecraftStrongholdLevel", "MinecraftStrongholdLevel", "1.0.0")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	public class Minecraft_Stronghold_Scripts : BaseUnityPlugin
	{
		private void Awake()
		{
		}
	}
	public static class MyPluginInfo
	{
		public const string PLUGIN_GUID = "MinecraftStrongholdLevel";

		public const string PLUGIN_NAME = "MinecraftStrongholdLevel";

		public const string PLUGIN_VERSION = "1.0.0";
	}
}