using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Reflection;
using System.Reflection.Emit;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using BepInEx;
using BepInEx.Configuration;
using BepInEx.Logging;
using HarmonyLib;
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("CruiseAssist")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("CruiseAssist")]
[assembly: AssemblyCopyright("Copyright © 2021")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("9cdb5e0f-fb97-46ff-a4fb-a9a400443fd3")]
[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 tanu.CruiseAssist;
internal abstract class ConfigManager
{
public enum Step
{
AWAKE,
GAME_MAIN_BEGIN,
UNIVERSE_GEN_CREATE_GALAXY,
STATE,
CHANGE_SEED
}
private static ConfigManager instance;
private static Dictionary<ConfigDefinition, string> orphanedEntries;
public static ConfigFile Config { get; private set; }
protected ConfigManager(ConfigFile config)
{
instance = this;
Config = config;
Config.SaveOnConfigSet = false;
}
public static void CheckConfig(Step step)
{
instance.CheckConfigImplements(step);
}
protected abstract void CheckConfigImplements(Step step);
public static ConfigEntry<T> Bind<T>(ConfigDefinition configDefinition, T defaultValue, ConfigDescription configDescription = null)
{
return Config.Bind<T>(configDefinition, defaultValue, configDescription);
}
public static ConfigEntry<T> Bind<T>(string section, string key, T defaultValue, ConfigDescription configDescription = null)
{
return Config.Bind<T>(section, key, defaultValue, configDescription);
}
public static ConfigEntry<T> Bind<T>(string section, string key, T defaultValue, string description)
{
return Config.Bind<T>(section, key, defaultValue, description);
}
public static ConfigEntry<T> GetEntry<T>(ConfigDefinition configDefinition)
{
try
{
return (ConfigEntry<T>)(object)Config[configDefinition];
}
catch (KeyNotFoundException ex)
{
LogManager.LogError($"{ex.GetType()}: configDefinition={configDefinition}");
throw;
}
}
public static ConfigEntry<T> GetEntry<T>(string section, string key)
{
//IL_0003: Unknown result type (might be due to invalid IL or missing references)
//IL_000d: Expected O, but got Unknown
return GetEntry<T>(new ConfigDefinition(section, key));
}
public static T GetValue<T>(ConfigDefinition configDefinition)
{
return GetEntry<T>(configDefinition).Value;
}
public static T GetValue<T>(string section, string key)
{
return GetEntry<T>(section, key).Value;
}
public static bool ContainsKey(ConfigDefinition configDefinition)
{
return Config.ContainsKey(configDefinition);
}
public static bool ContainsKey(string section, string key)
{
//IL_0008: Unknown result type (might be due to invalid IL or missing references)
//IL_0012: Expected O, but got Unknown
return Config.ContainsKey(new ConfigDefinition(section, key));
}
public static bool UpdateEntry<T>(string section, string key, T value) where T : IComparable
{
ConfigEntry<T> entry = GetEntry<T>(section, key);
if (entry.Value.CompareTo(value) == 0)
{
return false;
}
entry.Value = value;
return true;
}
public static bool RemoveEntry(ConfigDefinition key)
{
return Config.Remove(key);
}
public static Dictionary<ConfigDefinition, string> GetOrphanedEntries()
{
if (orphanedEntries == null)
{
orphanedEntries = Traverse.Create((object)Config).Property<Dictionary<ConfigDefinition, string>>("OrphanedEntries", (object[])null).Value;
}
return orphanedEntries;
}
public static void Migration<T>(string newSection, string newKey, T defaultValue, string oldSection, string oldKey)
{
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
//IL_0010: Expected O, but got Unknown
GetOrphanedEntries();
ConfigDefinition key = new ConfigDefinition(oldSection, oldKey);
if (orphanedEntries.TryGetValue(key, out var value))
{
((ConfigEntryBase)Bind(newSection, newKey, defaultValue)).SetSerializedValue(value);
orphanedEntries.Remove(key);
LogManager.LogInfo("migration " + oldSection + "." + oldKey + "(" + value + ") => " + newSection + "." + newKey);
}
}
public static void Save(bool clearOrphanedEntries = false)
{
if (clearOrphanedEntries)
{
GetOrphanedEntries().Clear();
}
Config.Save();
LogManager.LogInfo("save config.");
}
public static void Clear()
{
Config.Clear();
}
public static void Reload()
{
Config.Reload();
}
}
internal class CruiseAssistConfigManager : ConfigManager
{
public CruiseAssistConfigManager(ConfigFile Config)
: base(Config)
{
}
protected override void CheckConfigImplements(Step step)
{
bool flag = false;
if (step == Step.AWAKE)
{
ConfigEntry<string> val = ConfigManager.Bind("Base", "ModVersion", "0.1.37", "Don't change.");
val.Value = "0.0.37";
ConfigManager.Migration("State", "MainWindow0Left", 100, "State", "InfoWindowLeft");
ConfigManager.Migration("State", "MainWindow0Top", 100, "State", "InfoWindowTop");
ConfigManager.Migration("State", "MainWindow0Left", 100, "State", "MainWindowLeft");
ConfigManager.Migration("State", "MainWindow0Top", 100, "State", "MainWindowTop");
ConfigManager.Migration("State", "StarListWindow0Left", 100, "State", "StarListWindowLeft");
ConfigManager.Migration("State", "StarListWindow0Top", 100, "State", "StarListWindowTop");
ConfigManager.Migration("Setting", "CloseStarListWhenSetTargetPlanet", defaultValue: false, "Setting", "HideStarListWhenSetTargetPlanet");
flag = true;
}
if (step == Step.AWAKE || step == Step.GAME_MAIN_BEGIN)
{
CruiseAssistDebugUI.Show = ConfigManager.Bind("Debug", "DebugWindowShow", defaultValue: false).Value;
CruiseAssistPlugin.Enable = ConfigManager.Bind("Setting", "Enable", defaultValue: true).Value;
CruiseAssistPlugin.Conf.MarkVisitedFlag = ConfigManager.Bind("Setting", "MarkVisited", defaultValue: true).Value;
CruiseAssistPlugin.Conf.SelectFocusFlag = ConfigManager.Bind("Setting", "SelectFocus", defaultValue: true).Value;
CruiseAssistPlugin.Conf.HideDuplicateHistoryFlag = ConfigManager.Bind("Setting", "HideDuplicateHistory", defaultValue: true).Value;
CruiseAssistPlugin.Conf.AutoDisableLockCursorFlag = ConfigManager.Bind("Setting", "AutoDisableLockCursor", defaultValue: false).Value;
CruiseAssistPlugin.Conf.ShowMainWindowWhenTargetSelectedEvenNotSailModeFlag = ConfigManager.Bind("Setting", "ShowMainWindowWhenTargetSelectedEvenNotSailMode", defaultValue: true).Value;
CruiseAssistPlugin.Conf.CloseStarListWhenSetTargetPlanetFlag = ConfigManager.Bind("Setting", "CloseStarListWhenSetTargetPlanet", defaultValue: false).Value;
CruiseAssistPlugin.Conf.HideBottomCloseButtonFlag = ConfigManager.Bind("Setting", "HideBottomCloseButton", defaultValue: true).Value;
CruiseAssistMainUI.Scale = ConfigManager.Bind("Setting", "UIScale", 150).Value;
string value = ConfigManager.Bind("Setting", "MainWindowViewMode", CruiseAssistMainUIViewMode.FULL.ToString()).Value;
EnumUtils.TryParse<CruiseAssistMainUIViewMode>(value, out CruiseAssistMainUI.ViewMode);
for (int i = 0; i < 2; i++)
{
((Rect)(ref CruiseAssistMainUI.Rect[i])).x = ConfigManager.Bind("State", $"MainWindow{i}Left", 100).Value;
((Rect)(ref CruiseAssistMainUI.Rect[i])).y = ConfigManager.Bind("State", $"MainWindow{i}Top", 100).Value;
((Rect)(ref CruiseAssistStarListUI.Rect[i])).x = ConfigManager.Bind("State", $"StarListWindow{i}Left", 100).Value;
((Rect)(ref CruiseAssistStarListUI.Rect[i])).y = ConfigManager.Bind("State", $"StarListWindow{i}Top", 100).Value;
((Rect)(ref CruiseAssistConfigUI.Rect[i])).x = ConfigManager.Bind("State", $"ConfigWindow{i}Left", 100).Value;
((Rect)(ref CruiseAssistConfigUI.Rect[i])).y = ConfigManager.Bind("State", $"ConfigWindow{i}Top", 100).Value;
}
CruiseAssistStarListUI.ListSelected = ConfigManager.Bind("State", "StarListWindowListSelected", 0).Value;
((Rect)(ref CruiseAssistDebugUI.Rect)).x = ConfigManager.Bind("State", "DebugWindowLeft", 100).Value;
((Rect)(ref CruiseAssistDebugUI.Rect)).y = ConfigManager.Bind("State", "DebugWindowTop", 100).Value;
}
if (step == Step.AWAKE || step == Step.GAME_MAIN_BEGIN || step == Step.STATE || step == Step.CHANGE_SEED)
{
if (DSPGame.IsMenuDemo || GameMain.galaxy == null)
{
if (CruiseAssistPlugin.Seed != -1)
{
CruiseAssistPlugin.Seed = -1;
CruiseAssistPlugin.History = new List<int>();
CruiseAssistPlugin.Bookmark = new List<int>();
LogManager.LogInfo("clear seed.");
}
}
else if (CruiseAssistPlugin.Seed != GameMain.galaxy.seed)
{
CruiseAssistPlugin.Seed = GameMain.galaxy.seed;
CruiseAssistPlugin.History = ListUtils.ParseToIntList(ConfigManager.Bind("Save", $"History_{CruiseAssistPlugin.Seed}", "").Value);
CruiseAssistPlugin.Bookmark = ListUtils.ParseToIntList(ConfigManager.Bind("Save", $"Bookmark_{CruiseAssistPlugin.Seed}", "").Value);
LogManager.LogInfo($"change seed {CruiseAssistPlugin.Seed}.");
}
}
if (step == Step.STATE)
{
LogManager.LogInfo("check state.");
flag |= ConfigManager.UpdateEntry("Setting", "Enable", CruiseAssistPlugin.Enable);
flag |= ConfigManager.UpdateEntry("Setting", "MarkVisited", CruiseAssistPlugin.Conf.MarkVisitedFlag);
flag |= ConfigManager.UpdateEntry("Setting", "SelectFocus", CruiseAssistPlugin.Conf.SelectFocusFlag);
flag |= ConfigManager.UpdateEntry("Setting", "HideDuplicateHistory", CruiseAssistPlugin.Conf.HideDuplicateHistoryFlag);
flag |= ConfigManager.UpdateEntry("Setting", "AutoDisableLockCursor", CruiseAssistPlugin.Conf.AutoDisableLockCursorFlag);
flag |= ConfigManager.UpdateEntry("Setting", "ShowMainWindowWhenTargetSelectedEvenNotSailMode", CruiseAssistPlugin.Conf.ShowMainWindowWhenTargetSelectedEvenNotSailModeFlag);
flag |= ConfigManager.UpdateEntry("Setting", "CloseStarListWhenSetTargetPlanet", CruiseAssistPlugin.Conf.CloseStarListWhenSetTargetPlanetFlag);
flag |= ConfigManager.UpdateEntry("Setting", "HideBottomCloseButton", CruiseAssistPlugin.Conf.HideBottomCloseButtonFlag);
flag |= ConfigManager.UpdateEntry("Setting", "UIScale", (int)CruiseAssistMainUI.Scale);
flag |= ConfigManager.UpdateEntry("Setting", "MainWindowViewMode", CruiseAssistMainUI.ViewMode.ToString());
for (int j = 0; j < 2; j++)
{
flag |= ConfigManager.UpdateEntry("State", $"MainWindow{j}Left", (int)((Rect)(ref CruiseAssistMainUI.Rect[j])).x);
flag |= ConfigManager.UpdateEntry("State", $"MainWindow{j}Top", (int)((Rect)(ref CruiseAssistMainUI.Rect[j])).y);
flag |= ConfigManager.UpdateEntry("State", $"StarListWindow{j}Left", (int)((Rect)(ref CruiseAssistStarListUI.Rect[j])).x);
flag |= ConfigManager.UpdateEntry("State", $"StarListWindow{j}Top", (int)((Rect)(ref CruiseAssistStarListUI.Rect[j])).y);
flag |= ConfigManager.UpdateEntry("State", $"ConfigWindow{j}Left", (int)((Rect)(ref CruiseAssistConfigUI.Rect[j])).x);
flag |= ConfigManager.UpdateEntry("State", $"ConfigWindow{j}Top", (int)((Rect)(ref CruiseAssistConfigUI.Rect[j])).y);
}
flag |= ConfigManager.UpdateEntry("State", "StarListWindowListSelected", CruiseAssistStarListUI.ListSelected);
flag |= ConfigManager.UpdateEntry("State", "DebugWindowLeft", (int)((Rect)(ref CruiseAssistDebugUI.Rect)).x);
flag |= ConfigManager.UpdateEntry("State", "DebugWindowTop", (int)((Rect)(ref CruiseAssistDebugUI.Rect)).y);
if (CruiseAssistPlugin.Seed != -1)
{
flag |= ConfigManager.UpdateEntry("Save", $"History_{CruiseAssistPlugin.Seed}", ListUtils.ToString(CruiseAssistPlugin.History));
flag |= ConfigManager.UpdateEntry("Save", $"Bookmark_{CruiseAssistPlugin.Seed}", ListUtils.ToString(CruiseAssistPlugin.Bookmark));
}
CruiseAssistMainUI.NextCheckGameTick = long.MaxValue;
}
if (flag)
{
ConfigManager.Save();
}
}
}
public class CruiseAssistConfigUI
{
private static int wIdx = 0;
public const float WindowWidth = 400f;
public const float WindowHeight = 400f;
public static bool[] Show = new bool[2];
public static Rect[] Rect = (Rect[])(object)new Rect[2]
{
new Rect(0f, 0f, 400f, 400f),
new Rect(0f, 0f, 400f, 400f)
};
private static float[] lastCheckWindowLeft = new float[2]
{
float.MinValue,
float.MinValue
};
private static float[] lastCheckWindowTop = new float[2]
{
float.MinValue,
float.MinValue
};
public static float TempScale;
public static void OnGUI()
{
//IL_0024: 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_0049: Expected O, but got Unknown
//IL_0044: Unknown result type (might be due to invalid IL or missing references)
//IL_0049: Unknown result type (might be due to invalid IL or missing references)
wIdx = CruiseAssistMainUI.wIdx;
Rect[wIdx] = GUILayout.Window(99030293, Rect[wIdx], new WindowFunction(WindowFunction), "CruiseAssist - Config", CruiseAssistMainUI.WindowStyle, Array.Empty<GUILayoutOption>());
float num = CruiseAssistMainUI.Scale / 100f;
if ((float)Screen.width / num < ((Rect)(ref Rect[wIdx])).xMax)
{
((Rect)(ref Rect[wIdx])).x = (float)Screen.width / num - ((Rect)(ref Rect[wIdx])).width;
}
if (((Rect)(ref Rect[wIdx])).x < 0f)
{
((Rect)(ref Rect[wIdx])).x = 0f;
}
if ((float)Screen.height / num < ((Rect)(ref Rect[wIdx])).yMax)
{
((Rect)(ref Rect[wIdx])).y = (float)Screen.height / num - ((Rect)(ref Rect[wIdx])).height;
}
if (((Rect)(ref Rect[wIdx])).y < 0f)
{
((Rect)(ref Rect[wIdx])).y = 0f;
}
if (lastCheckWindowLeft[wIdx] != float.MinValue && (((Rect)(ref Rect[wIdx])).x != lastCheckWindowLeft[wIdx] || ((Rect)(ref Rect[wIdx])).y != lastCheckWindowTop[wIdx]))
{
CruiseAssistMainUI.NextCheckGameTick = GameMain.gameTick + 300;
}
lastCheckWindowLeft[wIdx] = ((Rect)(ref Rect[wIdx])).x;
lastCheckWindowTop[wIdx] = ((Rect)(ref Rect[wIdx])).y;
}
public static void WindowFunction(int windowId)
{
//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)
//IL_0037: 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_004c: Unknown result type (might be due to invalid IL or missing references)
//IL_005e: Expected O, but got Unknown
//IL_0064: Unknown result type (might be due to invalid IL or missing references)
//IL_006a: Expected O, but got Unknown
//IL_00d9: Unknown result type (might be due to invalid IL or missing references)
//IL_015f: Unknown result type (might be due to invalid IL or missing references)
//IL_0164: Unknown result type (might be due to invalid IL or missing references)
//IL_0170: Unknown result type (might be due to invalid IL or missing references)
//IL_017c: Unknown result type (might be due to invalid IL or missing references)
//IL_0185: Unknown result type (might be due to invalid IL or missing references)
//IL_0197: Expected O, but got Unknown
//IL_019d: Unknown result type (might be due to invalid IL or missing references)
//IL_01a4: Expected O, but got Unknown
//IL_01ce: Unknown result type (might be due to invalid IL or missing references)
//IL_01d5: Expected O, but got Unknown
//IL_01db: Unknown result type (might be due to invalid IL or missing references)
//IL_01e5: Expected O, but got Unknown
//IL_0222: Unknown result type (might be due to invalid IL or missing references)
//IL_0229: Expected O, but got Unknown
//IL_0286: Unknown result type (might be due to invalid IL or missing references)
//IL_028b: Unknown result type (might be due to invalid IL or missing references)
//IL_0297: Unknown result type (might be due to invalid IL or missing references)
//IL_02a3: Unknown result type (might be due to invalid IL or missing references)
//IL_02b0: Unknown result type (might be due to invalid IL or missing references)
//IL_02c3: Expected O, but got Unknown
//IL_030b: Unknown result type (might be due to invalid IL or missing references)
//IL_0312: Expected O, but got Unknown
//IL_02d4: Unknown result type (might be due to invalid IL or missing references)
//IL_036f: Unknown result type (might be due to invalid IL or missing references)
//IL_03ce: Unknown result type (might be due to invalid IL or missing references)
//IL_042d: Unknown result type (might be due to invalid IL or missing references)
//IL_048c: Unknown result type (might be due to invalid IL or missing references)
//IL_04eb: Unknown result type (might be due to invalid IL or missing references)
//IL_054a: Unknown result type (might be due to invalid IL or missing references)
//IL_05e7: Unknown result type (might be due to invalid IL or missing references)
//IL_05ee: Expected O, but got Unknown
//IL_05a9: Unknown result type (might be due to invalid IL or missing references)
//IL_0690: Unknown result type (might be due to invalid IL or missing references)
//IL_063e: Unknown result type (might be due to invalid IL or missing references)
//IL_06b5: Unknown result type (might be due to invalid IL or missing references)
GUILayout.BeginVertical(Array.Empty<GUILayoutOption>());
GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
GUILayout.Label("Main Window Style :", new GUIStyle(GUI.skin.label)
{
fixedWidth = 120f,
fixedHeight = 20f,
fontSize = 12,
alignment = (TextAnchor)3
}, Array.Empty<GUILayoutOption>());
GUIStyle val = new GUIStyle(CruiseAssistMainUI.BaseToolbarButtonStyle);
val.fixedWidth = 80f;
val.fixedHeight = 20f;
val.fontSize = 12;
string[] array = new string[2] { "FULL", "MINI" };
int num = ((CruiseAssistMainUI.ViewMode != 0) ? 1 : 0);
GUI.changed = false;
int num2 = GUILayout.Toolbar(num, array, val, Array.Empty<GUILayoutOption>());
if (GUI.changed)
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
}
if (num2 != num)
{
switch (num2)
{
case 1:
CruiseAssistMainUI.ViewMode = CruiseAssistMainUIViewMode.MINI;
break;
case 0:
CruiseAssistMainUI.ViewMode = CruiseAssistMainUIViewMode.FULL;
break;
}
CruiseAssistMainUI.NextCheckGameTick = GameMain.gameTick + 300;
}
GUILayout.EndHorizontal();
GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
GUILayout.Label("UI Scale :", new GUIStyle(GUI.skin.label)
{
fixedWidth = 60f,
fixedHeight = 20f,
fontSize = 12,
alignment = (TextAnchor)3
}, Array.Empty<GUILayoutOption>());
GUIStyle val2 = new GUIStyle(CruiseAssistMainUI.BaseHorizontalSliderStyle);
val2.fixedWidth = 180f;
val2.margin.top = 10;
val2.alignment = (TextAnchor)3;
GUIStyle val3 = new GUIStyle(CruiseAssistMainUI.BaseHorizontalSliderThumbStyle);
val3.border = new RectOffset(1, 1, 8, 8);
TempScale = GUILayout.HorizontalSlider(TempScale, 80f, 240f, val2, val3, Array.Empty<GUILayoutOption>());
TempScale = (int)TempScale / 5 * 5;
GUIStyle val4 = new GUIStyle(GUI.skin.label);
val4.fixedWidth = 40f;
val4.fixedHeight = 20f;
val4.fontSize = 12;
val4.alignment = (TextAnchor)3;
GUILayout.Label(TempScale.ToString("0") + "%", val4, Array.Empty<GUILayoutOption>());
GUIStyle val5 = new GUIStyle(CruiseAssistMainUI.BaseButtonStyle)
{
fixedWidth = 60f,
fixedHeight = 18f
};
val5.margin.top = 6;
val5.fontSize = 12;
if (GUILayout.Button("SET", val5, Array.Empty<GUILayoutOption>()))
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
CruiseAssistMainUI.Scale = TempScale;
CruiseAssistMainUI.NextCheckGameTick = GameMain.gameTick + 300;
}
GUILayout.EndHorizontal();
GUIStyle val6 = new GUIStyle(CruiseAssistMainUI.BaseToggleStyle);
val6.fixedHeight = 20f;
val6.fontSize = 12;
val6.alignment = (TextAnchor)6;
GUI.changed = false;
CruiseAssistPlugin.Conf.MarkVisitedFlag = GUILayout.Toggle(CruiseAssistPlugin.Conf.MarkVisitedFlag, Localization.Translate("Mark the visited system and planet."), val6, Array.Empty<GUILayoutOption>());
if (GUI.changed)
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
CruiseAssistMainUI.NextCheckGameTick = GameMain.gameTick + 300;
}
GUI.changed = false;
CruiseAssistPlugin.Conf.SelectFocusFlag = GUILayout.Toggle(CruiseAssistPlugin.Conf.SelectFocusFlag, Localization.Translate("Focus when select target."), val6, Array.Empty<GUILayoutOption>());
if (GUI.changed)
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
CruiseAssistMainUI.NextCheckGameTick = GameMain.gameTick + 300;
}
GUI.changed = false;
CruiseAssistPlugin.Conf.HideDuplicateHistoryFlag = GUILayout.Toggle(CruiseAssistPlugin.Conf.HideDuplicateHistoryFlag, Localization.Translate("Hide duplicate history."), val6, Array.Empty<GUILayoutOption>());
if (GUI.changed)
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
CruiseAssistMainUI.NextCheckGameTick = GameMain.gameTick + 300;
}
GUI.changed = false;
CruiseAssistPlugin.Conf.AutoDisableLockCursorFlag = GUILayout.Toggle(CruiseAssistPlugin.Conf.AutoDisableLockCursorFlag, Localization.Translate("Disable lock cursor when starting sail mode."), val6, Array.Empty<GUILayoutOption>());
if (GUI.changed)
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
CruiseAssistMainUI.NextCheckGameTick = GameMain.gameTick + 300;
}
GUI.changed = false;
CruiseAssistPlugin.Conf.ShowMainWindowWhenTargetSelectedEvenNotSailModeFlag = GUILayout.Toggle(CruiseAssistPlugin.Conf.ShowMainWindowWhenTargetSelectedEvenNotSailModeFlag, Localization.Translate("Show main window when target selected, even not sail mode."), val6, Array.Empty<GUILayoutOption>());
if (GUI.changed)
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
CruiseAssistMainUI.NextCheckGameTick = GameMain.gameTick + 300;
}
GUI.changed = false;
CruiseAssistPlugin.Conf.CloseStarListWhenSetTargetPlanetFlag = GUILayout.Toggle(CruiseAssistPlugin.Conf.CloseStarListWhenSetTargetPlanetFlag, Localization.Translate("Close StarList when set target planet."), val6, Array.Empty<GUILayoutOption>());
if (GUI.changed)
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
CruiseAssistMainUI.NextCheckGameTick = GameMain.gameTick + 300;
}
GUI.changed = false;
CruiseAssistPlugin.Conf.HideBottomCloseButtonFlag = GUILayout.Toggle(CruiseAssistPlugin.Conf.HideBottomCloseButtonFlag, Localization.Translate("Hide bottom close button."), val6, Array.Empty<GUILayoutOption>());
if (GUI.changed)
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
CruiseAssistMainUI.NextCheckGameTick = GameMain.gameTick + 300;
}
GUILayout.FlexibleSpace();
GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
GUILayout.FlexibleSpace();
GUIStyle val7 = new GUIStyle(CruiseAssistMainUI.BaseButtonStyle);
val7.fixedWidth = 80f;
val7.fixedHeight = 20f;
val7.fontSize = 12;
if (!CruiseAssistPlugin.Conf.HideBottomCloseButtonFlag && GUILayout.Button("Close", val7, Array.Empty<GUILayoutOption>()))
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
Show[wIdx] = false;
}
GUILayout.EndHorizontal();
GUILayout.EndVertical();
if (GUI.Button(new Rect(((Rect)(ref Rect[wIdx])).width - 16f, 1f, 16f, 16f), "", CruiseAssistMainUI.CloseButtonStyle))
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
Show[wIdx] = false;
}
GUI.DragWindow();
}
}
public class CruiseAssistDebugUI
{
public static bool Show = false;
public static Rect Rect = new Rect(0f, 0f, 400f, 400f);
private static float lastCheckWindowLeft = float.MinValue;
private static float lastCheckWindowTop = float.MinValue;
private static Vector2 scrollPos = Vector2.zero;
public static void OnGUI()
{
//IL_000b: Unknown result type (might be due to invalid IL or missing references)
//IL_0011: Expected O, but got Unknown
//IL_001f: 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)
//IL_0040: Expected O, but got Unknown
//IL_003b: Unknown result type (might be due to invalid IL or missing references)
//IL_0040: Unknown result type (might be due to invalid IL or missing references)
GUIStyle val = new GUIStyle(GUI.skin.window);
val.fontSize = 11;
Rect = GUILayout.Window(99030294, Rect, new WindowFunction(WindowFunction), "CruiseAssist - Debug", val, Array.Empty<GUILayoutOption>());
float num = CruiseAssistMainUI.Scale / 100f;
if ((float)Screen.width < ((Rect)(ref Rect)).xMax)
{
((Rect)(ref Rect)).x = (float)Screen.width - ((Rect)(ref Rect)).width;
}
if (((Rect)(ref Rect)).x < 0f)
{
((Rect)(ref Rect)).x = 0f;
}
if ((float)Screen.height < ((Rect)(ref Rect)).yMax)
{
((Rect)(ref Rect)).y = (float)Screen.height - ((Rect)(ref Rect)).height;
}
if (((Rect)(ref Rect)).y < 0f)
{
((Rect)(ref Rect)).y = 0f;
}
if (lastCheckWindowLeft != float.MinValue && (((Rect)(ref Rect)).x != lastCheckWindowLeft || ((Rect)(ref Rect)).y != lastCheckWindowTop))
{
CruiseAssistMainUI.NextCheckGameTick = GameMain.gameTick + 300;
}
lastCheckWindowLeft = ((Rect)(ref Rect)).x;
lastCheckWindowTop = ((Rect)(ref Rect)).y;
}
public static void WindowFunction(int windowId)
{
//IL_0016: Unknown result type (might be due to invalid IL or missing references)
//IL_001c: Expected O, but got Unknown
//IL_0025: Unknown result type (might be due to invalid IL or missing references)
//IL_002f: Unknown result type (might be due to invalid IL or missing references)
//IL_0034: Unknown result type (might be due to invalid IL or missing references)
GUILayout.BeginVertical(Array.Empty<GUILayoutOption>());
GUIStyle val = new GUIStyle(GUI.skin.label);
val.fontSize = 12;
scrollPos = GUILayout.BeginScrollView(scrollPos, Array.Empty<GUILayoutOption>());
string format = "CruiseAssistPlugin.ReticuleTargetStar.id={0}";
GUILayout.Label(string.Format(format, CruiseAssistPlugin.ReticuleTargetStar?.id), val, Array.Empty<GUILayoutOption>());
string format2 = "CruiseAssistPlugin.ReticuleTargetPlanet.id={0}";
GUILayout.Label(string.Format(format2, CruiseAssistPlugin.ReticuleTargetPlanet?.id), val, Array.Empty<GUILayoutOption>());
string format3 = "CruiseAssistPlugin.SelectTargetStar.id={0}";
GUILayout.Label(string.Format(format3, CruiseAssistPlugin.SelectTargetStar?.id), val, Array.Empty<GUILayoutOption>());
string format4 = "CruiseAssistPlugin.SelectTargetPlanet.id={0}";
GUILayout.Label(string.Format(format4, CruiseAssistPlugin.SelectTargetPlanet?.id), val, Array.Empty<GUILayoutOption>());
GUILayout.Label($"GameMain.mainPlayer.navigation.indicatorAstroId={GameMain.mainPlayer.navigation.indicatorAstroId}", val, Array.Empty<GUILayoutOption>());
GUILayout.Label($"GameMain.mainPlayer.controller.input0.w={GameMain.mainPlayer.controller.input0.w}", val, Array.Empty<GUILayoutOption>());
GUILayout.Label($"GameMain.mainPlayer.controller.input0.x={GameMain.mainPlayer.controller.input0.x}", val, Array.Empty<GUILayoutOption>());
GUILayout.Label($"GameMain.mainPlayer.controller.input0.y={GameMain.mainPlayer.controller.input0.y}", val, Array.Empty<GUILayoutOption>());
GUILayout.Label($"GameMain.mainPlayer.controller.input0.z={GameMain.mainPlayer.controller.input0.z}", val, Array.Empty<GUILayoutOption>());
GUILayout.Label($"GameMain.mainPlayer.controller.input1.w={GameMain.mainPlayer.controller.input1.w}", val, Array.Empty<GUILayoutOption>());
GUILayout.Label($"GameMain.mainPlayer.controller.input1.x={GameMain.mainPlayer.controller.input1.x}", val, Array.Empty<GUILayoutOption>());
GUILayout.Label($"GameMain.mainPlayer.controller.input1.y={GameMain.mainPlayer.controller.input1.y}", val, Array.Empty<GUILayoutOption>());
GUILayout.Label($"GameMain.mainPlayer.controller.input1.z={GameMain.mainPlayer.controller.input1.z}", val, Array.Empty<GUILayoutOption>());
GUILayout.Label($"VFInput._sailSpeedUp={VFInput._sailSpeedUp}", val, Array.Empty<GUILayoutOption>());
GUILayout.Label($"CruiseAssistPlugin.Enable={CruiseAssistPlugin.Enable}", val, Array.Empty<GUILayoutOption>());
GUILayout.Label($"CruiseAssistPlugin.History={CruiseAssistPlugin.History.Count()}", val, Array.Empty<GUILayoutOption>());
GUILayout.Label("CruiseAssistPlugin.History=" + ListUtils.ToString(CruiseAssistPlugin.History), val, Array.Empty<GUILayoutOption>());
GUILayout.Label($"GUI.skin.window.margin.top={GUI.skin.window.margin.top}", val, Array.Empty<GUILayoutOption>());
GUILayout.Label($"GUI.skin.window.border.top={GUI.skin.window.border.top}", val, Array.Empty<GUILayoutOption>());
GUILayout.Label($"GUI.skin.window.padding.top={GUI.skin.window.padding.top}", val, Array.Empty<GUILayoutOption>());
GUILayout.Label($"GUI.skin.window.overflow.top={GUI.skin.window.overflow.top}", val, Array.Empty<GUILayoutOption>());
GUILayout.EndScrollView();
GUILayout.EndVertical();
GUI.DragWindow();
}
}
public interface CruiseAssistExtensionAPI
{
void CheckConfig(string step);
void SetTargetAstroId(int astroId);
bool OperateWalk(PlayerMove_Walk __instance);
bool OperateDrift(PlayerMove_Drift __instance);
bool OperateFly(PlayerMove_Fly __instance);
bool OperateSail(PlayerMove_Sail __instance);
void SetInactive();
void CancelOperate();
void OnGUI();
}
public class CruiseAssistMainUI
{
public static float Scale = 150f;
public static int wIdx = 0;
public static CruiseAssistMainUIViewMode ViewMode = CruiseAssistMainUIViewMode.FULL;
public const float WindowWidthFull = 398f;
public const float WindowHeightFull = 150f;
public const float WindowWidthMini = 288f;
public const float WindowHeightMini = 70f;
public static Rect[] Rect = (Rect[])(object)new Rect[2]
{
new Rect(0f, 0f, 398f, 150f),
new Rect(0f, 0f, 398f, 150f)
};
private static float[] lastCheckWindowLeft = new float[2]
{
float.MinValue,
float.MinValue
};
private static float[] lastCheckWindowTop = new float[2]
{
float.MinValue,
float.MinValue
};
public static long NextCheckGameTick = long.MaxValue;
public static Texture2D WhiteBorderBackgroundTexture = null;
public static Texture2D GrayBorderBackgroundTexture = null;
public static Texture2D WhiteBorderTexture = null;
public static Texture2D GrayBorderTexture = null;
public static Texture2D BlackTexture = null;
public static Texture2D WhiteTexture = null;
public static Texture2D ToggleOnTexture = null;
public static Texture2D ToggleOffTexture = null;
public static Texture2D CloseButtonGrayBorderTexture = null;
public static Texture2D CloseButtonWhiteBorderTexture = null;
public static GUIStyle WindowStyle = null;
public static GUIStyle BaseButtonStyle = null;
public static GUIStyle BaseToolbarButtonStyle = null;
public static GUIStyle BaseVerticalScrollBarStyle = null;
public static GUIStyle BaseHorizontalSliderStyle = null;
public static GUIStyle BaseHorizontalSliderThumbStyle = null;
public static GUIStyle BaseToggleStyle = null;
public static GUIStyle BaseTextFieldStyle = null;
public static GUIStyle CloseButtonStyle = null;
private static List<GUIStyle> verticalScrollBarSkins = null;
public static void OnGUI()
{
//IL_001e: Unknown result type (might be due to invalid IL or missing references)
//IL_0028: 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
//IL_019b: Unknown result type (might be due to invalid IL or missing references)
//IL_01a5: Expected O, but got Unknown
//IL_025e: Unknown result type (might be due to invalid IL or missing references)
//IL_0268: Expected O, but got Unknown
//IL_0317: Unknown result type (might be due to invalid IL or missing references)
//IL_0321: Expected O, but got Unknown
//IL_03a3: Unknown result type (might be due to invalid IL or missing references)
//IL_03ad: Expected O, but got Unknown
//IL_0078: Unknown result type (might be due to invalid IL or missing references)
//IL_043b: Unknown result type (might be due to invalid IL or missing references)
//IL_0445: Expected O, but got Unknown
//IL_0132: Unknown result type (might be due to invalid IL or missing references)
//IL_007a: Unknown result type (might be due to invalid IL or missing references)
//IL_0085: Unknown result type (might be due to invalid IL or missing references)
//IL_0087: Unknown result type (might be due to invalid IL or missing references)
//IL_04fc: Unknown result type (might be due to invalid IL or missing references)
//IL_0506: Expected O, but got Unknown
//IL_01f5: Unknown result type (might be due to invalid IL or missing references)
//IL_0134: Unknown result type (might be due to invalid IL or missing references)
//IL_013f: Unknown result type (might be due to invalid IL or missing references)
//IL_0141: Unknown result type (might be due to invalid IL or missing references)
//IL_05e6: Unknown result type (might be due to invalid IL or missing references)
//IL_05f0: Expected O, but got Unknown
//IL_0345: Unknown result type (might be due to invalid IL or missing references)
//IL_0347: Unknown result type (might be due to invalid IL or missing references)
//IL_02af: Unknown result type (might be due to invalid IL or missing references)
//IL_01f7: Unknown result type (might be due to invalid IL or missing references)
//IL_0202: Unknown result type (might be due to invalid IL or missing references)
//IL_0204: Unknown result type (might be due to invalid IL or missing references)
//IL_0074: Unknown result type (might be due to invalid IL or missing references)
//IL_072f: Unknown result type (might be due to invalid IL or missing references)
//IL_0739: Expected O, but got Unknown
//IL_03dd: Unknown result type (might be due to invalid IL or missing references)
//IL_03df: Unknown result type (might be due to invalid IL or missing references)
//IL_02b1: Unknown result type (might be due to invalid IL or missing references)
//IL_02bc: Unknown result type (might be due to invalid IL or missing references)
//IL_02be: Unknown result type (might be due to invalid IL or missing references)
//IL_012e: Unknown result type (might be due to invalid IL or missing references)
//IL_0867: Unknown result type (might be due to invalid IL or missing references)
//IL_0871: Expected O, but got Unknown
//IL_0888: Unknown result type (might be due to invalid IL or missing references)
//IL_089d: Unknown result type (might be due to invalid IL or missing references)
//IL_08b2: Unknown result type (might be due to invalid IL or missing references)
//IL_08c7: Unknown result type (might be due to invalid IL or missing references)
//IL_08dc: Unknown result type (might be due to invalid IL or missing references)
//IL_08f1: Unknown result type (might be due to invalid IL or missing references)
//IL_0906: Unknown result type (might be due to invalid IL or missing references)
//IL_091b: 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_09ef: Unknown result type (might be due to invalid IL or missing references)
//IL_09f9: Expected O, but got Unknown
//IL_0a03: Unknown result type (might be due to invalid IL or missing references)
//IL_0a18: Unknown result type (might be due to invalid IL or missing references)
//IL_0a2d: Unknown result type (might be due to invalid IL or missing references)
//IL_0a42: Unknown result type (might be due to invalid IL or missing references)
//IL_0a57: Unknown result type (might be due to invalid IL or missing references)
//IL_0a6c: Unknown result type (might be due to invalid IL or missing references)
//IL_0a81: Unknown result type (might be due to invalid IL or missing references)
//IL_0a96: Unknown result type (might be due to invalid IL or missing references)
//IL_048d: Unknown result type (might be due to invalid IL or missing references)
//IL_02ab: Unknown result type (might be due to invalid IL or missing references)
//IL_0b62: Unknown result type (might be due to invalid IL or missing references)
//IL_0b6c: Expected O, but got Unknown
//IL_0b76: Unknown result type (might be due to invalid IL or missing references)
//IL_0b8b: Unknown result type (might be due to invalid IL or missing references)
//IL_0ba0: Unknown result type (might be due to invalid IL or missing references)
//IL_0bb5: 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_06ca: Unknown result type (might be due to invalid IL or missing references)
//IL_06e1: Unknown result type (might be due to invalid IL or missing references)
//IL_06e3: Unknown result type (might be due to invalid IL or missing references)
//IL_057b: Unknown result type (might be due to invalid IL or missing references)
//IL_0493: Unknown result type (might be due to invalid IL or missing references)
//IL_049e: Unknown result type (might be due to invalid IL or missing references)
//IL_04a0: Unknown result type (might be due to invalid IL or missing references)
//IL_0bf6: Unknown result type (might be due to invalid IL or missing references)
//IL_0c00: Expected O, but got Unknown
//IL_07ff: Unknown result type (might be due to invalid IL or missing references)
//IL_0801: Unknown result type (might be due to invalid IL or missing references)
//IL_0818: Unknown result type (might be due to invalid IL or missing references)
//IL_081a: Unknown result type (might be due to invalid IL or missing references)
//IL_0677: Unknown result type (might be due to invalid IL or missing references)
//IL_057d: Unknown result type (might be due to invalid IL or missing references)
//IL_0588: Unknown result type (might be due to invalid IL or missing references)
//IL_058a: Unknown result type (might be due to invalid IL or missing references)
//IL_0cd9: Unknown result type (might be due to invalid IL or missing references)
//IL_0ce3: Expected O, but got Unknown
//IL_07ae: 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_0684: Unknown result type (might be due to invalid IL or missing references)
//IL_0686: Unknown result type (might be due to invalid IL or missing references)
//IL_0491: Unknown result type (might be due to invalid IL or missing references)
//IL_0dac: Unknown result type (might be due to invalid IL or missing references)
//IL_0db6: Expected O, but got Unknown
//IL_07b0: Unknown result type (might be due to invalid IL or missing references)
//IL_07bb: Unknown result type (might be due to invalid IL or missing references)
//IL_07bd: Unknown result type (might be due to invalid IL or missing references)
//IL_0e7f: Unknown result type (might be due to invalid IL or missing references)
//IL_0e89: Expected O, but got Unknown
//IL_0573: Unknown result type (might be due to invalid IL or missing references)
//IL_0f52: Unknown result type (might be due to invalid IL or missing references)
//IL_0f5c: Expected O, but got Unknown
//IL_066f: Unknown result type (might be due to invalid IL or missing references)
//IL_1025: Unknown result type (might be due to invalid IL or missing references)
//IL_102f: Expected O, but got Unknown
//IL_07a6: Unknown result type (might be due to invalid IL or missing references)
//IL_1102: Unknown result type (might be due to invalid IL or missing references)
//IL_1109: Expected O, but got Unknown
//IL_11bd: Unknown result type (might be due to invalid IL or missing references)
//IL_11c4: Expected O, but got Unknown
//IL_1278: Unknown result type (might be due to invalid IL or missing references)
//IL_127f: Expected O, but got Unknown
//IL_0577: Unknown result type (might be due to invalid IL or missing references)
//IL_0673: Unknown result type (might be due to invalid IL or missing references)
//IL_13f8: Unknown result type (might be due to invalid IL or missing references)
//IL_1404: Unknown result type (might be due to invalid IL or missing references)
//IL_141d: Expected O, but got Unknown
//IL_1418: Unknown result type (might be due to invalid IL or missing references)
//IL_141d: Unknown result type (might be due to invalid IL or missing references)
//IL_07aa: Unknown result type (might be due to invalid IL or missing references)
if ((Object)(object)WhiteBorderBackgroundTexture == (Object)null)
{
WhiteBorderBackgroundTexture = new Texture2D(64, 64, (TextureFormat)4, false);
Color32 val = default(Color32);
((Color32)(ref val))..ctor(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue);
Color32 val2 = default(Color32);
((Color32)(ref val2))..ctor((byte)0, (byte)0, (byte)0, (byte)224);
for (int i = 0; i < 64; i++)
{
for (int j = 0; j < 64; j++)
{
Color32 val3 = ((i <= 0 || j <= 0 || i >= 63 || j >= 63) ? val : val2);
WhiteBorderBackgroundTexture.SetPixel(j, i, Color32.op_Implicit(val3));
}
}
WhiteBorderBackgroundTexture.Apply();
}
if ((Object)(object)GrayBorderBackgroundTexture == (Object)null)
{
GrayBorderBackgroundTexture = new Texture2D(64, 64, (TextureFormat)4, false);
Color32 val4 = default(Color32);
((Color32)(ref val4))..ctor((byte)64, (byte)64, (byte)64, byte.MaxValue);
Color32 val5 = default(Color32);
((Color32)(ref val5))..ctor((byte)0, (byte)0, (byte)0, (byte)224);
for (int k = 0; k < 64; k++)
{
for (int l = 0; l < 64; l++)
{
Color32 val6 = ((k <= 0 || l <= 0 || k >= 63 || l >= 63) ? val4 : val5);
GrayBorderBackgroundTexture.SetPixel(l, k, Color32.op_Implicit(val6));
}
}
GrayBorderBackgroundTexture.Apply();
}
if ((Object)(object)WhiteBorderTexture == (Object)null)
{
WhiteBorderTexture = new Texture2D(64, 64, (TextureFormat)4, false);
Color32 val7 = default(Color32);
((Color32)(ref val7))..ctor(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue);
Color32 val8 = default(Color32);
((Color32)(ref val8))..ctor((byte)0, (byte)0, (byte)0, byte.MaxValue);
for (int m = 0; m < 64; m++)
{
for (int n = 0; n < 64; n++)
{
Color32 val9 = ((m <= 0 || n <= 0 || m >= 63 || n >= 63) ? val7 : val8);
WhiteBorderTexture.SetPixel(n, m, Color32.op_Implicit(val9));
}
}
WhiteBorderTexture.Apply();
}
if ((Object)(object)GrayBorderTexture == (Object)null)
{
GrayBorderTexture = new Texture2D(64, 64, (TextureFormat)4, false);
Color32 val10 = default(Color32);
((Color32)(ref val10))..ctor((byte)64, (byte)64, (byte)64, byte.MaxValue);
Color32 val11 = default(Color32);
((Color32)(ref val11))..ctor((byte)0, (byte)0, (byte)0, byte.MaxValue);
for (int num = 0; num < 64; num++)
{
for (int num2 = 0; num2 < 64; num2++)
{
Color32 val12 = ((num <= 0 || num2 <= 0 || num >= 63 || num2 >= 63) ? val10 : val11);
GrayBorderTexture.SetPixel(num2, num, Color32.op_Implicit(val12));
}
}
GrayBorderTexture.Apply();
}
if ((Object)(object)BlackTexture == (Object)null)
{
BlackTexture = new Texture2D(64, 64, (TextureFormat)4, false);
Color32 val13 = default(Color32);
((Color32)(ref val13))..ctor((byte)0, (byte)0, (byte)0, byte.MaxValue);
for (int num3 = 0; num3 < 64; num3++)
{
for (int num4 = 0; num4 < 64; num4++)
{
BlackTexture.SetPixel(num4, num3, Color32.op_Implicit(val13));
}
}
BlackTexture.Apply();
}
if ((Object)(object)WhiteTexture == (Object)null)
{
WhiteTexture = new Texture2D(64, 64, (TextureFormat)4, false);
Color32 val14 = default(Color32);
((Color32)(ref val14))..ctor(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue);
for (int num5 = 0; num5 < 64; num5++)
{
for (int num6 = 0; num6 < 64; num6++)
{
WhiteTexture.SetPixel(num6, num5, Color32.op_Implicit(val14));
}
}
WhiteTexture.Apply();
}
if ((Object)(object)ToggleOnTexture == (Object)null)
{
ToggleOnTexture = new Texture2D(16, 16, (TextureFormat)4, false);
Color32 val15 = default(Color32);
((Color32)(ref val15))..ctor(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue);
Color32 val16 = default(Color32);
((Color32)(ref val16))..ctor((byte)0, (byte)0, (byte)0, (byte)0);
for (int num7 = 0; num7 < 16; num7++)
{
for (int num8 = 0; num8 < 16; num8++)
{
Color32 val17 = ((num8 >= 1 && num8 <= 12 && num7 >= 2 && num7 <= 13) ? val15 : val16);
ToggleOnTexture.SetPixel(num8, num7, Color32.op_Implicit(val17));
}
}
ToggleOnTexture.Apply();
}
if ((Object)(object)ToggleOffTexture == (Object)null)
{
ToggleOffTexture = new Texture2D(16, 16, (TextureFormat)4, false);
Color32 val18 = default(Color32);
((Color32)(ref val18))..ctor(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue);
Color32 val19 = default(Color32);
((Color32)(ref val19))..ctor((byte)0, (byte)0, (byte)0, byte.MaxValue);
Color32 val20 = default(Color32);
((Color32)(ref val20))..ctor((byte)0, (byte)0, (byte)0, (byte)0);
for (int num9 = 0; num9 < 16; num9++)
{
for (int num10 = 0; num10 < 16; num10++)
{
Color32 val21 = ((num10 < 1 || num10 > 12 || num9 < 2 || num9 > 13) ? val20 : ((num10 > 1 && num10 < 12 && num9 > 2 && num9 < 13) ? val19 : val18));
ToggleOffTexture.SetPixel(num10, num9, Color32.op_Implicit(val21));
}
}
ToggleOffTexture.Apply();
}
if ((Object)(object)CloseButtonGrayBorderTexture == (Object)null)
{
CloseButtonGrayBorderTexture = new Texture2D(16, 16, (TextureFormat)4, false);
Color32 val22 = default(Color32);
((Color32)(ref val22))..ctor(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue);
Color32 val23 = default(Color32);
((Color32)(ref val23))..ctor((byte)64, (byte)64, (byte)64, byte.MaxValue);
Color32 val24 = default(Color32);
((Color32)(ref val24))..ctor((byte)0, (byte)0, (byte)0, byte.MaxValue);
Color32 val25 = default(Color32);
((Color32)(ref val25))..ctor((byte)0, (byte)0, (byte)0, (byte)0);
for (int num11 = 0; num11 < 16; num11++)
{
for (int num12 = 0; num12 < 16; num12++)
{
Color32 val26 = ((num12 < 1 || num12 > 12 || num11 < 2 || num11 > 13) ? val25 : ((num12 > 1 && num12 < 12 && num11 > 2 && num11 < 13) ? val24 : val23));
CloseButtonGrayBorderTexture.SetPixel(num12, num11, Color32.op_Implicit(val26));
}
}
for (int num13 = 4; num13 <= 9; num13++)
{
CloseButtonGrayBorderTexture.SetPixel(num13, num13 + 1, Color32.op_Implicit(val22));
CloseButtonGrayBorderTexture.SetPixel(num13, 14 - num13, Color32.op_Implicit(val22));
}
CloseButtonGrayBorderTexture.Apply();
}
if ((Object)(object)CloseButtonWhiteBorderTexture == (Object)null)
{
CloseButtonWhiteBorderTexture = new Texture2D(16, 16, (TextureFormat)4, false);
Color32 val27 = default(Color32);
((Color32)(ref val27))..ctor(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue);
Color32 val28 = default(Color32);
((Color32)(ref val28))..ctor((byte)0, (byte)0, (byte)0, byte.MaxValue);
Color32 val29 = default(Color32);
((Color32)(ref val29))..ctor((byte)0, (byte)0, (byte)0, (byte)0);
for (int num14 = 0; num14 < 16; num14++)
{
for (int num15 = 0; num15 < 16; num15++)
{
Color32 val30 = ((num15 < 1 || num15 > 12 || num14 < 2 || num14 > 13) ? val29 : ((num15 > 1 && num15 < 12 && num14 > 2 && num14 < 13) ? val28 : val27));
CloseButtonWhiteBorderTexture.SetPixel(num15, num14, Color32.op_Implicit(val30));
}
}
for (int num16 = 4; num16 <= 9; num16++)
{
CloseButtonWhiteBorderTexture.SetPixel(num16, num16 + 1, Color32.op_Implicit(val27));
CloseButtonWhiteBorderTexture.SetPixel(num16, 14 - num16, Color32.op_Implicit(val27));
}
CloseButtonWhiteBorderTexture.Apply();
}
if (WindowStyle == null)
{
WindowStyle = new GUIStyle(GUI.skin.window);
WindowStyle.fontSize = 11;
WindowStyle.normal.textColor = Color.white;
WindowStyle.hover.textColor = Color.white;
WindowStyle.active.textColor = Color.white;
WindowStyle.focused.textColor = Color.white;
WindowStyle.onNormal.textColor = Color.white;
WindowStyle.onHover.textColor = Color.white;
WindowStyle.onActive.textColor = Color.white;
WindowStyle.onFocused.textColor = Color.white;
WindowStyle.normal.background = GrayBorderBackgroundTexture;
WindowStyle.hover.background = GrayBorderBackgroundTexture;
WindowStyle.active.background = GrayBorderBackgroundTexture;
WindowStyle.focused.background = GrayBorderBackgroundTexture;
WindowStyle.onNormal.background = WhiteBorderBackgroundTexture;
WindowStyle.onHover.background = WhiteBorderBackgroundTexture;
WindowStyle.onActive.background = WhiteBorderBackgroundTexture;
WindowStyle.onFocused.background = WhiteBorderBackgroundTexture;
}
if (BaseButtonStyle == null)
{
BaseButtonStyle = new GUIStyle(GUI.skin.button);
BaseButtonStyle.normal.textColor = Color.white;
BaseButtonStyle.hover.textColor = Color.white;
BaseButtonStyle.active.textColor = Color.white;
BaseButtonStyle.focused.textColor = Color.white;
BaseButtonStyle.onNormal.textColor = Color.white;
BaseButtonStyle.onHover.textColor = Color.white;
BaseButtonStyle.onActive.textColor = Color.white;
BaseButtonStyle.onFocused.textColor = Color.white;
BaseButtonStyle.normal.background = GrayBorderTexture;
BaseButtonStyle.hover.background = WhiteBorderTexture;
BaseButtonStyle.active.background = WhiteBorderTexture;
BaseButtonStyle.focused.background = WhiteBorderTexture;
BaseButtonStyle.onNormal.background = GrayBorderTexture;
BaseButtonStyle.onHover.background = WhiteBorderTexture;
BaseButtonStyle.onActive.background = WhiteBorderTexture;
BaseButtonStyle.onFocused.background = WhiteBorderTexture;
}
if (BaseToolbarButtonStyle == null)
{
BaseToolbarButtonStyle = new GUIStyle(BaseButtonStyle);
BaseToolbarButtonStyle.normal.textColor = Color.gray;
BaseToolbarButtonStyle.hover.textColor = Color.gray;
BaseToolbarButtonStyle.active.textColor = Color.gray;
BaseToolbarButtonStyle.focused.textColor = Color.gray;
BaseToolbarButtonStyle.onNormal.background = WhiteBorderBackgroundTexture;
}
if (BaseVerticalScrollBarStyle == null)
{
BaseVerticalScrollBarStyle = new GUIStyle(GUI.skin.verticalScrollbar);
BaseVerticalScrollBarStyle.name = "cruiseassist.verticalscrollbar";
BaseVerticalScrollBarStyle.normal.background = GrayBorderTexture;
BaseVerticalScrollBarStyle.hover.background = GrayBorderTexture;
BaseVerticalScrollBarStyle.active.background = GrayBorderTexture;
BaseVerticalScrollBarStyle.focused.background = GrayBorderTexture;
BaseVerticalScrollBarStyle.onNormal.background = GrayBorderTexture;
BaseVerticalScrollBarStyle.onHover.background = GrayBorderTexture;
BaseVerticalScrollBarStyle.onActive.background = GrayBorderTexture;
BaseVerticalScrollBarStyle.onFocused.background = GrayBorderTexture;
}
if (BaseHorizontalSliderStyle == null)
{
BaseHorizontalSliderStyle = new GUIStyle(GUI.skin.horizontalSlider);
BaseHorizontalSliderStyle.normal.background = GrayBorderTexture;
BaseHorizontalSliderStyle.hover.background = GrayBorderTexture;
BaseHorizontalSliderStyle.active.background = GrayBorderTexture;
BaseHorizontalSliderStyle.focused.background = GrayBorderTexture;
BaseHorizontalSliderStyle.onNormal.background = GrayBorderTexture;
BaseHorizontalSliderStyle.onHover.background = GrayBorderTexture;
BaseHorizontalSliderStyle.onActive.background = GrayBorderTexture;
BaseHorizontalSliderStyle.onFocused.background = GrayBorderTexture;
}
if (BaseHorizontalSliderThumbStyle == null)
{
BaseHorizontalSliderThumbStyle = new GUIStyle(GUI.skin.horizontalSliderThumb);
BaseHorizontalSliderThumbStyle.normal.background = WhiteBorderTexture;
BaseHorizontalSliderThumbStyle.hover.background = WhiteBorderTexture;
BaseHorizontalSliderThumbStyle.active.background = WhiteBorderTexture;
BaseHorizontalSliderThumbStyle.focused.background = WhiteBorderTexture;
BaseHorizontalSliderThumbStyle.onNormal.background = WhiteBorderTexture;
BaseHorizontalSliderThumbStyle.onHover.background = WhiteBorderTexture;
BaseHorizontalSliderThumbStyle.onActive.background = WhiteBorderTexture;
BaseHorizontalSliderThumbStyle.onFocused.background = WhiteBorderTexture;
}
if (BaseToggleStyle == null)
{
BaseToggleStyle = new GUIStyle(GUI.skin.toggle);
BaseToggleStyle.normal.background = ToggleOffTexture;
BaseToggleStyle.hover.background = ToggleOffTexture;
BaseToggleStyle.active.background = ToggleOffTexture;
BaseToggleStyle.focused.background = ToggleOffTexture;
BaseToggleStyle.onNormal.background = ToggleOnTexture;
BaseToggleStyle.onHover.background = ToggleOnTexture;
BaseToggleStyle.onActive.background = ToggleOnTexture;
BaseToggleStyle.onFocused.background = ToggleOnTexture;
}
if (BaseTextFieldStyle == null)
{
BaseTextFieldStyle = new GUIStyle(GUI.skin.textField);
BaseTextFieldStyle.normal.background = WhiteBorderTexture;
BaseTextFieldStyle.hover.background = WhiteBorderTexture;
BaseTextFieldStyle.active.background = WhiteBorderTexture;
BaseTextFieldStyle.focused.background = WhiteBorderTexture;
BaseTextFieldStyle.onNormal.background = WhiteBorderTexture;
BaseTextFieldStyle.onHover.background = WhiteBorderTexture;
BaseTextFieldStyle.onActive.background = WhiteBorderTexture;
BaseTextFieldStyle.onFocused.background = WhiteBorderTexture;
}
if (CloseButtonStyle == null)
{
CloseButtonStyle = new GUIStyle(GUI.skin.button);
CloseButtonStyle.normal.background = CloseButtonGrayBorderTexture;
CloseButtonStyle.hover.background = CloseButtonWhiteBorderTexture;
CloseButtonStyle.active.background = CloseButtonWhiteBorderTexture;
CloseButtonStyle.focused.background = CloseButtonWhiteBorderTexture;
CloseButtonStyle.onNormal.background = CloseButtonGrayBorderTexture;
CloseButtonStyle.onHover.background = CloseButtonWhiteBorderTexture;
CloseButtonStyle.onActive.background = CloseButtonWhiteBorderTexture;
CloseButtonStyle.onFocused.background = CloseButtonWhiteBorderTexture;
}
if (verticalScrollBarSkins == null)
{
verticalScrollBarSkins = new List<GUIStyle>();
GUIStyle val31 = new GUIStyle(GUI.skin.verticalScrollbarThumb);
val31.name = "cruiseassist.verticalscrollbarthumb";
val31.normal.background = WhiteBorderTexture;
val31.hover.background = WhiteBorderTexture;
val31.active.background = WhiteBorderTexture;
val31.focused.background = WhiteBorderTexture;
val31.onNormal.background = WhiteBorderTexture;
val31.onHover.background = WhiteBorderTexture;
val31.onActive.background = WhiteBorderTexture;
val31.onFocused.background = WhiteBorderTexture;
verticalScrollBarSkins.Add(val31);
GUIStyle val32 = new GUIStyle(GUI.skin.verticalScrollbarUpButton);
val32.name = "cruiseassist.verticalscrollbarupbutton";
val32.normal.background = BlackTexture;
val32.hover.background = BlackTexture;
val32.active.background = BlackTexture;
val32.focused.background = BlackTexture;
val32.onNormal.background = BlackTexture;
val32.onHover.background = BlackTexture;
val32.onActive.background = BlackTexture;
val32.onFocused.background = BlackTexture;
verticalScrollBarSkins.Add(val32);
GUIStyle val33 = new GUIStyle(GUI.skin.verticalScrollbarDownButton);
val33.name = "cruiseassist.verticalscrollbardownbutton";
val33.normal.background = BlackTexture;
val33.hover.background = BlackTexture;
val33.active.background = BlackTexture;
val33.focused.background = BlackTexture;
val33.onNormal.background = BlackTexture;
val33.onHover.background = BlackTexture;
val33.onActive.background = BlackTexture;
val33.onFocused.background = BlackTexture;
verticalScrollBarSkins.Add(val33);
GUI.skin.customStyles = GUI.skin.customStyles.Concat(verticalScrollBarSkins).ToArray();
}
switch (ViewMode)
{
case CruiseAssistMainUIViewMode.MINI:
((Rect)(ref Rect[wIdx])).width = 288f;
((Rect)(ref Rect[wIdx])).height = 70f;
break;
case CruiseAssistMainUIViewMode.FULL:
((Rect)(ref Rect[wIdx])).width = 398f;
((Rect)(ref Rect[wIdx])).height = 150f;
break;
}
Rect[wIdx] = GUILayout.Window(99030291, Rect[wIdx], new WindowFunction(WindowFunction), "CruiseAssist", WindowStyle, Array.Empty<GUILayoutOption>());
float num17 = Scale / 100f;
if ((float)Screen.width / num17 < ((Rect)(ref Rect[wIdx])).xMax)
{
((Rect)(ref Rect[wIdx])).x = (float)Screen.width / num17 - ((Rect)(ref Rect[wIdx])).width;
}
if (((Rect)(ref Rect[wIdx])).x < 0f)
{
((Rect)(ref Rect[wIdx])).x = 0f;
}
if ((float)Screen.height / num17 < ((Rect)(ref Rect[wIdx])).yMax)
{
((Rect)(ref Rect[wIdx])).y = (float)Screen.height / num17 - ((Rect)(ref Rect[wIdx])).height;
}
if (((Rect)(ref Rect[wIdx])).y < 0f)
{
((Rect)(ref Rect[wIdx])).y = 0f;
}
if (lastCheckWindowLeft[wIdx] != float.MinValue && (((Rect)(ref Rect[wIdx])).x != lastCheckWindowLeft[wIdx] || ((Rect)(ref Rect[wIdx])).y != lastCheckWindowTop[wIdx]))
{
NextCheckGameTick = GameMain.gameTick + 300;
}
lastCheckWindowLeft[wIdx] = ((Rect)(ref Rect[wIdx])).x;
lastCheckWindowTop[wIdx] = ((Rect)(ref Rect[wIdx])).y;
if (NextCheckGameTick <= GameMain.gameTick)
{
ConfigManager.CheckConfig(ConfigManager.Step.STATE);
}
}
public static void WindowFunction(int windowId)
{
//IL_0418: Unknown result type (might be due to invalid IL or missing references)
//IL_041e: Expected O, but got Unknown
//IL_0039: Unknown result type (might be due to invalid IL or missing references)
//IL_0032: Unknown result type (might be due to invalid IL or missing references)
//IL_04cc: Unknown result type (might be due to invalid IL or missing references)
//IL_04d2: Expected O, but got Unknown
//IL_003e: Unknown result type (might be due to invalid IL or missing references)
//IL_0527: 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_0048: Unknown result type (might be due to invalid IL or missing references)
//IL_04a3: 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_006b: Unknown result type (might be due to invalid IL or missing references)
//IL_0072: Expected O, but got Unknown
//IL_00a1: Unknown result type (might be due to invalid IL or missing references)
//IL_00a8: Expected O, but got Unknown
//IL_00af: Unknown result type (might be due to invalid IL or missing references)
//IL_00d0: 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_010c: Expected O, but got Unknown
//IL_013b: Unknown result type (might be due to invalid IL or missing references)
//IL_0142: Expected O, but got Unknown
//IL_05a3: Unknown result type (might be due to invalid IL or missing references)
//IL_0604: Unknown result type (might be due to invalid IL or missing references)
//IL_0186: Unknown result type (might be due to invalid IL or missing references)
//IL_0651: Unknown result type (might be due to invalid IL or missing references)
//IL_01db: Unknown result type (might be due to invalid IL or missing references)
//IL_0240: Unknown result type (might be due to invalid IL or missing references)
//IL_0245: Unknown result type (might be due to invalid IL or missing references)
//IL_025c: Unknown result type (might be due to invalid IL or missing references)
//IL_0260: Unknown result type (might be due to invalid IL or missing references)
//IL_0265: Unknown result type (might be due to invalid IL or missing references)
//IL_026a: 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_0294: Expected O, but got Unknown
//IL_02c3: Unknown result type (might be due to invalid IL or missing references)
//IL_02ca: Expected O, but got Unknown
//IL_030e: 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)
GUILayout.BeginVertical(Array.Empty<GUILayoutOption>());
if (ViewMode == CruiseAssistMainUIViewMode.FULL)
{
GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
Color textColor = ((CruiseAssistPlugin.State == CruiseAssistState.TO_STAR) ? Color.cyan : Color.white);
Color textColor2 = ((CruiseAssistPlugin.State == CruiseAssistState.TO_PLANET) ? Color.cyan : Color.white);
GUILayout.BeginVertical(Array.Empty<GUILayoutOption>());
GUIStyle val = new GUIStyle(GUI.skin.label);
val.fixedWidth = 50f;
val.fixedHeight = 36f;
val.fontSize = 12;
val.alignment = (TextAnchor)0;
GUIStyle val2 = new GUIStyle(val);
val.normal.textColor = textColor;
GUILayout.Label("Target\n System:", val, Array.Empty<GUILayoutOption>());
val2.normal.textColor = textColor2;
GUILayout.Label("Target\n Planet:", val2, Array.Empty<GUILayoutOption>());
GUILayout.EndVertical();
GUILayout.BeginVertical(Array.Empty<GUILayoutOption>());
GUIStyle val3 = new GUIStyle(GUI.skin.label);
val3.fixedWidth = 240f;
val3.fixedHeight = 36f;
val3.fontSize = 14;
val3.alignment = (TextAnchor)3;
GUIStyle val4 = new GUIStyle(val3);
if (CruiseAssistPlugin.TargetStar != null && ((GameMain.localStar != null && CruiseAssistPlugin.TargetStar.id != GameMain.localStar.id) || CruiseAssistPlugin.TargetPlanet == null))
{
val3.normal.textColor = textColor;
GUILayout.Label(CruiseAssistPlugin.GetStarName(CruiseAssistPlugin.TargetStar), val3, Array.Empty<GUILayoutOption>());
}
else
{
GUILayout.Label(" ", val3, Array.Empty<GUILayoutOption>());
}
if (CruiseAssistPlugin.TargetPlanet != null)
{
val4.normal.textColor = textColor2;
GUILayout.Label(CruiseAssistPlugin.GetPlanetName(CruiseAssistPlugin.TargetPlanet), val4, Array.Empty<GUILayoutOption>());
}
else
{
GUILayout.Label(" ", val4, Array.Empty<GUILayoutOption>());
}
GUILayout.EndVertical();
GUILayout.FlexibleSpace();
GUILayout.BeginVertical(Array.Empty<GUILayoutOption>());
PlayerMove_Sail actionSail = GameMain.mainPlayer.controller.actionSail;
VectorLF3 visual_uvel = actionSail.visual_uvel;
double magnitude;
if (GameMain.mainPlayer.warping)
{
VectorLF3 val5 = visual_uvel + actionSail.currentWarpVelocity;
magnitude = ((VectorLF3)(ref val5)).magnitude;
}
else
{
magnitude = ((VectorLF3)(ref visual_uvel)).magnitude;
}
GUIStyle val6 = new GUIStyle(GUI.skin.label);
val6.fixedWidth = 80f;
val6.fixedHeight = 36f;
val6.fontSize = 12;
val6.alignment = (TextAnchor)5;
GUIStyle val7 = new GUIStyle(val6);
if (CruiseAssistPlugin.TargetStar != null && ((GameMain.localStar != null && CruiseAssistPlugin.TargetStar.id != GameMain.localStar.id) || CruiseAssistPlugin.TargetPlanet == null))
{
val6.normal.textColor = textColor;
string text = (GameMain.mainPlayer.sailing ? TimeToString(CruiseAssistPlugin.TargetRange / magnitude) : "-- -- --");
GUILayout.Label(RangeToString(CruiseAssistPlugin.TargetRange) + "\n" + text, val6, Array.Empty<GUILayoutOption>());
}
else
{
GUILayout.Label(" \n ", val6, Array.Empty<GUILayoutOption>());
}
if (CruiseAssistPlugin.TargetPlanet != null)
{
val7.normal.textColor = textColor2;
string text2 = (GameMain.mainPlayer.sailing ? TimeToString(CruiseAssistPlugin.TargetRange / magnitude) : "-- -- --");
GUILayout.Label(RangeToString(CruiseAssistPlugin.TargetRange) + "\n" + text2, val7, Array.Empty<GUILayoutOption>());
}
else
{
GUILayout.Label(" \n ", val7, Array.Empty<GUILayoutOption>());
}
GUILayout.EndVertical();
GUILayout.EndHorizontal();
GUILayout.FlexibleSpace();
}
GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
GUIStyle val8 = new GUIStyle(GUI.skin.label);
val8.fixedWidth = 160f;
val8.fixedHeight = 32f;
val8.fontSize = 14;
val8.alignment = (TextAnchor)3;
if (!CruiseAssistPlugin.Enable)
{
GUILayout.Label("Cruise Assist Disabled.", val8, Array.Empty<GUILayoutOption>());
}
else if (CruiseAssistPlugin.State == CruiseAssistState.INACTIVE || CruiseAssistPlugin.Interrupt)
{
GUILayout.Label("Cruise Assist Inactive.", val8, Array.Empty<GUILayoutOption>());
}
else
{
val8.normal.textColor = Color.cyan;
GUILayout.Label("Cruise Assist Active.", val8, Array.Empty<GUILayoutOption>());
}
GUILayout.FlexibleSpace();
GUIStyle val9 = new GUIStyle(BaseButtonStyle);
val9.fixedWidth = 50f;
val9.fixedHeight = 18f;
val9.fontSize = 11;
val9.alignment = (TextAnchor)4;
GUILayout.BeginVertical(Array.Empty<GUILayoutOption>());
if (GUILayout.Button("Config", val9, Array.Empty<GUILayoutOption>()))
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
bool[] show = CruiseAssistConfigUI.Show;
int num = wIdx;
show[num] = !show[num];
if (CruiseAssistConfigUI.Show[wIdx])
{
CruiseAssistConfigUI.TempScale = Scale;
}
}
if (GUILayout.Button(CruiseAssistPlugin.Enable ? "Enable" : "Disable", val9, Array.Empty<GUILayoutOption>()))
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
CruiseAssistPlugin.Enable = !CruiseAssistPlugin.Enable;
NextCheckGameTick = GameMain.gameTick + 300;
}
GUILayout.EndVertical();
GUILayout.BeginVertical(Array.Empty<GUILayoutOption>());
if (GUILayout.Button("StarList", val9, Array.Empty<GUILayoutOption>()))
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
bool[] show2 = CruiseAssistStarListUI.Show;
int num2 = wIdx;
show2[num2] = !show2[num2];
}
if (GUILayout.Button("Cancel", val9, Array.Empty<GUILayoutOption>()))
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
CruiseAssistStarListUI.SelectStar(null, null);
}
GUILayout.EndVertical();
GUILayout.EndHorizontal();
GUILayout.EndVertical();
GUI.DragWindow();
}
public static string RangeToString(double range)
{
if (range < 10000.0)
{
return (int)(range + 0.5) + "m ";
}
if (range < 600000.0)
{
return (range / 40000.0).ToString("0.00") + "AU";
}
return (range / 2400000.0).ToString("0.00") + "Ly";
}
public static string TimeToString(double time)
{
int num = (int)(time + 0.5);
int num2 = num / 60;
int num3 = num2 / 60;
num %= 60;
num2 %= 60;
return $"{num3:00} {num2:00} {num:00}";
}
}
public enum CruiseAssistMainUIViewMode
{
FULL,
MINI
}
[BepInPlugin("Appun.DSP.plugin.CruiseAssist", "DSPCruiseAssist", "0.1.4")]
public class CruiseAssistPlugin : BaseUnityPlugin
{
public class Conf
{
public static bool MarkVisitedFlag = true;
public static bool SelectFocusFlag = true;
public static bool HideDuplicateHistoryFlag = true;
public static bool AutoDisableLockCursorFlag = false;
public static bool ShowMainWindowWhenTargetSelectedEvenNotSailModeFlag = true;
public static bool CloseStarListWhenSetTargetPlanetFlag = false;
public static bool HideBottomCloseButtonFlag = true;
}
public static bool Enable = true;
public static bool TargetSelected = false;
public static StarData ReticuleTargetStar = null;
public static PlanetData ReticuleTargetPlanet = null;
public static StarData SelectTargetStar = null;
public static PlanetData SelectTargetPlanet = null;
public static int SelectTargetAstroId = 0;
public static StarData TargetStar = null;
public static PlanetData TargetPlanet = null;
public static VectorLF3 TargetUPos = VectorLF3.zero;
public static double TargetRange = 0.0;
public static CruiseAssistState State = CruiseAssistState.INACTIVE;
public static bool Interrupt = false;
public static int Seed = -1;
public static List<int> History = new List<int>();
public static List<int> Bookmark = new List<int>();
public static Func<StarData, string> GetStarName = (StarData star) => star.displayName;
public static Func<PlanetData, string> GetPlanetName = (PlanetData planet) => planet.displayName;
internal static List<CruiseAssistExtensionAPI> extensions = new List<CruiseAssistExtensionAPI>();
private Harmony harmony;
public void Awake()
{
//IL_0026: Unknown result type (might be due to invalid IL or missing references)
//IL_0030: Expected O, but got Unknown
LogManager.Logger = ((BaseUnityPlugin)this).Logger;
new CruiseAssistConfigManager(((BaseUnityPlugin)this).Config);
ConfigManager.CheckConfig(ConfigManager.Step.AWAKE);
harmony = new Harmony("tanu.CruiseAssist.Patch");
harmony.PatchAll(typeof(Patch_GameMain));
harmony.PatchAll(typeof(Patch_UISailPanel));
harmony.PatchAll(typeof(Patch_UIStarmap));
harmony.PatchAll(typeof(Patch_UITechTree));
harmony.PatchAll(typeof(Patch_PlayerMoveWalk));
harmony.PatchAll(typeof(Patch_PlayerMoveDrift));
harmony.PatchAll(typeof(Patch_PlayerMoveFly));
harmony.PatchAll(typeof(Patch_PlayerMoveSail));
}
public void OnDestroy()
{
harmony.UnpatchSelf();
}
public static void RegistExtension(CruiseAssistExtensionAPI extension)
{
extensions.Add(extension);
}
public static void UnregistExtension(Type type)
{
extensions.RemoveAll((CruiseAssistExtensionAPI extension) => extension.GetType().FullName == type.FullName);
}
public void OnGUI()
{
//IL_017e: Unknown result type (might be due to invalid IL or missing references)
//IL_0183: Unknown result type (might be due to invalid IL or missing references)
//IL_01f0: Unknown result type (might be due to invalid IL or missing references)
//IL_0226: Unknown result type (might be due to invalid IL or missing references)
//IL_025d: Unknown result type (might be due to invalid IL or missing references)
//IL_0284: Unknown result type (might be due to invalid IL or missing references)
if (DSPGame.IsMenuDemo || GameMain.mainPlayer == null || UIMechaEditor.isOpened)
{
return;
}
UIGame uiGame = UIRoot.instance.uiGame;
if (uiGame.guideComplete && !((ManualBehaviour)uiGame.techTree).active && !((ManualBehaviour)uiGame.escMenu).active && !((ManualBehaviour)uiGame.dysonEditor).active && !uiGame.hideAllUI0 && !uiGame.hideAllUI1 && (!((Object)(object)UIMilkyWayLoadingSplash.instance != (Object)null) || !((ManualBehaviour)UIMilkyWayLoadingSplash.instance).active) && (!((Object)(object)UIRoot.instance.uiMilkyWay != (Object)null) || !((ManualBehaviour)UIRoot.instance.uiMilkyWay).active) && (GameMain.mainPlayer.sailing || ((ManualBehaviour)uiGame.starmap).active || (Conf.ShowMainWindowWhenTargetSelectedEvenNotSailModeFlag && TargetSelected)))
{
if (Seed != GameMain.galaxy.seed)
{
ConfigManager.CheckConfig(ConfigManager.Step.CHANGE_SEED);
}
CruiseAssistMainUI.wIdx = (((ManualBehaviour)uiGame.starmap).active ? 1 : 0);
float num = CruiseAssistMainUI.Scale / 100f;
GUIUtility.ScaleAroundPivot(new Vector2(num, num), Vector2.zero);
CruiseAssistMainUI.OnGUI();
if (CruiseAssistStarListUI.Show[CruiseAssistMainUI.wIdx])
{
CruiseAssistStarListUI.OnGUI();
}
if (CruiseAssistConfigUI.Show[CruiseAssistMainUI.wIdx])
{
CruiseAssistConfigUI.OnGUI();
}
if (CruiseAssistDebugUI.Show)
{
CruiseAssistDebugUI.OnGUI();
}
bool flag = ResetInput(CruiseAssistMainUI.Rect[CruiseAssistMainUI.wIdx], num);
if (!flag && CruiseAssistStarListUI.Show[CruiseAssistMainUI.wIdx])
{
flag = ResetInput(CruiseAssistStarListUI.Rect[CruiseAssistMainUI.wIdx], num);
}
if (!flag && CruiseAssistConfigUI.Show[CruiseAssistMainUI.wIdx])
{
flag = ResetInput(CruiseAssistConfigUI.Rect[CruiseAssistMainUI.wIdx], num);
}
if (!flag && CruiseAssistDebugUI.Show)
{
flag = ResetInput(CruiseAssistDebugUI.Rect, num);
}
extensions.ForEach(delegate(CruiseAssistExtensionAPI extension)
{
extension.OnGUI();
});
}
}
private bool ResetInput(Rect rect, float scale)
{
//IL_0029: 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)
//IL_0092: Unknown result type (might be due to invalid IL or missing references)
float num = ((Rect)(ref rect)).xMin * scale;
float num2 = ((Rect)(ref rect)).xMax * scale;
float num3 = ((Rect)(ref rect)).yMin * scale;
float num4 = ((Rect)(ref rect)).yMax * scale;
float x = Input.mousePosition.x;
float num5 = (float)Screen.height - Input.mousePosition.y;
if (num <= x && x <= num2 && num3 <= num5 && num5 <= num4)
{
int[] source = new int[3] { 0, 1, 2 };
if (((IEnumerable<int>)source).Any((Func<int, bool>)Input.GetMouseButton) || Input.mouseScrollDelta.y != 0f)
{
Input.ResetInputAxes();
return true;
}
}
return false;
}
}
public class CruiseAssistStarListUI
{
private static int wIdx = 0;
public const float WindowWidth = 400f;
public const float WindowHeight = 480f;
public static bool[] Show = new bool[2];
public static Rect[] Rect = (Rect[])(object)new Rect[2]
{
new Rect(0f, 0f, 400f, 480f),
new Rect(0f, 0f, 400f, 480f)
};
public static int ListSelected = 0;
public static int[] actionSelected = new int[3];
private static float[] lastCheckWindowLeft = new float[2]
{
float.MinValue,
float.MinValue
};
private static float[] lastCheckWindowTop = new float[2]
{
float.MinValue,
float.MinValue
};
private static Vector2[] scrollPos = (Vector2[])(object)new Vector2[3]
{
Vector2.zero,
Vector2.zero,
Vector2.zero
};
private const string VisitedMark = "● ";
private const string NonVisitMark = "";
public static void OnGUI()
{
//IL_0024: 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_0049: Expected O, but got Unknown
//IL_0044: Unknown result type (might be due to invalid IL or missing references)
//IL_0049: Unknown result type (might be due to invalid IL or missing references)
wIdx = CruiseAssistMainUI.wIdx;
Rect[wIdx] = GUILayout.Window(99030292, Rect[wIdx], new WindowFunction(WindowFunction), "CruiseAssist - StarList", CruiseAssistMainUI.WindowStyle, Array.Empty<GUILayoutOption>());
float num = CruiseAssistMainUI.Scale / 100f;
if ((float)Screen.width / num < ((Rect)(ref Rect[wIdx])).xMax)
{
((Rect)(ref Rect[wIdx])).x = (float)Screen.width / num - ((Rect)(ref Rect[wIdx])).width;
}
if (((Rect)(ref Rect[wIdx])).x < 0f)
{
((Rect)(ref Rect[wIdx])).x = 0f;
}
if ((float)Screen.height / num < ((Rect)(ref Rect[wIdx])).yMax)
{
((Rect)(ref Rect[wIdx])).y = (float)Screen.height / num - ((Rect)(ref Rect[wIdx])).height;
}
if (((Rect)(ref Rect[wIdx])).y < 0f)
{
((Rect)(ref Rect[wIdx])).y = 0f;
}
if (lastCheckWindowLeft[wIdx] != float.MinValue && (((Rect)(ref Rect[wIdx])).x != lastCheckWindowLeft[wIdx] || ((Rect)(ref Rect[wIdx])).y != lastCheckWindowTop[wIdx]))
{
CruiseAssistMainUI.NextCheckGameTick = GameMain.gameTick + 300;
}
lastCheckWindowLeft[wIdx] = ((Rect)(ref Rect[wIdx])).x;
lastCheckWindowTop[wIdx] = ((Rect)(ref Rect[wIdx])).y;
}
public static void WindowFunction(int windowId)
{
//IL_0022: Unknown result type (might be due to invalid IL or missing references)
//IL_0028: Expected O, but got Unknown
//IL_0097: Unknown result type (might be due to invalid IL or missing references)
//IL_00e1: Unknown result type (might be due to invalid IL or missing references)
//IL_00e8: Expected O, but got Unknown
//IL_00fc: Unknown result type (might be due to invalid IL or missing references)
//IL_010d: Unknown result type (might be due to invalid IL or missing references)
//IL_0112: Unknown result type (might be due to invalid IL or missing references)
//IL_0122: Unknown result type (might be due to invalid IL or missing references)
//IL_012c: Expected O, but got Unknown
//IL_0170: Unknown result type (might be due to invalid IL or missing references)
//IL_017a: Expected O, but got Unknown
//IL_01be: Unknown result type (might be due to invalid IL or missing references)
//IL_01c8: Expected O, but got Unknown
//IL_01df: Unknown result type (might be due to invalid IL or missing references)
//IL_01e9: Expected O, but got Unknown
//IL_0232: Unknown result type (might be due to invalid IL or missing references)
//IL_023c: Expected O, but got Unknown
//IL_0255: Unknown result type (might be due to invalid IL or missing references)
//IL_025f: Expected O, but got Unknown
//IL_02a8: Unknown result type (might be due to invalid IL or missing references)
//IL_02b2: Expected O, but got Unknown
//IL_0420: Unknown result type (might be due to invalid IL or missing references)
//IL_0427: Expected O, but got Unknown
//IL_04df: Unknown result type (might be due to invalid IL or missing references)
//IL_05a5: Unknown result type (might be due to invalid IL or missing references)
//IL_0553: Unknown result type (might be due to invalid IL or missing references)
//IL_05ca: Unknown result type (might be due to invalid IL or missing references)
GUILayout.BeginVertical(Array.Empty<GUILayoutOption>());
GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
GUIStyle val = new GUIStyle(CruiseAssistMainUI.BaseToolbarButtonStyle);
val.fixedWidth = 80f;
val.fixedHeight = 20f;
val.fontSize = 12;
string[] array = new string[3] { "Normal", "History", "Bookmark" };
GUI.changed = false;
int num = GUILayout.Toolbar(ListSelected, array, val, Array.Empty<GUILayoutOption>());
if (GUI.changed)
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
}
if (num != ListSelected)
{
ListSelected = num;
CruiseAssistMainUI.NextCheckGameTick = GameMain.gameTick + 300;
}
GUILayout.EndHorizontal();
GUIStyle val2 = new GUIStyle(CruiseAssistMainUI.BaseVerticalScrollBarStyle);
scrollPos[ListSelected] = GUILayout.BeginScrollView(scrollPos[ListSelected], GUIStyle.none, val2, Array.Empty<GUILayoutOption>());
GUIStyle nameLabelStyle = new GUIStyle(GUI.skin.label);
nameLabelStyle.fixedWidth = 240f;
nameLabelStyle.stretchHeight = true;
nameLabelStyle.fontSize = 14;
nameLabelStyle.alignment = (TextAnchor)3;
GUIStyle nRangeLabelStyle = new GUIStyle(GUI.skin.label);
nRangeLabelStyle.fixedWidth = 60f;
nRangeLabelStyle.fixedHeight = 20f;
nRangeLabelStyle.fontSize = 14;
nRangeLabelStyle.alignment = (TextAnchor)5;
GUIStyle hRangeLabelStyle = new GUIStyle(nRangeLabelStyle);
hRangeLabelStyle.fixedHeight = 40f;
GUIStyle nActionButtonStyle = new GUIStyle(CruiseAssistMainUI.BaseButtonStyle);
nActionButtonStyle.fixedWidth = 40f;
nActionButtonStyle.fixedHeight = 18f;
nActionButtonStyle.margin.top = 6;
nActionButtonStyle.fontSize = 12;
GUIStyle hActionButtonStyle = new GUIStyle(nActionButtonStyle);
hActionButtonStyle.margin.top = 16;
GUIStyle nSortButtonStyle = new GUIStyle(CruiseAssistMainUI.BaseButtonStyle);
nSortButtonStyle.fixedWidth = 20f;
nSortButtonStyle.fixedHeight = 18f;
nSortButtonStyle.margin.top = 6;
nSortButtonStyle.fontSize = 12;
GUIStyle hSortButtonStyle = new GUIStyle(nSortButtonStyle);
hSortButtonStyle.margin.top = 16;
if (ListSelected == 0)
{
CollectionExtensions.Do<Tuple<StarData, double>>((IEnumerable<Tuple<StarData, double>>)(from tuple in GameMain.galaxy.stars.Select(delegate(StarData star)
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_000c: 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_0016: Unknown result type (might be due to invalid IL or missing references)
VectorLF3 val8 = star.uPosition - GameMain.mainPlayer.uPosition;
return new Tuple<StarData, double>(star, ((VectorLF3)(ref val8)).magnitude);
})
orderby tuple.v2
select tuple), (Action<Tuple<StarData, double>>)delegate(Tuple<StarData, double> tuple)
{
//IL_0181: Unknown result type (might be due to invalid IL or missing references)
//IL_0197: Unknown result type (might be due to invalid IL or missing references)
//IL_0107: Unknown result type (might be due to invalid IL or missing references)
//IL_0111: 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_011b: Unknown result type (might be due to invalid IL or missing references)
//IL_01d9: Unknown result type (might be due to invalid IL or missing references)
//IL_01ef: Unknown result type (might be due to invalid IL or missing references)
//IL_027b: Unknown result type (might be due to invalid IL or missing references)
//IL_0290: Expected O, but got Unknown
//IL_0314: Unknown result type (might be due to invalid IL or missing references)
StarData star3 = tuple.v1;
double range = tuple.v2;
string starName = CruiseAssistPlugin.GetStarName(star3);
bool flag3 = false;
if (GameMain.localStar != null && star3.id == GameMain.localStar.id)
{
flag3 = true;
}
else if (CruiseAssistPlugin.SelectTargetStar != null && star3.id == CruiseAssistPlugin.SelectTargetStar.id && GameMain.history.universeObserveLevel >= ((range >= 14400000.0) ? 4 : 3))
{
flag3 = true;
}
if (flag3)
{
IEnumerable<Tuple<PlanetData, double>> enumerable4 = star3.planets.Select(delegate(PlanetData planet)
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_000c: 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_0016: Unknown result type (might be due to invalid IL or missing references)
VectorLF3 val7 = planet.uPosition - GameMain.mainPlayer.uPosition;
return new Tuple<PlanetData, double>(planet, ((VectorLF3)(ref val7)).magnitude);
});
VectorLF3 val6 = star3.uPosition - GameMain.mainPlayer.uPosition;
CollectionExtensions.Do<Tuple<PlanetData, double>>((IEnumerable<Tuple<PlanetData, double>>)(from tuple2 in CollectionExtensions.AddItem<Tuple<PlanetData, double>>(enumerable4, new Tuple<PlanetData, double>(null, ((VectorLF3)(ref val6)).magnitude))
orderby tuple2.v2
select tuple2), (Action<Tuple<PlanetData, double>>)delegate(Tuple<PlanetData, double> tuple2)
{
//IL_002c: Unknown result type (might be due to invalid IL or missing references)
//IL_0047: Unknown result type (might be due to invalid IL or missing references)
//IL_01af: Unknown result type (might be due to invalid IL or missing references)
//IL_01ca: 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)
//IL_00c0: Unknown result type (might be due to invalid IL or missing references)
//IL_0246: Unknown result type (might be due to invalid IL or missing references)
//IL_0260: Expected O, but got Unknown
//IL_0156: Unknown result type (might be due to invalid IL or missing references)
//IL_0170: Expected O, but got Unknown
//IL_0322: Unknown result type (might be due to invalid IL or missing references)
GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
PlanetData v = tuple2.v1;
double v2 = tuple2.v2;
nameLabelStyle.normal.textColor = Color.white;
nRangeLabelStyle.normal.textColor = Color.white;
float num5;
if (v == null)
{
if (CruiseAssistPlugin.SelectTargetPlanet == null && CruiseAssistPlugin.SelectTargetStar != null && star3.id == CruiseAssistPlugin.SelectTargetStar.id)
{
nameLabelStyle.normal.textColor = Color.cyan;
nRangeLabelStyle.normal.textColor = Color.cyan;
}
string text6 = starName;
if (CruiseAssistPlugin.Conf.MarkVisitedFlag)
{
text6 = ((star3.planets.Where((PlanetData p) => p.factory != null).Count() > 0) ? "● " : "") + text6;
}
GUILayout.Label(text6, nameLabelStyle, Array.Empty<GUILayoutOption>());
num5 = nameLabelStyle.CalcHeight(new GUIContent(text6), nameLabelStyle.fixedWidth);
}
else
{
if (CruiseAssistPlugin.SelectTargetPlanet != null && v.id == CruiseAssistPlugin.SelectTargetPlanet.id)
{
nameLabelStyle.normal.textColor = Color.cyan;
nRangeLabelStyle.normal.textColor = Color.cyan;
}
string text7 = starName + " - " + CruiseAssistPlugin.GetPlanetName(v);
if (CruiseAssistPlugin.Conf.MarkVisitedFlag)
{
text7 = ((v.factory != null) ? "● " : "") + text7;
}
GUILayout.Label(text7, nameLabelStyle, Array.Empty<GUILayoutOption>());
num5 = nameLabelStyle.CalcHeight(new GUIContent(text7), nameLabelStyle.fixedWidth);
}
GUILayout.FlexibleSpace();
GUILayout.Label(CruiseAssistMainUI.RangeToString((v == null) ? range : v2), (num5 < 30f) ? nRangeLabelStyle : hRangeLabelStyle, Array.Empty<GUILayoutOption>());
string text8 = ((actionSelected[ListSelected] == 0) ? "SET" : ((v == null) ? "-" : (CruiseAssistPlugin.Bookmark.Contains(v.id) ? "DEL" : "ADD")));
if (GUILayout.Button(text8, (num5 < 30f) ? nActionButtonStyle : hActionButtonStyle, Array.Empty<GUILayoutOption>()))
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
if (actionSelected[ListSelected] == 0)
{
SelectStar(star3, v);
if (CruiseAssistPlugin.Conf.CloseStarListWhenSetTargetPlanetFlag)
{
Show[wIdx] = false;
}
}
else if (v != null)
{
if (CruiseAssistPlugin.Bookmark.Contains(v.id))
{
CruiseAssistPlugin.Bookmark.Remove(v.id);
}
else if (CruiseAssistPlugin.Bookmark.Count <= 128)
{
CruiseAssistPlugin.Bookmark.Add(v.id);
CruiseAssistMainUI.NextCheckGameTick = GameMain.gameTick + 300;
}
}
}
GUILayout.EndHorizontal();
});
}
else
{
GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
nameLabelStyle.normal.textColor = Color.white;
nRangeLabelStyle.normal.textColor = Color.white;
if (CruiseAssistPlugin.SelectTargetStar != null && star3.id == CruiseAssistPlugin.SelectTargetStar.id)
{
nameLabelStyle.normal.textColor = Color.cyan;
nRangeLabelStyle.normal.textColor = Color.cyan;
}
string text4 = starName;
if (CruiseAssistPlugin.Conf.MarkVisitedFlag)
{
text4 = ((star3.planets.Where((PlanetData p) => p.factory != null).Count() > 0) ? "● " : "") + text4;
}
GUILayout.Label(text4, nameLabelStyle, Array.Empty<GUILayoutOption>());
float num4 = nameLabelStyle.CalcHeight(new GUIContent(text4), nameLabelStyle.fixedWidth);
GUILayout.FlexibleSpace();
GUILayout.Label(CruiseAssistMainUI.RangeToString(range), (num4 < 30f) ? nRangeLabelStyle : hRangeLabelStyle, Array.Empty<GUILayoutOption>());
string text5 = ((actionSelected[ListSelected] == 0) ? "SET" : "-");
if (GUILayout.Button(text5, (num4 < 30f) ? nActionButtonStyle : hActionButtonStyle, Array.Empty<GUILayoutOption>()))
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
if (actionSelected[ListSelected] == 0)
{
SelectStar(star3, null);
}
}
GUILayout.EndHorizontal();
}
});
}
else if (ListSelected == 1 || ListSelected == 2)
{
bool highlighted = false;
IEnumerable<int> enumerable2;
if (ListSelected != 1)
{
IEnumerable<int> enumerable = CruiseAssistPlugin.Bookmark.ToList();
enumerable2 = enumerable;
}
else
{
enumerable2 = Enumerable.Reverse(CruiseAssistPlugin.History);
}
IEnumerable<int> enumerable3 = enumerable2;
if (ListSelected == 1 && actionSelected[ListSelected] != 2 && CruiseAssistPlugin.Conf.HideDuplicateHistoryFlag)
{
enumerable3 = enumerable3.Distinct();
}
int listIndex = -1;
CollectionExtensions.Do<int>(enumerable3, (Action<int>)delegate(int id)
{
//IL_0045: 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_0054: Unknown result type (might be due to invalid IL or missing references)
//IL_0059: Unknown result type (might be due to invalid IL or missing references)
//IL_0074: 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_00d9: Unknown result type (might be due to invalid IL or missing references)
//IL_00f4: Unknown result type (might be due to invalid IL or missing references)
//IL_017e: Unknown result type (might be due to invalid IL or missing references)
//IL_0198: Expected O, but got Unknown
//IL_03d9: Unknown result type (might be due to invalid IL or missing references)
//IL_026c: Unknown result type (might be due to invalid IL or missing references)
//IL_02f7: Unknown result type (might be due to invalid IL or missing references)
listIndex++;
PlanetData val4 = GameMain.galaxy.PlanetById(id);
if (val4 != null)
{
StarData star2 = val4.star;
string text = CruiseAssistPlugin.GetStarName(star2);
VectorLF3 val5 = val4.uPosition - GameMain.mainPlayer.uPosition;
double magnitude = ((VectorLF3)(ref val5)).magnitude;
nameLabelStyle.normal.textColor = Color.white;
nRangeLabelStyle.normal.textColor = Color.white;
if (!highlighted && CruiseAssistPlugin.SelectTargetPlanet != null && val4.id == CruiseAssistPlugin.SelectTargetPlanet.id)
{
nameLabelStyle.normal.textColor = Color.cyan;
nRangeLabelStyle.normal.textColor = Color.cyan;
highlighted = true;
}
GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
string text2 = text + " - " + CruiseAssistPlugin.GetPlanetName(val4);
if (CruiseAssistPlugin.Conf.MarkVisitedFlag)
{
text2 = ((val4.factory != null) ? "● " : "") + text2;
}
GUILayout.Label(text2, nameLabelStyle, Array.Empty<GUILayoutOption>());
float num2 = nameLabelStyle.CalcHeight(new GUIContent(text2), nameLabelStyle.fixedWidth);
GUILayout.FlexibleSpace();
GUILayout.Label(CruiseAssistMainUI.RangeToString(magnitude), (num2 < 30f) ? nRangeLabelStyle : hRangeLabelStyle, Array.Empty<GUILayoutOption>());
if (ListSelected == 2 && actionSelected[ListSelected] == 1)
{
int num3 = CruiseAssistPlugin.Bookmark.IndexOf(id);
bool flag = num3 == 0;
bool flag2 = num3 == CruiseAssistPlugin.Bookmark.Count - 1;
if (GUILayout.Button(flag2 ? "-" : "↓", (num2 < 30f) ? nSortButtonStyle : hSortButtonStyle, Array.Empty<GUILayoutOption>()))
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
if (!flag2)
{
CruiseAssistPlugin.Bookmark.RemoveAt(num3);
CruiseAssistPlugin.Bookmark.Insert(num3 + 1, id);
}
}
if (GUILayout.Button(flag ? "-" : "↑", (num2 < 30f) ? nSortButtonStyle : hSortButtonStyle, Array.Empty<GUILayoutOption>()))
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
if (!flag)
{
CruiseAssistPlugin.Bookmark.RemoveAt(num3);
CruiseAssistPlugin.Bookmark.Insert(num3 - 1, id);
}
}
}
else
{
string text3 = ((actionSelected[ListSelected] == 0) ? "SET" : ((actionSelected[ListSelected] != 2) ? (CruiseAssistPlugin.Bookmark.Contains(id) ? "DEL" : "ADD") : ((ListSelected == 1 && listIndex == 0) ? "-" : "DEL")));
if (GUILayout.Button(text3, (num2 < 30f) ? nActionButtonStyle : hActionButtonStyle, Array.Empty<GUILayoutOption>()))
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
if (actionSelected[ListSelected] == 0)
{
SelectStar(star2, val4);
if (CruiseAssistPlugin.Conf.CloseStarListWhenSetTargetPlanetFlag)
{
Show[wIdx] = false;
}
}
else if (actionSelected[ListSelected] == 1)
{
if (ListSelected == 1)
{
if (CruiseAssistPlugin.Bookmark.Contains(id))
{
CruiseAssistPlugin.Bookmark.Remove(id);
}
else if (CruiseAssistPlugin.Bookmark.Count <= 128)
{
CruiseAssistPlugin.Bookmark.Add(id);
CruiseAssistMainUI.NextCheckGameTick = GameMain.gameTick + 300;
}
}
}
else if (actionSelected[ListSelected] == 2)
{
if (ListSelected == 1)
{
if (listIndex != 0)
{
CruiseAssistPlugin.History.RemoveAt(CruiseAssistPlugin.History.Count - 1 - listIndex);
CruiseAssistMainUI.NextCheckGameTick = GameMain.gameTick + 300;
}
}
else if (ListSelected == 2)
{
CruiseAssistPlugin.Bookmark.Remove(val4.id);
CruiseAssistMainUI.NextCheckGameTick = GameMain.gameTick + 300;
}
}
}
}
GUILayout.EndHorizontal();
}
});
}
GUILayout.EndScrollView();
GUILayout.FlexibleSpace();
GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
GUIStyle val3 = new GUIStyle(CruiseAssistMainUI.BaseButtonStyle);
val3.fixedWidth = 80f;
val3.fixedHeight = 20f;
val3.fontSize = 12;
string[][] array2 = new string[3][]
{
new string[2] { "Target", "Bookmark" },
new string[3] { "Target", "Bookmark", "Delete" },
new string[3] { "Target", "Sort", "Delete" }
};
if (GUILayout.Button(array2[ListSelected][actionSelected[ListSelected]], val3, Array.Empty<GUILayoutOption>()))
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
actionSelected[ListSelected]++;
actionSelected[ListSelected] %= array2[ListSelected].Length;
}
GUILayout.FlexibleSpace();
if (!CruiseAssistPlugin.Conf.HideBottomCloseButtonFlag && GUILayout.Button("Close", val3, Array.Empty<GUILayoutOption>()))
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
Show[wIdx] = false;
}
GUILayout.EndHorizontal();
GUILayout.EndVertical();
if (GUI.Button(new Rect(((Rect)(ref Rect[wIdx])).width - 16f, 1f, 16f, 16f), "", CruiseAssistMainUI.CloseButtonStyle))
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
Show[wIdx] = false;
}
GUI.DragWindow();
}
public static void SelectStar(StarData star, PlanetData planet)
{
CruiseAssistPlugin.SelectTargetStar = star;
CruiseAssistPlugin.SelectTargetPlanet = planet;
UIGame uiGame = UIRoot.instance.uiGame;
if (CruiseAssistPlugin.Conf.SelectFocusFlag && ((ManualBehaviour)uiGame.starmap).active)
{
if (star != null)
{
UIStarmapStar val = uiGame.starmap.starUIs.Where((UIStarmapStar s) => s.star.id == star.id).FirstOrDefault();
if ((Object)(object)val != (Object)null)
{
UIStarmap_OnStarClick(uiGame.starmap, val);
uiGame.starmap.OnCursorFunction2Click(0);
}
}
if (planet != null)
{
UIStarmapPlanet val2 = uiGame.starmap.planetUIs.Where((UIStarmapPlanet p) => p.planet.id == planet.id).FirstOrDefault();
if ((Object)(object)val2 != (Object)null)
{
UIStarmap_OnPlanetClick(uiGame.starmap, val2);
uiGame.starmap.OnCursorFunction2Click(0);
}
}
}
if (planet != null)
{
GameMain.mainPlayer.navigation.indicatorAstroId = planet.id;
}
else if (star != null)
{
GameMain.mainPlayer.navigation.indicatorAstroId = star.id * 100;
}
else
{
GameMain.mainPlayer.navigation.indicatorAstroId = 0;
}
CruiseAssistPlugin.SelectTargetAstroId = GameMain.mainPlayer.navigation.indicatorAstroId;
CruiseAssistPlugin.extensions.ForEach(delegate(CruiseAssistExtensionAPI extension)
{
extension.SetTargetAstroId(CruiseAssistPlugin.SelectTargetAstroId);
});
}
private static void UIStarmap_OnStarClick(UIStarmap starmap, UIStarmapStar star)
{
Traverse val = Traverse.Create((object)starmap);
if ((Object)(object)starmap.focusStar != (Object)(object)star)
{
if (starmap.viewPlanet != null || (starmap.viewStar != null && star.star != starmap.viewStar))
{
starmap.screenCameraController.DisablePositionLock();
}
starmap.focusPlanet = null;
starmap.focusStar = star;
val.Field("_lastClickTime").SetValue((object)0.0);
}
val.Field("forceUpdateCursorView").SetValue((object)true);
}
private static void UIStarmap_OnPlanetClick(UIStarmap starmap, UIStarmapPlanet planet)
{
Traverse val = Traverse.Create((object)starmap);
if ((Object)(object)starmap.focusPlanet != (Object)(object)planet)
{
if ((starmap.viewPlanet != null && planet.planet != starmap.viewPlanet) || starmap.viewStar != null)
{
starmap.screenCameraController.DisablePositionLock();
}
starmap.focusPlanet = planet;
starmap.focusStar = null;
val.Field("_lastClickTime").SetValue((object)0.0);
}
val.Field("forceUpdateCursorView").SetValue((object)true);
}
}
public enum CruiseAssistState
{
TO_STAR,
TO_PLANET,
INACTIVE
}
internal class EnumUtils
{
public static bool TryParse<TEnum>(string value, out TEnum result) where TEnum : struct
{
if (value == null || !Enum.IsDefined(typeof(TEnum), value))
{
result = (TEnum)Enum.GetValues(typeof(TEnum)).GetValue(0);
return false;
}
result = (TEnum)Enum.Parse(typeof(TEnum), value);
return true;
}
}
internal class ListUtils
{
public static string ToString(List<int> list)
{
if (list == null || list.Count == 0)
{
return "";
}
return list.Select((int id) => id.ToString()).Aggregate((string a, string b) => a + "," + b);
}
public static string ToString(List<string> list)
{
if (list == null || list.Count == 0)
{
return "";
}
return list.Aggregate((string a, string b) => a + "," + b);
}
public static List<int> ParseToIntList(string str)
{
if (str == null || str.Length == 0)
{
return new List<int>();
}
int result;
return (from s in str.Split(new char[1] { ',' })
where int.TryParse(s, out result)
select s).Select(int.Parse).ToList();
}
public static List<string> ParseToStringList(string str)
{
if (str == null || str.Length == 0)
{
return new List<string>();
}
return str.Split(new char[1] { ',' }).ToList();
}
}
internal static class LogManager
{
public static ManualLogSource Logger { private get; set; }
public static void LogInfo(object data)
{
Logger.LogInfo(data);
}
public static void LogInfo(MethodBase method)
{
Logger.LogInfo((object)(method.DeclaringType.Name + "." + method.Name));
}
public static void LogInfo(MethodBase method, object data)
{
Logger.LogInfo((object)(method.DeclaringType.Name + "." + method.Name + ": " + data));
}
public static void LogError(object data)
{
Logger.LogError(data);
}
public static void LogError(MethodBase method, object data)
{
Logger.LogError((object)(method.DeclaringType.Name + "." + method.Name + ": " + data));
}
}
[HarmonyPatch(typeof(GameMain))]
internal class Patch_GameMain
{
[HarmonyPatch("Begin")]
[HarmonyPostfix]
public static void Begin_Postfix()
{
ConfigManager.CheckConfig(ConfigManager.Step.GAME_MAIN_BEGIN);
CruiseAssistPlugin.extensions.ForEach(delegate(CruiseAssistExtensionAPI extension)
{
extension.CheckConfig(ConfigManager.Step.GAME_MAIN_BEGIN.ToString());
});
}
[HarmonyPatch("Pause")]
[HarmonyPrefix]
public static void Pause_Prefix()
{
ConfigManager.CheckConfig(ConfigManager.Step.STATE);
CruiseAssistPlugin.extensions.ForEach(delegate(CruiseAssistExtensionAPI extension)
{
extension.CheckConfig(ConfigManager.Step.STATE.ToString());
});
}
}
[HarmonyPatch(typeof(PlayerMove_Drift))]
internal class Patch_PlayerMoveDrift
{
[HarmonyPatch("GameTick")]
[HarmonyPrefix]
public static void GameTick_Prefix(PlayerMove_Drift __instance)
{
//IL_0033: Unknown result type (might be due to invalid IL or missing references)
//IL_0039: Invalid comparison between Unknown and I4
//IL_0040: Unknown result type (might be due to invalid IL or missing references)
//IL_004c: Unknown result type (might be due to invalid IL or missing references)
if (!CruiseAssistPlugin.Enable || !CruiseAssistPlugin.TargetSelected || (int)((PlayerAction)__instance).controller.movementStateInFrame != 1)
{
return;
}
if (VFInput._moveForward.pressing || VFInput._pullUp.pressing)
{
CruiseAssistPlugin.Interrupt = true;
CruiseAssistPlugin.extensions.ForEach(delegate(CruiseAssistExtensionAPI extension)
{
extension.CancelOperate();
});