Decompiled source of DSPStarMapMemo v0.0.5

DSPStarMapMemo.dll

Decompiled 3 months ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Logging;
using HarmonyLib;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.UI;
using crecheng.DSPModSave;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("DspFontPatcher")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("DspFontPatcher")]
[assembly: AssemblyCopyright("Copyright ©  2021")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("81DF3045-8007-4F6A-AAF6-903139D85B6C")]
[assembly: AssemblyFileVersion("0.1.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.1.0.0")]
[module: UnverifiableCode]
namespace DSPStarMapMemo;

public class MemoPool : MonoBehaviour
{
	public struct Memo
	{
		public int id;

		public int[] signalIconId;

		public Color color;

		public string desc;
	}

	public static Dictionary<int, Memo> memoPool = new Dictionary<int, Memo>();

	public static void AddOrUpdate()
	{
		//IL_0098: Unknown result type (might be due to invalid IL or missing references)
		//IL_009d: Unknown result type (might be due to invalid IL or missing references)
		int num = 0;
		if (((ManualBehaviour)UIRoot.instance.uiGame.starDetail).active)
		{
			num = UIRoot.instance.uiGame.starDetail.star.id;
		}
		else if (((ManualBehaviour)UIRoot.instance.uiGame.planetDetail).active)
		{
			num = UIRoot.instance.uiGame.planetDetail.planet.id;
		}
		UI.memo.id = num;
		Memo value = default(Memo);
		value.id = UI.memo.id;
		value.color = UI.memo.color;
		value.desc = UI.memo.desc;
		value.signalIconId = new int[10];
		for (int i = 0; i < 10; i++)
		{
			value.signalIconId[i] = UI.memo.signalIconId[i];
		}
		if (memoPool.ContainsKey(num))
		{
			memoPool[num] = value;
		}
		else
		{
			memoPool.Add(num, value);
		}
	}
}
internal class UI : MonoBehaviour
{
	public static GameObject memoBase = new GameObject();

	public static GameObject memoText = new GameObject();

	public static GameObject iconPrefab = new GameObject();

	public static GameObject[] icon = (GameObject[])(object)new GameObject[10];

	public static GameObject iconBoxPrefab = new GameObject();

	public static GameObject[] iconBox = (GameObject[])(object)new GameObject[10];

	public static GameObject memoWindow;

	public static GameObject descBox;

	public static GameObject explainText;

	public static GameObject emptyButton = new GameObject();

	public static Sprite emptySprite;

	public static int selectedIconNo;

	public static MemoPool.Memo memo;

