Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of Peachs Castle Level Mod v0.3.5
SkyDynamicPlatforms.dll
Decompiled 4 months agousing System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Logging; using HarmonyLib; using Photon.Pun; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("SkyDynamicPlatforms")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("SkyDynamicPlatforms")] [assembly: AssemblyCopyright("Copyright © 2025")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("74eb5aae-2b80-4e14-b616-24649964c125")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: AssemblyVersion("1.0.0.0")] [BepInPlugin("com.skydynamicplatforms", "Sky-DynamicPlatforms", "1.0.0")] public class SkyDynamicPlatformsPlugin : BaseUnityPlugin { internal static ManualLogSource log; private void Awake() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Expected O, but got Unknown log = ((BaseUnityPlugin)this).Logger; Harmony val = new Harmony("com.skyshrinkplatform"); val.PatchAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Sky Shrink Platform Mod loaded."); } } public class SkyDynamicPlatform : MonoBehaviourPun { [CompilerGenerated] private sealed class <MoveSegment>d__28 : IEnumerator<object>, IDisposable, IEnumerator { private int <>1__state; private object <>2__current; public Vector3 from; public Vector3 to; public float speed; public int arrivedIndex; public SkyDynamicPlatform <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <MoveSegment>d__28(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0084: 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_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0050: 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) switch (<>1__state) { default: return false; case 0: <>1__state = -1; break; case 1: <>1__state = -1; break; } if (Vector3.Distance(((Component)<>4__this).transform.position, to) > 0.01f) { ((Component)<>4__this).transform.position = Vector3.MoveTowards(((Component)<>4__this).transform.position, to, speed * Time.deltaTime); <>2__current = null; <>1__state = 1; return true; } ((Component)<>4__this).transform.position = to; <>4__this.currentIndex = arrivedIndex; if (GameManager.instance.gameMode == 0) { <>4__this.OnArrivedAtWaypoint_SP(); } else if (PhotonNetwork.IsMasterClient) { <>4__this.OnArrivedAtWaypoint_Master(); } return false; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [CompilerGenerated] private sealed class <RotateRoutine>d__29 : IEnumerator<object>, IDisposable, IEnumerator { private int <>1__state; private object <>2__current; public SkyDynamicPlatform <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <RotateRoutine>d__29(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0034: Unknown result type (might be due to invalid IL or missing references) switch (<>1__state) { default: return false; case 0: <>1__state = -1; break; case 1: <>1__state = -1; break; } ((Component)<>4__this).transform.Rotate(<>4__this.rotationAxis, <>4__this.rotationSpeed * Time.deltaTime, (Space)1); <>2__current = null; <>1__state = 1; return true; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [Header("Waypoints (optional children)")] public List<Transform> waypoints = new List<Transform>(); [Header("Movement")] public bool enableMovement = true; public float moveSpeed = 2f; public bool waitForPlayer = true; [Header("Rotation")] public bool enableRotation = false; public Vector3 rotationAxis = Vector3.up; public float rotationSpeed = 45f; private readonly List<Vector3> points = new List<Vector3>(); private int currentIndex = 0; private int dir = 1; private bool playerOnPlatform = false; private bool isMoving = false; private bool mustReturnHome = false; private Coroutine moveRoutine; private Coroutine rotateRoutine; private void Start() { //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_01e1: Unknown result type (might be due to invalid IL or missing references) points.Clear(); points.Add(((Component)this).transform.position); foreach (Transform waypoint in waypoints) { if ((Object)(object)waypoint != (Object)null) { points.Add(waypoint.position); ((Component)waypoint).gameObject.SetActive(false); } } if (enableMovement && points.Count < 2) { Debug.LogWarning((object)("[" + ((Object)this).name + "] Not enough waypoints to move. Need at least 1 waypoint plus start.")); enableMovement = false; } if (GameManager.instance.gameMode == 0) { if (enableMovement && !waitForPlayer) { StartNextLegLocal(); } if (enableRotation && !waitForPlayer) { StartRotationLocal(); } } else if (PhotonNetwork.IsMasterClient) { if (enableMovement && !waitForPlayer) { ((MonoBehaviourPun)this).photonView.RPC("StartNextLegRPC", (RpcTarget)0, new object[4] { currentIndex, currentIndex + dir, moveSpeed, dir }); } if (enableRotation && !waitForPlayer) { ((MonoBehaviourPun)this).photonView.RPC("StartRotationRPC", (RpcTarget)0, new object[2] { rotationSpeed, rotationAxis }); } } } private void OnTriggerEnter(Collider other) { if (!((Component)other).CompareTag("Player")) { return; } if (GameManager.instance.gameMode == 0) { playerOnPlatform = true; if (enableMovement && waitForPlayer && !isMoving) { StartNextLegLocal(); } if (enableRotation && rotateRoutine == null) { StartRotationLocal(); } } else { ((MonoBehaviourPun)this).photonView.RPC("SetPlayerOnPlatformRPC", (RpcTarget)2, new object[1] { true }); } } private void OnTriggerExit(Collider other) { if (!((Component)other).CompareTag("Player")) { return; } if (GameManager.instance.gameMode == 0) { playerOnPlatform = false; if (enableMovement && waitForPlayer) { mustReturnHome = true; } } else { ((MonoBehaviourPun)this).photonView.RPC("SetPlayerOnPlatformRPC", (RpcTarget)2, new object[1] { false }); } } [PunRPC] private void SetPlayerOnPlatformRPC(bool isOn) { //IL_00e0: Unknown result type (might be due to invalid IL or missing references) if (!PhotonNetwork.IsMasterClient) { return; } playerOnPlatform = isOn; if (!enableMovement) { return; } if (isOn) { if (waitForPlayer && !isMoving) { ((MonoBehaviourPun)this).photonView.RPC("StartNextLegRPC", (RpcTarget)0, new object[4] { currentIndex, currentIndex + dir, moveSpeed, dir }); } if (enableRotation && rotateRoutine == null) { ((MonoBehaviourPun)this).photonView.RPC("StartRotationRPC", (RpcTarget)0, new object[2] { rotationSpeed, rotationAxis }); } } else if (waitForPlayer) { mustReturnHome = true; } } [PunRPC] private void StartNextLegRPC(int fromIndex, int toIndex, float speed, int direction) { dir = direction; StartNextLegLocal(fromIndex, toIndex, speed); } [PunRPC] private void StopMovementRPC() { StopMovementLocal(); } [PunRPC] private void StartRotationRPC(float speed, Vector3 axis) { //IL_0009: 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) rotationSpeed = speed; rotationAxis = axis; StartRotationLocal(); } [PunRPC] private void StopRotationRPC() { StopRotationLocal(); } private void StartNextLegLocal() { StartNextLegLocal(currentIndex, currentIndex + dir, moveSpeed); } private void StartNextLegLocal(int fromIndex, int toIndex, float speed) { //IL_0073: 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) if (enableMovement && fromIndex >= 0 && fromIndex < points.Count && toIndex >= 0 && toIndex < points.Count) { if (moveRoutine != null) { ((MonoBehaviour)this).StopCoroutine(moveRoutine); } moveRoutine = ((MonoBehaviour)this).StartCoroutine(MoveSegment(points[fromIndex], points[toIndex], speed, toIndex)); isMoving = true; } } private void StopMovementLocal() { if (moveRoutine != null) { ((MonoBehaviour)this).StopCoroutine(moveRoutine); moveRoutine = null; } isMoving = false; } private void StartRotationLocal() { if (enableRotation && rotateRoutine == null) { rotateRoutine = ((MonoBehaviour)this).StartCoroutine(RotateRoutine()); } } private void StopRotationLocal() { if (rotateRoutine != null) { ((MonoBehaviour)this).StopCoroutine(rotateRoutine); rotateRoutine = null; } } [IteratorStateMachine(typeof(<MoveSegment>d__28))] private IEnumerator MoveSegment(Vector3 from, Vector3 to, float speed, int arrivedIndex) { //IL_000e: 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_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <MoveSegment>d__28(0) { <>4__this = this, from = from, to = to, speed = speed, arrivedIndex = arrivedIndex }; } [IteratorStateMachine(typeof(<RotateRoutine>d__29))] private IEnumerator RotateRoutine() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <RotateRoutine>d__29(0) { <>4__this = this }; } private void OnArrivedAtWaypoint_SP() { if (currentIndex == points.Count - 1) { dir = -1; } else if (currentIndex == 0) { dir = 1; } if (waitForPlayer && currentIndex == 0 && !playerOnPlatform) { mustReturnHome = false; StopMovementLocal(); StopRotationLocal(); } else if (waitForPlayer && !playerOnPlatform && mustReturnHome && currentIndex == 0) { mustReturnHome = false; StopMovementLocal(); StopRotationLocal(); } else { StartNextLegLocal(currentIndex, currentIndex + dir, moveSpeed); } } private void OnArrivedAtWaypoint_Master() { //IL_0181: Unknown result type (might be due to invalid IL or missing references) if (currentIndex == points.Count - 1) { dir = -1; } else if (currentIndex == 0) { dir = 1; } if (waitForPlayer && currentIndex == 0 && !playerOnPlatform) { mustReturnHome = false; ((MonoBehaviourPun)this).photonView.RPC("StopMovementRPC", (RpcTarget)0, Array.Empty<object>()); ((MonoBehaviourPun)this).photonView.RPC("StopRotationRPC", (RpcTarget)0, Array.Empty<object>()); return; } if (waitForPlayer && !playerOnPlatform && mustReturnHome && currentIndex == 0) { mustReturnHome = false; ((MonoBehaviourPun)this).photonView.RPC("StopMovementRPC", (RpcTarget)0, Array.Empty<object>()); ((MonoBehaviourPun)this).photonView.RPC("StopRotationRPC", (RpcTarget)0, Array.Empty<object>()); return; } ((MonoBehaviourPun)this).photonView.RPC("StartNextLegRPC", (RpcTarget)0, new object[4] { currentIndex, currentIndex + dir, moveSpeed, dir }); if (enableRotation) { ((MonoBehaviourPun)this).photonView.RPC("StartRotationRPC", (RpcTarget)0, new object[2] { rotationSpeed, rotationAxis }); } } }
SkyFlipPanelWatcher.dll
Decompiled 4 months agousing System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Logging; using HarmonyLib; using Photon.Pun; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("SkyFlipPanelWatcher")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("SkyFlipPanelWatcher")] [assembly: AssemblyCopyright("Copyright © 2025")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("74eb5aae-2b80-4e14-b616-24649964c125")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: AssemblyVersion("1.0.0.0")] [BepInPlugin("com.skyflippanelwatcher", "Sky-FlipPanelWatcher", "1.1.0")] public class SkyFlipPanelWatcherPlugin : BaseUnityPlugin { internal static ManualLogSource log; private void Awake() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Expected O, but got Unknown log = ((BaseUnityPlugin)this).Logger; Harmony val = new Harmony("com.skyflippanelwatcher"); val.PatchAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Sky FlipPanelWatcher Mod loaded."); } } public class FlipPanelWatcher : MonoBehaviourPun { [CompilerGenerated] private sealed class <ResetSwitching>d__11 : IEnumerator<object>, IDisposable, IEnumerator { private int <>1__state; private object <>2__current; public FlipPanel panel; public FlipPanelWatcher <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <ResetSwitching>d__11(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>2__current = (object)new WaitForSeconds(0.375f); <>1__state = 1; return true; case 1: <>1__state = -1; panel.isSwitching = false; return false; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } private List<FlipPanel> allPanels = new List<FlipPanel>(); public GameObject spawnSuccess; public AudioSource audioSource; public void Start() { if (GameManager.instance.gameMode == 0) { RegisterPanel(); } else if (PhotonNetwork.IsMasterClient) { ((MonoBehaviourPun)this).photonView.RPC("RegisterPanelRPC", (RpcTarget)0, Array.Empty<object>()); } } [PunRPC] public void RegisterPanelRPC() { RegisterPanel(); } public void RegisterPanel() { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown foreach (Transform item in ((Component)this).transform) { Transform val = item; FlipPanel component = ((Component)val).GetComponent<FlipPanel>(); if ((Object)(object)component != (Object)null && !allPanels.Contains(component)) { allPanels.Add(component); UpdateVisuals(); } } spawnSuccess.SetActive(false); } public void CheckAllPanels() { if (PhotonNetwork.IsMasterClient) { ((MonoBehaviourPun)this).photonView.RPC("UpdateVisualsRPC", (RpcTarget)0, Array.Empty<object>()); } else if (GameManager.instance.gameMode == 0) { UpdateVisuals(); } foreach (FlipPanel allPanel in allPanels) { if (allPanel.CurrentState != FlipPanel.PanelState.Yellow) { return; } } if (PhotonNetwork.IsMasterClient) { ((MonoBehaviourPun)this).photonView.RPC("UpdateVisualsToGreenRPC", (RpcTarget)0, Array.Empty<object>()); ((MonoBehaviourPun)this).photonView.RPC("PlaySoundRPC", (RpcTarget)0, Array.Empty<object>()); } else if (GameManager.instance.gameMode == 0) { UpdateVisualsToGreen(); PlaySound(); } } [PunRPC] public void UpdateVisualsToGreenRPC() { UpdateVisualsToGreen(); } public void UpdateVisualsToGreen() { foreach (FlipPanel allPanel in allPanels) { allPanel.blueModel.SetActive(false); allPanel.yellowModel.SetActive(false); allPanel.greenModel.SetActive(true); } } [PunRPC] public void UpdateVisualsRPC() { UpdateVisuals(); } public void UpdateVisuals() { foreach (FlipPanel allPanel in allPanels) { if ((Object)(object)allPanel.blueModel != (Object)null) { allPanel.blueModel.SetActive(allPanel.CurrentState == FlipPanel.PanelState.Blue); } if ((Object)(object)allPanel.yellowModel != (Object)null) { allPanel.yellowModel.SetActive(allPanel.CurrentState == FlipPanel.PanelState.Yellow); } if ((Object)(object)allPanel.greenModel != (Object)null) { allPanel.greenModel.SetActive(allPanel.CurrentState == FlipPanel.PanelState.Green); } ((MonoBehaviour)this).StartCoroutine(ResetSwitching(allPanel)); } } [IteratorStateMachine(typeof(<ResetSwitching>d__11))] private IEnumerator ResetSwitching(FlipPanel panel) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <ResetSwitching>d__11(0) { <>4__this = this, panel = panel }; } [PunRPC] public void PlaySoundRPC() { PlaySound(); } private void PlaySound() { if ((Object)(object)spawnSuccess != (Object)null) { spawnSuccess.SetActive(true); } audioSource.PlayOneShot(audioSource.clip); foreach (FlipPanel allPanel in allPanels) { Object.Destroy((Object)(object)allPanel); } Object.Destroy((Object)(object)this); } } public class FlipPanel : MonoBehaviourPun { public enum PanelState { Blue, Yellow, Green } public FlipPanelWatcher flipPanelWatcher; [HideInInspector] public PanelState CurrentState = PanelState.Blue; public GameObject blueModel; public GameObject yellowModel; public GameObject greenModel; public AudioSource audioSource; public bool isSwitching = false; public bool hasEnteredTrigger = false; private void OnTriggerEnter(Collider other) { if (((Component)other).CompareTag("Player") && !isSwitching && !hasEnteredTrigger) { hasEnteredTrigger = true; isSwitching = true; if (PhotonNetwork.IsMasterClient) { PlaySoundEffect(); SwitchPanelState(); ((MonoBehaviourPun)this).photonView.RPC("SyncStateRPC", (RpcTarget)1, new object[1] { (int)CurrentState }); flipPanelWatcher.CheckAllPanels(); } else if (GameManager.instance.gameMode == 0) { PlaySoundEffect(); SwitchPanelState(); flipPanelWatcher.CheckAllPanels(); } } } private void OnTriggerExit(Collider other) { hasEnteredTrigger = false; } [PunRPC] private void SyncStateRPC(int state) { CurrentState = (PanelState)state; } private void SwitchPanelState() { if (CurrentState != PanelState.Green) { if (CurrentState == PanelState.Blue) { CurrentState = PanelState.Yellow; } else if (CurrentState == PanelState.Yellow) { CurrentState = PanelState.Blue; } } } public void PlaySoundEffect() { if (GameManager.instance.gameMode == 0) { PlaySound(); } else if (PhotonNetwork.IsMasterClient) { ((MonoBehaviourPun)this).photonView.RPC("PlaySoundRPC", (RpcTarget)0, Array.Empty<object>()); } } [PunRPC] public void PlaySoundRPC() { PlaySound(); } private void PlaySound() { audioSource.PlayOneShot(audioSource.clip); } }
SkyOnOffSwitches.dll
Decompiled 4 months agousing System; using System.Collections.Generic; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Logging; using HarmonyLib; using Photon.Pun; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("SkyOnOffSwitches")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("SkyOnOffSwitches")] [assembly: AssemblyCopyright("Copyright © 2025")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("74eb5aae-2b80-4e14-b616-24649964c125")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: AssemblyVersion("1.0.0.0")] [BepInPlugin("com.skyonoffswitches", "Sky-On-Off-Switches", "1.2.0")] public class SkyOnOffSwitchesPlugin : BaseUnityPlugin { internal static ManualLogSource log; private void Awake() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Expected O, but got Unknown log = ((BaseUnityPlugin)this).Logger; Harmony val = new Harmony("com.skylevelcooldown"); val.PatchAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Sky OnOff Switches Mod loaded."); } } public class SkyOnOffManager : MonoBehaviour { public List<GameObject> OnBlocks = new List<GameObject>(); public List<GameObject> OffBlocks = new List<GameObject>(); public List<GameObject> OnPlatforms = new List<GameObject>(); public List<GameObject> OffPlatforms = new List<GameObject>(); public List<GameObject> OnPlatformsEmpty = new List<GameObject>(); public List<GameObject> OffPlatformsEmpty = new List<GameObject>(); public bool CompletedListSetUp = false; public bool SkyIsInteractingOnOff = false; public bool SkyIsOnBlock = true; public PhotonView photonView; public static SkyOnOffManager Instance { get; private set; } private void Awake() { Instance = this; photonView = ((Component)this).GetComponent<PhotonView>(); } private void OnDestroy() { if ((Object)(object)Instance == (Object)(object)this) { Instance = null; } } [PunRPC] public void RequestSwitchRPC(PhotonMessageInfo info) { //IL_0011: Unknown result type (might be due to invalid IL or missing references) ManualLogSource log = SkyOnOffSwitchesPlugin.log; if (log != null) { log.LogInfo((object)("RequestSwitchRPC received from " + info.Sender.NickName)); } if (PhotonNetwork.IsMasterClient) { photonView.RPC("SwitchBlocksRPC", (RpcTarget)0, Array.Empty<object>()); } } [PunRPC] public void SwitchBlocksRPC() { ManualLogSource log = SkyOnOffSwitchesPlugin.log; if (log != null) { log.LogInfo((object)("[RPC] SwitchBlocksRPC on " + PhotonNetwork.NickName)); } SwitchBlocksLogic(); } public void SwitchBlocksLogic() { SkyIsInteractingOnOff = true; if (SkyIsOnBlock) { foreach (GameObject onBlock in OnBlocks) { onBlock.SetActive(false); } foreach (GameObject offBlock in OffBlocks) { offBlock.SetActive(true); } } else { foreach (GameObject offBlock2 in OffBlocks) { offBlock2.SetActive(false); } foreach (GameObject onBlock2 in OnBlocks) { onBlock2.SetActive(true); } } ChangePlatforms(); SkyIsOnBlock = !SkyIsOnBlock; SkyIsInteractingOnOff = false; ManualLogSource log = SkyOnOffSwitchesPlugin.log; if (log != null) { log.LogInfo((object)("Blocks switched, new state: " + (SkyIsOnBlock ? "On" : "Off"))); } } private void Update() { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Invalid comparison between Unknown and I4 if (!CompletedListSetUp && (int)LevelGenerator.Instance.State == 15 && ((Object)((Component)this).gameObject).name == "SkyOnOffManager") { CompletedListSetUp = true; if (PhotonNetwork.IsMasterClient) { photonView.RPC("SetupBlockListsRPC", (RpcTarget)0, Array.Empty<object>()); } else if (GameManager.instance.gameMode == 0) { SetupBlockLists(); } } } [PunRPC] private void SetupBlockListsRPC() { ManualLogSource log = SkyOnOffSwitchesPlugin.log; if (log != null) { log.LogInfo((object)("SetupBlockListsRPC executed on " + PhotonNetwork.NickName)); } SetupBlockLists(); } private void SetupBlockLists() { OnBlocks.Clear(); OffBlocks.Clear(); OnPlatforms.Clear(); OffPlatforms.Clear(); OnPlatformsEmpty.Clear(); OffPlatformsEmpty.Clear(); GameObject[] array = Object.FindObjectsOfType<GameObject>(); GameObject[] array2 = array; foreach (GameObject val in array2) { if (((Object)val).name == "OnBlock") { OnBlocks.Add(val); if ((Object)(object)val.GetComponent<SkyOnOffSwitches>() == (Object)null) { val.AddComponent<SkyOnOffSwitches>(); } val.SetActive(false); val.SetActive(true); } else if (((Object)val).name == "OffBlock") { OffBlocks.Add(val); if ((Object)(object)val.GetComponent<SkyOnOffSwitches>() == (Object)null) { val.AddComponent<SkyOnOffSwitches>(); } val.SetActive(false); } else if (((Object)val).name == "OnPlatform") { OnPlatforms.Add(val); } else if (((Object)val).name == "OffPlatform") { OffPlatforms.Add(val); val.SetActive(false); } else if (((Object)val).name == "OnPlatformEmpty") { OnPlatformsEmpty.Add(val); val.SetActive(false); } else if (((Object)val).name == "OffPlatformEmpty") { OffPlatformsEmpty.Add(val); val.SetActive(true); } } CompletedListSetUp = true; } private void ChangePlatforms() { if (SkyIsOnBlock) { foreach (GameObject onPlatform in OnPlatforms) { onPlatform.SetActive(false); } foreach (GameObject item in OnPlatformsEmpty) { item.SetActive(true); } foreach (GameObject offPlatform in OffPlatforms) { offPlatform.SetActive(true); } { foreach (GameObject item2 in OffPlatformsEmpty) { item2.SetActive(false); } return; } } foreach (GameObject onPlatform2 in OnPlatforms) { onPlatform2.SetActive(true); } foreach (GameObject item3 in OnPlatformsEmpty) { item3.SetActive(false); } foreach (GameObject offPlatform2 in OffPlatforms) { offPlatform2.SetActive(false); } foreach (GameObject item4 in OffPlatformsEmpty) { item4.SetActive(true); } } } public class SkyOnOffSwitches : MonoBehaviourPun { private PhysGrabObject physGrabObject; private bool requestSent = false; private AudioSource audioSource; private void Start() { physGrabObject = ((Component)this).GetComponent<PhysGrabObject>(); Transform val = ((Component)this).transform.parent.Find("Audio"); if ((Object)(object)val != (Object)null) { audioSource = ((Component)val).GetComponent<AudioSource>(); } } public void PlaySoundEffect() { if (GameManager.instance.gameMode == 0) { PlaySound(); } else if (PhotonNetwork.IsMasterClient) { ((MonoBehaviourPun)this).photonView.RPC("PlaySoundRPC", (RpcTarget)0, Array.Empty<object>()); } } [PunRPC] public void PlaySoundRPC() { PlaySound(); } private void PlaySound() { audioSource.PlayOneShot(audioSource.clip); } private void Update() { SkyOnOffManager instance = SkyOnOffManager.Instance; if ((Object)(object)instance == (Object)null || !instance.CompletedListSetUp) { return; } if (GameManager.instance.gameMode == 0) { if ((Object)(object)physGrabObject != (Object)null && physGrabObject.grabbed && !instance.SkyIsInteractingOnOff && !requestSent) { PlaySoundEffect(); instance.SwitchBlocksLogic(); requestSent = true; } else if (!physGrabObject.grabbed) { requestSent = false; } } else if ((Object)(object)physGrabObject != (Object)null && physGrabObject.grabbed && !instance.SkyIsInteractingOnOff && !requestSent) { PlaySoundEffect(); instance.photonView.RPC("RequestSwitchRPC", (RpcTarget)2, Array.Empty<object>()); requestSent = true; } else if (!physGrabObject.grabbed) { requestSent = false; } } }
SkyShrinkPlatform.dll
Decompiled 4 months agousing System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Logging; using HarmonyLib; using Photon.Pun; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("SkyShrinkPlatform")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("SkyShrinkPlatform")] [assembly: AssemblyCopyright("Copyright © 2025")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("74eb5aae-2b80-4e14-b616-24649964c125")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: AssemblyVersion("1.0.0.0")] [BepInPlugin("com.skyshrinkplatform", "Sky-ShrinkPlatforms", "1.1.0")] public class SkyShrinkPlatformPlugin : BaseUnityPlugin { internal static ManualLogSource log; private void Awake() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Expected O, but got Unknown log = ((BaseUnityPlugin)this).Logger; Harmony val = new Harmony("com.skyshrinkplatform"); val.PatchAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Sky Shrink Platform Mod loaded."); } } public class ShrinkPlatform : MonoBehaviourPun { [CompilerGenerated] private sealed class <RespawnAfterDelay>d__14 : IEnumerator<object>, IDisposable, IEnumerator { private int <>1__state; private object <>2__current; public ShrinkPlatform <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <RespawnAfterDelay>d__14(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown //IL_0085: Unknown result type (might be due to invalid IL or missing references) switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>2__current = (object)new WaitForSeconds(<>4__this.waitTime); <>1__state = 1; return true; case 1: <>1__state = -1; ((Component)<>4__this.meshCollider).gameObject.SetActive(true); ((Component)<>4__this.innerPart).gameObject.SetActive(true); <>4__this.innerPart.localScale = <>4__this.originalScale; <>4__this.isShrinking = false; return false; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [CompilerGenerated] private sealed class <ShrinkCoroutine>d__12 : IEnumerator<object>, IDisposable, IEnumerator { private int <>1__state; private object <>2__current; public ShrinkPlatform <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <ShrinkCoroutine>d__12(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_008f: 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) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //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_00f8: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; goto IL_0084; case 1: <>1__state = -1; goto IL_0084; case 2: { <>1__state = -1; ((MonoBehaviourPun)<>4__this).photonView.RPC("RespawnPlatformRPC", (RpcTarget)0, Array.Empty<object>()); break; } IL_0084: if (<>4__this.innerPart.localScale.x > 0.01f) { Transform innerPart = <>4__this.innerPart; innerPart.localScale -= Vector3.one * <>4__this.shrinkSpeed * Time.deltaTime; <>2__current = null; <>1__state = 1; return true; } ((Component)<>4__this.innerPart).gameObject.SetActive(false); ((Component)<>4__this.meshCollider).gameObject.SetActive(false); if (<>4__this.respawn && PhotonNetwork.IsMasterClient) { <>2__current = (object)new WaitForSeconds(<>4__this.respawnTime); <>1__state = 2; return true; } if (<>4__this.respawn && GameManager.instance.gameMode == 0) { ((MonoBehaviour)<>4__this).StartCoroutine(<>4__this.RespawnAfterDelay()); } else if (!<>4__this.respawn) { Object.Destroy((Object)(object)((Component)<>4__this.innerPart).gameObject); } break; } return false; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } public Transform innerPart; public Transform meshCollider; public float shrinkSpeed = 1f; public bool respawn = true; public float respawnTime = 5f; public float waitTime = 2f; private bool isShrinking = false; private Vector3 originalScale; private AudioSource audioSource; private void Start() { //IL_0045: 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) if (!((Object)(object)innerPart == (Object)null)) { Transform val = ((Component)this).transform.Find("Audio"); if ((Object)(object)val != (Object)null) { audioSource = ((Component)val).GetComponent<AudioSource>(); } originalScale = innerPart.localScale; } } private void OnTriggerEnter(Collider other) { if (!((Component)other).CompareTag("Player") || isShrinking) { return; } if (PhotonNetwork.IsMasterClient) { if (!isShrinking) { PlaySoundEffect(); ((MonoBehaviourPun)this).photonView.RPC("StartShrinkRPC", (RpcTarget)0, Array.Empty<object>()); } } else if (GameManager.instance.gameMode == 0 && !isShrinking) { PlaySoundEffect(); isShrinking = true; ((MonoBehaviour)this).StartCoroutine(ShrinkCoroutine()); } } [PunRPC] private void StartShrinkRPC() { if (!isShrinking) { isShrinking = true; ((MonoBehaviour)this).StartCoroutine(ShrinkCoroutine()); } } [IteratorStateMachine(typeof(<ShrinkCoroutine>d__12))] private IEnumerator ShrinkCoroutine() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <ShrinkCoroutine>d__12(0) { <>4__this = this }; } [PunRPC] private void RespawnPlatformRPC() { ((MonoBehaviour)this).StartCoroutine(RespawnAfterDelay()); } [IteratorStateMachine(typeof(<RespawnAfterDelay>d__14))] private IEnumerator RespawnAfterDelay() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <RespawnAfterDelay>d__14(0) { <>4__this = this }; } public void PlaySoundEffect() { if (GameManager.instance.gameMode == 0) { PlaySound(); } else if (PhotonNetwork.IsMasterClient) { ((MonoBehaviourPun)this).photonView.RPC("PlaySoundRPC", (RpcTarget)0, Array.Empty<object>()); } } [PunRPC] public void PlaySoundRPC() { PlaySound(); } private void PlaySound() { audioSource.PlayOneShot(audioSource.clip); } }