using 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 HarmonyLib;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.UI;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("StarMapTools")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("StarMapTools")]
[assembly: AssemblyCopyright("Copyright © 2022")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("bf224048-4020-497b-b3a4-3a83f0a2990a")]
[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")]
namespace StarMapTools;
internal class Drag : MonoBehaviour
{
private RectTransform rt;
private RectTransform parent;
private RectTransform canvas;
private Vector3 lastPosition;
private bool drag = false;
private void Start()
{
rt = ((Component)this).GetComponent<RectTransform>();
parent = ((Component)((Transform)rt).parent).GetComponent<RectTransform>();
canvas = ((Component)((Transform)parent).parent).GetComponent<RectTransform>();
}
private void Update()
{
//IL_0001: Unknown result type (might be due to invalid IL or missing references)
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
//IL_0011: Unknown result type (might be due to invalid IL or missing references)
//IL_001b: Unknown result type (might be due to invalid IL or missing references)
//IL_0020: Unknown result type (might be due to invalid IL or missing references)
//IL_0025: Unknown result type (might be due to invalid IL or missing references)
//IL_0030: 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_003f: Unknown result type (might be due to invalid IL or missing references)
//IL_0044: Unknown result type (might be due to invalid IL or missing references)
//IL_0054: Unknown result type (might be due to invalid IL or missing references)
//IL_0076: 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_009a: 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)
//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
//IL_00ab: Unknown result type (might be due to invalid IL or missing references)
//IL_00b0: 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_00b7: Unknown result type (might be due to invalid IL or missing references)
//IL_00cd: Unknown result type (might be due to invalid IL or missing references)
//IL_00d3: Unknown result type (might be due to invalid IL or missing references)
//IL_00e9: Unknown result type (might be due to invalid IL or missing references)
//IL_00ef: Unknown result type (might be due to invalid IL or missing references)
//IL_013b: Unknown result type (might be due to invalid IL or missing references)
//IL_013c: Unknown result type (might be due to invalid IL or missing references)
//IL_0105: 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_0182: Unknown result type (might be due to invalid IL or missing references)
//IL_0187: Unknown result type (might be due to invalid IL or missing references)
//IL_0189: Unknown result type (might be due to invalid IL or missing references)
//IL_018e: Unknown result type (might be due to invalid IL or missing references)
//IL_0193: Unknown result type (might be due to invalid IL or missing references)
//IL_019f: Unknown result type (might be due to invalid IL or missing references)
//IL_01a0: Unknown result type (might be due to invalid IL or missing references)
Vector3 val = Input.mousePosition - Vector3.right * (float)Screen.width / 2f - Vector3.up * (float)Screen.height / 2f;
val.x *= canvas.sizeDelta.x / (float)Screen.width;
val.y *= canvas.sizeDelta.y / (float)Screen.height;
Vector3 val2 = ((Transform)parent).localPosition + ((Transform)rt).localPosition;
Rect rect = rt.rect;
if (val.x >= val2.x - ((Rect)(ref rect)).width / 2f && val.x <= val2.x + ((Rect)(ref rect)).width / 2f && val.y >= val2.y - ((Rect)(ref rect)).height / 2f && val.y <= val2.y + ((Rect)(ref rect)).height / 2f && Input.GetMouseButtonDown(0))
{
drag = true;
lastPosition = val;
}
else if (drag && Input.GetMouseButtonUp(0))
{
drag = false;
}
if (drag)
{
RectTransform obj = parent;
((Transform)obj).localPosition = ((Transform)obj).localPosition + (val - lastPosition);
lastPosition = val;
}
}
}
[BepInPlugin("sky.plugins.dsp.StarMapTools", "StarMapTools", "1.6.9")]
public class StarMapTools : BaseUnityPlugin
{
public static bool IsEnglish;
private GameObject prefab_StarMapToolsBasePanel;
private GameObject ui_StarMapToolsBasePanel;
private Dropdown StarList;
private Dropdown PlanetList;
private Text TitleText;
private InputField InfoText;
private Toggle LoadResAmount;
private bool dataLoadOver = false;
private bool showGUI = false;
private bool loadingStarData = false;
private GalaxyData galaxy;
private KeyCode switchGUIKey;
private KeyCode tpKey;
private List<StarSearcher> starSearchers = new List<StarSearcher>();
private Button AddSearcherButton;
private Button RemoveSearcherButton;
private Dropdown SearcherList;
private ScrollRect OptionsList;
private Toggle SearchNextToggle;
private Toggle RandomSearchToggle;
private InputField DysonLuminoText;
private InputField DistanceText;
private Dropdown ResultList;
private Toggle VeinGroupToggle;
private Toggle VeinPGroupToggle;
private InputField VeinAmountText;
private Text PrePosText;
private Vector3 PrePos = Vector3.zero;
private LineRenderer PrePosLine;
private Dropdown BaseSkinDropDown;
private Button SetBaseButton;
private Button ChangeButton;
private Button RemoveVeinButton;
private Button AddVeinButton;
private Button SearchButton;
private bool SearchNext = false;
private List<StarData> SerachResult = new List<StarData>();
private static StarMapTools self;
private List<Toggle> StarTypesToggleList;
private List<RectTransform> PlanteTypesNumLabelList;
private List<RectTransform> SingularityTypesNumLabelList;
private List<Toggle> VeinTypesToggleList;
private void Start()
{
//IL_0043: Unknown result type (might be due to invalid IL or missing references)
//IL_0048: Unknown result type (might be due to invalid IL or missing references)
//IL_0072: Unknown result type (might be due to invalid IL or missing references)
//IL_0077: Unknown result type (might be due to invalid IL or missing references)
Harmony.CreateAndPatchAll(typeof(StarMapTools), (string)null);
self = this;
StarMapToolsTranslate.regAllTranslate();
switchGUIKey = ((BaseUnityPlugin)this).Config.Bind<KeyCode>("config", "switchGUI", (KeyCode)282, "开关GUI的按键".getTranslate()).Value;
tpKey = ((BaseUnityPlugin)this).Config.Bind<KeyCode>("config", "tp", (KeyCode)283, "传送按键".getTranslate()).Value;
AssetBundle val = AssetBundle.LoadFromStream(Assembly.GetExecutingAssembly().GetManifestResourceStream("StarMapTools.starmaptools"));
prefab_StarMapToolsBasePanel = val.LoadAsset<GameObject>("StarMapToolsBasePanel");
}
private void Update()
{
//IL_0012: Unknown result type (might be due to invalid IL or missing references)
//IL_087c: Unknown result type (might be due to invalid IL or missing references)
//IL_0886: Expected O, but got Unknown
//IL_08b6: Unknown result type (might be due to invalid IL or missing references)
//IL_08c0: Expected O, but got Unknown
//IL_08d3: Unknown result type (might be due to invalid IL or missing references)
//IL_08dd: Expected O, but got Unknown
//IL_08f0: Unknown result type (might be due to invalid IL or missing references)
//IL_08fa: Expected O, but got Unknown
//IL_03c1: Unknown result type (might be due to invalid IL or missing references)
//IL_0410: Unknown result type (might be due to invalid IL or missing references)
//IL_041a: Expected O, but got Unknown
//IL_0436: Unknown result type (might be due to invalid IL or missing references)
//IL_038c: Unknown result type (might be due to invalid IL or missing references)
//IL_0396: Expected O, but got Unknown
//IL_04a1: Unknown result type (might be due to invalid IL or missing references)
//IL_04a6: Unknown result type (might be due to invalid IL or missing references)
//IL_028d: Unknown result type (might be due to invalid IL or missing references)
//IL_0297: Expected O, but got Unknown
//IL_055a: Unknown result type (might be due to invalid IL or missing references)
//IL_055f: Unknown result type (might be due to invalid IL or missing references)
//IL_0502: Unknown result type (might be due to invalid IL or missing references)
//IL_0507: Unknown result type (might be due to invalid IL or missing references)
//IL_050c: Unknown result type (might be due to invalid IL or missing references)
//IL_050e: Unknown result type (might be due to invalid IL or missing references)
//IL_0530: Unknown result type (might be due to invalid IL or missing references)
//IL_0535: Unknown result type (might be due to invalid IL or missing references)
//IL_0679: Unknown result type (might be due to invalid IL or missing references)
//IL_067e: Unknown result type (might be due to invalid IL or missing references)
//IL_0694: Unknown result type (might be due to invalid IL or missing references)
//IL_0699: Unknown result type (might be due to invalid IL or missing references)
//IL_0624: Unknown result type (might be due to invalid IL or missing references)
//IL_0637: Unknown result type (might be due to invalid IL or missing references)
if (dataLoadOver)
{
if (Input.GetKeyDown(switchGUIKey))
{
showGUI = !showGUI;
}
if ((showGUI && !ui_StarMapToolsBasePanel.activeSelf) || (!showGUI && ui_StarMapToolsBasePanel.activeSelf))
{
ui_StarMapToolsBasePanel.SetActive(!ui_StarMapToolsBasePanel.activeSelf);
if (!ui_StarMapToolsBasePanel.activeSelf && (Object)(object)PrePosLine != (Object)null && ((Component)PrePosLine).gameObject.activeSelf)
{
((Component)PrePosLine).gameObject.SetActive(false);
}
}
if (!showGUI)
{
return;
}
if (UIRoot.instance.galaxySelect.starmap.galaxyData != null)
{
if (SearchNext && SearchNextToggle.isOn)
{
LoadResAmount.isOn = false;
if (RandomSearchToggle.isOn)
{
UIRoot.instance.galaxySelect.Rerand();
}
else
{
GameDesc value = Traverse.Create((object)UIRoot.instance.galaxySelect).Field("gameDesc").GetValue<GameDesc>();
InputField value2 = Traverse.Create((object)UIRoot.instance.galaxySelect).Field("seedInput").GetValue<InputField>();
int galaxySeed = value.galaxySeed;
galaxySeed++;
value2.text = galaxySeed.ToString();
value.galaxySeed = galaxySeed;
UIRoot.instance.galaxySelect.SetStarmapGalaxy();
}
}
else
{
SearchNext = false;
}
if (galaxy != UIRoot.instance.galaxySelect.starmap.galaxyData)
{
TitleText.text = "新游戏模式".getTranslate();
galaxy = UIRoot.instance.galaxySelect.starmap.galaxyData;
StarList.ClearOptions();
ResultList.ClearOptions();
StarData[] stars = galaxy.stars;
foreach (StarData val in stars)
{
StarList.options.Add(new OptionData(val.displayName));
}
StarList.value = -1;
StarList.RefreshShownValue();
if (SearchNext)
{
((UnityEvent)SearchButton.onClick).Invoke();
}
}
}
else if (GameMain.galaxy != null)
{
SearchNext = false;
if (galaxy != GameMain.galaxy)
{
TitleText.text = "读档模式".getTranslate();
galaxy = GameMain.galaxy;
StarList.ClearOptions();
ResultList.ClearOptions();
StarData[] stars2 = galaxy.stars;
foreach (StarData val2 in stars2)
{
StarList.options.Add(new OptionData(val2.displayName));
}
StarList.value = -1;
StarList.RefreshShownValue();
}
if (Input.GetKeyDown(tpKey))
{
UIRoot.instance.uiGame.buildMenu.SetCurrentCategory(0);
object obj = galaxy.StarById(StarList.value + 1);
GameMain.data.ArriveStar((StarData)obj);
if (PlanetList.value > 0)
{
obj = ((StarData)obj).planets[PlanetList.value - 1];
}
((MonoBehaviour)this).StartCoroutine(wait(obj));
}
if ((Input.GetKeyDown((KeyCode)308) && Input.GetKey((KeyCode)306)) || (Input.GetKey((KeyCode)308) && Input.GetKeyDown((KeyCode)306)))
{
PrePos = Vector3.zero;
PrePosText.text = "无预设坐标";
}
if (Input.GetMouseButtonDown(0) && Input.GetKey((KeyCode)308) && Input.GetKey((KeyCode)306) && GameMain.localPlanet != null)
{
Ray val3 = GameMain.mainPlayer.controller.mainCamera.ScreenPointToRay(Input.mousePosition);
RaycastHit val4 = default(RaycastHit);
if (Physics.Raycast(val3, ref val4, 800f, 8720, (QueryTriggerInteraction)2))
{
PrePos = ((RaycastHit)(ref val4)).point;
PrePosText.text = ((object)(Vector3)(ref PrePos)).ToString();
}
}
if (PrePos != Vector3.zero && GameMain.localPlanet != null)
{
if ((Object)(object)PrePosLine == (Object)null)
{
UIPowerGizmo powerGizmo = UIRoot.instance.uiGame.powerGizmo;
LineRenderer value3 = Traverse.Create((object)powerGizmo).Field("lineGizmoPrefab").GetValue<LineRenderer>();
PrePosLine = Object.Instantiate<LineRenderer>(value3, GameMain.mainPlayer.transform.parent);
}
if ((Object)(object)PrePosLine != (Object)null)
{
((Component)PrePosLine).transform.SetParent(GameMain.mainPlayer.transform.parent);
PrePosLine.SetPosition(0, GameMain.mainPlayer.position);
PrePosLine.SetPosition(1, PrePos);
if (!((Component)PrePosLine).gameObject.activeSelf)
{
((Component)PrePosLine).gameObject.SetActive(true);
}
}
}
else
{
if (PrePos != Vector3.zero)
{
PrePos = Vector3.zero;
PrePosText.text = "无预设坐标";
}
if ((Object)(object)PrePosLine != (Object)null && ((Component)PrePosLine).gameObject.activeSelf)
{
((Component)PrePosLine).gameObject.SetActive(false);
}
}
}
else if (TitleText.text != "等待数据".getTranslate())
{
TitleText.text = "等待数据".getTranslate();
StarList.ClearOptions();
PlanetList.ClearOptions();
ResultList.ClearOptions();
InfoText.text = "";
SearchNext = false;
}
if (loadingStarData)
{
StarData val5 = galaxy.StarById(StarList.value + 1);
if (val5.loaded || !LoadResAmount.isOn)
{
loadingStarData = false;
}
PlanetList.value = -1;
PlanetList.RefreshShownValue();
}
}
else if ((Object)(object)((Component)UIRoot.instance.overlayCanvas).transform != (Object)null && (Object)(object)GameMain.instance != (Object)null)
{
LoadUIData();
Translate();
InitSeachUI();
((UnityEvent<int>)(object)StarList.onValueChanged).AddListener((UnityAction<int>)OnStarChange);
((UnityEvent<int>)(object)PlanetList.onValueChanged).AddListener((UnityAction<int>)OnPlanetChange);
((UnityEvent)SearchButton.onClick).AddListener(new UnityAction(OnSearchButtonClick));
((UnityEvent<int>)(object)ResultList.onValueChanged).AddListener((UnityAction<int>)OnResultChange);
((UnityEvent)SetBaseButton.onClick).AddListener(new UnityAction(OnSetBase));
((UnityEvent)AddSearcherButton.onClick).AddListener(new UnityAction(AddSearcher));
((UnityEvent)RemoveSearcherButton.onClick).AddListener(new UnityAction(RemoveSearcher));
((UnityEvent<int>)(object)SearcherList.onValueChanged).AddListener((UnityAction<int>)ShowSearcher);
dataLoadOver = true;
}
}
private void LoadUIData()
{
ui_StarMapToolsBasePanel = Object.Instantiate<GameObject>(prefab_StarMapToolsBasePanel, ((Component)UIRoot.instance.overlayCanvas).transform);
((Component)ui_StarMapToolsBasePanel.transform.Find("TitleText")).gameObject.AddComponent<Drag>();
ui_StarMapToolsBasePanel.SetActive(false);
TitleText = ((Component)ui_StarMapToolsBasePanel.transform.Find("TitleText")).GetComponent<Text>();
StarList = ((Component)ui_StarMapToolsBasePanel.transform.Find("StarList")).GetComponent<Dropdown>();
PlanetList = ((Component)ui_StarMapToolsBasePanel.transform.Find("PlanetList")).GetComponent<Dropdown>();
InfoText = ((Component)ui_StarMapToolsBasePanel.transform.Find("InfoText")).GetComponent<InputField>();
LoadResAmount = ((Component)ui_StarMapToolsBasePanel.transform.Find("LoadResAmount")).GetComponent<Toggle>();
OptionsList = ((Component)ui_StarMapToolsBasePanel.transform.Find("OptionsList")).GetComponent<ScrollRect>();
SearchNextToggle = ((Component)ui_StarMapToolsBasePanel.transform.Find("SearchNextToggle")).GetComponent<Toggle>();
RandomSearchToggle = ((Component)ui_StarMapToolsBasePanel.transform.Find("RandomSearchToggle")).GetComponent<Toggle>();
DysonLuminoText = ((Component)ui_StarMapToolsBasePanel.transform.Find("DysonLuminoText")).GetComponent<InputField>();
DistanceText = ((Component)ui_StarMapToolsBasePanel.transform.Find("DistanceText")).GetComponent<InputField>();
ResultList = ((Component)ui_StarMapToolsBasePanel.transform.Find("ResultList")).GetComponent<Dropdown>();
SearchButton = ((Component)ui_StarMapToolsBasePanel.transform.Find("SearchButton")).GetComponent<Button>();
VeinAmountText = ((Component)ui_StarMapToolsBasePanel.transform.Find("VeinAmountText")).GetComponent<InputField>();
ChangeButton = ((Component)ui_StarMapToolsBasePanel.transform.Find("ChangeButton")).GetComponent<Button>();
PrePosText = ((Component)ui_StarMapToolsBasePanel.transform.Find("PrePosText")).GetComponent<Text>();
VeinGroupToggle = ((Component)ui_StarMapToolsBasePanel.transform.Find("VeinGroupToggle")).GetComponent<Toggle>();
VeinPGroupToggle = ((Component)ui_StarMapToolsBasePanel.transform.Find("VeinPGroupToggle")).GetComponent<Toggle>();
BaseSkinDropDown = ((Component)ui_StarMapToolsBasePanel.transform.Find("BaseSkinDropDown")).GetComponent<Dropdown>();
SetBaseButton = ((Component)ui_StarMapToolsBasePanel.transform.Find("SetBaseButton")).GetComponent<Button>();
RemoveVeinButton = ((Component)ui_StarMapToolsBasePanel.transform.Find("RemoveVeinButton")).GetComponent<Button>();
AddVeinButton = ((Component)ui_StarMapToolsBasePanel.transform.Find("AddVeinButton")).GetComponent<Button>();
RemoveSearcherButton = ((Component)ui_StarMapToolsBasePanel.transform.Find("RemoveSearcherButton")).GetComponent<Button>();
AddSearcherButton = ((Component)ui_StarMapToolsBasePanel.transform.Find("AddSearcherButton")).GetComponent<Button>();
SearcherList = ((Component)ui_StarMapToolsBasePanel.transform.Find("SearcherList")).GetComponent<Dropdown>();
((Component)VeinGroupToggle).gameObject.SetActive(false);
((Component)VeinPGroupToggle).gameObject.SetActive(false);
((Component)AddVeinButton).gameObject.SetActive(false);
((Component)RemoveVeinButton).gameObject.SetActive(false);
((Component)VeinAmountText).gameObject.SetActive(false);
((Component)PrePosText).gameObject.SetActive(false);
((Component)ChangeButton).gameObject.SetActive(false);
((Component)ui_StarMapToolsBasePanel.transform.Find("VeinPTypeDropdown")).gameObject.SetActive(false);
((Component)ui_StarMapToolsBasePanel.transform.Find("VeinTypeDropdown")).gameObject.SetActive(false);
((Component)ui_StarMapToolsBasePanel.transform.Find("VeinNumText")).gameObject.SetActive(false);
}
private void Translate()
{
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
//IL_000c: Invalid comparison between Unknown and I4
IsEnglish = (int)Localization.CurrentLanguage.glyph == 0;
if (IsEnglish)
{
((Component)((Component)LoadResAmount).transform.Find("Label")).GetComponent<Text>().text = "加载矿物数量".getTranslate();
((Component)((Component)SearchNextToggle).transform.Find("Label")).GetComponent<Text>().text = "连续搜索".getTranslate();
((Component)((Component)SearchButton).transform.Find("Text")).GetComponent<Text>().text = "搜索".getTranslate();
((Component)((Component)DysonLuminoText).transform.Find("Placeholder")).GetComponent<Text>().text = "最小光度".getTranslate();
((Component)((Component)DistanceText).transform.Find("Placeholder")).GetComponent<Text>().text = "最远距离".getTranslate();
}
}
private void InitSeachUI()
{
//IL_00ea: Unknown result type (might be due to invalid IL or missing references)
//IL_0116: Unknown result type (might be due to invalid IL or missing references)
//IL_01f1: Unknown result type (might be due to invalid IL or missing references)
//IL_01fb: Expected O, but got Unknown
//IL_021f: Unknown result type (might be due to invalid IL or missing references)
//IL_0229: Expected O, but got Unknown
//IL_02de: Unknown result type (might be due to invalid IL or missing references)
//IL_030f: 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_0294: Unknown result type (might be due to invalid IL or missing references)
//IL_03f1: Unknown result type (might be due to invalid IL or missing references)
//IL_03fb: Expected O, but got Unknown
//IL_041f: Unknown result type (might be due to invalid IL or missing references)
//IL_0429: Expected O, but got Unknown
//IL_044e: Unknown result type (might be due to invalid IL or missing references)
//IL_047f: Unknown result type (might be due to invalid IL or missing references)
//IL_052b: Unknown result type (might be due to invalid IL or missing references)
//IL_0557: Unknown result type (might be due to invalid IL or missing references)
Toggle component = ((Component)((Transform)OptionsList.content).Find("TempToggle")).GetComponent<Toggle>();
GameObject gameObject = ((Component)((Transform)OptionsList.content).Find("TempNumLabel")).gameObject;
List<string> allStarTypes = StarSearcher.AllStarTypes;
List<string> allPlanteTypes = StarSearcher.AllPlanteTypes;
List<string> allSingularityTypes = StarSearcher.AllSingularityTypes;
List<string> allVeinTypes = StarSearcher.AllVeinTypes;
StarTypesToggleList = new List<Toggle>();
PlanteTypesNumLabelList = new List<RectTransform>();
SingularityTypesNumLabelList = new List<RectTransform>();
VeinTypesToggleList = new List<Toggle>();
for (int i = 0; i < allStarTypes.Count; i++)
{
RectTransform component2 = ((Component)Object.Instantiate<Toggle>(component, ((Component)component).transform.parent)).GetComponent<RectTransform>();
((Component)((Transform)component2).Find("Label")).GetComponent<Text>().text = allStarTypes[i];
((Component)component2).GetComponent<Toggle>().isOn = true;
component2.anchorMax = new Vector2(0.25f, (float)(1.0 - (double)i * 0.1));
component2.anchorMin = new Vector2(0f, (float)(1.0 - (double)(i + 1) * 0.1));
((Component)component2).gameObject.SetActive(true);
StarTypesToggleList.Add(((Component)component2).GetComponent<Toggle>());
}
for (int j = 0; j < allPlanteTypes.Count; j++)
{
RectTransform numLabel = Object.Instantiate<GameObject>(gameObject, gameObject.transform.parent).GetComponent<RectTransform>();
((Component)((Transform)numLabel).Find("Label")).GetComponent<Text>().text = allPlanteTypes[j];
((Component)((Transform)numLabel).Find("NumText")).GetComponent<Text>().text = "0";
((UnityEvent)((Component)((Transform)numLabel).Find("+")).GetComponent<Button>().onClick).AddListener((UnityAction)delegate
{
int.TryParse(((Component)((Transform)numLabel).Find("NumText")).GetComponent<Text>().text, out var result4);
result4++;
((Component)((Transform)numLabel).Find("NumText")).GetComponent<Text>().text = result4.ToString();
});
((UnityEvent)((Component)((Transform)numLabel).Find("-")).GetComponent<Button>().onClick).AddListener((UnityAction)delegate
{
int.TryParse(((Component)((Transform)numLabel).Find("NumText")).GetComponent<Text>().text, out var result3);
result3--;
((Component)((Transform)numLabel).Find("NumText")).GetComponent<Text>().text = ((result3 > 0) ? result3 : 0).ToString();
});
if (j < allPlanteTypes.Count / 2 + 5)
{
numLabel.anchorMax = new Vector2(0.5f, (float)(1.0 - (double)j * 0.1));
numLabel.anchorMin = new Vector2(0.25f, (float)(1.0 - (double)(j + 1) * 0.1));
}
else
{
int num = j - allPlanteTypes.Count / 2 - 5 + allSingularityTypes.Count;
numLabel.anchorMax = new Vector2(0.75f, (float)(1.0 - (double)num * 0.1));
numLabel.anchorMin = new Vector2(0.5f, (float)(1.0 - (double)(num + 1) * 0.1));
}
((Component)numLabel).gameObject.SetActive(true);
PlanteTypesNumLabelList.Add(numLabel);
}
for (int k = 0; k < allSingularityTypes.Count; k++)
{
RectTransform numLabel2 = Object.Instantiate<GameObject>(gameObject, gameObject.transform.parent).GetComponent<RectTransform>();
((Component)((Transform)numLabel2).Find("Label")).GetComponent<Text>().text = allSingularityTypes[k];
((Component)((Transform)numLabel2).Find("NumText")).GetComponent<Text>().text = "0";
((UnityEvent)((Component)((Transform)numLabel2).Find("+")).GetComponent<Button>().onClick).AddListener((UnityAction)delegate
{
int.TryParse(((Component)((Transform)numLabel2).Find("NumText")).GetComponent<Text>().text, out var result2);
result2++;
((Component)((Transform)numLabel2).Find("NumText")).GetComponent<Text>().text = result2.ToString();
});
((UnityEvent)((Component)((Transform)numLabel2).Find("-")).GetComponent<Button>().onClick).AddListener((UnityAction)delegate
{
int.TryParse(((Component)((Transform)numLabel2).Find("NumText")).GetComponent<Text>().text, out var result);
result--;
((Component)((Transform)numLabel2).Find("NumText")).GetComponent<Text>().text = ((result > 0) ? result : 0).ToString();
});
numLabel2.anchorMax = new Vector2(0.75f, (float)(1.0 - (double)k * 0.1));
numLabel2.anchorMin = new Vector2(0.5f, (float)(1.0 - (double)(k + 1) * 0.1));
((Component)numLabel2).gameObject.SetActive(true);
SingularityTypesNumLabelList.Add(numLabel2);
}
for (int l = 0; l < allVeinTypes.Count; l++)
{
RectTransform component3 = ((Component)Object.Instantiate<Toggle>(component, ((Component)component).transform.parent)).GetComponent<RectTransform>();
((Component)((Transform)component3).Find("Label")).GetComponent<Text>().text = allVeinTypes[l];
component3.anchorMax = new Vector2(1f, (float)(1.0 - (double)l * 0.1));
component3.anchorMin = new Vector2(0.75f, (float)(1.0 - (double)(l + 1) * 0.1));
((Component)component3).gameObject.SetActive(true);
VeinTypesToggleList.Add(((Component)component3).GetComponent<Toggle>());
}
}
private void OnStarChange(int arg0)
{
//IL_00ae: Unknown result type (might be due to invalid IL or missing references)
//IL_00b8: Expected O, but got Unknown
//IL_00e1: Unknown result type (might be due to invalid IL or missing references)
//IL_00eb: Expected O, but got Unknown
PlanetList.ClearOptions();
if (StarList.value >= 0 && StarList.value < galaxy.starCount)
{
StarData val = galaxy.StarById(StarList.value + 1);
if (LoadResAmount.isOn && UIRoot.instance.galaxySelect.starmap.galaxyData != null && !val.loaded)
{
val.Load();
}
PlanetList.options.Add(new OptionData("恒星".getTranslate()));
PlanetData[] planets = val.planets;
foreach (PlanetData val2 in planets)
{
PlanetList.options.Add(new OptionData(val2.displayName));
}
PlanetList.value = -1;
PlanetList.RefreshShownValue();
}
}
private void OnPlanetChange(int arg0)
{
//IL_013d: Unknown result type (might be due to invalid IL or missing references)
//IL_0143: Invalid comparison between Unknown and I4
//IL_03f7: Unknown result type (might be due to invalid IL or missing references)
//IL_0408: Unknown result type (might be due to invalid IL or missing references)
//IL_040d: Unknown result type (might be due to invalid IL or missing references)
//IL_0412: Unknown result type (might be due to invalid IL or missing references)
StarData val = galaxy.StarById(StarList.value + 1);
if (PlanetList.value > 0 && PlanetList.value <= val.planetCount)
{
PlanetData val2 = val.planets[PlanetList.value - 1];
string text = val2.displayName + "的信息:".getTranslate() + "\n";
text = text + "词条:".getTranslate() + val2.singularityString + "\n";
text = text + "类型:".getTranslate() + val2.typeString + "\n";
string translate = "未知".getTranslate();
text = string.Concat(str2: val2.waterItemId switch
{
0 => "无".getTranslate(),
-1 => "熔岩".getTranslate(),
_ => LDB.ItemName(val2.waterItemId),
}, str0: text, str1: "海洋类型:".getTranslate(), str3: "\n");
int[] array = veinSpotsSketch(val2);
if ((int)val2.type != 5 && array != null)
{
text = text + "矿物信息:".getTranslate() + "\n";
long[] array2 = new long[64];
val2.CalcVeinAmounts(ref array2, new HashSet<int>(), UIRoot.instance.uiGame.veinAmountDisplayFilter);
for (int i = 0; i < ((ProtoTable)LDB.veins).Length; i++)
{
string name = ((Proto)((ProtoSet<VeinProto>)(object)LDB.veins).dataArray[i]).name;
object obj2 = array2[i + 1];
if (array[i + 1] == 0)
{
obj2 = "无".getTranslate();
}
else if ((long)obj2 == 0)
{
if (!LoadResAmount.isOn)
{
obj2 = "有".getTranslate();
}
else if (UIRoot.instance.galaxySelect.starmap.galaxyData != null)
{
obj2 = "正在加载".getTranslate();
loadingStarData = true;
}
else
{
obj2 = "未加载,靠近后显示".getTranslate();
}
}
else if (i + 1 == 7)
{
obj2 = (double)(long)obj2 * (double)VeinData.oilSpeedMultiplier + " /s";
}
text = text + " " + name + ":" + obj2?.ToString() + "\n";
}
}
InfoText.text = text;
}
else
{
if (PlanetList.value != 0)
{
return;
}
string text2 = val.displayName + "星系的信息:".getTranslate() + (loadingStarData ? "正在加载".getTranslate() : "") + "\n";
text2 = text2 + "恒星类型:".getTranslate() + val.typeString + "\n";
text2 = text2 + "星球数量:".getTranslate() + val.planetCount + "\n";
text2 = text2 + "光度:".getTranslate() + val.dysonLumino + "\n";
string[] obj3 = new string[5]
{
text2,
"距离初始星系恒星:".getTranslate(),
null,
null,
null
};
VectorLF3 val3 = val.uPosition - galaxy.StarById(1).uPosition;
obj3[2] = (((VectorLF3)(ref val3)).magnitude / 2400000.0).ToString();
obj3[3] = "光年".getTranslate();
obj3[4] = "\n";
text2 = string.Concat(obj3);
text2 += "星球列表:".getTranslate();
long[] array3 = new long[64];
int[] array4 = new int[30];
PlanetData[] planets = val.planets;
foreach (PlanetData val4 in planets)
{
long[] array5 = new long[64];
val4.CalcVeinAmounts(ref array5, new HashSet<int>(), UIRoot.instance.uiGame.veinAmountDisplayFilter);
int[] array6 = veinSpotsSketch(val4);
for (int k = 0; k < ((ProtoTable)LDB.veins).Length; k++)
{
array3[k + 1] += array5[k + 1];
if (array6 != null)
{
array4[k + 1] += array6[k + 1];
}
}
text2 = text2 + "-" + val4.typeString + " " + val4.singularityString;
}
text2 = text2 + "\n" + "矿物信息:".getTranslate() + "\n";
for (int l = 0; l < ((ProtoTable)LDB.veins).Length; l++)
{
string name2 = ((Proto)((ProtoSet<VeinProto>)(object)LDB.veins).dataArray[l]).name;
object obj4 = array3[l + 1];
if (array4[l + 1] == 0)
{
obj4 = "无".getTranslate();
}
else if ((long)obj4 == 0)
{
if (!LoadResAmount.isOn)
{
obj4 = "有".getTranslate();
}
else if (UIRoot.instance.galaxySelect.starmap.galaxyData != null)
{
obj4 = "正在加载".getTranslate();
loadingStarData = true;
}
else
{
obj4 = "未加载,靠近后显示".getTranslate();
}
}
else if (l + 1 == 7)
{
obj4 = (double)(long)obj4 * (double)VeinData.oilSpeedMultiplier + " /s";
}
text2 = text2 + " " + name2 + ":" + obj4?.ToString() + "\n";
}
InfoText.text = text2;
}
}
private void OnResultChange(int arg0)
{
StarList.value = SerachResult[ResultList.value].index;
StarList.RefreshShownValue();
}
private void AddSearcher()
{
//IL_02c9: Unknown result type (might be due to invalid IL or missing references)
//IL_02d3: Expected O, but got Unknown
StarSearcher starSearcher = new StarSearcher();
starSearcher.Clear();
float.TryParse((DysonLuminoText.text == "") ? "0" : DysonLuminoText.text, out starSearcher.dysonLumino);
float.TryParse((DistanceText.text == "") ? "1000" : DistanceText.text, out starSearcher.distance);
foreach (Toggle starTypesToggle in StarTypesToggleList)
{
if (starTypesToggle.isOn)
{
string text = ((Component)((Component)starTypesToggle).transform.Find("Label")).GetComponent<Text>().text;
starSearcher.StarTypes.Add(text);
}
}
foreach (RectTransform planteTypesNumLabel in PlanteTypesNumLabelList)
{
int.TryParse(((Component)((Transform)planteTypesNumLabel).Find("NumText")).GetComponent<Text>().text, out var result);
if (result > 0)
{
string text2 = ((Component)((Transform)planteTypesNumLabel).Find("Label")).GetComponent<Text>().text;
starSearcher.PlanteTypes.Add(text2 + "*" + result);
}
}
foreach (RectTransform singularityTypesNumLabel in SingularityTypesNumLabelList)
{
int.TryParse(((Component)((Transform)singularityTypesNumLabel).Find("NumText")).GetComponent<Text>().text, out var result2);
if (result2 > 0)
{
string text3 = ((Component)((Transform)singularityTypesNumLabel).Find("Label")).GetComponent<Text>().text;
starSearcher.SingularityTypes.Add(text3 + "*" + result2);
}
}
foreach (Toggle veinTypesToggle in VeinTypesToggleList)
{
if (veinTypesToggle.isOn)
{
string text4 = ((Component)((Component)veinTypesToggle).transform.Find("Label")).GetComponent<Text>().text;
starSearcher.VeinTypes.Add(text4);
}
}
starSearchers.Add(starSearcher);
SearcherList.ClearOptions();
for (int i = 0; i < starSearchers.Count; i++)
{
SearcherList.options.Add(new OptionData("条件" + i));
}
SearcherList.value = SearcherList.options.Count - 1;
SearcherList.RefreshShownValue();
}
private void RemoveSearcher()
{
if (starSearchers.Count > 0)
{
starSearchers.RemoveAt(SearcherList.value);
SearcherList.options.RemoveAt(SearcherList.value);
SearcherList.value = SearcherList.options.Count - 1;
SearcherList.RefreshShownValue();
ShowSearcher(0);
}
}
private void ShowSearcher(int arg0)
{
if (SearcherList.options.Count <= 0)
{
return;
}
StarSearcher starSearcher = starSearchers[SearcherList.value];
DysonLuminoText.text = starSearcher.dysonLumino.ToString();
DistanceText.text = starSearcher.distance.ToString();
Dictionary<string, string> dictionary = new Dictionary<string, string>();
foreach (Toggle starTypesToggle in StarTypesToggleList)
{
string text = ((Component)((Component)starTypesToggle).transform.Find("Label")).GetComponent<Text>().text;
if (starSearcher.StarTypes.Contains(text))
{
starTypesToggle.isOn = true;
}
else
{
starTypesToggle.isOn = false;
}
}
dictionary.Clear();
foreach (string planteType in starSearcher.PlanteTypes)
{
string[] array = planteType.Split(new char[1] { '*' });
dictionary.Add(array[0], array[1]);
}
foreach (RectTransform planteTypesNumLabel in PlanteTypesNumLabelList)
{
string text2 = ((Component)((Transform)planteTypesNumLabel).Find("Label")).GetComponent<Text>().text;
if (dictionary.ContainsKey(text2))
{
((Component)((Transform)planteTypesNumLabel).Find("NumText")).GetComponent<Text>().text = dictionary[text2];
}
else
{
((Component)((Transform)planteTypesNumLabel).Find("NumText")).GetComponent<Text>().text = "0";
}
}
dictionary.Clear();
foreach (string singularityType in starSearcher.SingularityTypes)
{
string[] array2 = singularityType.Split(new char[1] { '*' });
dictionary.Add(array2[0], array2[1]);
}
foreach (RectTransform singularityTypesNumLabel in SingularityTypesNumLabelList)
{
string text3 = ((Component)((Transform)singularityTypesNumLabel).Find("Label")).GetComponent<Text>().text;
if (dictionary.ContainsKey(text3))
{
((Component)((Transform)singularityTypesNumLabel).Find("NumText")).GetComponent<Text>().text = dictionary[text3];
}
else
{
((Component)((Transform)singularityTypesNumLabel).Find("NumText")).GetComponent<Text>().text = "0";
}
}
foreach (Toggle veinTypesToggle in VeinTypesToggleList)
{
string text4 = ((Component)((Component)veinTypesToggle).transform.Find("Label")).GetComponent<Text>().text;
if (starSearcher.VeinTypes.Contains(text4))
{
veinTypesToggle.isOn = true;
}
else
{
veinTypesToggle.isOn = false;
}
}
}
private void OnSearchButtonClick()
{
//IL_00c6: Unknown result type (might be due to invalid IL or missing references)
//IL_00d0: Expected O, but got Unknown
SearchNext = false;
StarSearcher.galaxyData = galaxy;
SerachResult.Clear();
ResultList.ClearOptions();
for (int i = 0; i < starSearchers.Count; i++)
{
StarSearcher starSearcher = starSearchers[i];
List<StarData> list = starSearcher.Search();
if (list.Count == 0)
{
SearchNext = true;
break;
}
SerachResult.AddRange(list);
}
if (SearchNext)
{
return;
}
foreach (StarData item in SerachResult)
{
ResultList.options.Add(new OptionData(item.displayName));
}
ResultList.value = -1;
ResultList.RefreshShownValue();
}
private void OnSetBase()
{
//IL_000d: Unknown result type (might be due to invalid IL or missing references)
//IL_0013: Invalid comparison between Unknown and I4
if (GameMain.localPlanet != null && (int)GameMain.localPlanet.type != 5)
{
for (int i = 0; i < GameMain.localPlanet.factory.vegePool.Length; i++)
{
GameMain.localPlanet.factory.RemoveVegeWithComponents(i);
}
byte[] modData = GameMain.localPlanet.modData;
for (int j = 0; j < modData.Length * 2; j++)
{
GameMain.localPlanet.AddHeightMapModLevel(j, 3);
}
if (GameMain.localPlanet.UpdateDirtyMeshes())
{
GameMain.localPlanet.factory.RenderLocalPlanetHeightmap();
}
if (GameMain.localPlanet.factory.platformSystem.reformData == null)
{
GameMain.localPlanet.factory.platformSystem.InitReformData();
}
byte[] reformData = GameMain.localPlanet.factory.platformSystem.reformData;
for (int k = 0; k < reformData.Length; k++)
{
GameMain.localPlanet.factory.platformSystem.SetReformType(k, BaseSkinDropDown.value);
GameMain.localPlanet.factory.platformSystem.SetReformColor(k, 0);
}
}
}
public static int[] veinSpotsSketch(PlanetData planet)
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002a: Expected O, but got Unknown
//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
//IL_00aa: Unknown result type (might be due to invalid IL or missing references)
//IL_00b2: Unknown result type (might be due to invalid IL or missing references)
//IL_00b7: Unknown result type (might be due to invalid IL or missing references)
//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
//IL_00bc: Invalid comparison between Unknown and I4
//IL_0169: Unknown result type (might be due to invalid IL or missing references)
//IL_016c: Invalid comparison between Unknown and I4
//IL_00c8: Unknown result type (might be due to invalid IL or missing references)
//IL_00cb: Invalid comparison between Unknown and I4
//IL_0182: Unknown result type (might be due to invalid IL or missing references)
//IL_0185: Invalid comparison between Unknown and I4
//IL_00e1: Unknown result type (might be due to invalid IL or missing references)
//IL_00e4: Invalid comparison between Unknown and I4
//IL_0279: Unknown result type (might be due to invalid IL or missing references)
//IL_027c: Invalid comparison between Unknown and I4
//IL_00f7: Unknown result type (might be due to invalid IL or missing references)
//IL_00fa: Invalid comparison between Unknown and I4
//IL_02d8: Unknown result type (might be due to invalid IL or missing references)
//IL_02db: Invalid comparison between Unknown and I4
//IL_010d: Unknown result type (might be due to invalid IL or missing references)
//IL_0110: Invalid comparison between Unknown and I4
//IL_0123: Unknown result type (might be due to invalid IL or missing references)
//IL_0126: Invalid comparison between Unknown and I4
//IL_0139: Unknown result type (might be due to invalid IL or missing references)
//IL_013c: Invalid comparison between Unknown and I4
//IL_014f: Unknown result type (might be due to invalid IL or missing references)
//IL_0152: Invalid comparison between Unknown and I4
ThemeProto val = ((ProtoSet<ThemeProto>)(object)LDB.themes).Select(planet.theme);
if (val != null)
{
DotNet35Random val2 = new DotNet35Random(planet.seed);
val2.Next();
val2.Next();
val2.Next();
val2.Next();
val2.Next();
val2.Next();
VeinProto[] veinProtos = PlanetModelingManager.veinProtos;
int[] array = new int[veinProtos.Length];
if (val.VeinSpot != null)
{
Array.Copy(val.VeinSpot, 0, array, 1, Math.Min(val.VeinSpot.Length, array.Length - 1));
}
float num = 1f;
ESpectrType spectr = planet.star.spectr;
EStarType type = planet.star.type;
if ((int)type == 0)
{
if ((int)spectr == 0)
{
num = 2.5f;
}
else if ((int)spectr == 1)
{
num = 1f;
}
else if ((int)spectr == 2)
{
num = 0.7f;
}
else if ((int)spectr == 3)
{
num = 0.6f;
}
else if ((int)spectr == 4)
{
num = 1f;
}
else if ((int)spectr == 5)
{
num = 0.4f;
}
else if ((int)spectr == 6)
{
num = 1.6f;
}
}
else if ((int)type == 1)
{
num = 2.5f;
}
else if ((int)type == 2)
{
num = 3.5f;
array[9] += 2;
for (int i = 1; i < 12; i++)
{
if (!(val2.NextDouble() < 0.44999998807907104))
{
break;
}
array[9]++;
}
array[10] += 2;
for (int j = 1; j < 12; j++)
{
if (!(val2.NextDouble() < 0.44999998807907104))
{
break;
}
array[10]++;
}
array[12]++;
for (int k = 1; k < 12; k++)
{
if (!(val2.NextDouble() < 0.5))
{
break;
}
array[12]++;
}
}
else if ((int)type == 3)
{
num = 4.5f;
array[14]++;
for (int l = 1; l < 12; l++)
{
if (!(val2.NextDouble() < 0.6499999761581421))
{
break;
}
array[14]++;
}
}
else if ((int)type == 4)
{
num = 5f;
array[14]++;
for (int m = 1; m < 12; m++)
{
if (!(val2.NextDouble() < 0.6499999761581421))
{
break;
}
array[14]++;
}
}
for (int n = 0; n < val.RareVeins.Length; n++)
{
int num2 = val.RareVeins[n];
float num3 = ((planet.star.index == 0) ? val.RareSettings[n * 4] : val.RareSettings[n * 4 + 1]);
num3 = 1f - Mathf.Pow(1f - num3, num);
if (!(val2.NextDouble() < (double)num3))
{
continue;
}
array[num2]++;
for (int num4 = 1; num4 < 12; num4++)
{
if (!(val2.NextDouble() < (double)val.RareSettings[n * 4 + 2]))
{
break;
}
array[num2]++;
}
}
return array;
}
return null;
}
private IEnumerator wait(object target)
{
yield return (object)new WaitForEndOfFrame();
if (target is PlanetData)
{
GameMain.mainPlayer.uPosition = ((PlanetData)target).uPosition + VectorLF3.unit_z * (double)((PlanetData)target).realRadius;
}
else if (target is StarData)
{
GameMain.mainPlayer.uPosition = ((StarData)target).uPosition + VectorLF3.unit_z * (double)((StarData)target).physicsRadius;
loadingStarData = true;
}
else if (target is VectorLF3)
{
GameMain.mainPlayer.uPosition = (VectorLF3)target;
}
else if (target is string && (string)target == "resize")
{
GameMain.mainPlayer.transform.localScale = Vector3.one;
}
if (!(target is string) || (string)target != "resize")
{
((MonoBehaviour)this).StartCoroutine(wait("resize"));
}
}
[HarmonyPrefix]
[HarmonyPatch(typeof(UIStarmap), "OnStarClick")]
private static bool OnStarClick(UIStarmapStar star)
{
if (self.showGUI)
{
self.StarList.value = star.star.index;
self.StarList.RefreshShownValue();
}
return true;
}
[HarmonyPrefix]
[HarmonyPatch(typeof(UIStarmap), "OnPlanetClick")]
private static bool OnPlanetClick(UIStarmapPlanet planet)
{
if (self.showGUI)
{
self.StarList.value = planet.planet.star.index;
self.StarList.RefreshShownValue();
self.PlanetList.value = planet.planet.index + 1;
self.PlanetList.RefreshShownValue();
}
return true;
}
[HarmonyPrefix]
[HarmonyPatch(typeof(GalaxyData), "Free")]
private static bool Free(GalaxyData __instance)
{
StarData[] stars = __instance.stars;
foreach (StarData val in stars)
{
PlanetData[] planets = val.planets;
foreach (PlanetData val2 in planets)
{
if (val2.loading)
{
Debug.Log((object)"由StarMapTools阻止的GalaxyData.Free()");
return false;
}
}
}
return true;
}
[HarmonyPostfix]
[HarmonyPatch(typeof(UIMinerWindow), "_OnUpdate")]
public static void _OnUpdate(UIMinerWindow __instance)
{
//IL_0012: Unknown result type (might be due to invalid IL or missing references)
//IL_0017: Unknown result type (might be due to invalid IL or missing references)
//IL_0018: Unknown result type (might be due to invalid IL or missing references)
//IL_0019: Unknown result type (might be due to invalid IL or missing references)
//IL_001f: Invalid comparison between Unknown and I4
//IL_0021: Unknown result type (might be due to invalid IL or missing references)
//IL_0043: Unknown result type (might be due to invalid IL or missing references)
//IL_004e: Unknown result type (might be due to invalid IL or missing references)
//IL_0054: Unknown result type (might be due to invalid IL or missing references)
//IL_007f: Unknown result type (might be due to invalid IL or missing references)
//IL_0092: Unknown result type (might be due to invalid IL or missing references)
//IL_009a: Unknown result type (might be due to invalid IL or missing references)
//IL_00e2: Unknown result type (might be due to invalid IL or missing references)
//IL_00e8: Invalid comparison between Unknown and I4
MinerComponent val = __instance.factorySystem.minerPool[__instance.minerId];
if ((int)val.type != 2 || val.veinCount <= 0)
{
return;
}
VeinData[] veinPool = __instance.factory.veinPool;
int num = ((val.veinCount != 0) ? val.veins[val.currentVeinIndex] : 0);
int productId = veinPool[num].productId;
ItemProto val2 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(productId);
float num2 = 60f * (float)val.speed * GameMain.history.miningSpeedScale * (float)val.veinCount / (float)val.period;
Text value = Traverse.Create((object)__instance).Field("coverText").GetValue<Text>();
string text = "";
foreach (RecipeProto make in val2.makes)
{
if ((int)make.Type == 1)
{
text = text + " 可供" + ((double)(num2 / (float)make.ItemCounts[0]) / ((double)(float)make.ResultCounts[0] / ((double)make.TimeSpend / 60.0))).ToString("0.0") + "个熔炉产" + LDB.ItemName(make.Results[0]);
}
}
if (text != "")
{
Text val3 = value;
val3.text = val3.text + "\n" + text;
}
}
[HarmonyPostfix]
[HarmonyPatch(typeof(UIStarmapStar), "OnStarDisplayNameChange")]
public static void OnStarDisplayNameChange()
{
//IL_006c: Unknown result type (might be due to invalid IL or missing references)
//IL_0076: Expected O, but got Unknown
if (self.galaxy != null)
{
self.StarList.ClearOptions();
self.ResultList.ClearOptions();
StarData[] stars = self.galaxy.stars;
foreach (StarData val in stars)
{
self.StarList.options.Add(new OptionData(val.displayName));
}
self.StarList.value = -1;
self.StarList.RefreshShownValue();
}
}
}
public static class StarMapToolsTranslate
{
private static Dictionary<string, string> TranslateDict = new Dictionary<string, string>();
public static string getTranslate(this string s)
{
if (StarMapTools.IsEnglish && TranslateDict.ContainsKey(s))
{
return TranslateDict[s];
}
return s;
}
public static void regAllTranslate()
{
TranslateDict.Clear();
TranslateDict.Add("开关GUI的按键", "Open and Close GUI Key");
TranslateDict.Add("传送按键", "TP Key");
TranslateDict.Add("新游戏模式", "NEW GAME");
TranslateDict.Add("读档模式", "IN GAME");
TranslateDict.Add("等待数据", "WAIT DATA");
TranslateDict.Add("加载矿物数量", "Load Vein Amount");
TranslateDict.Add("连续搜索", "Search Next Seed");
TranslateDict.Add("最小光度", "Minimum luminosity");
TranslateDict.Add("最远距离", "Maximum light year");
TranslateDict.Add("搜索", "Search");
TranslateDict.Add("恒星", "Star");
TranslateDict.Add("恒星类型:", "Star Type:");
TranslateDict.Add("星球数量:", "Planet Num:");
TranslateDict.Add("星系的信息:", " Info:");
TranslateDict.Add("光度:", "Luminosity:");
TranslateDict.Add("距离初始星系恒星:", "Distance from the beginning:");
TranslateDict.Add("光年", "Light years");
TranslateDict.Add("星球列表:", "Planet List:");
TranslateDict.Add("的信息:", " Info:");
TranslateDict.Add("类型:", "Type:");
TranslateDict.Add("词条:", "Singularity:");
TranslateDict.Add("海洋类型:", "Ocean Type:");
TranslateDict.Add("未知", " Unknown:");
TranslateDict.Add("熔岩", " Lava");
TranslateDict.Add("矿物信息:", "VeinList:");
TranslateDict.Add("无", "None");
TranslateDict.Add("有", "Exist");
TranslateDict.Add("正在加载", "Loading");
TranslateDict.Add("未加载,靠近后显示", "Not loaded, display when approaching");
}
}
internal class StarSearcher
{
public List<string> StarTypes = new List<string>();
public List<string> PlanteTypes = new List<string>();
public List<string> SingularityTypes = new List<string>();
public List<string> VeinTypes = new List<string>();
public float dysonLumino;
public float distance;
public static GalaxyData galaxyData { get; set; }
public static List<string> AllStarTypes => new List<string>
{
Localization.Translate("红巨星"),
Localization.Translate("黄巨星"),
Localization.Translate("白巨星"),
Localization.Translate("蓝巨星"),
"M" + Localization.Translate("型恒星"),
"K" + Localization.Translate("型恒星"),
"G" + Localization.Translate("型恒星"),
"F" + Localization.Translate("型恒星"),
"A" + Localization.Translate("型恒星"),
"B" + Localization.Translate("型恒星"),
"O" + Localization.Translate("型恒星"),
Localization.Translate("中子星"),
Localization.Translate("白矮星"),
Localization.Translate("黑洞")
};
public static List<string> AllPlanteTypes
{
get
{
List<string> list = new List<string>();
ThemeProto[] dataArray = ((ProtoSet<ThemeProto>)(object)LDB.themes).dataArray;
foreach (ThemeProto val in dataArray)
{
if (!list.Contains(val.displayName))
{
list.Add(val.displayName);
}
}
return list;
}
}
public static List<string> AllSingularityTypes => new List<string>
{
Localization.Translate("卫星"),
Localization.Translate("潮汐锁定永昼永夜"),
Localization.Translate("潮汐锁定1:2"),
Localization.Translate("潮汐锁定1:4"),
Localization.Translate("横躺自转"),
Localization.Translate("反向自转"),
Localization.Translate("多卫星")
};
public static List<string> AllVeinTypes
{
get
{
List<string> list = new List<string>();
VeinProto[] dataArray = ((ProtoSet<VeinProto>)(object)LDB.veins).dataArray;
foreach (VeinProto val in dataArray)
{
list.Add(((Proto)val).name);
}
return list;
}
}
public List<StarData> Search()
{
//IL_005b: Unknown result type (might be due to invalid IL or missing references)
//IL_006b: Unknown result type (might be due to invalid IL or missing references)
//IL_0070: Unknown result type (might be due to invalid IL or missing references)
//IL_0075: Unknown result type (might be due to invalid IL or missing references)
List<StarData> list = new List<StarData>();
if (galaxyData != null)
{
StarData[] stars = galaxyData.stars;
foreach (StarData val in stars)
{
if (!StarTypes.Contains(val.typeString) || !(val.dysonLumino >= dysonLumino))
{
continue;
}
VectorLF3 val2 = val.uPosition - galaxyData.StarById(1).uPosition;
if (!(((VectorLF3)(ref val2)).magnitude / 2400000.0 <= (double)distance))
{
continue;
}
List<string> TempPlanteTypes = new List<string>();
List<string> TempSingularityTypes = new List<string>();
List<string> TempVeinTypes = new List<string>();
PlanetData[] planets = val.planets;
foreach (PlanetData val3 in planets)
{
TempPlanteTypes.Add(val3.typeString);
TempSingularityTypes.Add(val3.singularityString);
}
int[] array = new int[30];
PlanetData[] planets2 = val.planets;
foreach (PlanetData planet in planets2)
{
int[] array2 = StarMapTools.veinSpotsSketch(planet);
for (int l = 0; l < ((ProtoTable)LDB.veins).Length; l++)
{
if (array2 != null)
{
array[l + 1] += array2[l + 1];
}
}
}
for (int m = 0; m < ((ProtoTable)LDB.veins).Length; m++)
{
if (array[m + 1] > 0)
{
TempVeinTypes.Add(((Proto)((ProtoSet<VeinProto>)(object)LDB.veins).dataArray[m]).name);
}
}
if (PlanteTypes.TrueForAll(delegate(string ePlanetType)
{
string[] array4 = ePlanetType.Split(new char[1] { '*' });
int.TryParse(array4[1], out var result2);
int num2 = 0;
foreach (string item in TempPlanteTypes)
{
if (item == array4[0])
{
num2++;
}
}
return num2 >= result2;
}) && SingularityTypes.TrueForAll(delegate(string ePlanetSingularity)
{
string[] array3 = ePlanetSingularity.Split(new char[1] { '*' });
int.TryParse(array3[1], out var result);
int num = 0;
foreach (string item2 in TempSingularityTypes)
{
if (item2 == array3[0])
{
num++;
}
}
return num >= result;
}) && VeinTypes.TrueForAll((string eVeinType) => TempVeinTypes.Contains(eVeinType)))
{
list.Add(val);
}
}
return list;
}
return list;
}
public void Clear()
{
StarTypes.Clear();
PlanteTypes.Clear();
SingularityTypes.Clear();
VeinTypes.Clear();
dysonLumino = 0f;
distance = 1000f;
}
}