	public static void Create()
	{
		//IL_0011: 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)
		//IL_00b1: 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_011e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0142: Unknown result type (might be due to invalid IL or missing references)
		//IL_0147: Unknown result type (might be due to invalid IL or missing references)
		//IL_019d: Unknown result type (might be due to invalid IL or missing references)
		//IL_01a2: Unknown result type (might be due to invalid IL or missing references)
		//IL_0224: Unknown result type (might be due to invalid IL or missing references)
		//IL_02b4: 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)
		//IL_03cc: Unknown result type (might be due to invalid IL or missing references)
		//IL_044e: Unknown result type (might be due to invalid IL or missing references)
		//IL_053d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0571: Unknown result type (might be due to invalid IL or missing references)
		//IL_0595: Unknown result type (might be due to invalid IL or missing references)
		//IL_05b9: Unknown result type (might be due to invalid IL or missing references)
		//IL_05be: Unknown result type (might be due to invalid IL or missing references)
		//IL_0666: Unknown result type (might be due to invalid IL or missing references)
		//IL_0685: Unknown result type (might be due to invalid IL or missing references)
		//IL_06a4: Unknown result type (might be due to invalid IL or missing references)
		//IL_06c8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0769: Unknown result type (might be due to invalid IL or missing references)
		//IL_0790: Unknown result type (might be due to invalid IL or missing references)
		//IL_0795: Unknown result type (might be due to invalid IL or missing references)
		//IL_07f8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0802: Expected O, but got Unknown
		//IL_0885: Unknown result type (might be due to invalid IL or missing references)
		//IL_08a9: Unknown result type (might be due to invalid IL or missing references)
		//IL_09a3: Unknown result type (might be due to invalid IL or missing references)
		//IL_09ad: Expected O, but got Unknown
		memo.id = 0;
		memo.color = Color.white;
		memo.desc = "";
		memo.signalIconId = new int[10];
		for (int i = 0; i < 10; i++)
		{
			memo.signalIconId[i] = 0;
		}
		GameObject val = GameObject.Find("UI Root/Overlay Canvas/In Game/Starmap UIs/Starmap Screen/starmap-star-ui/name-text");
		memoBase.transform.parent = val.transform.parent;
		((Object)memoBase).name = "memoBase";
		memoBase.transform.localScale = new Vector3(0.5f, 0.5f, 0.5f);
		memoText = Object.Instantiate<GameObject>(val, memoBase.transform);
		((Object)memoText).name = "memoText";
		memoText.transform.localPosition = new Vector3(0f, -130f, 0f);
		memoText.transform.localScale = new Vector3(1f, 1f, 1f);
		memoText.GetComponent<RectTransform>().sizeDelta = Vector2.op_Implicit(new Vector3(300f, 150f, 0f));
		memoText.GetComponent<Text>().alignment = (TextAnchor)0;
		memoText.GetComponent<Text>().lineSpacing = 0.8f;
		memoText.SetActive(false);
		iconPrefab.AddComponent<RectTransform>().sizeDelta = Vector2.op_Implicit(new Vector3(28f, 28f, 0f));
		iconPrefab.AddComponent<Image>();
		for (int j = 0; j < 10; j++)
		{
			icon[j] = Object.Instantiate<GameObject>(iconPrefab.gameObject, memoBase.transform);
			((Object)icon[j]).name = "icon" + j;
			icon[j].transform.localPosition = new Vector3(30f * (float)j + 15f, -38f, 0f);
		}
		GameObject val2 = Object.Instantiate<GameObject>(memoBase, GameObject.Find("UI Root/Overlay Canvas/In Game/Starmap UIs/Starmap Screen/starmap-planet-ui").transform);
		((Object)val2).name = "memoBase";
		for (int k = 0; k < 10; k++)
		{
			GameObject gameObject = ((Component)val2.transform.Find("icon" + k)).gameObject;
			gameObject.transform.localPosition = new Vector3(30f * (float)k + 15f, -38f, 0f);
		}
		GameObject gameObject2 = ((Component)UIRoot.instance.uiGame.planetDetail).gameObject;
		memoWindow = Object.Instantiate<GameObject>(gameObject2, gameObject2.transform.parent);
		List<string> keepTransformList = new List<string> { "black-bg", "type-text" };
		List<Type> list = new List<Type>();
		list.Add(typeof(RectTransform));
		List<Type> keepComponentList = list;
		DestroyChildren(memoWindow.transform, keepTransformList, keepComponentList);
		((Object)memoWindow).name = "memoWindow";
		memoWindow.transform.localPosition = new Vector3(0f, -300f, 0f);
		GameObject gameObject3 = ((Component)memoWindow.transform.Find("type-text")).gameObject;
		Object.Destroy((Object)(object)((Component)gameObject3.transform.Find("tip-btn")).gameObject);
		gameObject3.transform.localPosition = new Vector3(-240f, -3f, 0f);
		((Object)gameObject3).name = "typeText";
		gameObject3.GetComponent<Text>().text = Localization.Translate("Memo");
		gameObject3.GetComponent<Text>().resizeTextMaxSize = 20;
		explainText = Object.Instantiate<GameObject>(gameObject3.gameObject, memoWindow.transform);
		((Object)explainText).name = "explainText";
		explainText.transform.localPosition = new Vector3(-240f, -190f, 0f);
		explainText.GetComponent<Text>().text = Localization.Translate("Press [Enter] to insert a line break.");
		explainText.GetComponent<Text>().resizeTextMaxSize = 20;
		explainText.SetActive(false);
		descBox = Object.Instantiate<GameObject>(((Component)UIRoot.instance.uiGame.blueprintBrowser.inspector.descTextInput).gameObject, memoWindow.transform);
		keepTransformList = new List<string> { "value-text" };
		list = new List<Type>();
		list.Add(typeof(RectTransform));
		list.Add(typeof(InputField));
		list.Add(typeof(Image));
		keepComponentList = list;
		DestroyChildren(descBox.transform, keepTransformList, keepComponentList);
		descBox.GetComponent<RectTransform>().anchorMax = new Vector2(0f, 1f);
		((Object)descBox).name = "descBox";
		descBox.transform.localPosition = new Vector3(-250f, -80f, 0f);
		descBox.transform.localScale = new Vector3(0.87f, 0.87f, 0.87f);
		descBox.GetComponent<RectTransform>().sizeDelta = Vector2.op_Implicit(new Vector3(300f, 120f, 0f));
		Text component = ((Component)descBox.transform.Find("value-text")).GetComponent<Text>();
		component.alignment = (TextAnchor)0;
		component.lineSpacing = 0.8f;
		component.fontSize = 20;
		memoWindow.SetActive(false);
		iconBoxPrefab = Object.Instantiate<GameObject>(((Component)UIRoot.instance.uiGame.blueprintBrowser.inspector.thumbIconImage1).gameObject, memoWindow.transform);
		((Object)iconBoxPrefab).name = "iconBoxPrefab";
		iconBoxPrefab.GetComponent<RectTransform>().anchorMax = new Vector2(0f, 1f);
		iconBoxPrefab.GetComponent<RectTransform>().anchorMin = new Vector2(0f, 1f);
		iconBoxPrefab.GetComponent<RectTransform>().pivot = new Vector2(0f, 1f);
		iconBoxPrefab.transform.localPosition = new Vector3(45f, -120f, 0f);
		iconBoxPrefab.SetActive(false);
		emptySprite = iconBoxPrefab.GetComponent<Image>().sprite;
		for (int l = 0; l < 10; l++)
		{
			iconBox[l] = Object.Instantiate<GameObject>(iconPrefab.gameObject, memoWindow.transform);
			((Object)iconBox[l]).name = "iconBox" + l;
			iconBox[l].transform.localPosition = new Vector3(26f * (float)l - 235f, -55f, 0f);
			iconBox[l].GetComponent<RectTransform>().sizeDelta = Vector2.op_Implicit(new Vector3(24f, 24f, 0f));
			iconBox[l].GetComponent<Image>().sprite = emptySprite;
			iconBox[l].AddComponent<Button>();
			iconBox[l].SetActive(true);
			int iconNo = l;
			((UnityEvent)iconBox[l].GetComponent<Button>().onClick).AddListener((UnityAction)delegate
			{
				OnClickIconBox(iconNo);
			});
		}
		((UnityEvent<string>)(object)descBox.GetComponent<InputField>().onEndEdit).AddListener((UnityAction<string>)onEndEditDescBox);
		emptyButton = Object.Instantiate<GameObject>(((Component)UIRoot.instance.uiGame.assemblerWindow.copyButton).gameObject, ((Component)UIRoot.instance.uiGame.signalPicker).transform);
		emptyButton.GetComponent<RectTransform>().sizeDelta = new Vector2(40f, 40f);
		emptyButton.transform.localPosition = new Vector3(575f, -60f, 0f);
		((Component)emptyButton.transform.Find("Text")).GetComponent<Text>().alignment = (TextAnchor)4;
		((Component)emptyButton.transform.Find("Text")).GetComponent<Text>().lineSpacing = 0.8f;
		((Component)emptyButton.transform.Find("Text")).GetComponent<Text>().fontSize = 12;
		((Component)emptyButton.transform.Find("Text")).GetComponent<Text>().text = Localization.Translate("No\nIcon");
		Object.Destroy((Object)(object)((Component)emptyButton.transform.Find("Text")).GetComponent<Localizer>());
		Object.Destroy((Object)(object)emptyButton.GetComponent<UIButton>());
		((Object)emptyButton).name = "emptyButton";
		emptyButton.SetActive(false);
		((UnityEvent)emptyButton.GetComponent<Button>().onClick).AddListener(new UnityAction(onEmptyButton));
	}

