

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using BepInEx;
using BepInEx.Configuration;
using BepInEx.Logging;
using HarmonyLib;
using UnityEngine;
using tanu.CruiseAssist;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: AssemblyVersion("0.0.0.0")]
namespace tanu.AutoPilot;
internal class AutoPilotConfigManager : ConfigManager
{
internal AutoPilotConfigManager(ConfigFile config)
: base(config)
{
}
protected override void CheckConfigImplements(Step step)
{
bool flag = false;
switch (step)
{
case Step.AWAKE:
ConfigManager.Bind("Base", "ModVersion", "1.4.5", "Don't change.").Value = "1.4.5";
flag = true;
LoadGeneralSettings();
break;
case Step.GAME_MAIN_BEGIN:
LoadGeneralSettings();
break;
case Step.STATE:
{
LogManager.LogInfo("Checking state and updating config.");
flag |= ConfigManager.UpdateEntry("Setting", "MinEnergyPer", AutoPilotPlugin.Conf.MinEnergyPer);
flag |= ConfigManager.UpdateEntry("Setting", "MaxSpeed", AutoPilotPlugin.Conf.MaxSpeed);
flag |= ConfigManager.UpdateEntry("Setting", "WarpMinRangeAU", AutoPilotPlugin.Conf.WarpMinRangeAU);
flag |= ConfigManager.UpdateEntry("Setting", "WarpSpeed", AutoPilotPlugin.Conf.SpeedToWarp);
flag |= ConfigManager.UpdateEntry("Setting", "LocalWarp", AutoPilotPlugin.Conf.LocalWarpFlag);
flag |= ConfigManager.UpdateEntry("Setting", "AutoStart", AutoPilotPlugin.Conf.AutoStartFlag);
flag |= ConfigManager.UpdateEntry("Setting", "MainWindowJoin", AutoPilotPlugin.Conf.MainWindowJoinFlag);
flag |= ConfigManager.UpdateEntry("Setting", "SpeedUpWhenFlying", AutoPilotPlugin.Conf.SpeedUpWhenFlying);
flag |= ConfigManager.UpdateEntry("Setting", "AvoidGasGiants", AutoPilotPlugin.Conf.AvoidGasGiants);
for (int i = 0; i < 2; i++)
{
flag |= ConfigManager.UpdateEntry("State", $"MainWindow{i}Left", (int)((Rect)(ref AutoPilotMainUI.Rect[i])).x);
flag |= ConfigManager.UpdateEntry("State", $"MainWindow{i}Top", (int)((Rect)(ref AutoPilotMainUI.Rect[i])).y);
flag |= ConfigManager.UpdateEntry("State", $"ConfigWindow{i}Left", (int)((Rect)(ref AutoPilotConfigUI.Rect[i])).x);
flag |= ConfigManager.UpdateEntry("State", $"ConfigWindow{i}Top", (int)((Rect)(ref AutoPilotConfigUI.Rect[i])).y);
}
flag |= ConfigManager.UpdateEntry("State", "DebugWindowLeft", (int)((Rect)(ref AutoPilotDebugUI.Rect)).x);
flag |= ConfigManager.UpdateEntry("State", "DebugWindowTop", (int)((Rect)(ref AutoPilotDebugUI.Rect)).y);
AutoPilotMainUI.NextCheckGameTick = long.MaxValue;
break;
}
}
if (flag)
{
ConfigManager.Save();
}
}
private void LoadGeneralSettings()
{
AutoPilotDebugUI.Show = ConfigManager.Bind("Debug", "DebugWindowShow", defaultValue: false).Value;
AutoPilotPlugin.Conf.MinEnergyPer = ConfigManager.Bind("Setting", "MinEnergyPer", 20).Value;
AutoPilotPlugin.Conf.MaxSpeed = ConfigManager.Bind("Setting", "MaxSpeed", 2000).Value;
AutoPilotPlugin.Conf.WarpMinRangeAU = ConfigManager.Bind("Setting", "WarpMinRangeAU", 2).Value;
AutoPilotPlugin.Conf.SpeedToWarp = ConfigManager.Bind("Setting", "WarpSpeed", 400).Value;
AutoPilotPlugin.Conf.LocalWarpFlag = ConfigManager.Bind("Setting", "LocalWarp", defaultValue: false).Value;
AutoPilotPlugin.Conf.AutoStartFlag = ConfigManager.Bind("Setting", "AutoStart", defaultValue: true).Value;
AutoPilotPlugin.Conf.MainWindowJoinFlag = ConfigManager.Bind("Setting", "MainWindowJoin", defaultValue: true).Value;
AutoPilotPlugin.Conf.SpeedUpWhenFlying = ConfigManager.Bind("Setting", "SpeedUpWhenFlying", defaultValue: true).Value;
AutoPilotPlugin.Conf.AvoidGasGiants = ConfigManager.Bind("Setting", "AvoidGasGiants", defaultValue: true).Value;
for (int i = 0; i < 2; i++)
{
((Rect)(ref AutoPilotMainUI.Rect[i])).x = ConfigManager.Bind("State", $"MainWindow{i}Left", 100).Value;
((Rect)(ref AutoPilotMainUI.Rect[i])).y = ConfigManager.Bind("State", $"MainWindow{i}Top", 100).Value;
((Rect)(ref AutoPilotConfigUI.Rect[i])).x = ConfigManager.Bind("State", $"ConfigWindow{i}Left", 100).Value;
((Rect)(ref AutoPilotConfigUI.Rect[i])).y = ConfigManager.Bind("State", $"ConfigWindow{i}Top", 100).Value;
}
((Rect)(ref AutoPilotDebugUI.Rect)).x = ConfigManager.Bind("State", "DebugWindowLeft", 100).Value;
((Rect)(ref AutoPilotDebugUI.Rect)).y = ConfigManager.Bind("State", "DebugWindowTop", 100).Value;
}
}
internal class AutoPilotConfigUI
{
public static GUIStyle LabelStyle = null;
public static GUIStyle FieldStyle = null;
public static GUIStyle ToggleStyle = null;
private const int WindowId = 99031292;
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 string TempMinEnergyPer;
public static string TempMaxSpeed;
public static string TempWarpMinRangeAU;
public static string TempSpeedToWarp;
public static void OnGUI()
{
//IL_0023: 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_0048: Expected O, but got Unknown
//IL_0043: Unknown result type (might be due to invalid IL or missing references)
//IL_0048: Unknown result type (might be due to invalid IL or missing references)
wIdx = CruiseAssistMainUI.wIdx;
Rect[wIdx] = GUILayout.Window(99031292, Rect[wIdx], new WindowFunction(WindowFunction), "AutoPilot - Config", CruiseAssistMainUI.WindowStyle, Array.Empty<GUILayoutOption>());
float num = CruiseAssistMainUI.Scale / 100f;
float num2 = (float)Screen.width / num - ((Rect)(ref Rect[wIdx])).width;
if (((Rect)(ref Rect[wIdx])).x > num2)
{
((Rect)(ref Rect[wIdx])).x = num2;
}
if (((Rect)(ref Rect[wIdx])).x < 0f)
{
((Rect)(ref Rect[wIdx])).x = 0f;
}
float num3 = (float)Screen.height / num - ((Rect)(ref Rect[wIdx])).height;
if (((Rect)(ref Rect[wIdx])).y > num3)
{
((Rect)(ref Rect[wIdx])).y = num3;
}
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]))
{
AutoPilotMainUI.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_001b: Unknown result type (might be due to invalid IL or missing references)
//IL_0020: Unknown result type (might be due to invalid IL or missing references)
//IL_0028: Unknown result type (might be due to invalid IL or missing references)
//IL_0033: Unknown result type (might be due to invalid IL or missing references)
//IL_003f: Expected O, but got Unknown
//IL_004b: Unknown result type (might be due to invalid IL or missing references)
//IL_0050: Unknown result type (might be due to invalid IL or missing references)
//IL_0058: Unknown result type (might be due to invalid IL or missing references)
//IL_0063: Unknown result type (might be due to invalid IL or missing references)
//IL_006e: Unknown result type (might be due to invalid IL or missing references)
//IL_007a: Expected O, but got Unknown
//IL_0355: Unknown result type (might be due to invalid IL or missing references)
//IL_02ac: Unknown result type (might be due to invalid IL or missing references)
//IL_02b6: Expected O, but got Unknown
//IL_0371: Unknown result type (might be due to invalid IL or missing references)
GUILayout.BeginVertical(Array.Empty<GUILayoutOption>());
if (LabelStyle == null)
{
LabelStyle = new GUIStyle(GUI.skin.label)
{
fontSize = 12,
fixedHeight = 20f,
alignment = (TextAnchor)3
};
}
if (FieldStyle == null)
{
FieldStyle = new GUIStyle(CruiseAssistMainUI.BaseTextFieldStyle)
{
fontSize = 12,
fixedWidth = 60f,
fixedHeight = 20f,
alignment = (TextAnchor)5
};
}
GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
LabelStyle.fixedWidth = 240f;
GUILayout.Label(Localization.Translate("Min Energy Percent (0-100 default:20)"), LabelStyle, Array.Empty<GUILayoutOption>());
GUILayout.FlexibleSpace();
string input = GUILayout.TextField(TempMinEnergyPer, FieldStyle, Array.Empty<GUILayoutOption>());
SetValue(ref TempMinEnergyPer, input, 0, 100, ref AutoPilotPlugin.Conf.MinEnergyPer);
LabelStyle.fixedWidth = 20f;
GUILayout.Label("%", LabelStyle, Array.Empty<GUILayoutOption>());
GUILayout.EndHorizontal();
GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
LabelStyle.fixedWidth = 240f;
GUILayout.Label(Localization.Translate("Max Speed (0-2000 default:2000)"), LabelStyle, Array.Empty<GUILayoutOption>());
GUILayout.FlexibleSpace();
string input2 = GUILayout.TextField(TempMaxSpeed, FieldStyle, Array.Empty<GUILayoutOption>());
SetValue(ref TempMaxSpeed, input2, 0, 2000, ref AutoPilotPlugin.Conf.MaxSpeed);
LabelStyle.fixedWidth = 20f;
GUILayout.Label("m/s", LabelStyle, Array.Empty<GUILayoutOption>());
GUILayout.EndHorizontal();
GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
LabelStyle.fixedWidth = 240f;
GUILayout.Label(Localization.Translate("Warp Min Range (0-60 default:2)"), LabelStyle, Array.Empty<GUILayoutOption>());
GUILayout.FlexibleSpace();
string input3 = GUILayout.TextField(TempWarpMinRangeAU, FieldStyle, Array.Empty<GUILayoutOption>());
SetValue(ref TempWarpMinRangeAU, input3, 0, 60, ref AutoPilotPlugin.Conf.WarpMinRangeAU);
LabelStyle.fixedWidth = 20f;
GUILayout.Label("AU", LabelStyle, Array.Empty<GUILayoutOption>());
GUILayout.EndHorizontal();
GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
LabelStyle.fixedWidth = 240f;
GUILayout.Label(Localization.Translate("Speed to warp (0-2000 default:400)"), LabelStyle, Array.Empty<GUILayoutOption>());
GUILayout.FlexibleSpace();
string input4 = GUILayout.TextField(TempSpeedToWarp, FieldStyle, Array.Empty<GUILayoutOption>());
SetValue(ref TempSpeedToWarp, input4, 0, 2000, ref AutoPilotPlugin.Conf.SpeedToWarp);
LabelStyle.fixedWidth = 20f;
GUILayout.Label("m/s", LabelStyle, Array.Empty<GUILayoutOption>());
GUILayout.EndHorizontal();
if (ToggleStyle == null)
{
ToggleStyle = new GUIStyle(CruiseAssistMainUI.BaseToggleStyle);
ToggleStyle.fixedHeight = 20f;
ToggleStyle.fontSize = 12;
ToggleStyle.alignment = (TextAnchor)6;
}
ToggleOption(ref AutoPilotPlugin.Conf.LocalWarpFlag, "Warp to planet in local system.");
ToggleOption(ref AutoPilotPlugin.Conf.AutoStartFlag, "Start AutoPilot when set target planet.");
ToggleOption(ref AutoPilotPlugin.Conf.MainWindowJoinFlag, "Join AutoPilot window to CruiseAssist window.");
ToggleOption(ref AutoPilotPlugin.Conf.SpeedUpWhenFlying, "Speed up during takeoff.");
ToggleOption(ref AutoPilotPlugin.Conf.AvoidGasGiants, "Avoid crashing into gas giants.");
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();
}
private static void ToggleOption(ref bool option, string label)
{
//IL_002c: Unknown result type (might be due to invalid IL or missing references)
GUI.changed = false;
option = GUILayout.Toggle(option, Localization.Translate(label), ToggleStyle, Array.Empty<GUILayoutOption>());
if (GUI.changed)
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
AutoPilotMainUI.NextCheckGameTick = GameMain.gameTick + 300;
}
}
private static bool SetValue(ref string temp, string input, int min, int max, ref int value)
{
if (string.IsNullOrWhiteSpace(input))
{
temp = string.Empty;
return false;
}
if (int.TryParse(input, out var result))
{
result = Mathf.Clamp(result, min, max);
value = result;
temp = value.ToString();
return true;
}
return false;
}
}
internal class AutoPilotDebugUI
{
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_000a: Unknown result type (might be due to invalid IL or missing references)
//IL_000f: Unknown result type (might be due to invalid IL or missing references)
//IL_0018: Expected O, but got Unknown
//IL_001d: Unknown result type (might be due to invalid IL or missing references)
//IL_0029: Unknown result type (might be due to invalid IL or missing references)
//IL_003e: Expected O, but got Unknown
//IL_0039: Unknown result type (might be due to invalid IL or missing references)
//IL_003e: Unknown result type (might be due to invalid IL or missing references)
GUIStyle val = new GUIStyle(GUI.skin.window)
{
fontSize = 11
};
Rect = GUILayout.Window(99031293, Rect, new WindowFunction(WindowFunction), "AutoPilot - Debug", val, Array.Empty<GUILayoutOption>());
_ = 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))
{
AutoPilotMainUI.NextCheckGameTick = GameMain.gameTick + 300;
}
lastCheckWindowLeft = ((Rect)(ref Rect)).x;
lastCheckWindowTop = ((Rect)(ref Rect)).y;
if (AutoPilotMainUI.NextCheckGameTick <= GameMain.gameTick)
{
ConfigManager.CheckConfig(ConfigManager.Step.STATE);
}
}
public static void WindowFunction(int windowId)
{
//IL_0014: Unknown result type (might be due to invalid IL or missing references)
//IL_0019: Unknown result type (might be due to invalid IL or missing references)
//IL_0022: Expected O, but got Unknown
//IL_0022: Unknown result type (might be due to invalid IL or missing references)
//IL_002c: Unknown result type (might be due to invalid IL or missing references)
//IL_0031: 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)
//IL_0222: Unknown result type (might be due to invalid IL or missing references)
//IL_0227: Unknown result type (might be due to invalid IL or missing references)
//IL_022e: Unknown result type (might be due to invalid IL or missing references)
//IL_02b6: Unknown result type (might be due to invalid IL or missing references)
//IL_02bd: Expected O, but got Unknown
//IL_0064: Unknown result type (might be due to invalid IL or missing references)
//IL_0069: Unknown result type (might be due to invalid IL or missing references)
//IL_0308: Unknown result type (might be due to invalid IL or missing references)
//IL_007f: Unknown result type (might be due to invalid IL or missing references)
//IL_0084: 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_008c: Unknown result type (might be due to invalid IL or missing references)
//IL_0091: Unknown result type (might be due to invalid IL or missing references)
//IL_009c: Unknown result type (might be due to invalid IL or missing references)
//IL_00a2: Unknown result type (might be due to invalid IL or missing references)
//IL_00a7: Unknown result type (might be due to invalid IL or missing references)
//IL_00ac: Unknown result type (might be due to invalid IL or missing references)
//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
//IL_00c3: Unknown result type (might be due to invalid IL or missing references)
//IL_00c8: Unknown result type (might be due to invalid IL or missing references)
//IL_00cd: Unknown result type (might be due to invalid IL or missing references)
//IL_00d4: 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_00de: Unknown result type (might be due to invalid IL or missing references)
//IL_013d: 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_0144: Unknown result type (might be due to invalid IL or missing references)
//IL_0146: Unknown result type (might be due to invalid IL or missing references)
GUILayout.BeginVertical(Array.Empty<GUILayoutOption>());
GUIStyle val = new GUIStyle(GUI.skin.label)
{
fontSize = 12
};
scrollPos = GUILayout.BeginScrollView(scrollPos, Array.Empty<GUILayoutOption>());
GUILayout.Label($"GameMain.mainPlayer.uPosition={GameMain.mainPlayer.uPosition}", val, Array.Empty<GUILayoutOption>());
if (GameMain.localPlanet != null && CruiseAssistPlugin.TargetUPos != VectorLF3.zero)
{
Player mainPlayer = GameMain.mainPlayer;
VectorLF3 targetUPos = CruiseAssistPlugin.TargetUPos;
VectorLF3 val2 = targetUPos - mainPlayer.uPosition;
double magnitude = ((VectorLF3)(ref val2)).magnitude;
val2 = targetUPos - GameMain.localPlanet.uPosition;
double magnitude2 = ((VectorLF3)(ref val2)).magnitude;
VectorLF3 val3 = mainPlayer.uPosition - GameMain.localPlanet.uPosition;
VectorLF3 val4 = targetUPos - GameMain.localPlanet.uPosition;
GUILayout.Label("range1=" + RangeToString(magnitude), val, Array.Empty<GUILayoutOption>());
GUILayout.Label("range2=" + RangeToString(magnitude2), val, Array.Empty<GUILayoutOption>());
GUILayout.Label($"range1>range2={magnitude > magnitude2}", val, Array.Empty<GUILayoutOption>());
GUILayout.Label($"angle={Vector3.Angle(VectorLF3.op_Implicit(val3), VectorLF3.op_Implicit(val4))}", val, Array.Empty<GUILayoutOption>());
}
Mecha mecha = GameMain.mainPlayer.mecha;
GUILayout.Label($"mecha.coreEnergy={mecha.coreEnergy}", val, Array.Empty<GUILayoutOption>());
GUILayout.Label($"mecha.coreEnergyCap={mecha.coreEnergyCap}", val, Array.Empty<GUILayoutOption>());
double num = mecha.coreEnergy / mecha.coreEnergyCap * 100.0;
GUILayout.Label($"energyPer={num}", val, Array.Empty<GUILayoutOption>());
double magnitude3 = ((VectorLF3)(ref GameMain.mainPlayer.controller.actionSail.visual_uvel)).magnitude;
GUILayout.Label("spped=" + RangeToString(magnitude3), val, Array.Empty<GUILayoutOption>());
EMovementState movementStateInFrame = GameMain.mainPlayer.controller.movementStateInFrame;
GUILayout.Label($"movementStateInFrame={movementStateInFrame}", val, Array.Empty<GUILayoutOption>());
GUILayout.Label($"safeToGo={AutoPilotPlugin.safeToGo}", val, Array.Empty<GUILayoutOption>());
GUILayout.Label($"player.navigation.navigating={GameMain.mainPlayer.navigation.navigating}", val, Array.Empty<GUILayoutOption>());
GUILayout.Label($"IsLocalPlanetSatellite={AutoPilotPlugin.IsLocalPlanetSatellite()}", val, Array.Empty<GUILayoutOption>());
GUIStyle val5 = new GUIStyle(GUI.skin.toggle);
val5.fixedHeight = 20f;
val5.fontSize = 12;
val5.alignment = (TextAnchor)6;
GUI.changed = false;
AutoPilotPlugin.Conf.IgnoreGravityFlag = GUILayout.Toggle(AutoPilotPlugin.Conf.IgnoreGravityFlag, "Ignore gravity.", val5, Array.Empty<GUILayoutOption>());
if (GUI.changed)
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
}
GUILayout.EndScrollView();
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";
}
}
internal class AutoPilotExtension : CruiseAssistExtensionAPI
{
public bool CheckActive()
{
return AutoPilotPlugin.State == AutoPilotState.ACTIVE;
}
public void CheckConfig(string step)
{
if (Enum.TryParse<ConfigManager.Step>(step, out var result))
{
ConfigManager.CheckConfig(result);
}
}
public void SetTargetAstroId(int astroId)
{
LogManager.LogInfo("Trying set auto start.");
if (AutoPilotPlugin.State != 0 && AutoPilotPlugin.Conf.AutoStartFlag)
{
AutoPilotPlugin.State = AutoPilotState.ACTIVE;
}
SetSpeedUpInput(enable: false);
}
public bool OperateWalk(PlayerMove_Walk __instance)
{
return OperateLocomotion(((PlayerAction)__instance).player, isFlying: false);
}
public bool OperateDrift(PlayerMove_Drift __instance)
{
return OperateLocomotion(((PlayerAction)__instance).player, isFlying: false);
}
public bool OperateFly(PlayerMove_Fly __instance)
{
return OperateLocomotion(((PlayerAction)__instance).player, isFlying: true);
}
public bool OperateSail(PlayerMove_Sail __instance)
{
UpdateSafetyStatus(((PlayerAction)__instance).player);
if (AutoPilotPlugin.State == AutoPilotState.INACTIVE)
{
return false;
}
Player player = ((PlayerAction)__instance).player;
Mecha mecha = player.mecha;
UpdatePlayerSailState(player, mecha);
if (player.warping)
{
AutoPilotPlugin.warped = true;
return false;
}
if (AutoPilotPlugin.EnergyPer < (double)AutoPilotPlugin.Conf.MinEnergyPer)
{
return false;
}
HandleGravity(player);
HandleSpeedUp();
if (GameMain.localPlanet == null && AutoPilotPlugin.safeToGo)
{
HandleWarp(player, mecha);
return false;
}
return HandlePlanetProximity(player);
}
public void SetInactive()
{
AutoPilotPlugin.State = AutoPilotState.INACTIVE;
AutoPilotPlugin.InputSailSpeedUp = false;
AutoPilotPlugin.warped = false;
}
public void CancelOperate()
{
SetInactive();
}
public void OnGUI()
{
//IL_003a: Unknown result type (might be due to invalid IL or missing references)
//IL_0061: Unknown result type (might be due to invalid IL or missing references)
//IL_0078: Unknown result type (might be due to invalid IL or missing references)
float scale = CruiseAssistMainUI.Scale / 100f;
AutoPilotMainUI.OnGUI();
if (AutoPilotConfigUI.Show[CruiseAssistMainUI.wIdx])
{
AutoPilotConfigUI.OnGUI();
}
if (AutoPilotDebugUI.Show)
{
AutoPilotDebugUI.OnGUI();
}
bool flag = ResetInputOnMouseActivity(AutoPilotMainUI.Rect[CruiseAssistMainUI.wIdx], scale);
if (!flag && AutoPilotConfigUI.Show[CruiseAssistMainUI.wIdx])
{
flag = ResetInputOnMouseActivity(AutoPilotConfigUI.Rect[CruiseAssistMainUI.wIdx], scale);
}
if (!flag && AutoPilotDebugUI.Show)
{
flag = ResetInputOnMouseActivity(AutoPilotDebugUI.Rect, scale);
}
}
private bool OperateLocomotion(Player player, bool isFlying)
{
if (AutoPilotPlugin.State == AutoPilotState.INACTIVE)
{
return false;
}
UpdatePlayerLocomotionState(player);
if (isFlying)
{
player.controller.input0.y += 1f;
player.controller.input1.y += 1f;
if (AutoPilotPlugin.Conf.SpeedUpWhenFlying)
{
SetSpeedUpInput(enable: true);
}
}
else
{
player.controller.input0.z = 1f;
SetSpeedUpInput(enable: false);
}
return true;
}
private void UpdatePlayerLocomotionState(Player player)
{
Mecha mecha = player.mecha;
AutoPilotPlugin.EnergyPer = mecha.coreEnergy / mecha.coreEnergyCap * 100.0;
AutoPilotPlugin.Speed = ((VectorLF3)(ref player.controller.actionSail.visual_uvel)).magnitude;
AutoPilotPlugin.WarperCount = mecha.warpStorage.GetItemCount(1210);
AutoPilotPlugin.LeavePlanet = true;
AutoPilotPlugin.SpeedUp = false;
AutoPilotPlugin.InputSailSpeedUp = false;
HandleGravity(player);
}
private void UpdatePlayerSailState(Player player, Mecha mecha)
{
AutoPilotPlugin.EnergyPer = mecha.coreEnergy / mecha.coreEnergyCap * 100.0;
AutoPilotPlugin.Speed = ((VectorLF3)(ref player.controller.actionSail.visual_uvel)).magnitude;
AutoPilotPlugin.WarperCount = mecha.warpStorage.GetItemCount(1210);
AutoPilotPlugin.LeavePlanet = false;
AutoPilotPlugin.SpeedUp = false;
AutoPilotPlugin.InputSailSpeedUp = false;
}
private bool CheckPathSafety(Player player, PlanetData planet)
{
//IL_0001: Unknown result type (might be due to invalid IL or missing references)
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
//IL_0007: Unknown result type (might be due to invalid IL or missing references)
//IL_000d: Unknown result type (might be due to invalid IL or missing references)
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_0025: Unknown result type (might be due to invalid IL or missing references)
//IL_002a: 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_002c: Unknown result type (might be due to invalid IL or missing references)
//IL_0031: 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_0033: Unknown result type (might be due to invalid IL or missing references)
//IL_0076: Unknown result type (might be due to invalid IL or missing references)
//IL_007d: Unknown result type (might be due to invalid IL or missing references)
//IL_0082: Unknown result type (might be due to invalid IL or missing references)
//IL_0083: Unknown result type (might be due to invalid IL or missing references)
//IL_0088: Unknown result type (might be due to invalid IL or missing references)
VectorLF3 uPosition = player.uPosition;
VectorLF3 targetUPos = CruiseAssistPlugin.TargetUPos;
VectorLF3 uPosition2 = planet.uPosition;
double num = (double)planet.realRadius + 400.0;
VectorLF3 val = uPosition2 - uPosition;
VectorLF3 val2 = targetUPos - uPosition;
double num2 = VectorLF3.Dot(val, val2);
double magnitude = ((VectorLF3)(ref val2)).magnitude;
if (num2 < 0.0 || magnitude == 0.0)
{
return true;
}
double num3 = Math.Abs(num2) / magnitude;
if (magnitude < num3)
{
return true;
}
VectorLF3 val3 = ((VectorLF3)(ref val2)).normalized * num3 - val;
return ((VectorLF3)(ref val3)).magnitude > num;
}
private void UpdateSafetyStatus(Player player)
{
if (AutoPilotPlugin.lastVisitedPlanet == null || GameMain.localStar == null)
{
AutoPilotPlugin.safeToGo = true;
return;
}
bool flag = true;
PlanetData lastVisitedPlanet = AutoPilotPlugin.lastVisitedPlanet;
flag = flag && CheckPathSafety(player, lastVisitedPlanet);
if (AutoPilotPlugin.Conf.AvoidGasGiants && lastVisitedPlanet.orbitAround != 0)
{
PlanetData orbitAroundPlanet = lastVisitedPlanet.orbitAroundPlanet;
flag = flag && CheckPathSafety(player, orbitAroundPlanet);
}
AutoPilotPlugin.safeToGo = flag;
}
private void HandleGravity(Player player)
{
//IL_000d: Unknown result type (might be due to invalid IL or missing references)
//IL_0012: Unknown result type (might be due to invalid IL or missing references)
//IL_001d: Unknown result type (might be due to invalid IL or missing references)
//IL_0022: Unknown result type (might be due to invalid IL or missing references)
//IL_0027: Unknown result type (might be due to invalid IL or missing references)
if (AutoPilotPlugin.Conf.IgnoreGravityFlag)
{
player.controller.universalGravity = VectorLF3.zero;
player.controller.localGravity = VectorLF3.op_Implicit(VectorLF3.zero);
}
}
private void HandleSpeedUp()
{
if (AutoPilotPlugin.Speed < (double)AutoPilotPlugin.Conf.MaxSpeed)
{
SetSpeedUpInput(enable: true);
}
}
private void SetSpeedUpInput(bool enable)
{
AutoPilotPlugin.InputSailSpeedUp = enable;
AutoPilotPlugin.SpeedUp = enable;
}
private void HandleWarp(Player player, Mecha mecha)
{
//IL_00b6: Unknown result type (might be due to invalid IL or missing references)
if (AutoPilotPlugin.Conf.LocalWarpFlag || GameMain.localStar == null || (CruiseAssistPlugin.TargetStar != null && CruiseAssistPlugin.TargetStar.id != GameMain.localStar.id) || CruiseAssistPlugin.TargetEnemyId != 0)
{
bool num = (double)AutoPilotPlugin.Conf.WarpMinRangeAU * 40000.0 <= CruiseAssistPlugin.TargetRange;
bool flag = (double)AutoPilotPlugin.Conf.SpeedToWarp <= AutoPilotPlugin.Speed;
bool flag2 = AutoPilotPlugin.WarperCount >= 1;
bool flag3 = mecha.coreEnergy > mecha.warpStartPowerPerSpeed * (double)mecha.maxWarpSpeed;
if (num && flag && flag2 && flag3 && !AutoPilotPlugin.warped && mecha.UseWarper())
{
player.warpCommand = true;
AutoPilotPlugin.warped = true;
VFAudio.Create("warp-begin", player.transform, Vector3.zero, true, 0, -1, -1L);
}
}
}
private bool HandlePlanetProximity(Player player)
{
//IL_0030: Unknown result type (might be due to invalid IL or missing references)
//IL_0036: Unknown result type (might be due to invalid IL or missing references)
//IL_003b: Unknown result type (might be due to invalid IL or missing references)
//IL_0040: Unknown result type (might be due to invalid IL or missing references)
//IL_0044: Unknown result type (might be due to invalid IL or missing references)
//IL_0049: Unknown result type (might be due to invalid IL or missing references)
//IL_00bc: Unknown result type (might be due to invalid IL or missing references)
//IL_00c1: Unknown result type (might be due to invalid IL or missing references)
//IL_00c6: Unknown result type (might be due to invalid IL or missing references)
//IL_00c7: Unknown result type (might be due to invalid IL or missing references)
//IL_00e4: Unknown result type (might be due to invalid IL or missing references)
//IL_00f8: Unknown result type (might be due to invalid IL or missing references)
//IL_00fd: Unknown result type (might be due to invalid IL or missing references)
//IL_0100: 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_010a: Unknown result type (might be due to invalid IL or missing references)
//IL_010c: 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_0117: Unknown result type (might be due to invalid IL or missing references)
//IL_011d: 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_0127: Unknown result type (might be due to invalid IL or missing references)
//IL_0147: Unknown result type (might be due to invalid IL or missing references)
//IL_014c: Unknown result type (might be due to invalid IL or missing references)
//IL_014e: Unknown result type (might be due to invalid IL or missing references)
//IL_0153: Unknown result type (might be due to invalid IL or missing references)
//IL_0062: Unknown result type (might be due to invalid IL or missing references)
//IL_0068: Unknown result type (might be due to invalid IL or missing references)
//IL_006d: Unknown result type (might be due to invalid IL or missing references)
//IL_0072: Unknown result type (might be due to invalid IL or missing references)
//IL_0076: Unknown result type (might be due to invalid IL or missing references)
//IL_007c: Unknown result type (might be due to invalid IL or missing references)
//IL_0083: Unknown result type (might be due to invalid IL or missing references)
//IL_0088: Unknown result type (might be due to invalid IL or missing references)
//IL_008d: Unknown result type (might be due to invalid IL or missing references)
//IL_0091: Unknown result type (might be due to invalid IL or missing references)
//IL_0096: Unknown result type (might be due to invalid IL or missing references)
//IL_009b: Unknown result type (might be due to invalid IL or missing references)
//IL_009f: Unknown result type (might be due to invalid IL or missing references)
//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
//IL_00b8: Unknown result type (might be due to invalid IL or missing references)
//IL_00ba: Unknown result type (might be due to invalid IL or missing references)
if (GameMain.localPlanet != null)
{
AutoPilotPlugin.lastVisitedPlanet = GameMain.localPlanet;
}
if (AutoPilotPlugin.lastVisitedPlanet == null)
{
return false;
}
PlanetData lastVisitedPlanet = AutoPilotPlugin.lastVisitedPlanet;
if (AutoPilotPlugin.safeToGo)
{
return false;
}
AutoPilotPlugin.LeavePlanet = true;
VectorLF3 val = player.uPosition - lastVisitedPlanet.uPosition;
VectorLF3 val2 = ((VectorLF3)(ref val)).normalized;
if (AutoPilotPlugin.Conf.AvoidGasGiants && lastVisitedPlanet.orbitAround != 0)
{
PlanetData orbitAroundPlanet = lastVisitedPlanet.orbitAroundPlanet;
val = player.uPosition - lastVisitedPlanet.uPosition;
VectorLF3 normalized = ((VectorLF3)(ref val)).normalized;
val = player.uPosition - orbitAroundPlanet.uPosition;
val = normalized + ((VectorLF3)(ref val)).normalized;
VectorLF3 normalized2 = ((VectorLF3)(ref val)).normalized;
if (((VectorLF3)(ref normalized2)).magnitude > 0.0)
{
val2 = normalized2;
}
}
float num = Vector3.Angle(VectorLF3.op_Implicit(player.uVelocity), VectorLF3.op_Implicit(val2));
float num2 = 1.6f / Mathf.Max(10f, num);
VectorLF3 val3 = val2 * Math.Max(AutoPilotPlugin.Speed, 200.0);
VectorLF3 val4 = VectorLF3.op_Implicit(Vector3.Slerp(VectorLF3.op_Implicit(player.uVelocity), VectorLF3.op_Implicit(val3), num2)) - player.uVelocity;
player.controller.actionSail.UseSailEnergy(ref val4, 1.5);
player.uVelocity += val4;
return true;
}
private bool ResetInputOnMouseActivity(Rect windowRect, float scale)
{
//IL_0027: Unknown result type (might be due to invalid IL or missing references)
//IL_0038: Unknown result type (might be due to invalid IL or missing references)
//IL_0077: Unknown result type (might be due to invalid IL or missing references)
float num = ((Rect)(ref windowRect)).xMin * scale;
float num2 = ((Rect)(ref windowRect)).xMax * scale;
float num3 = ((Rect)(ref windowRect)).yMin * scale;
float num4 = ((Rect)(ref windowRect)).yMax * scale;
float x = Input.mousePosition.x;
float num5 = (float)Screen.height - Input.mousePosition.y;
if (num <= x && x <= num2 && num3 <= num5 && num5 <= num4)
{
bool num6 = Input.GetMouseButton(0) || Input.GetMouseButton(1) || Input.GetMouseButton(2);
bool flag = Input.mouseScrollDelta.y != 0f;
if (num6 || flag)
{
Input.ResetInputAxes();
return true;
}
}
return false;
}
}
internal class AutoPilotMainUI
{
public static GUIStyle statusLabelStyle = null;
public static GUIStyle mainStatusLabelStyle = null;
public static GUIStyle buttonStyle = null;
private static int wIdx = 0;
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 readonly float[] lastCheckWindowLeft = new float[2]
{
float.MinValue,
float.MinValue
};
private static readonly float[] lastCheckWindowTop = new float[2]
{
float.MinValue,
float.MinValue
};
public static long NextCheckGameTick = long.MaxValue;
public static void OnGUI()
{
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
//IL_000f: Unknown result type (might be due to invalid IL or missing references)
//IL_0010: Unknown result type (might be due to invalid IL or missing references)
//IL_0013: Unknown result type (might be due to invalid IL or missing references)
//IL_0015: Invalid comparison between Unknown and I4
//IL_00c7: Unknown result type (might be due to invalid IL or missing references)
//IL_00d3: Unknown result type (might be due to invalid IL or missing references)
//IL_00e8: Expected O, but got Unknown
//IL_00e3: Unknown result type (might be due to invalid IL or missing references)
//IL_00e8: Unknown result type (might be due to invalid IL or missing references)
wIdx = CruiseAssistMainUI.wIdx;
CruiseAssistMainUIViewMode viewMode = CruiseAssistMainUI.ViewMode;
if ((int)viewMode != 0)
{
if ((int)viewMode == 1)
{
((Rect)(ref Rect[wIdx])).width = ((Rect)(ref CruiseAssistMainUI.Rect[wIdx])).width;
((Rect)(ref Rect[wIdx])).height = 70f;
}
}
else
{
((Rect)(ref Rect[wIdx])).width = ((Rect)(ref CruiseAssistMainUI.Rect[wIdx])).width;
((Rect)(ref Rect[wIdx])).height = 150f;
}
GUIStyle windowStyle = CruiseAssistMainUI.WindowStyle;
windowStyle.fontSize = 11;
Rect[wIdx] = GUILayout.Window(99031291, Rect[wIdx], new WindowFunction(WindowFunction), "AutoPilot", windowStyle, Array.Empty<GUILayoutOption>());
float num = CruiseAssistMainUI.Scale / 100f;
if (AutoPilotPlugin.Conf.MainWindowJoinFlag)
{
((Rect)(ref Rect[wIdx])).x = ((Rect)(ref CruiseAssistMainUI.Rect[CruiseAssistMainUI.wIdx])).x;
((Rect)(ref Rect[wIdx])).y = ((Rect)(ref CruiseAssistMainUI.Rect[CruiseAssistMainUI.wIdx])).yMax;
}
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]))
{
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_000a: Unknown result type (might be due to invalid IL or missing references)
//IL_02c5: Unknown result type (might be due to invalid IL or missing references)
//IL_02ca: Unknown result type (might be due to invalid IL or missing references)
//IL_02d5: Unknown result type (might be due to invalid IL or missing references)
//IL_02e0: Unknown result type (might be due to invalid IL or missing references)
//IL_02e8: Unknown result type (might be due to invalid IL or missing references)
//IL_02f4: Expected O, but got Unknown
//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)
//IL_0041: Expected O, but got Unknown
//IL_0330: Unknown result type (might be due to invalid IL or missing references)
//IL_0306: Unknown result type (might be due to invalid IL or missing references)
//IL_0063: Unknown result type (might be due to invalid IL or missing references)
//IL_00a8: Unknown result type (might be due to invalid IL or missing references)
//IL_008c: Unknown result type (might be due to invalid IL or missing references)
//IL_035f: Unknown result type (might be due to invalid IL or missing references)
//IL_0364: 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_037a: Unknown result type (might be due to invalid IL or missing references)
//IL_0382: Unknown result type (might be due to invalid IL or missing references)
//IL_038e: Expected O, but got Unknown
//IL_03b4: Unknown result type (might be due to invalid IL or missing references)
//IL_0442: Unknown result type (might be due to invalid IL or missing references)
//IL_0172: Unknown result type (might be due to invalid IL or missing references)
//IL_049d: Unknown result type (might be due to invalid IL or missing references)
//IL_0188: Unknown result type (might be due to invalid IL or missing references)
//IL_019e: Unknown result type (might be due to invalid IL or missing references)
//IL_0212: Unknown result type (might be due to invalid IL or missing references)
//IL_020b: Unknown result type (might be due to invalid IL or missing references)
//IL_0277: Unknown result type (might be due to invalid IL or missing references)
//IL_0270: Unknown result type (might be due to invalid IL or missing references)
GUILayout.BeginVertical(Array.Empty<GUILayoutOption>());
if ((int)CruiseAssistMainUI.ViewMode == 0)
{
GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
if (statusLabelStyle == null)
{
statusLabelStyle = new GUIStyle(GUI.skin.label)
{
fontSize = 12
};
}
GUILayout.BeginVertical(Array.Empty<GUILayoutOption>());
string text;
if (AutoPilotPlugin.State == AutoPilotState.INACTIVE)
{
text = "---";
statusLabelStyle.normal.textColor = Color.white;
}
else if ((double)AutoPilotPlugin.Conf.MinEnergyPer < AutoPilotPlugin.EnergyPer)
{
text = "OK";
statusLabelStyle.normal.textColor = Color.cyan;
}
else
{
text = "NG";
statusLabelStyle.normal.textColor = Color.red;
}
GUILayout.Label("Energy : " + text, statusLabelStyle, Array.Empty<GUILayoutOption>());
string text2 = ((AutoPilotPlugin.State == AutoPilotState.INACTIVE || CruiseAssistPlugin.TargetStar == null || GameMain.mainPlayer.warping) ? "---" : ((!AutoPilotPlugin.Conf.LocalWarpFlag && GameMain.localStar != null && CruiseAssistPlugin.TargetStar.id == GameMain.localStar.id) ? "---" : ((CruiseAssistPlugin.TargetRange < (double)(AutoPilotPlugin.Conf.WarpMinRangeAU * 40000)) ? "---" : ((AutoPilotPlugin.WarperCount >= 1) ? "OK" : "NG"))));
if (!(text2 == "OK"))
{
if (text2 == "NG")
{
statusLabelStyle.normal.textColor = Color.red;
}
else
{
statusLabelStyle.normal.textColor = Color.white;
}
}
else
{
statusLabelStyle.normal.textColor = Color.cyan;
}
GUILayout.Label("Warper : " + text2, statusLabelStyle, Array.Empty<GUILayoutOption>());
GUILayout.EndVertical();
GUILayout.BeginVertical(Array.Empty<GUILayoutOption>());
string text3 = ((AutoPilotPlugin.State == AutoPilotState.INACTIVE) ? "---" : (AutoPilotPlugin.LeavePlanet ? "ON" : "OFF"));
statusLabelStyle.normal.textColor = ((text3 == "ON") ? Color.cyan : Color.white);
GUILayout.Label("Leave Planet : " + text3, statusLabelStyle, Array.Empty<GUILayoutOption>());
string text4 = ((AutoPilotPlugin.State == AutoPilotState.INACTIVE) ? "---" : (AutoPilotPlugin.SpeedUp ? "ON" : "OFF"));
statusLabelStyle.normal.textColor = ((text4 == "ON") ? Color.cyan : Color.white);
GUILayout.Label("Speed UP : " + text4, statusLabelStyle, Array.Empty<GUILayoutOption>());
GUILayout.EndVertical();
GUILayout.EndHorizontal();
GUILayout.FlexibleSpace();
}
GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
if (mainStatusLabelStyle == null)
{
mainStatusLabelStyle = new GUIStyle(GUI.skin.label)
{
fixedWidth = 160f,
fixedHeight = 32f,
fontSize = 14,
alignment = (TextAnchor)3
};
}
if (AutoPilotPlugin.State == AutoPilotState.INACTIVE)
{
mainStatusLabelStyle.normal.textColor = Color.white;
GUILayout.Label("Auto Pilot Inactive.", mainStatusLabelStyle, Array.Empty<GUILayoutOption>());
}
else
{
mainStatusLabelStyle.normal.textColor = Color.cyan;
GUILayout.Label("Auto Pilot Active.", mainStatusLabelStyle, Array.Empty<GUILayoutOption>());
}
GUILayout.FlexibleSpace();
if (buttonStyle == null)
{
buttonStyle = new GUIStyle(CruiseAssistMainUI.BaseButtonStyle)
{
fixedWidth = 50f,
fixedHeight = 18f,
fontSize = 11,
alignment = (TextAnchor)4
};
}
GUILayout.BeginVertical(Array.Empty<GUILayoutOption>());
if (GUILayout.Button("Config", buttonStyle, Array.Empty<GUILayoutOption>()))
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
AutoPilotConfigUI.Show[wIdx] = !AutoPilotConfigUI.Show[wIdx];
if (AutoPilotConfigUI.Show[wIdx])
{
AutoPilotConfigUI.TempMinEnergyPer = AutoPilotPlugin.Conf.MinEnergyPer.ToString();
AutoPilotConfigUI.TempMaxSpeed = AutoPilotPlugin.Conf.MaxSpeed.ToString();
AutoPilotConfigUI.TempWarpMinRangeAU = AutoPilotPlugin.Conf.WarpMinRangeAU.ToString();
AutoPilotConfigUI.TempSpeedToWarp = AutoPilotPlugin.Conf.SpeedToWarp.ToString();
}
}
if (GUILayout.Button("Start", buttonStyle, Array.Empty<GUILayoutOption>()))
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
AutoPilotPlugin.State = AutoPilotState.ACTIVE;
CruiseAssistPlugin.ClearSelectedTarget();
}
GUILayout.EndVertical();
GUILayout.BeginVertical(Array.Empty<GUILayoutOption>());
GUILayout.Button("-", buttonStyle, Array.Empty<GUILayoutOption>());
if (GUILayout.Button("Stop", buttonStyle, Array.Empty<GUILayoutOption>()))
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
AutoPilotPlugin.State = AutoPilotState.INACTIVE;
}
GUILayout.EndVertical();
GUILayout.EndHorizontal();
GUILayout.EndVertical();
GUI.DragWindow();
}
}
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInPlugin("nord.AutoPilot", "Autopilot-N", "1.4.5")]
public class AutoPilotPlugin : BaseUnityPlugin
{
public class Conf
{
public static int MinEnergyPer = 20;
public static int MaxSpeed = 2000;
public static int WarpMinRangeAU = 2;
public static int SpeedToWarp = 400;
public static bool LocalWarpFlag = false;
public static bool AutoStartFlag = true;
public static bool IgnoreGravityFlag = false;
public static bool MainWindowJoinFlag = true;
public static bool SpeedUpWhenFlying = true;
public static bool AvoidGasGiants = true;
}
public const string ModGuid = "nord.AutoPilot";
public const string ModName = "Autopilot-N";
public const string ModVersion = "1.4.5";
public static double EnergyPer = 0.0;
public static double Speed = 0.0;
public static int WarperCount = 0;
public static bool LeavePlanet = false;
public static bool SpeedUp = false;
public static AutoPilotState State = AutoPilotState.INACTIVE;
public static bool InputSailSpeedUp = false;
private Harmony harmony;
public static bool safeToGo = false;
public static PlanetData lastVisitedPlanet = null;
public static bool warped = false;
public void Awake()
{
//IL_0023: Unknown result type (might be due to invalid IL or missing references)
//IL_002d: Expected O, but got Unknown
LogManager.Logger = ((BaseUnityPlugin)this).Logger;
new AutoPilotConfigManager(((BaseUnityPlugin)this).Config);
ConfigManager.CheckConfig(ConfigManager.Step.AWAKE);
harmony = new Harmony("nord.AutoPilot.Patch");
harmony.PatchAll(typeof(Patch_VFInput));
CruiseAssistPlugin.RegistExtension((CruiseAssistExtensionAPI)(object)new AutoPilotExtension());
}
public void OnDestroy()
{
CruiseAssistPlugin.UnregistExtension(typeof(AutoPilotExtension));
harmony.UnpatchSelf();
}
public static bool IsLocalPlanetSatellite()
{
PlanetData localPlanet = GameMain.localPlanet;
if (localPlanet == null)
{
return true;
}
return localPlanet.orbitAround != 0;
}
}
public enum AutoPilotState
{
ACTIVE,
INACTIVE
}
internal abstract class ConfigManager
{
public enum Step
{
AWAKE,
GAME_MAIN_BEGIN,
STATE
}
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_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_000c: 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_0007: Unknown result type (might be due to invalid IL or missing references)
//IL_0011: 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_0009: Unknown result type (might be due to invalid IL or missing references)
//IL_000f: 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 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 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(VFInput))]
internal class Patch_VFInput
{
[HarmonyPatch(/*Could not decode attribute arguments.*/)]
[HarmonyPostfix]
public static void SailSpeedUp_Postfix(ref bool __result)
{
if (AutoPilotPlugin.State != AutoPilotState.INACTIVE && AutoPilotPlugin.InputSailSpeedUp)
{
__result = true;
}
}
}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;
using tanu.CruiseAssist;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[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.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: AssemblyVersion("1.0.0.0")]
[HarmonyPatch(typeof(PlayerMove_Drift))]
internal class Patch_PlayerMoveDrift
{
[HarmonyPatch("GameTick")]
[HarmonyPrefix]
public static void GameTick_Prefix(PlayerMove_Drift __instance)
{
//IL_0026: Unknown result type (might be due to invalid IL or missing references)
//IL_002c: Invalid comparison between Unknown and I4
//IL_002f: 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)
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();
});
}
else
{
CruiseAssistPlugin.extensions.ForEach(delegate(CruiseAssistExtensionAPI extension)
{
extension.OperateDrift(__instance);
});
}
}
}
[HarmonyPatch(typeof(PlayerMove_Fly))]
internal class Patch_PlayerMoveFly
{
[HarmonyPatch("GameTick")]
[HarmonyPrefix]
[HarmonyPriority(800)]
public static void GameTick_Prefix(PlayerMove_Fly __instance)
{
//IL_0026: Unknown result type (might be due to invalid IL or missing references)
//IL_002c: Invalid comparison between Unknown and I4
//IL_002f: 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)
if (!CruiseAssistPlugin.Enable || !CruiseAssistPlugin.TargetSelected || (int)((PlayerAction)__instance).controller.movementStateInFrame != 2)
{
return;
}
if (VFInput._moveForward.pressing || VFInput._pullUp.pressing)
{
CruiseAssistPlugin.Interrupt = true;
CruiseAssistPlugin.extensions.ForEach(delegate(CruiseAssistExtensionAPI extension)
{
extension.CancelOperate();
});
}
else
{
CruiseAssistPlugin.extensions.ForEach(delegate(CruiseAssistExtensionAPI extension)
{
extension.OperateFly(__instance);
});
}
}
}
[HarmonyPatch(typeof(PlayerMove_Walk))]
internal class Patch_PlayerMoveWalk
{
[HarmonyPatch("GameTick")]
[HarmonyPrefix]
public static void GameTick_Prefix(PlayerMove_Walk __instance)
{
//IL_0092: Unknown result type (might be due to invalid IL or missing references)
//IL_04cb: Unknown result type (might be due to invalid IL or missing references)
//IL_04d0: Unknown result type (might be due to invalid IL or missing references)
//IL_04da: Unknown result type (might be due to invalid IL or missing references)
//IL_04df: Unknown result type (might be due to invalid IL or missing references)
//IL_04e4: Unknown result type (might be due to invalid IL or missing references)
//IL_0593: Unknown result type (might be due to invalid IL or missing references)
//IL_059d: Unknown result type (might be due to invalid IL or missing references)
//IL_05a2: Unknown result type (might be due to invalid IL or missing references)
//IL_05a7: 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_05f1: Unknown result type (might be due to invalid IL or missing references)
//IL_05f6: Unknown result type (might be due to invalid IL or missing references)
//IL_05fb: Unknown result type (might be due to invalid IL or missing references)
//IL_0725: Unknown result type (might be due to invalid IL or missing references)
//IL_072b: Invalid comparison between Unknown and I4
//IL_0639: Unknown result type (might be due to invalid IL or missing references)
//IL_0643: Unknown result type (might be due to invalid IL or missing references)
//IL_0648: Unknown result type (might be due to invalid IL or missing references)
//IL_064d: Unknown result type (might be due to invalid IL or missing references)
//IL_072e: Unknown result type (might be due to invalid IL or missing references)
//IL_0404: Unknown result type (might be due to invalid IL or missing references)
//IL_040e: Unknown result type (might be due to invalid IL or missing references)
//IL_0413: Unknown result type (might be due to invalid IL or missing references)
//IL_0418: Unknown result type (might be due to invalid IL or missing references)
//IL_067c: 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_068b: 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_044c: Unknown result type (might be due to invalid IL or missing references)
//IL_0456: Unknown result type (might be due to invalid IL or missing references)
//IL_045b: Unknown result type (might be due to invalid IL or missing references)
//IL_0460: 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_06eb: Unknown result type (might be due to invalid IL or missing references)
//IL_06f0: Unknown result type (might be due to invalid IL or missing references)
//IL_06f5: Unknown result type (might be due to invalid IL or missing references)
CruiseAssistPlugin.lastState = CruiseAssistPlugin.State;
if (CruiseAssistPlugin.Interrupt)
{
CruiseAssistPlugin.lockOn = false;
CruiseAssistPlugin.State = CruiseAssistState.INACTIVE;
CruiseAssistPlugin.SelectTargetPlanet = null;
CruiseAssistPlugin.SelectTargetStar = null;
CruiseAssistPlugin.SelectTargetHive = null;
CruiseAssistPlugin.SelectTargetMsg = null;
CruiseAssistPlugin.SelectTargetEnemyIdF = 0;
CruiseAssistPlugin.lastState = CruiseAssistState.INACTIVE;
CruiseAssistPlugin.AbortPreloadStar();
}
CruiseAssistPlugin.State = CruiseAssistState.INACTIVE;
CruiseAssistPlugin.Interrupt = false;
CruiseAssistPlugin.TargetStar = null;
CruiseAssistPlugin.TargetPlanet = null;
CruiseAssistPlugin.TargetHive = null;
CruiseAssistPlugin.TargetMsg = null;
CruiseAssistPlugin.TargetEnemyId = 0;
CruiseAssistPlugin.TargetRange = 0.0;
if (CruiseAssistPlugin.SelectTargetEnemyId != 0 && CruiseAssistPlugin.SelectTargetEnemy.id == 0)
{
CruiseAssistPlugin.ClearSelectedTarget();
}
CruiseAssistPlugin.TargetSelected = false;
if (GameMain.localPlanet != null && (CruiseAssistPlugin.History.Count == 0 || CruiseAssistPlugin.History.Last() != GameMain.localPlanet.id))
{
if (CruiseAssistPlugin.History.Count >= 128)
{
CruiseAssistPlugin.History.RemoveAt(0);
}
CruiseAssistPlugin.History.Add(GameMain.localPlanet.id);
ConfigManager.CheckConfig(ConfigManager.Step.STATE);
}
if (!CruiseAssistPlugin.Enable)
{
CruiseAssistPlugin.extensions.ForEach(delegate(CruiseAssistExtensionAPI extension)
{
extension.SetInactive();
});
return;
}
int indicatorAstroId = GameMain.mainPlayer.navigation.indicatorAstroId;
int indicatorEnemyId = GameMain.mainPlayer.navigation.indicatorEnemyId;
int indicatorMsgId = GameMain.mainPlayer.navigation.indicatorMsgId;
if ((Object)(object)UIRoot.instance.uiGame.starmap.focusHive != (Object)null)
{
return;
}
if (CruiseAssistPlugin.SelectTargetAstroId != indicatorAstroId)
{
CruiseAssistPlugin.SelectTargetAstroId = indicatorAstroId;
if (indicatorAstroId == 0)
{
CruiseAssistPlugin.SelectTargetPlanet = null;
CruiseAssistPlugin.SelectTargetStar = null;
}
else
{
if (indicatorAstroId > 1000000)
{
CruiseAssistPlugin.SelectTargetHive = GameMain.spaceSector.dfHivesByAstro[indicatorAstroId - 1000000];
CruiseAssistPlugin.SelectTargetPlanet = null;
CruiseAssistPlugin.SelectTargetStar = CruiseAssistPlugin.SelectTargetHive.starData;
}
else if (indicatorAstroId % 100 != 0)
{
CruiseAssistPlugin.SelectTargetPlanet = GameMain.galaxy.PlanetById(indicatorAstroId);
CruiseAssistPlugin.SelectTargetStar = CruiseAssistPlugin.SelectTargetPlanet.star;
}
else
{
CruiseAssistPlugin.SelectTargetPlanet = null;
CruiseAssistPlugin.SelectTargetStar = GameMain.galaxy.StarById(indicatorAstroId / 100);
}
CruiseAssistPlugin.extensions.ForEach(delegate(CruiseAssistExtensionAPI extension)
{
extension.SetTargetAstroId(indicatorAstroId);
});
}
}
if (CruiseAssistPlugin.SelectTargetEnemyId != indicatorEnemyId)
{
CruiseAssistPlugin.SelectTargetEnemyId = indicatorEnemyId;
if (indicatorEnemyId != 0)
{
CruiseAssistPlugin.SelectTargetEnemyIdF = indicatorEnemyId;
CruiseAssistPlugin.SelectTargetPlanet = null;
CruiseAssistPlugin.SelectTargetStar = null;
CruiseAssistPlugin.SelectTargetHive = null;
CruiseAssistPlugin.SelectTargetMsg = null;
CruiseAssistPlugin.extensions.ForEach(delegate(CruiseAssistExtensionAPI extension)
{
extension.SetTargetAstroId(indicatorAstroId);
});
}
else
{
CruiseAssistPlugin.SelectTargetEnemyIdF = 0;
}
}
if (CruiseAssistPlugin.SelectTargetMsgId != indicatorMsgId)
{
CruiseAssistPlugin.SelectTargetMsgId = indicatorMsgId;
if (indicatorMsgId == 0)
{
CruiseAssistPlugin.SelectTargetMsg = null;
}
else
{
CruiseAssistPlugin.SelectTargetMsg = GameMain.gameScenario.cosmicMessageManager.messages[indicatorMsgId];
CruiseAssistPlugin.SelectTargetStar = CruiseAssistPlugin.SelectTargetMsg.nearStar;
CruiseAssistPlugin.SelectTargetEnemyIdF = 0;
CruiseAssistPlugin.SelectTargetPlanet = null;
CruiseAssistPlugin.SelectTargetHive = null;
CruiseAssistPlugin.extensions.ForEach(delegate(CruiseAssistExtensionAPI extension)
{
extension.SetTargetAstroId(indicatorAstroId);
});
}
}
VectorLF3 val;
if (CruiseAssistPlugin.SelectTargetStar != null)
{
if (GameMain.localStar != null && CruiseAssistPlugin.SelectTargetStar.id == GameMain.localStar.id)
{
if (CruiseAssistPlugin.SelectTargetPlanet == null && CruiseAssistPlugin.SelectTargetHive == null && GameMain.localPlanet != null)
{
CruiseAssistPlugin.SelectTargetStar = null;
CruiseAssistPlugin.SelectTargetEnemyId = 0;
CruiseAssistPlugin.SelectTargetAstroId = 0;
GameMain.mainPlayer.navigation.indicatorAstroId = 0;
CruiseAssistPlugin.extensions.ForEach(delegate(CruiseAssistExtensionAPI extension)
{
extension.SetInactive();
});
return;
}
if (CruiseAssistPlugin.SelectTargetPlanet != null)
{
if (GameMain.localPlanet != null && CruiseAssistPlugin.SelectTargetPlanet.id == GameMain.localPlanet.id)
{
CruiseAssistPlugin.Deactivate();
return;
}
CruiseAssistPlugin.TargetPlanet = CruiseAssistPlugin.SelectTargetPlanet;
}
else if (CruiseAssistPlugin.SelectTargetHive != null)
{
val = GameMain.spaceSector.astros[CruiseAssistPlugin.SelectTargetHive.hiveAstroId - 1000000].uPos - GameMain.mainPlayer.uPosition;
if (((VectorLF3)(ref val)).magnitude < 30000.0)
{
CruiseAssistPlugin.Deactivate();
return;
}
CruiseAssistPlugin.TargetHive = CruiseAssistPlugin.SelectTargetHive;
}
else if (CruiseAssistPlugin.SelectTargetMsg != null)
{
val = CruiseAssistPlugin.SelectTargetMsg.uPosition - GameMain.mainPlayer.uPosition;
if (((VectorLF3)(ref val)).magnitude < 2000.0)
{
CruiseAssistPlugin.Deactivate();
return;
}
CruiseAssistPlugin.TargetMsg = CruiseAssistPlugin.SelectTargetMsg;
}
else if (CruiseAssistPlugin.ReticuleTargetPlanet != null)
{
CruiseAssistPlugin.TargetPlanet = CruiseAssistPlugin.ReticuleTargetPlanet;
}
}
else
{
CruiseAssistPlugin.TargetStar = CruiseAssistPlugin.SelectTargetStar;
CruiseAssistPlugin.TargetPlanet = CruiseAssistPlugin.SelectTargetPlanet;
CruiseAssistPlugin.TargetHive = CruiseAssistPlugin.SelectTargetHive;
}
}
else if (CruiseAssistPlugin.SelectTargetEnemyIdF != 0)
{
val = CruiseAssistPlugin.SelectTargetEnemy.pos - GameMain.mainPlayer.uPosition;
if (((VectorLF3)(ref val)).magnitude < 3000.0)
{
CruiseAssistPlugin.Deactivate();
return;
}
CruiseAssistPlugin.TargetEnemyId = CruiseAssistPlugin.SelectTargetEnemyId;
}
else if (CruiseAssistPlugin.ReticuleTargetPlanet != null)
{
CruiseAssistPlugin.SelectTargetPlanet = CruiseAssistPlugin.ReticuleTargetPlanet;
CruiseAssistPlugin.SelectTargetStar = CruiseAssistPlugin.SelectTargetPlanet.star;
CruiseAssistPlugin.TargetPlanet = CruiseAssistPlugin.ReticuleTargetPlanet;
CruiseAssistPlugin.TargetStar = CruiseAssistPlugin.TargetPlanet.star;
}
else if (CruiseAssistPlugin.ReticuleTargetStar != null)
{
CruiseAssistPlugin.SelectTargetPlanet = null;
CruiseAssistPlugin.SelectTargetStar = CruiseAssistPlugin.ReticuleTargetStar;
CruiseAssistPlugin.TargetPlanet = null;
CruiseAssistPlugin.TargetStar = CruiseAssistPlugin.ReticuleTargetStar;
}
_ = ((PlayerAction)__instance).player;
if (CruiseAssistPlugin.TargetPlanet != null)
{
CruiseAssistPlugin.State = CruiseAssistState.TO_PLANET;
CruiseAssistPlugin.TargetStar = CruiseAssistPlugin.TargetPlanet.star;
val = CruiseAssistPlugin.TargetUPos - GameMain.mainPlayer.uPosition;
CruiseAssistPlugin.TargetRange = ((VectorLF3)(ref val)).magnitude - (double)CruiseAssistPlugin.TargetPlanet.realRadius;
CruiseAssistPlugin.TargetSelected = true;
}
else if (CruiseAssistPlugin.TargetHive != null)
{
CruiseAssistPlugin.State = CruiseAssistState.TO_HIVE;
CruiseAssistPlugin.TargetStar = CruiseAssistPlugin.TargetHive.starData;
val = CruiseAssistPlugin.TargetUPos - GameMain.mainPlayer.uPosition;
CruiseAssistPlugin.TargetRange = ((VectorLF3)(ref val)).magnitude - 30000.0;
CruiseAssistPlugin.TargetSelected = true;
}
else if (CruiseAssistPlugin.TargetMsg != null)
{
CruiseAssistPlugin.State = CruiseAssistState.TO_MSG;
CruiseAssistPlugin.TargetStar = CruiseAssistPlugin.TargetMsg.nearStar;
val = CruiseAssistPlugin.TargetUPos - GameMain.mainPlayer.uPosition;
CruiseAssistPlugin.TargetRange = ((VectorLF3)(ref val)).magnitude - 2000.0;
CruiseAssistPlugin.TargetSelected = true;
}
else if (CruiseAssistPlugin.TargetEnemyId != 0)
{
CruiseAssistPlugin.State = CruiseAssistState.TO_ENEMY;
val = CruiseAssistPlugin.TargetUPos - GameMain.mainPlayer.uPosition;
CruiseAssistPlugin.TargetRange = ((VectorLF3)(ref val)).magnitude;
CruiseAssistPlugin.TargetSelected = true;
}
else
{
if (CruiseAssistPlugin.TargetStar == null)
{
CruiseAssistPlugin.extensions.ForEach(delegate(CruiseAssistExtensionAPI extension)
{
extension.SetInactive();
});
return;
}
CruiseAssistPlugin.State = CruiseAssistState.TO_STAR;
val = CruiseAssistPlugin.TargetStar.uPosition - GameMain.mainPlayer.uPosition;
CruiseAssistPlugin.TargetRange = ((VectorLF3)(ref val)).magnitude - (double)(CruiseAssistPlugin.TargetStar.viewRadius - 120f);
CruiseAssistPlugin.TargetSelected = true;
}
if ((int)((PlayerAction)__instance).controller.movementStateInFrame > 0)
{
return;
}
if (VFInput._jump.pressing)
{
CruiseAssistPlugin.Interrupt = true;
CruiseAssistPlugin.extensions.ForEach(delegate(CruiseAssistExtensionAPI extension)
{
extension.CancelOperate();
});
}
else
{
CruiseAssistPlugin.extensions.ForEach(delegate(CruiseAssistExtensionAPI extension)
{
extension.OperateWalk(__instance);
});
}
}
}
[HarmonyPatch(typeof(PlayerMove_Sail))]
internal class Patch_PlayerMoveSail
{
[HarmonyPatch("GameTick")]
[HarmonyPrefix]
public static void GameTick_Prefix(PlayerMove_Sail __instance)
{
//IL_00a3: Unknown result type (might be due to invalid IL or missing references)
//IL_00a8: Unknown result type (might be due to invalid IL or missing references)
//IL_00be: Unknown result type (might be due to invalid IL or missing references)
//IL_00c3: Unknown result type (might be due to invalid IL or missing references)
//IL_0142: Unknown result type (might be due to invalid IL or missing references)
//IL_0148: Unknown result type (might be due to invalid IL or missing references)
//IL_014d: Unknown result type (might be due to invalid IL or missing references)
//IL_0152: Unknown result type (might be due to invalid IL or missing references)
//IL_0154: Unknown result type (might be due to invalid IL or missing references)
//IL_0156: Unknown result type (might be due to invalid IL or missing references)
//IL_015c: Unknown result type (might be due to invalid IL or missing references)
//IL_0161: Unknown result type (might be due to invalid IL or missing references)
//IL_0203: Unknown result type (might be due to invalid IL or missing references)
//IL_0208: Unknown result type (might be due to invalid IL or missing references)
//IL_020f: Unknown result type (might be due to invalid IL or missing references)
//IL_021f: Unknown result type (might be due to invalid IL or missing references)
//IL_0224: Unknown result type (might be due to invalid IL or missing references)
//IL_022b: Unknown result type (might be due to invalid IL or missing references)
//IL_0230: Unknown result type (might be due to invalid IL or missing references)
//IL_0235: Unknown result type (might be due to invalid IL or missing references)
//IL_01c5: 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_01d1: Unknown result type (might be due to invalid IL or missing references)
//IL_01e1: Unknown result type (might be due to invalid IL or missing references)
//IL_01e6: 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_01f5: Unknown result type (might be due to invalid IL or missing references)
//IL_01fa: Unknown result type (might be due to invalid IL or missing references)
if (CruiseAssistPlugin.TargetStar?.id == GameMain.localStar?.id)
{
CruiseAssistPlugin.AbortPreloadStar();
}
if (!CruiseAssistPlugin.Enable || !CruiseAssistPlugin.TargetSelected)
{
return;
}
Player player = ((PlayerAction)__instance).player;
if (!player.sailing)
{
return;
}
if (GameMain.mainPlayer.controller.input0 != Vector4.zero || (GameMain.mainPlayer.controller.input1 != Vector4.zero && GameMain.mainPlayer.controller.input1.y >= 0f))
{
CruiseAssistPlugin.Interrupt = true;
CruiseAssistPlugin.extensions.ForEach(delegate(CruiseAssistExtensionAPI extension)
{
extension.CancelOperate();
});
return;
}
bool operate = false;
CruiseAssistPlugin.extensions.ForEach(delegate(CruiseAssistExtensionAPI extension)
{
operate |= extension.OperateSail(__instance);
});
if (operate)
{
return;
}
VectorLF3 val = CruiseAssistPlugin.TargetUPos - player.uPosition;
float num = Vector3.Angle(VectorLF3.op_Implicit(val), VectorLF3.op_Implicit(player.uVelocity));
float num2 = 1.6f / Mathf.Max(10f, num);
_ = ((VectorLF3)(ref player.controller.actionSail.visual_uvel)).magnitude;
if ((double)num < 0.5)
{
CruiseAssistPlugin.lockOn = true;
}
if (CruiseAssistPlugin.lockOn)
{
if (CruiseAssistPlugin.TargetStar != null)
{
CruiseAssistPlugin.TryPreloadStar(CruiseAssistPlugin.TargetStar);
}
player.uVelocity = VectorLF3.op_Implicit(Vector3.Slerp(VectorLF3.op_Implicit(player.uVelocity), VectorLF3.op_Implicit(((VectorLF3)(ref val)).normalized * ((VectorLF3)(ref player.uVelocity)).magnitude), 0.75f));
}
else
{
player.uVelocity = VectorLF3.op_Implicit(Vector3.Slerp(VectorLF3.op_Implicit(player.uVelocity), VectorLF3.op_Implicit(((VectorLF3)(ref val)).normalized * ((VectorLF3)(ref player.uVelocity)).magnitude), num2));
}
if (CruiseAssistPlugin.State == CruiseAssistState.TO_ENEMY)
{
player.controller.actionSail.warpSpeedControl = 1.0 - Math.Pow(Maths.Clamp01(1.0 - (((VectorLF3)(ref val)).magnitude - 3000.0) / 400000.0), 2.0) * 0.65;
}
}
}
namespace tanu.CruiseAssist;
public 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();
}
}
public class CruiseAssistConfigManager : ConfigManager
{
public CruiseAssistConfigManager(ConfigFile Config)
: base(Config)
{
}
protected override void CheckConfigImplements(Step step)
{
bool flag = false;
if (step == Step.AWAKE)
{
ConfigManager.Bind("Base", "ModVersion", "1.4.5", "Don't change.").Value = "1.4.5";
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");
flag = true;
}
switch (step)
{
case Step.AWAKE:
case Step.GAME_MAIN_BEGIN:
{
CruiseAssistDebugUI.Show = ConfigManager.Bind("Debug", "DebugWindowShow", defaultValue: false).Value;
CruiseAssistPlugin.Enable = ConfigManager.Bind("Setting", "Enable", defaultValue: true).Value;
CruiseAssistPlugin.MarkVisitedFlag = ConfigManager.Bind("Setting", "MarkVisited", defaultValue: true).Value;
CruiseAssistPlugin.SelectFocusFlag = ConfigManager.Bind("Setting", "SelectFocus", defaultValue: true).Value;
CruiseAssistPlugin.HideDuplicateHistoryFlag = ConfigManager.Bind("Setting", "HideDuplicateHistory", defaultValue: true).Value;
CruiseAssistPlugin.AutoDisableLockCursorFlag = ConfigManager.Bind("Setting", "AutoDisableLockCursor", defaultValue: false).Value;
CruiseAssistPlugin.TrackDarkFogSeedsFlag = ConfigManager.Bind("Setting", "TrackDarkFogSeeds", defaultValue: true).Value;
CruiseAssistPlugin.PreventNonTargetLoadingFlag = ConfigManager.Bind("Setting", "PreventNonTargetLoading", defaultValue: true).Value;
CruiseAssistPlugin.DisplaySeedETAFlag = ConfigManager.Bind("Setting", "DisplaySeedETA", defaultValue: true).Value;
CruiseAssistMainUI.Scale = ConfigManager.Bind("Setting", "UIScale", 150).Value;
EnumUtils.TryParse<CruiseAssistMainUIViewMode>(ConfigManager.Bind("Setting", "MainWindowViewMode", CruiseAssistMainUIViewMode.FULL.ToString()).Value, out CruiseAssistMainUI.ViewMode);
for (int j = 0; j < 2; j++)
{
((Rect)(ref CruiseAssistMainUI.Rect[j])).x = ConfigManager.Bind("State", $"MainWindow{j}Left", 100).Value;
((Rect)(ref CruiseAssistMainUI.Rect[j])).y = ConfigManager.Bind("State", $"MainWindow{j}Top", 100).Value;
((Rect)(ref CruiseAssistStarListUI.Rect[j])).x = ConfigManager.Bind("State", $"StarListWindow{j}Left", 100).Value;
((Rect)(ref CruiseAssistStarListUI.Rect[j])).y = ConfigManager.Bind("State", $"StarListWindow{j}Top", 100).Value;
((Rect)(ref CruiseAssistConfigUI.Rect[j])).x = ConfigManager.Bind("State", $"ConfigWindow{j}Left", 100).Value;
((Rect)(ref CruiseAssistConfigUI.Rect[j])).y = ConfigManager.Bind("State", $"ConfigWindow{j}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 (!DSPGame.IsMenuDemo && GameMain.galaxy != null)
{
CruiseAssistPlugin.History = ListUtils.ParseToIntList(ConfigManager.Bind("Save", $"History_{GameMain.galaxy.seed}", "").Value);
CruiseAssistPlugin.Bookmark = ListUtils.ParseToIntList(ConfigManager.Bind("Save", $"Bookmark_{GameMain.galaxy.seed}", "").Value);
}
else
{
CruiseAssistPlugin.History = new List<int>();
CruiseAssistPlugin.Bookmark = new List<int>();
}
break;
}
case Step.STATE:
{
LogManager.LogInfo("check state.");
flag |= ConfigManager.UpdateEntry("Setting", "Enable", CruiseAssistPlugin.Enable);
flag |= ConfigManager.UpdateEntry("Setting", "MarkVisited", CruiseAssistPlugin.MarkVisitedFlag);
flag |= ConfigManager.UpdateEntry("Setting", "SelectFocus", CruiseAssistPlugin.SelectFocusFlag);
flag |= ConfigManager.UpdateEntry("Setting", "HideDuplicateHistory", CruiseAssistPlugin.HideDuplicateHistoryFlag);
flag |= ConfigManager.UpdateEntry("Setting", "AutoDisableLockCursor", CruiseAssistPlugin.AutoDisableLockCursorFlag);
flag |= ConfigManager.UpdateEntry("Setting", "TrackDarkFogSeeds", CruiseAssistPlugin.TrackDarkFogSeedsFlag);
flag |= ConfigManager.UpdateEntry("Setting", "PreventNonTargetLoading", CruiseAssistPlugin.PreventNonTargetLoadingFlag);
flag |= ConfigManager.UpdateEntry("Setting", "DisplaySeedETA", CruiseAssistPlugin.DisplaySeedETAFlag);
flag |= ConfigManager.UpdateEntry("Setting", "UIScale", (int)CruiseAssistMainUI.Scale);
flag |= ConfigManager.UpdateEntry("Setting", "MainWindowViewMode", CruiseAssistMainUI.ViewMode.ToString());
for (int i = 0; i < 2; i++)
{
flag |= ConfigManager.UpdateEntry("State", $"MainWindow{i}Left", (int)((Rect)(ref CruiseAssistMainUI.Rect[i])).x);
flag |= ConfigManager.UpdateEntry("State", $"MainWindow{i}Top", (int)((Rect)(ref CruiseAssistMainUI.Rect[i])).y);
flag |= ConfigManager.UpdateEntry("State", $"StarListWindow{i}Left", (int)((Rect)(ref CruiseAssistStarListUI.Rect[i])).x);
flag |= ConfigManager.UpdateEntry("State", $"StarListWindow{i}Top", (int)((Rect)(ref CruiseAssistStarListUI.Rect[i])).y);
flag |= ConfigManager.UpdateEntry("State", $"ConfigWindow{i}Left", (int)((Rect)(ref CruiseAssistConfigUI.Rect[i])).x);
flag |= ConfigManager.UpdateEntry("State", $"ConfigWindow{i}Top", (int)((Rect)(ref CruiseAssistConfigUI.Rect[i])).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 (!DSPGame.IsMenuDemo && GameMain.galaxy != null)
{
if (!ConfigManager.ContainsKey("Save", $"History_{GameMain.galaxy.seed}") || !ConfigManager.ContainsKey("Save", $"Bookmark_{GameMain.galaxy.seed}"))
{
ConfigManager.Bind("Save", $"History_{GameMain.galaxy.seed}", "");
ConfigManager.Bind("Save", $"Bookmark_{GameMain.galaxy.seed}", "");
flag = true;
}
flag |= ConfigManager.UpdateEntry("Save", $"History_{GameMain.galaxy.seed}", ListUtils.ToString(CruiseAssistPlugin.History));
flag |= ConfigManager.UpdateEntry("Save", $"Bookmark_{GameMain.galaxy.seed}", ListUtils.ToString(CruiseAssistPlugin.Bookmark));
}
CruiseAssistMainUI.NextCheckGameTick = long.MaxValue;
break;
}
}
if (flag)
{
ConfigManager.Save();
}
}
}
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();
bool CheckActive();
}
[BepInPlugin("nord.CruiseAssist", "CruiseAssist-N", "1.4.5")]
public class CruiseAssistPlugin : BaseUnityPlugin
{
public const string ModGuid = "nord.CruiseAssist";
public const string ModName = "CruiseAssist-N";
public const string ModVersion = "1.4.5";
public const double HIVE_IN_RANGE = 30000.0;
public const double ENEMY_IN_RANGE = 3000.0;
public const double MSG_IN_RANGE = 2000.0;
public static bool Enable = true;
public static bool Interrupt = false;
public static bool TargetSelected = false;
public static bool MarkVisitedFlag = true;
public static bool SelectFocusFlag = false;
public static bool HideDuplicateHistoryFlag = true;
public static bool AutoDisableLockCursorFlag = false;
public static bool TrackDarkFogSeedsFlag = true;
public static bool PreventNonTargetLoadingFlag = true;
public static bool DisplaySeedETAFlag = true;
public static StarData ReticuleTargetStar = null;
public static PlanetData ReticuleTargetPlanet = null;
public static StarData SelectTargetStar = null;
public static PlanetData SelectTargetPlanet = null;
public static EnemyDFHiveSystem SelectTargetHive = null;
public static CosmicMessageData SelectTargetMsg = null;
public static int SelectTargetAstroId = 0;
public static int SelectTargetEnemyId = 0;
public static int SelectTargetEnemyIdF = 0;
public static int SelectTargetMsgId = 0;
public static StarData TargetStar = null;
public static PlanetData TargetPlanet = null;
public static EnemyDFHiveSystem TargetHive = null;
public static CosmicMessageData TargetMsg = null;
public static int TargetEnemyId = 0;
public static bool lockOn = false;
public static StarData preloadStar = null;
public static CruiseAssistState State = CruiseAssistState.INACTIVE;
public static CruiseAssistState lastState = CruiseAssistState.INACTIVE;
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;
public static Func<EnemyDFHiveSystem, string> GetHiveName = (EnemyDFHiveSystem hive) => hive.displayName;
public static Func<EnemyData, string> GetEnemyName = delegate(EnemyData enemy)
{
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
EnemyProto val = ((ProtoSet<EnemyProto>)(object)LDB.enemies).Select((int)enemy.protoId);
return (val == null) ? "" : ((Proto)val).name;
};
public static Func<CosmicMessageData, string> GetMsgName = delegate(CosmicMessageData msg)
{
int protoId = msg.protoId;
string text = "";
text = Localization.Translate("宇宙讯息");
if (protoId > CosmicMessageProto.maxProtoId)
{
text = Localization.Translate("黑雾通讯器");
}
return text;
};
private Harmony harmony;
internal static List<CruiseAssistExtensionAPI> extensions = new List<CruiseAssistExtensionAPI>();
public static double TargetRange = 0.0;
public static EnemyData SelectTargetEnemy => GameMain.spaceSector.enemyPool[SelectTargetEnemyId];
public static EnemyData TargetEnemy => GameMain.spaceSector.enemyPool[TargetEnemyId];
public static VectorLF3 TargetUPos
{
get
{
//IL_000c: Unknown result type (might be due to invalid IL or missing references)
//IL_0038: Unknown result type (might be due to invalid IL or missing references)
//IL_0045: Unknown result type (might be due to invalid IL or missing references)
//IL_004a: Unknown result type (might be due to invalid IL or missing references)
//IL_0078: Unknown result type (might be due to invalid IL or missing references)
//IL_0086: Unknown result type (might be due to invalid IL or missing references)
//IL_00a3: Unknown result type (might be due to invalid IL or missing references)
//IL_0098: Unknown result type (might be due to invalid IL or missing references)
if (TargetPlanet != null)
{
return TargetPlanet.uPosition;
}
if (TargetHive != null)
{
return GameMain.spaceSector.astros[TargetHive.hiveAstroId - 1000000].uPos;
}
if (TargetEnemyId != 0)
{
VectorLF3 zero = VectorLF3.zero;
ref EnemyData reference = ref GameMain.spaceSector.enemyPool[TargetEnemyId];
GameMain.spaceSector.TransformFromAstro_ref(reference.astroId, ref zero, ref reference.pos);
return zero;
}
if (TargetMsg != null)
{
return TargetMsg.uPosition;
}
if (TargetStar == null)
{
return GameMain.mainPlayer.uPosition;
}
return TargetStar.uPosition;
}
}
public static bool CheckActive()
{
return State != CruiseAssistState.INACTIVE;
}
public void Awake()
{
//IL_0023: Unknown result type (might be due to invalid IL or missing references)
//IL_002d: Expected O, but got Unknown
LogManager.Logger = ((BaseUnityPlugin)this).Logger;
new CruiseAssistConfigManager(((BaseUnityPlugin)this).Config);
ConfigManager.CheckConfig(ConfigManager.Step.AWAKE);
harmony = new Harmony("nord.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));
harmony.PatchAll(typeof(Patch_DeterminLocalPlanet));
}
public void OnDestroy()
{
harmony.UnpatchSelf();
}
public void OnGUI()
{
//IL_0147: Unknown result type (might be due to invalid IL or missing references)
//IL_014c: Unknown result type (might be due to invalid IL or missing references)
//IL_0198: Unknown result type (might be due to invalid IL or missing references)
//IL_01bf: Unknown result type (might be due to invalid IL or missing references)
//IL_01e6: Unknown result type (might be due to invalid IL or missing references)
//IL_01fd: Unknown result type (might be due to invalid IL or missing references)
if (DSPGame.IsMenuDemo || GameMain.mainPlayer == null)
{
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) || VFInput.inCombatScreenGUI || ((ManualBehaviour)uiGame.controlPanelWindow).active || ((ManualBehaviour)uiGame.dashboard).active || ((ManualBehaviour)uiGame.statWindow).active || ((ManualBehaviour)uiGame.blueprintBrowser).active)
{
return;
}
bool extensionActive = false;
extensions.ForEach(delegate(CruiseAssistExtensionAPI extension)
{
extensionActive |= extension.CheckActive();
});
if (GameMain.mainPlayer.sailing || ((ManualBehaviour)uiGame.starmap).active || extensionActive)
{
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 = false;
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_0027: Unknown result type (might be due to invalid IL or missing references)
//IL_0038: Unknown result type (might be due to invalid IL or missing references)
//IL_0077: Unknown result type (might be due to invalid IL or missing references)
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 && (((IEnumerable<int>)new int[3] { 0, 1, 2 }).Any((Func<int, bool>)Input.GetMouseButton) || Input.mouseScrollDelta.y != 0f))
{
Input.ResetInputAxes();
return true;
}
return false;
}
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 static void Deactivate()
{
//IL_00a1: Unknown result type (might be due to invalid IL or missing references)
ClearSelectedTarget();
GameMain.mainPlayer.navigation.indicatorAstroId = 0;
GameMain.mainPlayer.navigation.indicatorEnemyId = 0;
GameMain.mainPlayer.navigation.indicatorMsgId = 0;
lockOn = false;
AbortPreloadStar();
extensions.ForEach(delegate(CruiseAssistExtensionAPI extension)
{
extension.SetInactive();
});
Player mainPlayer = GameMain.mainPlayer;
if (lastState != CruiseAssistState.INACTIVE && State == CruiseAssistState.INACTIVE && mainPlayer.warping && mainPlayer.warpCommand)
{
mainPlayer.warpCommand = false;
VFAudio.Create("warp-end", mainPlayer.transform, Vector3.zero, true, 0, -1, -1L);
}
}
public static EnemyDFHiveSystem GetSeedsTargetHive(EnemyData seed)
{
//IL_0000: Unknown result type (might be due to invalid IL or missing references)
//IL_0010: Unknown result type (might be due to invalid IL or missing references)
//IL_002c: Unknown result type (might be due to invalid IL or missing references)
//IL_003e: Unknown result type (might be due to invalid IL or missing references)
if (seed.dfTinderId <= 0)
{
return null;
}
EnemyDFHiveSystem hiveByAstroId = GameMain.spaceSector.GetHiveByAstroId(seed.astroId);
if (hiveByAstroId == null)
{
return null;
}
ref DFTinderComponent reference = ref hiveByAstroId.tinders.buffer[seed.dfTinderId];
if (reference.id == seed.dfTinderId && reference.direction > 0 && reference.stage >= -1)
{
return GameMain.spaceSector.GetHiveByAstroId(reference.targetHiveAstroId);
}
return null;
}
public static void TryPreloadStar(StarData star)
{
if (GameMain.localStar == null && star?.id != preloadStar?.id && !star.loaded && GameMain.isRunning)
{
if (preloadStar != null)
{
AbortPreloadStar();
}
preloadStar = star;
LogManager.LogInfo("Try to preload the star.");
}
}
public static void AbortPreloadStar()
{
if (preloadStar != null)
{
if (GameMain.localStar?.id != preloadStar.id && preloadStar.loaded)
{
LogManager.LogInfo("Abort star's preloading.");
}
preloadStar = null;
}
}
public static void ClearSelectedTarget()
{
SelectTargetStar = null;
SelectTargetPlanet = null;
SelectTargetHive = null;
SelectTargetMsg = null;
SelectTargetAstroId = 0;
SelectTargetEnemyId = 0;
SelectTargetMsgId = 0;
}
}
public abstract class ConfigManager
{
public enum Step
{
AWAKE,
GAME_MAIN_BEGIN,
UNIVERSE_GEN_CREATE_GALAXY,
STATE
}
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_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_000c: 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_0007: Unknown result type (might be due to invalid IL or missing references)
//IL_0011: 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_0009: Unknown result type (might be due to invalid IL or missing references)
//IL_000f: 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.");
}
}
[HarmonyPatch(typeof(GameData), "ArriveStar")]
public class Patch_ArriveStar
{
[HarmonyPrefix]
public static bool ArriveStar_Prefix(StarData star)
{
if (CruiseAssistPlugin.preloadStar != null && CruiseAssistPlugin.preloadStar.id != star?.id)
{
return false;
}
return true;
}
}
[HarmonyPatch(typeof(GameData), "DetermineLocalPlanet")]
public class Patch_DeterminLocalPlanet
{
[HarmonyPrefix]
public static bool DetermineLocalPlanet_Prefix(ref bool __result)
{
if (!CruiseAssistPlugin.PreventNonTargetLoadingFlag)
{
return true;
}
StarData val = null;
PlanetData val2 = null;
GameMain.data.GetNearestStarPlanet(ref val, ref val2);
if (CruiseAssistPlugin.preloadStar != null && val?.id != CruiseAssistPlugin.preloadStar.id)
{
__result = false;
return false;
}
return true;
}
}
[HarmonyPatch(typeof(UIStarmap))]
public class Patch_UIStarmap
{
[HarmonyPatch("_OnClose")]
[HarmonyPrefix]
public static void OnClose_Prefix()
{
ConfigManager.CheckConfig(ConfigManager.Step.STATE);
CruiseAssistPlugin.extensions.ForEach(delegate(CruiseAssistExtensionAPI extension)
{
extension.CheckConfig(ConfigManager.Step.STATE.ToString());
});
}
}
[HarmonyPatch(typeof(UITechTree))]
public class Patch_UITechTree
{
[HarmonyPatch("_OnOpen")]
[HarmonyPrefix]
public static void OnOpen_Prefix()
{
ConfigManager.CheckConfig(ConfigManager.Step.STATE);
CruiseAssistPlugin.extensions.ForEach(delegate(CruiseAssistExtensionAPI extension)
{
extension.CheckConfig(ConfigManager.Step.STATE.ToString());
});
}
}
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 = float.MinValue;
private static float lastCheckWindowTop = float.MinValue;
public static float TempScale = 150f;
private static GUIStyle windowStyle;
private static GUIStyle mainWindowStyleLabelStyle;
private static GUIStyle mainWindowStyleButtonStyle;
private static GUIStyle uiScaleTitleLabelStyle;
private static GUIStyle scaleSliderStyle;
private static GUIStyle scaleSliderThumbStyle;
private static GUIStyle uiScaleValueLabelStyle;
private static GUIStyle scaleSetButtonStyle;
private static GUIStyle toggleStyle;
private static GUIStyle closeButtonStyle;
public static void OnGUI()
{
//IL_0048: 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_006d: Expected O, but got Unknown
//IL_0068: Unknown result type (might be due to invalid IL or missing references)
//IL_006d: Unknown result type (might be due to invalid IL or missing references)
//IL_001d: Unknown result type (might be due to invalid IL or missing references)
//IL_0022: Unknown result type (might be due to invalid IL or missing references)
CruiseAssistMainUI.StyleStuff();
wIdx = CruiseAssistMainUI.wIdx;
windowStyle = (GUIStyle)(((object)windowStyle) ?? ((object)new GUIStyle(CruiseAssistMainUI.WindowStyle)
{
fontSize = 11
}));
Rect[wIdx] = GUILayout.Window(99030293, Rect[wIdx], new WindowFunction(WindowFunction), "CruiseAssist - Config", 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 != float.MinValue && (((Rect)(ref Rect[wIdx])).x != lastCheckWindowLeft || ((Rect)(ref Rect[wIdx])).y != lastCheckWindowTop))
{
CruiseAssistMainUI.NextCheckGameTick = GameMain.gameTick + 300;
}
lastCheckWindowLeft = ((Rect)(ref Rect[wIdx])).x;
lastCheckWindowTop = ((Rect)(ref Rect[wIdx])).y;
}
public static void WindowFunction(int windowId)
{
//IL_0027: Unknown result type (might be due to invalid IL or missing references)
//IL_002c: 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_0042: Unknown result type (might be due to invalid IL or missing references)
//IL_004a: Unknown result type (might be due to invalid IL or missing references)
//IL_0078: Unknown result type (might be due to invalid IL or missing references)
//IL_007d: Unknown result type (might be due to invalid IL or missing references)
//IL_0088: Unknown result type (might be due to invalid IL or missing references)
//IL_0093: Unknown result type (might be due to invalid IL or missing references)
//IL_00e5: Unknown result type (might be due to invalid IL or missing references)
//IL_0143: Unknown result type (might be due to invalid IL or missing references)
//IL_0148: Unknown result type (might be due to invalid IL or missing references)
//IL_0153: Unknown result type (might be due to invalid IL or missing references)
//IL_015e: Unknown result type (might be due to invalid IL or missing references)
//IL_0166: Unknown result type (might be due to invalid IL or missing references)
//IL_0194: Unknown result type (might be due to invalid IL or missing references)
//IL_0199: Unknown result type (might be due to invalid IL or missing references)
//IL_01a4: Unknown result type (might be due to invalid IL or missing references)
//IL_01b1: Unknown result type (might be due to invalid IL or missing references)
//IL_01cb: Unknown result type (might be due to invalid IL or missing references)
//IL_0220: Unknown result type (might be due to invalid IL or missing references)
//IL_0225: Unknown result type (might be due to invalid IL or missing references)
//IL_0230: Unknown result type (might be due to invalid IL or missing references)
//IL_023b: Unknown result type (might be due to invalid IL or missing references)
//IL_0243: Unknown result type (might be due to invalid IL or missing references)
//IL_0285: Unknown result type (might be due to invalid IL or missing references)
//IL_028a: Unknown result type (might be due to invalid IL or missing references)
//IL_0295: Unknown result type (might be due to invalid IL or missing references)
//IL_02a0: Unknown result type (might be due to invalid IL or missing references)
//IL_02ac: Unknown result type (might be due to invalid IL or missing references)
//IL_02d5: Unknown result type (might be due to invalid IL or missing references)
//IL_0313: Unknown result type (might be due to invalid IL or missing references)
//IL_0318: Unknown result type (might be due to invalid IL or missing references)
//IL_0323: Unknown result type (might be due to invalid IL or missing references)
//IL_032b: Unknown result type (might be due to invalid IL or missing references)
//IL_0368: Unknown result type (might be due to invalid IL or missing references)
//IL_03ba: Unknown result type (might be due to invalid IL or missing references)
//IL_040c: Unknown result type (might be due to invalid IL or missing references)
//IL_045e: Unknown result type (might be due to invalid IL or missing references)
//IL_04b0: Unknown result type (might be due to invalid IL or missing references)
//IL_0502: Unknown result type (might be due to invalid IL or missing references)
//IL_0554: Unknown result type (might be due to invalid IL or missing references)
//IL_0597: Unknown result type (might be due to invalid IL or missing references)
//IL_059c: Unknown result type (might be due to invalid IL or missing references)
//IL_05a7: Unknown result type (might be due to invalid IL or missing references)
//IL_05b2: Unknown result type (might be due to invalid IL or missing references)
//IL_05db: Unknown result type (might be due to invalid IL or missing references)
GUILayout.BeginVertical(Array.Empty<GUILayoutOption>());
GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
mainWindowStyleLabelStyle = (GUIStyle)(((object)mainWindowStyleLabelStyle) ?? ((object)new GUIStyle(GUI.skin.label)
{
fixedWidth = 120f,
fixedHeight = 20f,
fontSize = 12,
alignment = (TextAnchor)3
}));
GUILayout.Label("Main Window Style :", mainWindowStyleLabelStyle, Array.Empty<GUILayoutOption>());
mainWindowStyleButtonStyle = (GUIStyle)(((object)mainWindowStyleButtonStyle) ?? ((object)new GUIStyle(CruiseAssistMainUI.BaseToolbarButtonStyle)
{
fixedWidth = 80f,
fixedHeight = 20f,
fontSize = 12
}));
string[] array = new string[2] { "FULL", "MINI" };
int num = ((CruiseAssistMainUI.ViewMode != CruiseAssistMainUIViewMode.FULL) ? 1 : 0);
GUI.changed = false;
int num2 = GUILayout.Toolbar(num, array, mainWindowStyleButtonStyle, 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 0:
CruiseAssistMainUI.ViewMode = CruiseAssistMainUIViewMode.FULL;
break;
case 1:
CruiseAssistMainUI.ViewMode = CruiseAssistMainUIViewMode.MINI;
break;
}
CruiseAssistMainUI.NextCheckGameTick = GameMain.gameTick + 300;
}
GUILayout.EndHorizontal();
GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
uiScaleTitleLabelStyle = (GUIStyle)(((object)uiScaleTitleLabelStyle) ?? ((object)new GUIStyle(GUI.skin.label)
{
fixedWidth = 60f,
fixedHeight = 20f,
fontSize = 12,
alignment = (TextAnchor)3
}));
GUILayout.Label("UI Scale :", uiScaleTitleLabelStyle, Array.Empty<GUILayoutOption>());
object obj = scaleSliderStyle;
if (obj == null)
{
GUIStyle val = new GUIStyle(CruiseAssistMainUI.BaseHorizontalSliderStyle)
{
fixedWidth = 180f
};
val.margin.top = 10;
val.alignment = (TextAnchor)3;
obj = (object)val;
}
scaleSliderStyle = (GUIStyle)obj;
scaleSliderThumbStyle = (GUIStyle)(((object)scaleSliderThumbStyle) ?? ((object)new GUIStyle(CruiseAssistMainUI.BaseHorizontalSliderThumbStyle)));
TempScale = GUILayout.HorizontalSlider(TempScale, 80f, 240f, scaleSliderStyle, scaleSliderThumbStyle, Array.Empty<GUILayoutOption>());
TempScale = (int)TempScale / 5 * 5;
uiScaleValueLabelStyle = (GUIStyle)(((object)uiScaleValueLabelStyle) ?? ((object)new GUIStyle(GUI.skin.label)
{
fixedWidth = 40f,
fixedHeight = 20f,
fontSize = 12,
alignment = (TextAnchor)3
}));
GUILayout.Label(TempScale.ToString("0") + "%", uiScaleValueLabelStyle, Array.Empty<GUILayoutOption>());
object obj2 = scaleSetButtonStyle;
if (obj2 == null)
{
GUIStyle val2 = new GUIStyle(CruiseAssistMainUI.BaseButtonStyle)
{
fixedWidth = 60f,
fixedHeight = 18f
};
val2.margin.top = 6;
val2.fontSize = 12;
obj2 = (object)val2;
}
scaleSetButtonStyle = (GUIStyle)obj2;
if (GUILayout.Button("SET", scaleSetButtonStyle, 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();
toggleStyle = (GUIStyle)(((object)toggleStyle) ?? ((object)new GUIStyle(CruiseAssistMainUI.BaseToggleStyle)
{
fixedHeight = 20f,
fontSize = 12,
alignment = (TextAnchor)3
}));
GUI.changed = false;
CruiseAssistPlugin.MarkVisitedFlag = GUILayout.Toggle(CruiseAssistPlugin.MarkVisitedFlag, "Mark the visited system and planet.", toggleStyle, 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.SelectFocusFlag = GUILayout.Toggle(CruiseAssistPlugin.SelectFocusFlag, "Focus when target selected.", toggleStyle, 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.HideDuplicateHistoryFlag = GUILayout.Toggle(CruiseAssistPlugin.HideDuplicateHistoryFlag, "Hide duplicate history.", toggleStyle, 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.AutoDisableLockCursorFlag = GUILayout.Toggle(CruiseAssistPlugin.AutoDisableLockCursorFlag, "Disable lock cursor when starting sail mode.", toggleStyle, 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.TrackDarkFogSeedsFlag = GUILayout.Toggle(CruiseAssistPlugin.TrackDarkFogSeedsFlag, "Display all active Dark Fog seeds in starlist.", toggleStyle, 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.PreventNonTargetLoadingFlag = GUILayout.Toggle(CruiseAssistPlugin.PreventNonTargetLoadingFlag, "Prevent loading of non-target stars when CruiseAssist is active.", toggleStyle, 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.DisplaySeedETAFlag = GUILayout.Toggle(CruiseAssistPlugin.DisplaySeedETAFlag, "Display ETA for Dark Fog seeds.", toggleStyle, 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();
closeButtonStyle = (GUIStyle)(((object)closeButtonStyle) ?? ((object)new GUIStyle(CruiseAssistMainUI.BaseButtonStyle)
{
fixedWidth = 80f,
fixedHeight = 20f,
fontSize = 12
}));
if (GUILayout.Button("Close", closeButtonStyle, Array.Empty<GUILayoutOption>()))
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
Show[wIdx] = false;
}
GUILayout.EndHorizontal();
GUILayout.EndVertical();
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 long nextCheckGameTick = long.MaxValue;
private static Vector2 scrollPos = Vector2.zero;
public static int trackedTinders = 0;
public static void OnGUI()
{
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
//IL_0010: Expected O, but got Unknown
//IL_001d: Unknown result type (might be due to invalid IL or missing references)
//IL_0029: Unknown result type (might be due to invalid IL or missing references)
//IL_003e: Expected O, but got Unknown
//IL_0039: Unknown result type (might be due to invalid IL or missing references)
//IL_003e: Unknown result type (might be due to invalid IL or missing references)
GUIStyle val = new GUIStyle(GUI.skin.window);
val.fontSize = 11;
Rect = GUILayout.Window(99030294, Rect, new WindowFunction(WindowFunction), "CruiseAssist - Debug", val, Array.Empty<GUILayoutOption>());
_ = 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))
{
nextCheckGameTick = GameMain.gameTick + 300;
}
lastCheckWindowLeft = ((Rect)(ref Rect)).x;
lastCheckWindowTop = ((Rect)(ref Rect)).y;
if (nextCheckGameTick <= GameMain.gameTick)
{
ConfigManager.CheckConfig(ConfigManager.Step.STATE);
nextCheckGameTick = long.MaxValue;
}
}
public static void WindowFunction(int windowId)
{
//IL_0014: Unknown result type (might be due to invalid IL or missing references)
//IL_001a: Expected O, but got Unknown
//IL_0022: Unknown result type (might be due to invalid IL or missing references)
//IL_002c: Unknown result type (might be due to invalid IL or missing references)
//IL_0031: Unknown result type (might be due to invalid IL or missing references)
//IL_0271: Unknown result type (might be due to invalid IL or missing references)
//IL_0295: 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>());
GUILayout.Label($"trackedTinders={trackedTinders}", val, Array.Empty<GUILayoutOption>());
GUILayout.Label($"CruiseAssist.lockOn={CruiseAssistPlugin.lockOn}", val, Array.Empty<GUILayoutOption>());
GUILayout.Label($"CruiseAssist.preloadStar={CruiseAssistPlugin.preloadStar?.id}", val, Array.Empty<GUILayoutOption>());
GUILayout.Label($"GameMain.localStar={GameMain.localStar?.id}", val, Array.Empty<GUILayoutOption>());
GUILayout.Label($"GameMain.localPlanet={GameMain.localPlanet?.id}", val, Array.Empty<GUILayoutOption>());
StarData preloadStar = CruiseAssistPlugin.preloadStar;
GUILayout.Label($"CruiseAssist.preloadStar.loaded={((preloadStar != null) ? new bool?(preloadStar.loaded) : null)}", val, Array.Empty<GUILayoutOption>());
GUILayout.Label($"CruiseAssist.ReticuleTargetStar.id={CruiseAssistPlugin.ReticuleTargetStar?.id}", val, Array.Empty<GUILayoutOption>());
GUILayout.Label($"CruiseAssist.ReticuleTargetPlanet.id={CruiseAssistPlugin.ReticuleTargetPlanet?.id}", val, Array.Empty<GUILayoutOption>());
GUILayout.Label($"CruiseAssist.SelectTargetStar.id={CruiseAssistPlugin.SelectTargetStar?.id}", val, Array.Empty<GUILayoutOption>());
GUILayout.Label($"CruiseAssist.SelectTargetPlanet.id={CruiseAssistPlugin.SelectTargetPlanet?.id}", val, Array.Empty<GUILayoutOption>());
GUILayout.Label($"CruiseAssist.SelectTargetMsg.protoId={CruiseAssistPlugin.SelectTargetMsg?.protoId}", val, Array.Empty<GUILayoutOption>());
GUILayout.Label($"CruiseAssist.TargetUPos={CruiseAssistPlugin.TargetUPos}", val, Array.Empty<GUILayoutOption>());
GUILayout.Label($"GameMain.mainPlayer.uPosition={GameMain.mainPlayer.uPosition}", val, Array.Empty<GUILayoutOption>());
GUILayout.Label($"GameMain.mainPlayer.navigation.indicatorAstroId={GameMain.mainPlayer.navigation.indicatorAstroId}", val, Array.Empty<GUILayoutOption>());
GUILayout.Label($"GameMain.mainPlayer.navigation.indicatorEnemyId={GameMain.mainPlayer.navigation.indicatorEnemyId}", val, Array.Empty<GUILayoutOption>());
GUILayout.Label($"GameMain.mainPlayer.navigation.indicatorMsgId={GameMain.mainPlayer.navigation.indicatorMsgId}", 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($"CruiseAssist.Enable={CruiseAssistPlugin.Enable}", val, Array.Empty<GUILayoutOption>());
GUILayout.Label($"CruiseAssist.History={CruiseAssistPlugin.History.Count()}", val, Array.Empty<GUILayoutOption>());
GUILayout.Label("CruiseAssist.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 enum CruiseAssistMainUIViewMode
{
FULL,
MINI
}
public class CruiseAssistStarListUI
{
private static int wIdx = 0;
public const float WindowWidth = 440f;
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, 440f, 480f),
new Rect(0f, 0f, 440f, 480f)
};
public static int ListSelected = 0;
public static int[] actionSelected = new int[3];
private static float lastCheckWindowLeft = float.MinValue;
private static float lastCheckWindowTop = float.MinValue;
private static readonly Vector2[] scrollPos = (Vector2[])(object)new Vector2[3]
{
Vector2.zero,
Vector2.zero,
Vector2.zero
};
private const string VisitedMark = "● ";
private const string NonVisitMark = "";
public static GUIStyle windowStyle = null;
public static GUIStyle mainWindowStyleButtonStyle = null;
public static GUIStyle nameLabelStyle = null;
public static GUIStyle nRangeLabelStyle = null;
public static GUIStyle hRangeLabelStyle = null;
public static GUIStyle nActionButtonStyle = null;
public static GUIStyle hActionButtonStyle = null;
public static GUIStyle nSortButtonStyle = null;
public static GUIStyle hSortButtonStyle = null;
public static GUIStyle nViewButtonStyle = null;
public static GUIStyle hViewButtonStyle = null;
public static GUIStyle buttonStyle = null;
public static GUIContent cheapText = null;
public static string[][] listButtonModeName = new string[3][]
{
new string[2] { "Target", "Bookmark" },
new string[3] { "Target", "Bookmark", "Delete" },
new string[3] { "Target", "Sort", "Delete" }
};
private static bool CanDisplayViewButton => ((ManualBehaviour)UIRoot.instance.uiGame.starmap).active;
public static GUIContent GetCheapGUIContent(string text)
{
//IL_0009: Unknown result type (might be due to invalid IL or missing references)
cheapText = (GUIContent)(((object)cheapText) ?? ((object)new GUIContent()));
cheapText.text = text;
return cheapText;
}
public static bool IsStarVisited(StarData star)
{
if (star != null)
{
return star.planets.Where((PlanetData p) => p.factory != null).Count() > 0;
}
return false;
}
public static void OnGUI()
{
//IL_0047: Unknown result type (might be due to invalid IL or missing references)
//IL_0053: Unknown result type (might be due to invalid IL or missing references)
//IL_006c: Expected O, but got Unknown
//IL_0067: Unknown result type (might be due to invalid IL or missing references)
//IL_006c: Unknown result type (might be due to invalid IL or missing references)
//IL_0018: Unknown result type (might be due to invalid IL or missing references)
wIdx = CruiseAssistMainUI.wIdx;
windowStyle = (GUIStyle)(((object)windowStyle) ?? ((object)new GUIStyle(CruiseAssistMainUI.WindowStyle)));
windowStyle.fontSize = 11;
Rect[wIdx] = GUILayout.Window(99030292, Rect[wIdx], new WindowFunction(WindowFunction), "CruiseAssist - StarList", 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 != float.MinValue && (((Rect)(ref Rect[wIdx])).x != lastCheckWindowLeft || ((Rect)(ref Rect[wIdx])).y != lastCheckWindowTop))
{
CruiseAssistMainUI.NextCheckGameTick = GameMain.gameTick + 300;
}
lastCheckWindowLeft = ((Rect)(ref Rect[wIdx])).x;
lastCheckWindowTop = ((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_009e: Unknown result type (might be due to invalid IL or missing references)
//IL_00e6: Unknown result type (might be due to invalid IL or missing references)
//IL_00fa: Unknown result type (might be due to invalid IL or missing references)
//IL_00ff: Unknown result type (might be due to invalid IL or missing references)
//IL_0117: Unknown result type (might be due to invalid IL or missing references)
//IL_0165: Unknown result type (might be due to invalid IL or missing references)
//IL_01b2: 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_022b: Unknown result type (might be due to invalid IL or missing references)
//IL_0254: Unknown result type (might be due to invalid IL or missing references)
//IL_02a6: Unknown result type (might be due to invalid IL or missing references)
//IL_02cf: Unknown result type (might be due to invalid IL or missing references)
//IL_0321: Unknown result type (might be due to invalid IL or missing references)
//IL_0547: Unknown result type (might be due to invalid IL or missing references)
//IL_05a9: Unknown result type (might be due to invalid IL or missing references)
//IL_060e: Unknown result type (might be due to invalid IL or missing references)
//IL_03ea: Unknown result type (might be due to invalid IL or missing references)
//IL_03ef: Unknown result type (might be due to invalid IL or missing references)
//IL_03f1: Unknown result type (might be due to invalid IL or missing references)
//IL_03fb: Unknown result type (might be due to invalid IL or missing references)
//IL_040b: Unknown result type (might be due to invalid IL or missing references)
GUILayout.BeginVertical(Array.Empty<GUILayoutOption>());
GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
mainWindowStyleButtonStyle = (GUIStyle)(((object)mainWindowStyleButtonStyle) ?? ((object)new GUIStyle(CruiseAssistMainUI.BaseButtonStyle)));
mainWindowStyleButtonStyle.fixedWidth = 80f;
mainWindowStyleButtonStyle.fixedHeight = 20f;
mainWindowStyleButtonStyle.fontSize = 12;
string[] array = new string[3] { "Normal", "History", "Bookmark" };
GUI.changed = false;
int num = GUILayout.Toolbar(ListSelected, array, mainWindowStyleButtonStyle, 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();
scrollPos[ListSelected] = GUILayout.BeginScrollView(scrollPos[ListSelected], GUIStyle.none, CruiseAssistMainUI.BaseVerticalScrollBarStyle, Array.Empty<GUILayoutOption>());
nameLabelStyle = (GUIStyle)(((object)nameLabelStyle) ?? ((object)new GUIStyle(GUI.skin.label)));
nameLabelStyle.fixedWidth = 240f;
nameLabelStyle.stretchHeight = true;
nameLabelStyle.fontSize = 14;
nameLabelStyle.alignment = (TextAnchor)3;
nRangeLabelStyle = (GUIStyle)(((object)nRangeLabelStyle) ?? ((object)new GUIStyle(GUI.skin.label)));
nRangeLabelStyle.fixedWidth = 60f;
nRangeLabelStyle.fixedHeight = 20f;
nRangeLabelStyle.fontSize = 14;
nRangeLabelStyle.alignment = (TextAnchor)5;
hRangeLabelStyle = (GUIStyle)(((object)hRangeLabelStyle) ?? ((object)new GUIStyle(nRangeLabelStyle)));
hRangeLabelStyle.fixedHeight = 40f;
nActionButtonStyle = (GUIStyle)(((object)nActionButtonStyle) ?? ((object)new GUIStyle(CruiseAssistMainUI.BaseButtonStyle)));
nActionButtonStyle.fixedWidth = 40f;
nActionButtonStyle.fixedHeight = 18f;
nActionButtonStyle.margin.top = 6;
nActionButtonStyle.fontSize = 12;
hActionButtonStyle = (GUIStyle)(((object)hActionButtonStyle) ?? ((object)new GUIStyle(nActionButtonStyle)));
hActionButtonStyle.margin.top = 16;
nSortButtonStyle = (GUIStyle)(((object)nSortButtonStyle) ?? ((object)new GUIStyle(CruiseAssistMainUI.BaseButtonStyle)));
nSortButtonStyle.fixedWidth = 20f;
nSortButtonStyle.fixedHeight = 18f;
nSortButtonStyle.margin.top = 6;
nSortButtonStyle.fontSize = 12;
hSortButtonStyle = (GUIStyle)(((object)hSortButtonStyle) ?? ((object)new GUIStyle(nSortButtonStyle)));
hSortButtonStyle.margin.top = 16;
nViewButtonStyle = (GUIStyle)(((object)nViewButtonStyle) ?? ((object)new GUIStyle(CruiseAssistMainUI.BaseButtonStyle)));
nViewButtonStyle.fixedWidth = 20f;
nViewButtonStyle.fixedHeight = 18f;
nViewButtonStyle.margin.top = 6;
nViewButtonStyle.fontSize = 12;
hViewButtonStyle = (GUIStyle)(((object)hViewButtonStyle) ?? ((object)new GUIStyle(nViewButtonStyle)));
hViewButtonStyle.margin.top = 16;
_ = UIRoot.instance.uiGame;
if (ListSelected == 0)
{
List<DFTinderComponent> activeTinders = null;
CruiseAssistDebugUI.trackedTinders = 0;
if (CruiseAssistPlugin.TrackDarkFogSeedsFlag)
{
activeTinders = new List<DFTinderComponent>();
EnemyDFHiveSystem[] dfHivesByAstro = GameMain.spaceSector.dfHivesByAstro;
foreach (EnemyDFHiveSystem val in dfHivesByAstro)
{
if (val == null || val.tinderCount == 0)
{
continue;
}
CruiseAssistDebugUI.trackedTinders += val.tinders.cursor;
for (int j = 1; j < val.tinders.cursor; j++)
{
if (((DFTinderComponent)(ref val.tinders.buffer[j])).ID > 0)
{
DFTinderComponent val2 = val.tinders.buffer[j];
if (val2.stage >= -1 && val2.direction > 0)
{
activeTinders.Add(val2);
}
}
}
}
}
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 val9 = star.uPosition - GameMain.mainPlayer.uPosition;
return new Tuple<StarData, double>(star, ((VectorLF3)(ref val9)).magnitude);
})
orderby tuple.v2
select tuple), (Action<Tuple<StarData, double>>)delegate(Tuple<StarData, double> tuple)
{
//IL_005d: Unknown result type (might be due to invalid IL or missing references)
//IL_0062: Unknown result type (might be due to invalid IL or missing references)
//IL_0069: Unknown result type (might be due to invalid IL or missing references)
//IL_074c: Unknown result type (might be due to invalid IL or missing references)
//IL_0760: Unknown result type (might be due to invalid IL or missing references)
//IL_009e: 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_00aa: Unknown result type (might be due to invalid IL or missing references)
//IL_00ac: Unknown result type (might be due to invalid IL or missing references)
//IL_00ae: Unknown result type (might be due to invalid IL or missing references)
//IL_00b8: Unknown result type (might be due to invalid IL or missing references)
//IL_00bd: Unknown result type (might be due to invalid IL or missing references)
//IL_00c2: Unknown result type (might be due to invalid IL or missing references)
//IL_00ce: Unknown result type (might be due to invalid IL or missing references)
//IL_0792: Unknown result type (might be due to invalid IL or missing references)
//IL_07a6: Unknown result type (might be due to invalid IL or missing references)
//IL_06db: Unknown result type (might be due to invalid IL or missing references)
//IL_06e5: Unknown result type (might be due to invalid IL or missing references)
//IL_06ea: Unknown result type (might be due to invalid IL or missing references)
//IL_06ef: 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_0144: Unknown result type (might be due to invalid IL or missing references)
//IL_0146: Unknown result type (might be due to invalid IL or missing references)
//IL_0148: Unknown result type (might be due to invalid IL or missing references)
//IL_0153: Unknown result type (might be due to invalid IL or missing references)
//IL_0158: Unknown result type (might be due to invalid IL or missing references)
//IL_015d: Unknown result type (might be due to invalid IL or missing references)
//IL_01f3: Unknown result type (might be due to invalid IL or missing references)
//IL_0207: Unknown result type (might be due to invalid IL or missing references)
//IL_025e: Unknown result type (might be due to invalid IL or missing references)
//IL_0218: Unknown result type (might be due to invalid IL or missing references)
//IL_0230: Unknown result type (might be due to invalid IL or missing references)
//IL_0244: Unknown result type (might be due to invalid IL or missing references)
//IL_08a8: Unknown result type (might be due to invalid IL or missing references)
//IL_0912: Unknown result type (might be due to invalid IL or missing references)
//IL_0348: Unknown result type (might be due to invalid IL or missing references)
//IL_0365: Unknown result type (might be due to invalid IL or missing references)
//IL_03b1: 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;
List<Tuple<EnemyData, double>> list = new List<Tuple<EnemyData, double>>();
VectorLF3 val6;
if (activeTinders != null)
{
foreach (DFTinderComponent item in activeTinders)
{
EnemyDFHiveSystem hiveByAstroId = GameMain.spaceSector.GetHiveByAstroId(item.targetHiveAstroId);
if (hiveByAstroId != null && hiveByAstroId.starData.id == star3.id)
{
EnemyData val5 = GameMain.spaceSector.enemyPool[item.enemyId];
val6 = val5.pos - GameMain.mainPlayer.uPosition;
double magnitude2 = ((VectorLF3)(ref val6)).magnitude;
list.Add(new Tuple<EnemyData, double>(val5, magnitude2));
}
}
list.Sort((Tuple<EnemyData, double> tuple1, Tuple<EnemyData, double> tuple2) => tuple1.v2.CompareTo(tuple2.v2));
foreach (Tuple<EnemyData, double> item2 in list)
{
GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
EnemyData v = item2.v1;
val6 = v.pos - star3.uPosition;
double magnitude3 = ((VectorLF3)(ref val6)).magnitude;
float magnitude4 = ((Vector3)(ref v.vel)).magnitude;
string text3;
if (magnitude4 <= 0f)
{
text3 = "∞";
}
else
{
double num5 = magnitude3 / (double)magnitude4;
int num6 = (int)(num5 / 3600.0);
int num7 = (int)(num5 % 3600.0 / 60.0);
int num8 = (int)(num5 % 60.0);
text3 = $"{num6}:{num7:D2}:{num8:D2}";
}
double v2 = item2.v2;
nameLabelStyle.normal.textColor = Color.red;
nRangeLabelStyle.normal.textColor = Color.red;
if (CruiseAssistPlugin.TargetEnemyId != 0 && v.id == CruiseAssistPlugin.TargetEnemyId)
{
nameLabelStyle.normal.textColor = CruiseAssistMainUI.enemyTextColor;
nRangeLabelStyle.normal.textColor = CruiseAssistMainUI.enemyTextColor;
}
string text4 = starName + " ← " + CruiseAssistPlugin.GetEnemyName(v);
if (CruiseAssistPlugin.MarkVisitedFlag)
{
text4 = (IsStarVisited(star3) ? "● " : "") + text4;
}
if (CruiseAssistPlugin.DisplaySeedETAFlag)
{
text4 = text4 + " (" + text3 + ")";
}
GUILayout.Label(text4, nameLabelStyle, Array.Empty<GUILayoutOption>());
float num9 = nameLabelStyle.CalcHeight(GetCheapGUIContent(text4), nameLabelStyle.fixedWidth);
GUILayout.FlexibleSpace();
GUILayout.Label(CruiseAssistMainUI.RangeToString(v2), (num9 < 30f) ? nRangeLabelStyle : hRangeLabelStyle, Array.Empty<GUILayoutOption>());
if (GUILayout.Button((actionSelected[ListSelected] == 0) ? "SET" : "-", (num9 < 30f) ? nActionButtonStyle : hActionButtonStyle, Array.Empty<GUILayoutOption>()))
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
if (actionSelected[ListSelected] == 0)
{
SelectEnemy(v.id);
}
}
if (CanDisplayViewButton && actionSelected[ListSelected] == 0 && GUILayout.Button("-", (num9 < 30f) ? nSortButtonStyle : hSortButtonStyle, Array.Empty<GUILayoutOption>()))
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
}
GUILayout.EndHorizontal();
}
}
UIStarmap starmap = UIRoot.instance.uiGame.starmap;
if (GameMain.localStar != null && star3.id == GameMain.localStar.id)
{
flag3 = true;
}
else if ((star3.id == CruiseAssistPlugin.SelectTargetStar?.id || star3.id == starmap.focusStar?.star.id || star3.id == starmap.focusPlanet?.planet.star.id || star3.id == starmap.focusHive?.hive.starData.id || star3.id == starmap.viewStar?.id || star3.id == starmap.viewPlanet?.star.id || star3.id == starmap.viewHive?.starData.id) && GameMain.history.universeObserveLevel >= ((range >= 14400000.0) ? 4 : 3))
{
flag3 = true;
}
if (flag3)
{
CollectionExtensions.Do<Tuple<EnemyDFHiveSystem, double>>((IEnumerable<Tuple<EnemyDFHiveSystem, double>>)(from tuple2 in GameMain.spaceSector.dfHivesByAstro.Where((EnemyDFHiveSystem hive) => hive != null && hive.starData.id == star3.id && hive.hasAnyStructureOrUnit).Select(delegate(EnemyDFHiveSystem hive)
{
//IL_001c: Unknown result type (might be due to invalid IL or missing references)
//IL_0026: Unknown result type (might be due to invalid IL or missing references)
//IL_002b: Unknown result type (might be due to invalid IL or missing references)
//IL_0030: Unknown result type (might be due to invalid IL or missing references)
VectorLF3 val8 = GameMain.spaceSector.astros[hive.hiveAstroId - 1000000].uPos - GameMain.mainPlayer.uPosition;
return new Tuple<EnemyDFHiveSystem, double>(hive, ((VectorLF3)(ref val8)).magnitude);
})
orderby tuple2.v2
select tuple2), (Action<Tuple<EnemyDFHiveSystem, double>>)delegate(Tuple<EnemyDFHiveSystem, double> tuple2)
{
//IL_0023: 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_0064: Unknown result type (might be due to invalid IL or missing references)
//IL_0078: Unknown result type (might be due to invalid IL or missing references)
//IL_0130: Unknown result type (might be due to invalid IL or missing references)
//IL_0199: Unknown result type (might be due to invalid IL or missing references)
GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
EnemyDFHiveSystem v5 = tuple2.v1;
double v6 = tuple2.v2;
nameLabelStyle.normal.textColor = Color.white;
nRangeLabelStyle.normal.textColor = Color.white;
if (CruiseAssistPlugin.SelectTargetHive != null && v5.hiveAstroId == CruiseAssistPlugin.SelectTargetHive.hiveAstroId)
{
nameLabelStyle.normal.textColor = CruiseAssistMainUI.hiveTextColor;
nRangeLabelStyle.normal.textColor = CruiseAssistMainUI.hiveTextColor;
}
string text8 = starName + " - " + CruiseAssistPlugin.GetHiveName(v5);
GUILayout.Label(text8, nameLabelStyle, Array.Empty<GUILayoutOption>());
float num12 = nameLabelStyle.CalcHeight(GetCheapGUIContent(text8), nameLabelStyle.fixedWidth);
GUILayout.FlexibleSpace();
GUILayout.Label(CruiseAssistMainUI.RangeToString(v6), (num12 < 30f) ? nRangeLabelStyle : hRangeLabelStyle, Array.Empty<GUILayoutOption>());
if (GUILayout.Button((actionSelected[ListSelected] == 0) ? "SET" : "-", (num12 < 30f) ? nActionButtonStyle : hActionButtonStyle, Array.Empty<GUILayoutOption>()))
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
if (actionSelected[ListSelected] == 0)
{
SelectHive(star3, v5);
}
}
if (CanDisplayViewButton && actionSelected[ListSelected] == 0 && GUILayout.Button("V", (num12 < 30f) ? nViewButtonStyle : hViewButtonStyle, Array.Empty<GUILayoutOption>()))
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
if (actionSelected[ListSelected] == 0)
{
SelectHive(star3, v5, set: false);
}
}
GUILayout.EndHorizontal();
});
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);
});
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_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_0038: Unknown result type (might be due to invalid IL or missing references)
//IL_0140: Unknown result type (might be due to invalid IL or missing references)
//IL_0154: Unknown result type (might be due to invalid IL or missing references)
//IL_0077: Unknown result type (might be due to invalid IL or missing references)
//IL_008b: 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_032a: Unknown result type (might be due to invalid IL or missing references)
GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
PlanetData v3 = tuple2.v1;
double v4 = tuple2.v2;
nameLabelStyle.normal.textColor = Color.white;
nRangeLabelStyle.normal.textColor = Color.white;
float num11;
if (v3 == 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.MarkVisitedFlag)
{
text6 = ((star3.planets.Where((PlanetData p) => p.factory != null).Count() > 0) ? "● " : "") + text6;
}
GUILayout.Label(text6, nameLabelStyle, Array.Empty<GUILayoutOption>());
num11 = nameLabelStyle.CalcHeight(GetCheapGUIContent(text6), nameLabelStyle.fixedWidth);
}
else
{
if (CruiseAssistPlugin.SelectTargetPlanet != null && v3.id == CruiseAssistPlugin.SelectTargetPlanet.id)
{
nameLabelStyle.normal.textColor = Color.cyan;
nRangeLabelStyle.normal.textColor = Color.cyan;
}
string text7 = starName + " - " + CruiseAssistPlugin.GetPlanetName(v3);
if (CruiseAssistPlugin.MarkVisitedFlag)
{
text7 = ((v3.factory != null) ? "● " : "") + text7;
}
GUILayout.Label(text7, nameLabelStyle, Array.Empty<GUILayoutOption>());
num11 = nameLabelStyle.CalcHeight(GetCheapGUIContent(text7), nameLabelStyle.fixedWidth);
}
GUILayout.FlexibleSpace();
GUILayout.Label(CruiseAssistMainUI.RangeToString((v3 == null) ? range : v4), (num11 < 30f) ? nRangeLabelStyle : hRangeLabelStyle, Array.Empty<GUILayoutOption>());
if (GUILayout.Button((actionSelected[ListSelected] == 0) ? "SET" : ((v3 == null) ? "-" : (CruiseAssistPlugin.Bookmark.Contains(v3.id) ? "DEL" : "ADD")), (num11 < 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, v3);
}
else if (v3 != null)
{
if (CruiseAssistPlugin.Bookmark.Contains(v3.id))
{
CruiseAssistPlugin.Bookmark.Remove(v3.id);
}
else if (CruiseAssistPlugin.Bookmark.Count <= 128)
{
CruiseAssistPlugin.Bookmark.Add(v3.id);
CruiseAssistMainUI.NextCheckGameTick = GameMain.gameTick + 300;
}
}
}
if (CanDisplayViewButton && actionSelected[ListSelected] == 0 && GUILayout.Button("V", (num11 < 30f) ? nViewButtonStyle : hViewButtonStyle, Array.Empty<GUILayoutOption>()))
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
if (actionSelected[ListSelected] == 0)
{
SelectStar(star3, v3, set: false);
}
}
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 text5 = starName;
if (CruiseAssistPlugin.MarkVisitedFlag)
{
text5 = ((star3.planets.Where((PlanetData p) => p.factory != null).Count() > 0) ? "● " : "") + text5;
}
GUILayout.Label(text5, nameLabelStyle, Array.Empty<GUILayoutOption>());
float num10 = nameLabelStyle.CalcHeight(GetCheapGUIContent(text5), nameLabelStyle.fixedWidth);
GUILayout.FlexibleSpace();
GUILayout.Label(CruiseAssistMainUI.RangeToString(range), (num10 < 30f) ? nRangeLabelStyle : hRangeLabelStyle, Array.Empty<GUILayoutOption>());
if (GUILayout.Button((actionSelected[ListSelected] == 0) ? "SET" : "-", (num10 < 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);
}
}
if (CanDisplayViewButton && actionSelected[ListSelected] == 0 && GUILayout.Button("V", (num10 < 30f) ? nViewButtonStyle : hViewButtonStyle, Array.Empty<GUILayoutOption>()))
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
if (actionSelected[ListSelected] == 0)
{
SelectStar(star3, null, set: false);
}
}
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.HideDuplicateHistoryFlag)
{
enumerable3 = enumerable3.Distinct();
}
int listIndex = -1;
CollectionExtensions.Do<int>(enumerable3, (Action<int>)delegate(int id)
{
//IL_0035: Unknown result type (might be due to invalid IL or missing references)
//IL_003f: Unknown result type (might be due to invalid IL or missing references)
//IL_0044: Unknown result type (might be due to invalid IL or missing references)
//IL_0049: Unknown result type (might be due to invalid IL or missing references)
//IL_005d: Unknown result type (might be due to invalid IL or missing references)
//IL_0071: Unknown result type (might be due to invalid IL or missing references)
//IL_00a6: Unknown result type (might be due to invalid IL or missing references)
//IL_00ba: Unknown result type (might be due to invalid IL or missing references)
//IL_02ff: Unknown result type (might be due to invalid IL or missing references)
//IL_01de: Unknown result type (might be due to invalid IL or missing references)
//IL_0449: 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)
int num2 = listIndex + 1;
listIndex = num2;
PlanetData val3 = GameMain.galaxy.PlanetById(id);
if (val3 != null)
{
StarData star2 = val3.star;
string text = CruiseAssistPlugin.GetStarName(star2);
VectorLF3 val4 = val3.uPosition - GameMain.mainPlayer.uPosition;
double magnitude = ((VectorLF3)(ref val4)).magnitude;
nameLabelStyle.normal.textColor = Color.white;
nRangeLabelStyle.normal.textColor = Color.white;
if (!highlighted && CruiseAssistPlugin.SelectTargetPlanet != null && val3.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(val3);
if (CruiseAssistPlugin.MarkVisitedFlag)
{
text2 = ((val3.factory != null) ? "● " : "") + text2;
}
GUILayout.Label(text2, nameLabelStyle, Array.Empty<GUILayoutOption>());
float num3 = nameLabelStyle.CalcHeight(GetCheapGUIContent(text2), nameLabelStyle.fixedWidth);
GUILayout.FlexibleSpace();
GUILayout.Label(CruiseAssistMainUI.RangeToString(magnitude), (num3 < 30f) ? nRangeLabelStyle : hRangeLabelStyle, Array.Empty<GUILayoutOption>());
if (ListSelected == 2 && actionSelected[ListSelected] == 1)
{
int num4 = CruiseAssistPlugin.Bookmark.IndexOf(id);
bool flag = num4 == 0;
bool flag2 = num4 == CruiseAssistPlugin.Bookmark.Count - 1;
if (GUILayout.Button(flag2 ? "-" : "↓", (num3 < 30f) ? nSortButtonStyle : hSortButtonStyle, Array.Empty<GUILayoutOption>()))
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
if (!flag2)
{
CruiseAssistPlugin.Bookmark.RemoveAt(num4);
CruiseAssistPlugin.Bookmark.Insert(num4 + 1, id);
}
}
if (GUILayout.Button(flag ? "-" : "↑", (num3 < 30f) ? nSortButtonStyle : hSortButtonStyle, Array.Empty<GUILayoutOption>()))
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
if (!flag)
{
CruiseAssistPlugin.Bookmark.RemoveAt(num4);
CruiseAssistPlugin.Bookmark.Insert(num4 - 1, id);
}
}
}
else
{
if (GUILayout.Button((actionSelected[ListSelected] == 0) ? "SET" : ((actionSelected[ListSelected] != 2) ? (CruiseAssistPlugin.Bookmark.Contains(id) ? "DEL" : "ADD") : ((ListSelected == 1 && listIndex == 0) ? "-" : "DEL")), (num3 < 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, val3);
}
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(val3.id);
CruiseAssistMainUI.NextCheckGameTick = GameMain.gameTick + 300;
}
}
}
if (CanDisplayViewButton && actionSelected[ListSelected] == 0 && GUILayout.Button("V", (num3 < 30f) ? nViewButtonStyle : hViewButtonStyle, Array.Empty<GUILayoutOption>()))
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
if (actionSelected[ListSelected] == 0)
{
SelectStar(star2, val3, set: false);
}
}
}
GUILayout.EndHorizontal();
}
});
}
GUILayout.EndScrollView();
GUILayout.FlexibleSpace();
GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
buttonStyle = (GUIStyle)(((object)buttonStyle) ?? ((object)new GUIStyle(CruiseAssistMainUI.BaseButtonStyle)));
buttonStyle.fixedWidth = 80f;
buttonStyle.fixedHeight = 20f;
buttonStyle.fontSize = 12;
if (GUILayout.Button(listButtonModeName[ListSelected][actionSelected[ListSelected]], buttonStyle, Array.Empty<GUILayoutOption>()))
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
actionSelected[ListSelected]++;
actionSelected[ListSelected] %= listButtonModeName[ListSelected].Length;
}
GUILayout.FlexibleSpace();
if (GUILayout.Button("Close", buttonStyle, Array.Empty<GUILayoutOption>()))
{
VFAudio.Create("ui-click-0", (Transform)null, Vector3.zero, true, 0, -1, -1L);
Show[wIdx] = false;
}
GUILayout.EndHorizontal();
GUILayout.EndVertical();
GUI.DragWindow();
}
public static void SelectStar(StarData star, PlanetData planet, bool set = true)
{
UIGame uiGame = UIRoot.instance.uiGame;
if (CruiseAssistPlugin.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 (using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Security;
using System.Security.Permissions;
using UnityEngine;
using UnityEngine.Bindings;
using UnityEngine.Internal;
using UnityEngine.Scripting;
[assembly: InternalsVisibleTo("UnityEngine.UnityWebRequestAudioModule")]
[assembly: InternalsVisibleTo("UnityEngine.UnityWebRequestTextureModule")]
[assembly: InternalsVisibleTo("UnityEngine.UnityWebRequestWWWModule")]
[assembly: InternalsVisibleTo("UnityEngine.VFXModule")]
[assembly: InternalsVisibleTo("UnityEngine.XRModule")]
[assembly: InternalsVisibleTo("UnityEngine.VRModule")]
[assembly: InternalsVisibleTo("UnityEngine.VehiclesModule")]
[assembly: InternalsVisibleTo("UnityEngine.VideoModule")]
[assembly: InternalsVisibleTo("UnityEngine.VirtualTexturingModule")]
[assembly: InternalsVisibleTo("UnityEngine.WindModule")]
[assembly: InternalsVisibleTo("UnityEngine.Networking")]
[assembly: InternalsVisibleTo("UnityEngine.Cloud")]
[assembly: InternalsVisibleTo("UnityEngine.Cloud.Service")]
[assembly: InternalsVisibleTo("Unity.Analytics")]
[assembly: InternalsVisibleTo("UnityEngine.Analytics")]
[assembly: InternalsVisibleTo("UnityEngine.UnityAnalyticsCommon")]
[assembly: InternalsVisibleTo("UnityEngine.Advertisements")]
[assembly: InternalsVisibleTo("UnityEngine.Purchasing")]
[assembly: InternalsVisibleTo("UnityEngine.TestRunner")]
[assembly: InternalsVisibleTo("Unity.Automation")]
[assembly: InternalsVisibleTo("Unity.Burst")]
[assembly: InternalsVisibleTo("Unity.Burst.Editor")]
[assembly: InternalsVisibleTo("Unity.DeploymentTests.Services")]
[assembly: InternalsVisibleTo("Unity.IntegrationTests")]
[assembly: InternalsVisibleTo("Unity.IntegrationTests.UnityAnalytics")]
[assembly: InternalsVisibleTo("Unity.IntegrationTests.Timeline")]
[assembly: InternalsVisibleTo("Unity.IntegrationTests.Framework")]
[assembly: InternalsVisibleTo("UnityEngine.UnityWebRequestAssetBundleModule")]
[assembly: InternalsVisibleTo("Unity.RuntimeTests")]
[assembly: InternalsVisibleTo("UnityEngine.UnityTestProtocolModule")]
[assembly: InternalsVisibleTo("UnityEngine.UmbraModule")]
[assembly: InternalsVisibleTo("UnityEngine.ImageConversionModule")]
[assembly: InternalsVisibleTo("UnityEngine.GameCenterModule")]
[assembly: InternalsVisibleTo("UnityEngine.GridModule")]
[assembly: InternalsVisibleTo("UnityEngine.TextRenderingModule")]
[assembly: InternalsVisibleTo("UnityEngine.InputLegacyModule")]
[assembly: InternalsVisibleTo("UnityEngine.TextCoreFontEngineModule")]
[assembly: InternalsVisibleTo("UnityEngine.TextCoreTextEngineModule")]
[assembly: InternalsVisibleTo("UnityEngine.IMGUIModule")]
[assembly: InternalsVisibleTo("UnityEngine.LocalizationModule")]
[assembly: InternalsVisibleTo("UnityEngine.NVIDIAModule")]
[assembly: InternalsVisibleTo("UnityEngine.ParticleSystemModule")]
[assembly: InternalsVisibleTo("UnityEngine.PerformanceReportingModule")]
[assembly: InternalsVisibleTo("UnityEngine.Physics2DModule")]
[assembly: InternalsVisibleTo("UnityEngine.ProfilerModule")]
[assembly: InternalsVisibleTo("UnityEngine.PropertiesModule")]
[assembly: InternalsVisibleTo("UnityEngine.RuntimeInitializeOnLoadManagerInitializerModule")]
[assembly: InternalsVisibleTo("UnityEngine.ScreenCaptureModule")]
[assembly: InternalsVisibleTo("UnityEngine.SpriteMaskModule")]
[assembly: InternalsVisibleTo("UnityEngine.SpriteShapeModule")]
[assembly: InternalsVisibleTo("UnityEngine.StreamingModule")]
[assembly: InternalsVisibleTo("UnityEngine.SubstanceModule")]
[assembly: InternalsVisibleTo("UnityEngine.SubsystemsModule")]
[assembly: InternalsVisibleTo("UnityEngine.TerrainModule")]
[assembly: InternalsVisibleTo("UnityEngine.TerrainPhysicsModule")]
[assembly: InternalsVisibleTo("UnityEngine.TilemapModule")]
[assembly: InternalsVisibleTo("UnityEngine.UIModule")]
[assembly: InternalsVisibleTo("UnityEngine.UIElementsModule")]
[assembly: InternalsVisibleTo("UnityEngine.UnityCurlModule")]
[assembly: InternalsVisibleTo("Unity.RuntimeTests.Framework")]
[assembly: InternalsVisibleTo("Unity.RuntimeTests.Framework.Tests")]
[assembly: InternalsVisibleTo("Unity.PerformanceTests.RuntimeTestRunner.Tests")]
[assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.004")]
[assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.005")]
[assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.006")]
[assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.007")]
[assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.008")]
[assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.009")]
[assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.010")]
[assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.011")]
[assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.012")]
[assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.013")]
[assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.014")]
[assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.015")]
[assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.016")]
[assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.017")]
[assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.018")]
[assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.019")]
[assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.020")]
[assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.021")]
[assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.022")]
[assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.023")]
[assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.024")]
[assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridgeDev.001")]
[assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridgeDev.002")]
[assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridgeDev.003")]
[assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridgeDev.004")]
[assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridgeDev.005")]
[assembly: InternalsVisibleTo("Unity.Subsystem.Registration")]
[assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.003")]
[assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.002")]
[assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.001")]
[assembly: InternalsVisibleTo("UnityEngine.Core.Runtime.Tests")]
[assembly: InternalsVisibleTo("Unity.RuntimeTests.AllIn1Runner")]
[assembly: InternalsVisibleTo("Unity.Timeline")]
[assembly: InternalsVisibleTo("Assembly-CSharp-testable")]
[assembly: InternalsVisibleTo("Assembly-CSharp-firstpass-testable")]
[assembly: InternalsVisibleTo("UnityEngine.SpatialTracking")]
[assembly: InternalsVisibleTo("GoogleAR.UnityNative")]
[assembly: InternalsVisibleTo("Unity.WindowsMRAutomation")]
[assembly: InternalsVisibleTo("Unity.2D.Sprite.Editor")]
[assembly: InternalsVisibleTo("Unity.2D.Sprite.EditorTests")]
[assembly: InternalsVisibleTo("Unity.UI.Builder.Editor")]
[assembly: InternalsVisibleTo("UnityEditor.UIBuilderModule")]
[assembly: InternalsVisibleTo("Unity.UI.Builder.EditorTests")]
[assembly: InternalsVisibleTo("Unity.UIElements")]
[assembly: InternalsVisibleTo("UnityEngine.GIModule")]
[assembly: InternalsVisibleTo("UnityEngine.UIElementsGameObjectsModule")]
[assembly: InternalsVisibleTo("Unity.UIElements.PlayModeTests")]
[assembly: InternalsVisibleTo("UnityEngine.UIElements.Tests")]
[assembly: InternalsVisibleTo("Unity.UIElements.EditorTests")]
[assembly: InternalsVisibleTo("UnityEngine.UI")]
[assembly: InternalsVisibleTo("Unity.Networking.Transport")]
[assembly: InternalsVisibleTo("Unity.ucg.QoS")]
[assembly: InternalsVisibleTo("Unity.Services.QoS")]
[assembly: InternalsVisibleTo("Unity.Logging")]
[assembly: InternalsVisibleTo("Unity.Entities")]
[assembly: InternalsVisibleTo("Unity.Entities.Tests")]
[assembly: InternalsVisibleTo("Unity.Collections")]
[assembly: InternalsVisibleTo("Unity.Runtime")]
[assembly: InternalsVisibleTo("Unity.Core")]
[assembly: InternalsVisibleTo("Unity.UIElements.Editor")]
[assembly: InternalsVisibleTo("UnityEngine.DirectorModule")]
[assembly: InternalsVisibleTo("UnityEngine.DSPGraphModule")]
[assembly: InternalsVisibleTo("UnityEngine.CrashReportingModule")]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: InternalsVisibleTo("UnityEngine")]
[assembly: InternalsVisibleTo("UnityEngine.SharedInternalsModule")]
[assembly: InternalsVisibleTo("UnityEngine.CoreModule")]
[assembly: InternalsVisibleTo("UnityEngine.AIModule")]
[assembly: InternalsVisibleTo("UnityEngine.PhysicsModule")]
[assembly: InternalsVisibleTo("UnityEngine.JSONSerializeModule")]
[assembly: InternalsVisibleTo("UnityEngine.InputModule")]
[assembly: InternalsVisibleTo("UnityEngine.ARModule")]
[assembly: InternalsVisibleTo("UnityEngine.AccessibilityModule")]
[assembly: InternalsVisibleTo("UnityEngine.AndroidJNIModule")]
[assembly: InternalsVisibleTo("UnityEngine.AnimationModule")]
[assembly: InternalsVisibleTo("UnityEngine.HotReloadModule")]
[assembly: InternalsVisibleTo("UnityEngine.AssetBundleModule")]
[assembly: InternalsVisibleTo("UnityEngine.AudioModule")]
[assembly: InternalsVisibleTo("UnityEngine.ClothModule")]
[assembly: InternalsVisibleTo("UnityEngine.ClusterInputModule")]
[assembly: InternalsVisibleTo("UnityEngine.ClusterRendererModule")]
[assembly: InternalsVisibleTo("UnityEngine.ContentLoadModule")]
[assembly: InternalsVisibleTo("UnityEngine.TLSModule")]
[assembly: InternalsVisibleTo("UnityEngine.UnityConnectModule")]
[assembly: InternalsVisibleTo("UnityEngine.UnityAnalyticsCommonModule")]
[assembly: InternalsVisibleTo("UnityEngine.UnityWebRequestModule")]
[assembly: InternalsVisibleTo("UnityEngine.UnityAnalyticsModule")]
[assembly: CompilationRelaxations(8)]
[assembly: UnityEngineModuleAssembly]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.0.0")]
[module: UnverifiableCode]
namespace UnityEngine
{
public enum TouchPhase
{
Began,
Moved,
Stationary,
Ended,
Canceled
}
public enum IMECompositionMode
{
Auto,
On,
Off
}
public enum TouchType
{
Direct,
Indirect,
Stylus
}
[NativeHeader("Runtime/Input/InputBindings.h")]
public struct Touch
{
private int m_FingerId;
private Vector2 m_Position;
private Vector2 m_RawPosition;
private Vector2 m_PositionDelta;
private float m_TimeDelta;
private int m_TapCount;
private TouchPhase m_Phase;
private TouchType m_Type;
private float m_Pressure;
private float m_maximumPossiblePressure;
private float m_Radius;
private float m_RadiusVariance;
private float m_AltitudeAngle;
private float m_AzimuthAngle;
public int fingerId
{
get
{
return m_FingerId;
}
set
{
m_FingerId = value;
}
}
public Vector2 position
{
get
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0007: Unknown result type (might be due to invalid IL or missing references)
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
return m_Position;
}
set
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0003: Unknown result type (might be due to invalid IL or missing references)
m_Position = value;
}
}
public Vector2 rawPosition
{
get
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0007: Unknown result type (might be due to invalid IL or missing references)
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
return m_RawPosition;
}
set
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0003: Unknown result type (might be due to invalid IL or missing references)
m_RawPosition = value;
}
}
public Vector2 deltaPosition
{
get
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0007: Unknown result type (might be due to invalid IL or missing references)
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
return m_PositionDelta;
}
set
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0003: Unknown result type (might be due to invalid IL or missing references)
m_PositionDelta = value;
}
}
public float deltaTime
{
get
{
return m_TimeDelta;
}
set
{
m_TimeDelta = value;
}
}
public int tapCount
{
get
{
return m_TapCount;
}
set
{
m_TapCount = value;
}
}
public TouchPhase phase
{
get
{
return m_Phase;
}
set
{
m_Phase = value;
}
}
public float pressure
{
get
{
return m_Pressure;
}
set
{
m_Pressure = value;
}
}
public float maximumPossiblePressure
{
get
{
return m_maximumPossiblePressure;
}
set
{
m_maximumPossiblePressure = value;
}
}
public TouchType type
{
get
{
return m_Type;
}
set
{
m_Type = value;
}
}
public float altitudeAngle
{
get
{
return m_AltitudeAngle;
}
set
{
m_AltitudeAngle = value;
}
}
public float azimuthAngle
{
get
{
return m_AzimuthAngle;
}
set
{
m_AzimuthAngle = value;
}
}
public float radius
{
get
{
return m_Radius;
}
set
{
m_Radius = value;
}
}
public float radiusVariance
{
get
{
return m_RadiusVariance;
}
set
{
m_RadiusVariance = value;
}
}
}
[Flags]
public enum PenStatus
{
None = 0,
Contact = 1,
Barrel = 2,
Inverted = 4,
Eraser = 8
}
public enum PenEventType
{
NoContact,
PenDown,
PenUp
}
public struct PenData
{
public Vector2 position;
public Vector2 tilt;
public PenStatus penStatus;
public float twist;
public float pressure;
public PenEventType contactType;
public Vector2 deltaPos;
}
public enum DeviceOrientation
{
Unknown,
Portrait,
PortraitUpsideDown,
LandscapeLeft,
LandscapeRight,
FaceUp,
FaceDown
}
public struct AccelerationEvent
{
internal float x;
internal float y;
internal float z;
internal float m_TimeDelta;
public Vector3 acceleration => new Vector3(x, y, z);
public float deltaTime => m_TimeDelta;
}
[NativeHeader("Runtime/Input/GetInput.h")]
public class Gyroscope
{
private int m_GyroIndex;
public Vector3 rotationRate => rotationRate_Internal(m_GyroIndex);
public Vector3 rotationRateUnbiased => rotationRateUnbiased_Internal(m_GyroIndex);
public Vector3 gravity => gravity_Internal(m_GyroIndex);
public Vector3 userAcceleration => userAcceleration_Internal(m_GyroIndex);
public Quaternion attitude => attitude_Internal(m_GyroIndex);
public bool enabled
{
get
{
return getEnabled_Internal(m_GyroIndex);
}
set
{
setEnabled_Internal(m_GyroIndex, value);
}
}
public float updateInterval
{
get
{
return getUpdateInterval_Internal(m_GyroIndex);
}
set
{
setUpdateInterval_Internal(m_GyroIndex, value);
}
}
internal Gyroscope(int index)
{
m_GyroIndex = index;
}
[FreeFunction("GetGyroRotationRate")]
private static Vector3 rotationRate_Internal(int idx)
{
//IL_0008: Unknown result type (might be due to invalid IL or missing references)
rotationRate_Internal_Injected(idx, out var ret);
return ret;
}
[FreeFunction("GetGyroRotationRateUnbiased")]
private static Vector3 rotationRateUnbiased_Internal(int idx)
{
//IL_0008: Unknown result type (might be due to invalid IL or missing references)
rotationRateUnbiased_Internal_Injected(idx, out var ret);
return ret;
}
[FreeFunction("GetGravity")]
private static Vector3 gravity_Internal(int idx)
{
//IL_0008: Unknown result type (might be due to invalid IL or missing references)
gravity_Internal_Injected(idx, out var ret);
return ret;
}
[FreeFunction("GetUserAcceleration")]
private static Vector3 userAcceleration_Internal(int idx)
{
//IL_0008: Unknown result type (might be due to invalid IL or missing references)
userAcceleration_Internal_Injected(idx, out var ret);
return ret;
}
[FreeFunction("GetAttitude")]
private static Quaternion attitude_Internal(int idx)
{
//IL_0008: Unknown result type (might be due to invalid IL or missing references)
attitude_Internal_Injected(idx, out var ret);
return ret;
}
[MethodImpl(MethodImplOptions.InternalCall)]
[FreeFunction("IsGyroEnabled")]
private static extern bool getEnabled_Internal(int idx);
[MethodImpl(MethodImplOptions.InternalCall)]
[FreeFunction("SetGyroEnabled")]
private static extern void setEnabled_Internal(int idx, bool enabled);
[MethodImpl(MethodImplOptions.InternalCall)]
[FreeFunction("GetGyroUpdateInterval")]
private static extern float getUpdateInterval_Internal(int idx);
[MethodImpl(MethodImplOptions.InternalCall)]
[FreeFunction("SetGyroUpdateInterval")]
private static extern void setUpdateInterval_Internal(int idx, float interval);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern void rotationRate_Internal_Injected(int idx, out Vector3 ret);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern void rotationRateUnbiased_Internal_Injected(int idx, out Vector3 ret);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern void gravity_Internal_Injected(int idx, out Vector3 ret);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern void userAcceleration_Internal_Injected(int idx, out Vector3 ret);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern void attitude_Internal_Injected(int idx, out Quaternion ret);
}
public struct LocationInfo
{
internal double m_Timestamp;
internal float m_Latitude;
internal float m_Longitude;
internal float m_Altitude;
internal float m_HorizontalAccuracy;
internal float m_VerticalAccuracy;
public float latitude => m_Latitude;
public float longitude => m_Longitude;
public float altitude => m_Altitude;
public float horizontalAccuracy => m_HorizontalAccuracy;
public float verticalAccuracy => m_VerticalAccuracy;
public double timestamp => m_Timestamp;
}
public enum LocationServiceStatus
{
Stopped,
Initializing,
Running,
Failed
}
[NativeHeader("Runtime/Input/LocationService.h")]
[NativeHeader("Runtime/Input/InputBindings.h")]
public class LocationService
{
internal struct HeadingInfo
{
public float magneticHeading;
public float trueHeading;
public float headingAccuracy;
public Vector3 raw;
public double timestamp;
}
public bool isEnabledByUser => IsServiceEnabledByUser();
public LocationServiceStatus status => GetLocationStatus();
public LocationInfo lastData
{
get
{
if (status != LocationServiceStatus.Running)
{
Debug.Log((object)"Location service updates are not enabled. Check LocationService.status before querying last location.");
}
return GetLastLocation();
}
}
[MethodImpl(MethodImplOptions.InternalCall)]
[FreeFunction("LocationService::IsServiceEnabledByUser")]
internal static extern bool IsServiceEnabledByUser();
[MethodImpl(MethodImplOptions.InternalCall)]
[FreeFunction("LocationService::GetLocationStatus")]
internal static extern LocationServiceStatus GetLocationStatus();
[FreeFunction("LocationService::GetLastLocation")]
internal static LocationInfo GetLastLocation()
{
GetLastLocation_Injected(out var ret);
return ret;
}
[MethodImpl(MethodImplOptions.InternalCall)]
[FreeFunction("LocationService::SetDesiredAccuracy")]
internal static extern void SetDesiredAccuracy(float value);
[MethodImpl(MethodImplOptions.InternalCall)]
[FreeFunction("LocationService::SetDistanceFilter")]
internal static extern void SetDistanceFilter(float value);
[MethodImpl(MethodImplOptions.InternalCall)]
[FreeFunction("LocationService::StartUpdatingLocation")]
internal static extern void StartUpdatingLocation();
[MethodImpl(MethodImplOptions.InternalCall)]
[FreeFunction("LocationService::StopUpdatingLocation")]
internal static extern void StopUpdatingLocation();
[FreeFunction("LocationService::GetLastHeading")]
internal static HeadingInfo GetLastHeading()
{
GetLastHeading_Injected(out var ret);
return ret;
}
[MethodImpl(MethodImplOptions.InternalCall)]
[FreeFunction("LocationService::IsHeadingUpdatesEnabled")]
internal static extern bool IsHeadingUpdatesEnabled();
[MethodImpl(MethodImplOptions.InternalCall)]
[FreeFunction("LocationService::SetHeadingUpdatesEnabled")]
internal static extern void SetHeadingUpdatesEnabled(bool value);
public void Start(float desiredAccuracyInMeters, float updateDistanceInMeters)
{
SetDesiredAccuracy(desiredAccuracyInMeters);
SetDistanceFilter(updateDistanceInMeters);
StartUpdatingLocation();
}
public void Start(float desiredAccuracyInMeters)
{
Start(desiredAccuracyInMeters, 10f);
}
public void Start()
{
Start(10f, 10f);
}
public void Stop()
{
StopUpdatingLocation();
}
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern void GetLastLocation_Injected(out LocationInfo ret);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern void GetLastHeading_Injected(out HeadingInfo ret);
}
public class Compass
{
public float magneticHeading => LocationService.GetLastHeading().magneticHeading;
public float trueHeading => LocationService.GetLastHeading().trueHeading;
public float headingAccuracy => LocationService.GetLastHeading().headingAccuracy;
public Vector3 rawVector => LocationService.GetLastHeading().raw;
public double timestamp => LocationService.GetLastHeading().timestamp;
public bool enabled
{
get
{
return LocationService.IsHeadingUpdatesEnabled();
}
set
{
LocationService.SetHeadingUpdatesEnabled(value);
}
}
}
[NativeHeader("Runtime/Camera/Camera.h")]
internal class CameraRaycastHelper
{
[FreeFunction("CameraScripting::RaycastTry")]
internal static GameObject RaycastTry(Camera cam, Ray ray, float distance, int layerMask)
{
return RaycastTry_Injected(cam, ref ray, distance, layerMask);
}
[FreeFunction("CameraScripting::RaycastTry2D")]
internal static GameObject RaycastTry2D(Camera cam, Ray ray, float distance, int layerMask)
{
return RaycastTry2D_Injected(cam, ref ray, distance, layerMask);
}
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern GameObject RaycastTry_Injected(Camera cam, ref Ray ray, float distance, int layerMask);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern GameObject RaycastTry2D_Injected(Camera cam, ref Ray ray, float distance, int layerMask);
}
[NativeHeader("Runtime/Input/InputBindings.h")]
public class Input
{
private static LocationService locationServiceInstance;
private static Compass compassInstance;
private static Gyroscope s_MainGyro;
public static extern bool simulateMouseWithTouches
{
[MethodImpl(MethodImplOptions.InternalCall)]
get;
[MethodImpl(MethodImplOptions.InternalCall)]
set;
}
[NativeThrows]
public static extern bool anyKey
{
[MethodImpl(MethodImplOptions.InternalCall)]
get;
}
[NativeThrows]
public static extern bool anyKeyDown
{
[MethodImpl(MethodImplOptions.InternalCall)]
get;
}
[NativeThrows]
public static extern string inputString
{
[MethodImpl(MethodImplOptions.InternalCall)]
get;
}
[NativeThrows]
public static Vector3 mousePosition
{
get
{
//IL_0007: Unknown result type (might be due to invalid IL or missing references)
get_mousePosition_Injected(out var ret);
return ret;
}
}
[NativeThrows]
public static Vector2 mouseScrollDelta
{
get
{
//IL_0007: Unknown result type (might be due to invalid IL or missing references)
get_mouseScrollDelta_Injected(out var ret);
return ret;
}
}
public static extern IMECompositionMode imeCompositionMode
{
[MethodImpl(MethodImplOptions.InternalCall)]
get;
[MethodImpl(MethodImplOptions.InternalCall)]
set;
}
public static extern string compositionString
{
[MethodImpl(MethodImplOptions.InternalCall)]
get;
}
public static extern bool imeIsSelected
{
[MethodImpl(MethodImplOptions.InternalCall)]
get;
}
public static Vector2 compositionCursorPos
{
get
{
//IL_0007: Unknown result type (might be due to invalid IL or missing references)
get_compositionCursorPos_Injected(out var ret);
return ret;
}
set
{
set_compositionCursorPos_Injected(ref value);
}
}
[Obsolete("eatKeyPressOnTextFieldFocus property is deprecated, and only provided to support legacy behavior.")]
public static extern bool eatKeyPressOnTextFieldFocus
{
[MethodImpl(MethodImplOptions.InternalCall)]
get;
[MethodImpl(MethodImplOptions.InternalCall)]
set;
}
public static extern bool mousePresent
{
[MethodImpl(MethodImplOptions.InternalCall)]
[FreeFunction("GetMousePresent")]
get;
}
public static extern int penEventCount
{
[MethodImpl(MethodImplOptions.InternalCall)]
[FreeFunction("GetPenEventCount")]
get;
}
public static extern int touchCount
{
[MethodImpl(MethodImplOptions.InternalCall)]
[FreeFunction("GetTouchCount")]
get;
}
public static extern bool touchPressureSupported
{
[MethodImpl(MethodImplOptions.InternalCall)]
[FreeFunction("IsTouchPressureSupported")]
get;
}
public static extern bool stylusTouchSupported
{
[MethodImpl(MethodImplOptions.InternalCall)]
[FreeFunction("IsStylusTouchSupported")]
get;
}
public static extern bool touchSupported
{
[MethodImpl(MethodImplOptions.InternalCall)]
[FreeFunction("IsTouchSupported")]
get;
}
public static extern bool multiTouchEnabled
{
[MethodImpl(MethodImplOptions.InternalCall)]
[FreeFunction("IsMultiTouchEnabled")]
get;
[MethodImpl(MethodImplOptions.InternalCall)]
[FreeFunction("SetMultiTouchEnabled")]
set;
}
[Obsolete("isGyroAvailable property is deprecated. Please use SystemInfo.supportsGyroscope instead.")]
public static extern bool isGyroAvailable
{
[MethodImpl(MethodImplOptions.InternalCall)]
[FreeFunction("IsGyroAvailable")]
get;
}
public static extern DeviceOrientation deviceOrientation
{
[MethodImpl(MethodImplOptions.InternalCall)]
[FreeFunction("GetDeviceOrientation")]
get;
}
public static Vector3 acceleration
{
[FreeFunction("GetAcceleration")]
get
{
//IL_0007: Unknown result type (might be due to invalid IL or missing references)
get_acceleration_Injected(out var ret);
return ret;
}
}
public static extern bool compensateSensors
{
[MethodImpl(MethodImplOptions.InternalCall)]
[FreeFunction("IsCompensatingSensors")]
get;
[MethodImpl(MethodImplOptions.InternalCall)]
[FreeFunction("SetCompensatingSensors")]
set;
}
public static extern int accelerationEventCount
{
[MethodImpl(MethodImplOptions.InternalCall)]
[FreeFunction("GetAccelerationCount")]
get;
}
public static extern bool backButtonLeavesApp
{
[MethodImpl(MethodImplOptions.InternalCall)]
[FreeFunction("GetBackButtonLeavesApp")]
get;
[MethodImpl(MethodImplOptions.InternalCall)]
[FreeFunction("SetBackButtonLeavesApp")]
set;
}
public static LocationService location
{
get
{
if (locationServiceInstance == null)
{
locationServiceInstance = new LocationService();
}
return locationServiceInstance;
}
}
public static Compass compass
{
get
{
if (compassInstance == null)
{
compassInstance = new Compass();
}
return compassInstance;
}
}
public static Gyroscope gyro
{
get
{
if (s_MainGyro == null)
{
s_MainGyro = new Gyroscope(GetGyroInternal());
}
return s_MainGyro;
}
}
public static Touch[] touches
{
get
{
int num = touchCount;
Touch[] array = new Touch[num];
for (int i = 0; i < num; i++)
{
array[i] = GetTouch(i);
}
return array;
}
}
public static AccelerationEvent[] accelerationEvents
{
get
{
int num = accelerationEventCount;
AccelerationEvent[] array = new AccelerationEvent[num];
for (int i = 0; i < num; i++)
{
array[i] = GetAccelerationEvent(i);
}
return array;
}
}
public static float GetAxis(string axisName)
{
return InputUnsafeUtility.GetAxis(axisName);
}
public static float GetAxisRaw(string axisName)
{
return InputUnsafeUtility.GetAxisRaw(axisName);
}
public static bool GetButton(string buttonName)
{
return InputUnsafeUtility.GetButton(buttonName);
}
public static bool GetButtonDown(string buttonName)
{
return InputUnsafeUtility.GetButtonDown(buttonName);
}
public static bool GetButtonUp(string buttonName)
{
return InputUnsafeUtility.GetButtonUp(buttonName);
}
[MethodImpl(MethodImplOptions.InternalCall)]
[NativeThrows]
private static extern bool GetKeyInt(KeyCode key);
[MethodImpl(MethodImplOptions.InternalCall)]
[NativeThrows]
private static extern bool GetKeyUpInt(KeyCode key);
[MethodImpl(MethodImplOptions.InternalCall)]
[NativeThrows]
private static extern bool GetKeyDownInt(KeyCode key);
[MethodImpl(MethodImplOptions.InternalCall)]
[NativeThrows]
public static extern bool GetMouseButton(int button);
[MethodImpl(MethodImplOptions.InternalCall)]
[NativeThrows]
public static extern bool GetMouseButtonDown(int button);
[MethodImpl(MethodImplOptions.InternalCall)]
[NativeThrows]
public static extern bool GetMouseButtonUp(int button);
[MethodImpl(MethodImplOptions.InternalCall)]
[FreeFunction("ResetInput")]
public static extern void ResetInputAxes();
[MethodImpl(MethodImplOptions.InternalCall)]
[NativeThrows]
public static extern string[] GetJoystickNames();
[NativeThrows]
public static Touch GetTouch(int index)
{
GetTouch_Injected(index, out var ret);
return ret;
}
[NativeThrows]
public static PenData GetPenEvent(int index)
{
GetPenEvent_Injected(index, out var ret);
return ret;
}
[NativeThrows]
public static PenData GetLastPenContactEvent()
{
GetLastPenContactEvent_Injected(out var ret);
return ret;
}
[MethodImpl(MethodImplOptions.InternalCall)]
[NativeThrows]
public static extern void ResetPenEvents();
[MethodImpl(MethodImplOptions.InternalCall)]
[NativeThrows]
public static extern void ClearLastPenContactEvent();
[NativeThrows]
public static AccelerationEvent GetAccelerationEvent(int index)
{
GetAccelerationEvent_Injected(index, out var ret);
return ret;
}
public static bool GetKey(KeyCode key)
{
//IL_0000: Unknown result type (might be due to invalid IL or missing references)
return GetKeyInt(key);
}
public static bool GetKey(string name)
{
return InputUnsafeUtility.GetKeyString(name);
}
public static bool GetKeyUp(KeyCode key)
{
//IL_0000: Unknown result type (might be due to invalid IL or missing references)
return GetKeyUpInt(key);
}
public static bool GetKeyUp(string name)
{
return InputUnsafeUtility.GetKeyUpString(name);
}
public static bool GetKeyDown(KeyCode key)
{
//IL_0000: Unknown result type (might be due to invalid IL or missing references)
return GetKeyDownInt(key);
}
public static bool GetKeyDown(string name)
{
return InputUnsafeUtility.GetKeyDownString(name);
}
[Conditional("UNITY_EDITOR")]
internal static void SimulateTouch(Touch touch)
{
}
[FreeFunction("SimulateTouch")]
[NativeConditional("UNITY_EDITOR")]
[Conditional("UNITY_EDITOR")]
private static void SimulateTouchInternal(Touch touch, long timestamp)
{
SimulateTouchInternal_Injected(ref touch, timestamp);
}
[MethodImpl(MethodImplOptions.InternalCall)]
[FreeFunction("GetGyro")]
private static extern int GetGyroInternal();
[MethodImpl(MethodImplOptions.InternalCall)]
internal static extern bool CheckDisabled();
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern void GetTouch_Injected(int index, out Touch ret);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern void GetPenEvent_Injected(int index, out PenData ret);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern void GetLastPenContactEvent_Injected(out PenData ret);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern void GetAccelerationEvent_Injected(int index, out AccelerationEvent ret);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern void SimulateTouchInternal_Injected(ref Touch touch, long timestamp);
[MethodImpl(MethodImplOptions.InternalCall)]
[SpecialName]
private static extern void get_mousePosition_Injected(out Vector3 ret);
[MethodImpl(MethodImplOptions.InternalCall)]
[SpecialName]
private static extern void get_mouseScrollDelta_Injected(out Vector2 ret);
[MethodImpl(MethodImplOptions.InternalCall)]
[SpecialName]
private static extern void get_compositionCursorPos_Injected(out Vector2 ret);
[MethodImpl(MethodImplOptions.InternalCall)]
[SpecialName]
private static extern void set_compositionCursorPos_Injected(ref Vector2 value);
[MethodImpl(MethodImplOptions.InternalCall)]
[SpecialName]
private static extern void get_acceleration_Injected(out Vector3 ret);
}
internal class SendMouseEvents
{
private struct HitInfo
{
public GameObject target;
public Camera camera;
public void SendMessage(string name)
{
target.SendMessage(name, (object)null, (SendMessageOptions)1);
}
public static implicit operator bool(HitInfo exists)
{
return (Object)(object)exists.target != (Object)null && (Object)(object)exists.camera != (Object)null;
}
public static bool Compare(HitInfo lhs, HitInfo rhs)
{
return (Object)(object)lhs.target == (Object)(object)rhs.target && (Object)(object)lhs.camera == (Object)(object)rhs.camera;
}
}
public enum LeftMouseButtonState
{
NotPressed,
Pressed,
PressedThisFrame
}
private const int m_HitIndexGUI = 0;
private const int m_HitIndexPhysics3D = 1;
private const int m_HitIndexPhysics2D = 2;
private static bool s_MouseUsed = false;
private static readonly HitInfo[] m_LastHit = new HitInfo[3];
private static readonly HitInfo[] m_MouseDownHit = new HitInfo[3];
private static readonly HitInfo[] m_CurrentHit = new HitInfo[3];
private static Camera[] m_Cameras;
public static Func<KeyValuePair<int, Vector2>> s_GetMouseState;
private static Vector2 s_MousePosition;
private static bool s_MouseButtonPressedThisFrame;
private static bool s_MouseButtonIsPressed;
private static void UpdateMouse()
{
//IL_001b: Unknown result type (might be due to invalid IL or missing references)
//IL_0020: Unknown result type (might be due to invalid IL or missing references)
//IL_0081: Unknown result type (might be due to invalid IL or missing references)
//IL_0053: Unknown result type (might be due to invalid IL or missing references)
//IL_0058: Unknown result type (might be due to invalid IL or missing references)
//IL_005d: Unknown result type (might be due to invalid IL or missing references)
if (s_GetMouseState != null)
{
KeyValuePair<int, Vector2> keyValuePair = s_GetMouseState();
s_MousePosition = keyValuePair.Value;
s_MouseButtonPressedThisFrame = keyValuePair.Key == 2;
s_MouseButtonIsPressed = keyValuePair.Key != 0;
}
else if (!Input.CheckDisabled())
{
s_MousePosition = Vector2.op_Implicit(Input.mousePosition);
s_MouseButtonPressedThisFrame = Input.GetMouseButtonDown(0);
s_MouseButtonIsPressed = Input.GetMouseButton(0);
}
else
{
s_MousePosition = default(Vector2);
s_MouseButtonPressedThisFrame = false;
s_MouseButtonIsPressed = false;
}
}
[RequiredByNativeCode]
private static void SetMouseMoved()
{
s_MouseUsed = true;
}
[RequiredByNativeCode]
private static void DoSendMouseEvents(int skipRTCameras)
{
//IL_0007: 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_00cb: Unknown result type (might be due to invalid IL or missing references)
//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
//IL_00d1: Unknown result type (might be due to invalid IL or missing references)
//IL_00d6: Unknown result type (might be due to invalid IL or missing references)
//IL_00d8: Unknown result type (might be due to invalid IL or missing references)
//IL_00da: Unknown result type (might be due to invalid IL or missing references)
//IL_01bc: Unknown result type (might be due to invalid IL or missing references)
//IL_01bd: Unknown result type (might be due to invalid IL or missing references)
//IL_01c2: Unknown result type (might be due to invalid IL or missing references)
//IL_00ee: Unknown result type (might be due to invalid IL or missing references)
//IL_01c7: Unknown result type (might be due to invalid IL or missing references)
//IL_01cc: Unknown result type (might be due to invalid IL or missing references)
//IL_01d0: Unknown result type (might be due to invalid IL or missing references)
//IL_01fc: Unknown result type (might be due to invalid IL or missing references)
//IL_01fe: Unknown result type (might be due to invalid IL or missing references)
//IL_0203: Unknown result type (might be due to invalid IL or missing references)
//IL_0207: Unknown result type (might be due to invalid IL or missing references)
//IL_0159: Unknown result type (might be due to invalid IL or missing references)
//IL_0163: Unknown result type (might be due to invalid IL or missing references)
//IL_0172: Unknown result type (might be due to invalid IL or missing references)
//IL_0243: Unknown result type (might be due to invalid IL or missing references)
//IL_0180: Unknown result type (might be due to invalid IL or missing references)
//IL_0295: Unknown result type (might be due to invalid IL or missing references)
//IL_029b: Invalid comparison between Unknown and I4
//IL_018e: Unknown result type (might be due to invalid IL or missing references)
//IL_029f: Unknown result type (might be due to invalid IL or missing references)
//IL_02a5: Invalid comparison between Unknown and I4
//IL_02d6: Unknown result type (might be due to invalid IL or missing references)
//IL_019c: Unknown result type (might be due to invalid IL or missing references)
//IL_0328: Unknown result type (might be due to invalid IL or missing references)
//IL_032e: Invalid comparison between Unknown and I4
//IL_0332: Unknown result type (might be due to invalid IL or missing references)
//IL_0338: Invalid comparison between Unknown and I4
UpdateMouse();
Vector2 val = s_MousePosition;
int allCamerasCount = Camera.allCamerasCount;
if (m_Cameras == null || m_Cameras.Length != allCamerasCount)
{
m_Cameras = (Camera[])(object)new Camera[allCamerasCount];
}
Camera.GetAllCameras(m_Cameras);
for (int i = 0; i < m_CurrentHit.Length; i++)
{
m_CurrentHit[i] = default(HitInfo);
}
if (!s_MouseUsed)
{
Camera[] cameras = m_Cameras;
Vector2 val4 = default(Vector2);
foreach (Camera val2 in cameras)
{
if ((Object)(object)val2 == (Object)null || (skipRTCameras != 0 && (Object)(object)val2.targetTexture != (Object)null))
{
continue;
}
int targetDisplay = val2.targetDisplay;
Vector3 val3 = Display.RelativeMouseAt(Vector2.op_Implicit(val));
if (val3 != Vector3.zero)
{
int num = (int)val3.z;
if (num != targetDisplay)
{
continue;
}
float num2 = Screen.width;
float num3 = Screen.height;
if (targetDisplay > 0 && targetDisplay < Display.displays.Length)
{
num2 = Display.displays[targetDisplay].systemWidth;
num3 = Display.displays[targetDisplay].systemHeight;
}
((Vector2)(ref val4))..ctor(val3.x / num2, val3.y / num3);
if (val4.x < 0f || val4.x > 1f || val4.y < 0f || val4.y > 1f)
{
continue;
}
}
else
{
val3 = Vector2.op_Implicit(val);
}
Rect pixelRect = val2.pixelRect;
if (((Rect)(ref pixelRect)).Contains(val3) && val2.eventMask != 0)
{
Ray ray = val2.ScreenPointToRay(val3);
float z = ((Ray)(ref ray)).direction.z;
float distance = (Mathf.Approximately(0f, z) ? float.PositiveInfinity : Mathf.Abs((val2.farClipPlane - val2.nearClipPlane) / z));
GameObject val5 = CameraRaycastHelper.RaycastTry(val2, ray, distance, val2.cullingMask & val2.eventMask);
if ((Object)(object)val5 != (Object)null)
{
m_CurrentHit[1].target = val5;
m_CurrentHit[1].camera = val2;
}
else if ((int)val2.clearFlags == 1 || (int)val2.clearFlags == 2)
{
m_CurrentHit[1].target = null;
m_CurrentHit[1].camera = null;
}
GameObject val6 = CameraRaycastHelper.RaycastTry2D(val2, ray, distance, val2.cullingMask & val2.eventMask);
if ((Object)(object)val6 != (Object)null)
{
m_CurrentHit[2].target = val6;
m_CurrentHit[2].camera = val2;
}
else if ((int)val2.clearFlags == 1 || (int)val2.clearFlags == 2)
{
m_CurrentHit[2].target = null;
m_CurrentHit[2].camera = null;
}
}
}
}
for (int k = 0; k < m_CurrentHit.Length; k++)
{
SendEvents(k, m_CurrentHit[k]);
}
s_MouseUsed = false;
}
private static void SendEvents(int i, HitInfo hit)
{
bool flag = s_MouseButtonPressedThisFrame;
bool flag2 = s_MouseButtonIsPressed;
if (flag)
{
if ((bool)hit)
{
m_MouseDownHit[i] = hit;
m_MouseDownHit[i].SendMessage("OnMouseDown");
}
}
else if (!flag2)
{
if ((bool)m_MouseDownHit[i])
{
if (HitInfo.Compare(hit, m_MouseDownHit[i]))
{
m_MouseDownHit[i].SendMessage("OnMouseUpAsButton");
}
m_MouseDownHit[i].SendMessage("OnMouseUp");
m_MouseDownHit[i] = default(HitInfo);
}
}
else if ((bool)m_MouseDownHit[i])
{
m_MouseDownHit[i].SendMessage("OnMouseDrag");
}
if (HitInfo.Compare(hit, m_LastHit[i]))
{
if ((bool)hit)
{
hit.SendMessage("OnMouseOver");
}
}
else
{
if ((bool)m_LastHit[i])
{
m_LastHit[i].SendMessage("OnMouseExit");
}
if ((bool)hit)
{
hit.SendMessage("OnMouseEnter");
hit.SendMessage("OnMouseOver");
}
}
m_LastHit[i] = hit;
}
}
}
namespace UnityEngine.Internal
{
[NativeHeader("Runtime/Input/InputBindings.h")]
internal static class InputUnsafeUtility
{
[MethodImpl(MethodImplOptions.InternalCall)]
[NativeThrows]
internal static extern bool GetKeyString(string name);
[MethodImpl(MethodImplOptions.InternalCall)]
[NativeThrows]
[RequiredMember]
internal unsafe static extern bool GetKeyString__Unmanaged(byte* name, int nameLen);
[MethodImpl(MethodImplOptions.InternalCall)]
[NativeThrows]
internal static extern bool GetKeyUpString(string name);
[MethodImpl(MethodImplOptions.InternalCall)]
[NativeThrows]
[RequiredMember]
internal unsafe static extern bool GetKeyUpString__Unmanaged(byte* name, int nameLen);
[MethodImpl(MethodImplOptions.InternalCall)]
[NativeThrows]
internal static extern bool GetKeyDownString(string name);
[MethodImpl(MethodImplOptions.InternalCall)]
[NativeThrows]
[RequiredMember]
internal unsafe static extern bool GetKeyDownString__Unmanaged(byte* name, int nameLen);
[MethodImpl(MethodImplOptions.InternalCall)]
[NativeThrows]
internal static extern float GetAxis(string axisName);
[MethodImpl(MethodImplOptions.InternalCall)]
[RequiredMember]
[NativeThrows]
internal unsafe static extern float GetAxis__Unmanaged(byte* axisName, int axisNameLen);
[MethodImpl(MethodImplOptions.InternalCall)]
[NativeThrows]
internal static extern float GetAxisRaw(string axisName);
[MethodImpl(MethodImplOptions.InternalCall)]
[NativeThrows]
[RequiredMember]
internal unsafe static extern float GetAxisRaw__Unmanaged(byte* axisName, int axisNameLen);
[MethodImpl(MethodImplOptions.InternalCall)]
[NativeThrows]
internal static extern bool GetButton(string buttonName);
[MethodImpl(MethodImplOptions.InternalCall)]
[NativeThrows]
[RequiredMember]
internal unsafe static extern bool GetButton__Unmanaged(byte* buttonName, int buttonNameLen);
[MethodImpl(MethodImplOptions.InternalCall)]
[NativeThrows]
internal static extern bool GetButtonDown(string buttonName);
[MethodImpl(MethodImplOptions.InternalCall)]
[NativeThrows]
[RequiredMember]
internal unsafe static extern byte GetButtonDown__Unmanaged(byte* buttonName, int buttonNameLen);
[MethodImpl(MethodImplOptions.InternalCall)]
[NativeThrows]
internal static extern bool GetButtonUp(string buttonName);
[MethodImpl(MethodImplOptions.InternalCall)]
[RequiredMember]
[NativeThrows]
internal unsafe static extern bool GetButtonUp__Unmanaged(byte* buttonName, int buttonNameLen);
}
}