	public static void onEndEditDescBox(string str)
	{
		memo.desc = str;
		MemoPool.AddOrUpdate();
	}

	public static void OnClickIconBox(int iconNo)
	{
		//IL_0029: Unknown result type (might be due to invalid IL or missing references)
		if (!UISignalPicker.isOpened)
		{
			emptyButton.SetActive(true);
			selectedIconNo = iconNo;
			UISignalPicker.Popup(new Vector2(50f, 350f), (Action<int>)onIconBoxChanged);
		}
	}

	public static void onIconBoxChanged(int signalId)
	{
		iconBox[selectedIconNo].GetComponent<Image>().sprite = LDB.signals.IconSprite(signalId);
		memo.signalIconId[selectedIconNo] = signalId;
		MemoPool.AddOrUpdate();
		emptyButton.SetActive(false);
	}

	public static void onEmptyButton()
	{
		UISignalPicker.Close();
		iconBox[selectedIconNo].GetComponent<Image>().sprite = emptySprite;
		memo.signalIconId[selectedIconNo] = 0;
		MemoPool.AddOrUpdate();
	}

	public static void MemoWindowOpen(int key)
	{
		//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_0058: Unknown result type (might be due to invalid IL or missing references)
		//IL_005d: Unknown result type (might be due to invalid IL or missing references)
		if (MemoPool.memoPool.ContainsKey(key))
		{
			memo.id = MemoPool.memoPool[key].id;
			memo.desc = MemoPool.memoPool[key].desc;
			memo.color = MemoPool.memoPool[key].color;
			InputField component = descBox.GetComponent<InputField>();
			component.text = memo.desc;
			for (int i = 0; i < 10; i++)
			{
				memo.signalIconId[i] = MemoPool.memoPool[key].signalIconId[i];
				if (memo.signalIconId[i] != 0)
				{
					iconBox[i].GetComponent<Image>().sprite = LDB.signals.IconSprite(memo.signalIconId[i]);
				}
				else
				{
					iconBox[i].GetComponent<Image>().sprite = emptySprite;
				}
			}
		}
		else
		{
			memo.id = 0;
			memo.desc = "";
			memo.color = Color.white;
			InputField component2 = descBox.GetComponent<InputField>();
			component2.text = "";
			for (int j = 0; j < 10; j++)
			{
				iconBox[j].GetComponent<Image>().sprite = emptySprite;
				memo.signalIconId[j] = 0;
			}
		}
		memoWindow.SetActive(true);
	}

	public static void DestroyChildren(Transform transform, List<string> keepTransformList, List<Type> keepComponentList)
	{
		//IL_0011: Unknown result type (might be due to invalid IL or missing references)
		//IL_0017: Expected O, but got Unknown
		foreach (Transform item in transform)
		{
			Transform val = item;
			LogManager.Logger.LogInfo((object)("Transform: " + ((Object)val).name));
			if (!keepTransformList.Contains(((Object)val).name))
			{
				Object.Destroy((Object)(object)((Component)val).gameObject);
				LogManager.Logger.LogInfo((object)("destroy: " + ((Object)val).name));
			}
		}
		Component[] components = ((Component)transform).GetComponents<Component>();
		foreach (Component val2 in components)
		{
			LogManager.Logger.LogInfo((object)("Component: " + (object)val2));
			if (!keepComponentList.Contains(((object)val2).GetType()))
			{
				Object.Destroy((Object)(object)val2);
				LogManager.Logger.LogInfo((object)("destory: " + ((object)val2).GetType()));
			}
		}
	}
}
[BepInPlugin("Appun.DSP.plugin.StarMapMemo", "DSPStarMapMemo", "0.0.5")]
[BepInProcess("DSPGAME.exe")]
[BepInDependency(/*Could not decode attribute arguments.*/)]
public class Main : BaseUnityPlugin, IModCanSave
{
	public void Start()
	{
		LogManager.Logger = ((BaseUnityPlugin)this).Logger;
		Harmony.CreateAndPatchAll(Assembly.GetExecutingAssembly(), (string)null);
		UI.Create();
	}

	public void Import(BinaryReader r)
	{
		MemoPool.memoPool.Clear();
		if (r.ReadInt32() == 1)
		{
			int num = r.ReadInt32();
			for (int i = 0; i < num; i++)
			{
				int key = r.ReadInt32();
				MemoPool.Memo value = default(MemoPool.Memo);
				value.signalIconId = new int[10];
				value.id = r.ReadInt32();
				value.desc = r.ReadString();
				value.color.r = r.ReadSingle();
				value.color.g = r.ReadSingle();
				value.color.b = r.ReadSingle();
				value.color.a = r.ReadSingle();
				for (int j = 0; j < 10; j++)
				{
					value.signalIconId[j] = r.ReadInt32();
				}
				MemoPool.memoPool.Add(key, value);
			}
		}
		else
		{
			LogManager.Logger.LogInfo((object)"Save data version error");
		}
	}

	public void Export(BinaryWriter w)
	{
		//IL_0078: Unknown result type (might be due to invalid IL or missing references)
		//IL_0090: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a8: 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)
		w.Write(1);
		w.Write(MemoPool.memoPool.Count);
		for (int i = 0; i < MemoPool.memoPool.Count; i++)
		{
			foreach (KeyValuePair<int, MemoPool.Memo> item in MemoPool.memoPool)
			{
				w.Write(item.Key);
				w.Write(item.Value.id);
				w.Write(item.Value.desc);
				w.Write(item.Value.color.r);
				w.Write(item.Value.color.g);
				w.Write(item.Value.color.b);
				w.Write(item.Value.color.a);
				for (int j = 0; j < 10; j++)
				{
					w.Write(item.Value.signalIconId[j]);
				}
			}
		}
	}

	public void IntoOtherSave()
	{
		if (MemoPool.memoPool.Count > 0)
		{
			MemoPool.memoPool.Clear();
		}
	}
}
public class LogManager
{
	public static ManualLogSource Logger;
}
[HarmonyPatch]
internal class Patch
{
	public static UIKeyTipNode ctrlToHideStarMemo = new UIKeyTipNode();

	public static bool showMemoFlag = true;

	[HarmonyPostfix]
	[HarmonyPatch(typeof(UIStarmapStar), "_OnLateUpdate")]
	public static void UIStarmapStar_OnInit_Postfix(UIStarmapStar __instance)
	{
		showMemo(__instance.star.id, ((Component)__instance).transform);
	}

	[HarmonyPostfix]
	[HarmonyPatch(typeof(UIStarmapPlanet), "_OnLateUpdate")]
	public static void UIStarmapPlanet_OnInit_Postfix(UIStarmapPlanet __instance)
	{
		showMemo(__instance.planet.id, ((Component)__instance).transform);
	}

	public static void showMemo(int id, Transform tr)
	{
		//IL_012a: Unknown result type (might be due to invalid IL or missing references)
		bool key = Input.GetKey((KeyCode)306);
		GameObject gameObject = ((Component)tr.Find("memoBase")).gameObject;
		if (!key)
		{
			if (MemoPool.memoPool.ContainsKey(id) && ((Component)tr.Find("name-text")).gameObject.activeSelf)
			{
				GameObject gameObject2 = ((Component)tr.Find("memoBase/memoText")).gameObject;
				gameObject2.GetComponent<Text>().text = MemoPool.memoPool[id].desc;
				gameObject2.SetActive(true);
				for (int i = 0; i < 10; i++)
				{
					int num = MemoPool.memoPool[id].signalIconId[i];
					GameObject gameObject3 = ((Component)tr.Find("memoBase/icon" + i)).gameObject;
					if (num != 0)
					{
						gameObject3.GetComponent<Image>().sprite = LDB.signals.IconSprite(num);
						gameObject3.SetActive(true);
					}
					else
					{
						gameObject3.SetActive(false);
					}
				}
				gameObject.transform.localPosition = tr.Find("name-text").localPosition;
				gameObject.SetActive(true);
			}
			else
			{
				gameObject.SetActive(false);
			}
		}
		else
		{
			gameObject.SetActive(false);
		}
	}

	[HarmonyPostfix]
	[HarmonyPatch(typeof(UIStarmap), "_OnLateUpdate")]
	public static void UIStarmap_OnLateUpdate_Postfix(UIStarmap __instance)
	{
		//IL_0017: Unknown result type (might be due to invalid IL or missing references)
		//IL_0026: Unknown result type (might be due to invalid IL or missing references)
		//IL_002b: Unknown result type (might be due to invalid IL or missing references)
		((Graphic)__instance.playerNameText).rectTransform.anchoredPosition = ((Graphic)__instance.playerNameText).rectTransform.anchoredPosition - new Vector2(70f, 0f);
	}

	[HarmonyPostfix]
	[HarmonyPatch(typeof(UIStarDetail), "_OnOpen")]
	public static void UIStarDetail_OnOpen_Postfix(UIStarDetail __instance)
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Invalid comparison between Unknown and I4
		if ((int)UIGame.viewMode != 3)
		{
			UI.MemoWindowOpen(__instance.star.id);
		}
	}

	[HarmonyPostfix]
	[HarmonyPatch(typeof(UIPlanetDetail), "_OnOpen")]
	public static void UIPlanetDetail_OnOpen_Postfix(UIPlanetDetail __instance)
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Invalid comparison between Unknown and I4
		if ((int)UIGame.viewMode != 3)
		{
			UI.MemoWindowOpen(__instance.planet.id);
		}
	}

	[HarmonyPostfix]
	[HarmonyPatch(typeof(UIStarDetail), "_OnClose")]
	[HarmonyPatch(typeof(UIPlanetDetail), "_OnClose")]
	public static void UIStarDetail_OnClose_Postfix()
	{
		//IL_003a: 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)
		if (!((ManualBehaviour)UIRoot.instance.uiGame.starDetail).active && !((ManualBehaviour)UIRoot.instance.uiGame.planetDetail).active)
		{
			UI.memo.color = Color.white;
			UI.memo.id = 0;
			UI.memo.desc = "";
			for (int i = 0; i < 10; i++)
			{
				UI.memo.signalIconId[i] = 0;
			}
			UI.memoWindow.SetActive(false);
		}
	}

	[HarmonyPostfix]
	[HarmonyPatch(typeof(UIStarDetail), "RefreshDynamicProperties")]
	public static void UIStarDetail_RefreshDynamicProperties_Postfix(UIStarDetail __instance)
	{
		//IL_0011: Unknown result type (might be due to invalid IL or missing references)
		//IL_0021: 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_003b: Unknown result type (might be due to invalid IL or missing references)
		UI.memoWindow.transform.localPosition = ((Component)__instance).transform.localPosition - new Vector3(0f, ((Component)__instance).GetComponent<RectTransform>().sizeDelta.y + 40f, 0f);
	}

	[HarmonyPostfix]
	[HarmonyPatch(typeof(UIPlanetDetail), "RefreshDynamicProperties")]
	public static void UIPlanetDetail_RefreshDynamicProperties_Postfix(UIPlanetDetail __instance)
	{
		//IL_0011: Unknown result type (might be due to invalid IL or missing references)
		//IL_0021: 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_003b: Unknown result type (might be due to invalid IL or missing references)
		UI.memoWindow.transform.localPosition = ((Component)__instance).transform.localPosition - new Vector3(0f, ((Component)__instance).GetComponent<RectTransform>().sizeDelta.y + 40f, 0f);
	}
}