using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Logging;
using GameNetcodeStuff;
using HarmonyLib;
using JetBrains.Annotations;
using Microsoft.CodeAnalysis;
using Newtonsoft.Json;
using TMPro;
using TerminalApi;
using TerminalApi.Events;
using TerminalDesktop.NetcodePatcher;
using TerminalDesktopMod.Extentions;
using TerminalDesktopMod.Sync;
using Unity.Netcode;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.Events;
using UnityEngine.Experimental.Rendering;
using UnityEngine.InputSystem;
using UnityEngine.Rendering;
using UnityEngine.UI;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: IgnoresAccessChecksTo("")]
[assembly: AssemblyCompany("TerminalDesktop")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.1.0.0")]
[assembly: AssemblyInformationalVersion("1.1.0+9d7c0146f0e469c26e32dae1683a57c42e2420df")]
[assembly: AssemblyProduct("TerminalDesktop")]
[assembly: AssemblyTitle("TerminalDesktop")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.1.0.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
[module: NetcodePatchedAssembly]
namespace Microsoft.CodeAnalysis
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
internal sealed class EmbeddedAttribute : Attribute
{
}
}
namespace System.Runtime.CompilerServices
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)]
internal sealed class NullableAttribute : Attribute
{
public readonly byte[] NullableFlags;
public NullableAttribute(byte P_0)
{
NullableFlags = new byte[1] { P_0 };
}
public NullableAttribute(byte[] P_0)
{
NullableFlags = P_0;
}
}
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)]
internal sealed class NullableContextAttribute : Attribute
{
public readonly byte Flag;
public NullableContextAttribute(byte P_0)
{
Flag = P_0;
}
}
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
internal sealed class RefSafetyRulesAttribute : Attribute
{
public readonly int Version;
public RefSafetyRulesAttribute(int P_0)
{
Version = P_0;
}
}
}
namespace TerminalDesktop
{
public static class MyPluginInfo
{
public const string PLUGIN_GUID = "TerminalDesktop";
public const string PLUGIN_NAME = "TerminalDesktop";
public const string PLUGIN_VERSION = "1.1.0";
}
}
namespace TerminalDesktopMod
{
public static class DesktopStorage
{
public delegate void TerminalNodeChangedEventHandler(Terminal sender, TerminalNode newNode);
public static TerminalDesktopSaveModel TerminalDesktopSaveModel { get; set; } = new TerminalDesktopSaveModel();
public static GameObject UsbFlashPort { get; set; }
public static GameObject DesktopPrefab { get; set; }
public static Item FlashDriveItem { get; set; }
public static TerminalNode ComputerPowerUpgrade { get; set; }
public static List<Item> SpawnableScraps { get; private set; } = new List<Item>();
public static List<DesktopIconBase> IconsPrefabs { get; private set; } = new List<DesktopIconBase>();
public static Dictionary<string, DesktopWindowBase> WindowsPrefabs { get; private set; } = new Dictionary<string, DesktopWindowBase>();
public static event TerminalNodeChangedEventHandler TerminalNodeChangeEvent;
public static void AddIcon(DesktopIconBase desktopIconBase)
{
IconsPrefabs.Add(desktopIconBase);
Main.Log.LogInfo((object)("Desktop added icon:" + ((Object)desktopIconBase).name));
}
public static void AddWindow(DesktopWindowBase desktopWindowBase)
{
WindowsPrefabs.Add(((object)desktopWindowBase).GetType().FullName, desktopWindowBase);
Main.Log.LogInfo((object)("Desktop added window:" + ((Object)desktopWindowBase).name));
}
[CanBeNull]
public static DesktopWindowBase GetWindowByType(string desktopWindowType)
{
DesktopWindowBase value;
return WindowsPrefabs.TryGetValue(desktopWindowType, out value) ? value : null;
}
public static void InvokeChangeTerminalNode(Terminal terminal, TerminalNode node)
{
DesktopStorage.TerminalNodeChangeEvent?.Invoke(terminal, node);
}
public static void ClearTerminalNodeEvent()
{
DesktopStorage.TerminalNodeChangeEvent = null;
}
}
[Serializable]
public class FlashDriveSaveModel
{
public int DecodeLevel { get; set; }
}
public class FlashDriveProp : PhysicsProp
{
public static UnityEvent<FlashDriveProp> FlashLoadedEvent = new UnityEvent<FlashDriveProp>();
private int _flashIndex;
public UsbPort UsbPort { get; set; }
public int FlashIndex
{
get
{
if (_flashIndex == 0)
{
_flashIndex = Random.Range(-2147483647, int.MaxValue);
}
return _flashIndex;
}
private set
{
_flashIndex = value;
}
}
public NetworkVariable<int> DecodeLevel { get; set; } = new NetworkVariable<int>(0, (NetworkVariableReadPermission)0, (NetworkVariableWritePermission)0);
public override int GetItemDataToSave()
{
Dictionary<int, string> flashSaves = DesktopStorage.TerminalDesktopSaveModel.FlashSaves;
if (flashSaves.TryGetValue(FlashIndex, out var _))
{
flashSaves[FlashIndex] = GetSaveData();
}
else
{
DesktopStorage.TerminalDesktopSaveModel.FlashSaves.Add(FlashIndex, GetSaveData());
}
return FlashIndex;
}
public override void LoadItemSaveData(int saveData)
{
FlashIndex = saveData;
((GrabbableObject)this).isInFactory = false;
FlashLoadedEvent.Invoke(this);
if (DesktopStorage.TerminalDesktopSaveModel.FlashSaves.TryGetValue(FlashIndex, out string value))
{
LoadData(value);
Main.Log.LogInfo((object)$"load flash {saveData}");
}
}
public override void GrabItem()
{
if (UsbPort != null)
{
UsbPort.PulledFlash();
UsbPort = null;
}
}
public virtual string GetSaveData()
{
FlashDriveSaveModel flashDriveSaveModel = new FlashDriveSaveModel
{
DecodeLevel = DecodeLevel.Value
};
return JsonConvert.SerializeObject((object)flashDriveSaveModel);
}
public virtual void LoadData(string data)
{
FlashDriveSaveModel flashDriveSaveModel = JsonConvert.DeserializeObject<FlashDriveSaveModel>(data);
DecodeLevel.Value = flashDriveSaveModel.DecodeLevel;
}
public virtual void UpdateDecodeLevel(int value)
{
if (((NetworkBehaviour)this).IsServer)
{
DecodeLevel.Value = value;
}
}
public override void OnDestroy()
{
((GrabbableObject)this).OnDestroy();
if (UsbPort != null)
{
UsbPort.PulledFlash();
UsbPort = null;
}
}
public override void OnPlaceObject()
{
((GrabbableObject)this).OnPlaceObject();
NetworkObject val = default(NetworkObject);
if ((Object)(object)((Component)this).transform.parent == (Object)null || !((Component)((Component)this).transform.parent).TryGetComponent<NetworkObject>(ref val))
{
Main.Log.LogInfo((object)"Flash drive placed, but not in a USB port. Ignoring.");
return;
}
UsbPort component = ((Component)val).GetComponent<UsbPort>();
if ((Object)(object)component != (Object)null)
{
Main.Log.LogInfo((object)"Flash drive placed in USB port, setting parent object to USB port transform.");
((GrabbableObject)this).parentObject = ((Component)val).transform;
((GrabbableObject)this).PlayDropSFX();
}
}
protected override void __initializeVariables()
{
if (DecodeLevel == null)
{
throw new Exception("FlashDriveProp.<DecodeLevel>k__BackingField cannot be null. All NetworkVariableBase instances must be initialized.");
}
((NetworkVariableBase)DecodeLevel).Initialize((NetworkBehaviour)(object)this);
((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)DecodeLevel, "DecodeLevel");
((NetworkBehaviour)this).NetworkVariableFields.Add((NetworkVariableBase)(object)DecodeLevel);
((PhysicsProp)this).__initializeVariables();
}
protected override void __initializeRpcs()
{
((PhysicsProp)this).__initializeRpcs();
}
[MethodImpl(MethodImplOptions.NoInlining)]
protected internal override string __getTypeName()
{
return "FlashDriveProp";
}
}
public class CameraIcon : DesktopIconBase
{
public DesktopWindowBase WindowPrefab;
public override void Click()
{
base.Click();
if (TerminalDesktopManager.Instance.GetFreeEnergy() <= 0)
{
TerminalDesktopManager.Instance.AddNotificationWindow("not enough energy to open the window");
}
else
{
TerminalDesktopManager.Instance.AddWindow(WindowPrefab);
}
}
}
public class DecodeIcon : DesktopIconBase
{
public DesktopWindowBase WindowPrefab;
public override void Click()
{
if (!TerminalDesktopManager.Instance.DesktopWindows.Any((DesktopWindowBase win) => win is DecodeWindow))
{
base.Click();
TerminalDesktopManager.Instance.AddWindow(WindowPrefab);
}
}
}
public class DesktopIconBase : MonoBehaviour
{
public Vector2 DesktopNormalizedPosition;
public UnityEvent ClickEvent { get; set; } = new UnityEvent();
private RectTransform CanvasRectTransform { get; set; }
private Image Image { get; set; }
protected virtual void Awake()
{
//IL_000d: Unknown result type (might be due to invalid IL or missing references)
//IL_0017: Expected O, but got Unknown
CanvasRectTransform = (RectTransform)((Component)((Component)this).GetComponentInParent<Canvas>()).transform;
Image = ((Component)this).GetComponentInParent<Image>();
}
protected virtual void Start()
{
//IL_0003: Unknown result type (might be due to invalid IL or missing references)
ChangePosition(DesktopNormalizedPosition);
}
public virtual void Click()
{
ClickEvent.Invoke();
}
public virtual void ChangePosition(float xNormalized, float yNormalized)
{
//IL_0004: Unknown result type (might be due to invalid IL or missing references)
ChangePosition(new Vector2(xNormalized, yNormalized));
}
public virtual void ChangePosition(Vector2 newNormalizedPos)
{
//IL_0013: Unknown result type (might be due to invalid IL or missing references)
//IL_0018: Unknown result type (might be due to invalid IL or missing references)
//IL_0019: Unknown result type (might be due to invalid IL or missing references)
//IL_001e: 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)
Transform transform = ((Component)this).transform;
RectTransform val = (RectTransform)(object)((transform is RectTransform) ? transform : null);
Vector2 anchoredPosition = CanvasRectTransform.sizeDelta * newNormalizedPos;
anchoredPosition.y *= -1f;
val.anchoredPosition = anchoredPosition;
}
public virtual void ChangeIconSprite(Sprite iconSprite)
{
Image.sprite = iconSprite;
}
}
public class MineIcon : DesktopIconBase
{
public DesktopWindowBase WindowPrefab;
public override void Click()
{
if (!TerminalDesktopManager.Instance.DesktopWindows.Any((DesktopWindowBase win) => win is MineWindow))
{
base.Click();
TerminalDesktopManager.Instance.AddWindow(WindowPrefab);
}
}
}
public class SettingsIcon : DesktopIconBase
{
private bool UseStaticCamera { get; set; } = true;
public Camera DynamicEventUICamera { get; private set; }
public Camera StaticEventUICamera { get; private set; }
public Transform StaticCameraPos { get; private set; }
public Camera StaticCamera { get; private set; }
private bool PreviousLocalVisorStatus { get; set; }
protected override void Start()
{
//IL_008a: Unknown result type (might be due to invalid IL or missing references)
//IL_0094: Expected O, but got Unknown
//IL_00a6: Unknown result type (might be due to invalid IL or missing references)
//IL_00b0: Expected O, but got Unknown
base.Start();
Transform val = ((Component)TerminalDesktopManager.Instance).transform.Find("CameraContainer");
StaticCameraPos = val.Find("TerminalStaticCamera");
StaticEventUICamera = ((Component)val.Find("TerminalStaticCameraEvent")).GetComponent<Camera>();
StaticEventUICamera.targetTexture = null;
StaticEventUICamera.depth = 10f;
StaticEventUICamera.clearFlags = (CameraClearFlags)3;
((Component)StaticEventUICamera).gameObject.SetActive(false);
Events.TerminalBeganUsing += new TerminalEventHandler(OnTerminalBeganUsing);
TerminalDesktopManager.Instance.TerminalExitEvent.AddListener(new UnityAction(OnTerminalExitedUsing));
}
private void FixedUpdate()
{
if (!UseStaticCamera)
{
PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController;
DynamicEventUICamera.fieldOfView = localPlayerController.gameplayCamera.fieldOfView;
}
}
public override void Click()
{
base.Click();
UseStaticCamera = !UseStaticCamera;
SwitchCamera();
}
private void OnTerminalBeganUsing(object sender, TerminalEventArgs e)
{
SwitchCamera();
}
private void SwitchCamera()
{
PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController;
if (UseStaticCamera)
{
if (StaticCamera == null)
{
CreateStaticCamera();
}
((Component)StaticCamera).gameObject.SetActive(true);
TerminalDesktopManager.Instance.CanvasDesktop.worldCamera = StaticEventUICamera;
StaticCamera.depth = 50f;
PreviousLocalVisorStatus = ((Component)localPlayerController.localVisor.GetChild(0)).gameObject.activeSelf;
((Component)localPlayerController.localVisor.GetChild(0)).gameObject.SetActive(false);
localPlayerController.isClimbingLadder = false;
localPlayerController.ladderCameraHorizontal = 0f;
}
else
{
StaticCamera.depth = -20f;
if (DynamicEventUICamera == null)
{
CreateDynamicEventCamera();
}
((Component)StaticCamera).gameObject.SetActive(false);
TerminalDesktopManager.Instance.CanvasDesktop.worldCamera = DynamicEventUICamera;
((Component)localPlayerController.localVisor.GetChild(0)).gameObject.SetActive(PreviousLocalVisorStatus);
localPlayerController.isClimbingLadder = true;
}
}
private void OnTerminalExitedUsing()
{
//IL_0095: Unknown result type (might be due to invalid IL or missing references)
PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController;
TerminalDesktopManager.Instance.CanvasDesktop.worldCamera = null;
if (UseStaticCamera)
{
StaticCamera.depth = -20f;
((Component)localPlayerController.localVisor.GetChild(0)).gameObject.SetActive(PreviousLocalVisorStatus);
((Component)StaticCamera).gameObject.SetActive(false);
}
localPlayerController.isClimbingLadder = false;
localPlayerController.ladderCameraHorizontal = 0f;
((Component)localPlayerController.gameplayCamera).transform.localRotation = Quaternion.Euler(0f, 0f, 0f);
}
private void CreateDynamicEventCamera()
{
//IL_002e: Unknown result type (might be due to invalid IL or missing references)
//IL_004e: Unknown result type (might be due to invalid IL or missing references)
PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController;
GameObject val = Object.Instantiate<GameObject>(((Component)localPlayerController.gameplayCamera).gameObject, ((Component)localPlayerController.gameplayCamera).transform);
val.transform.localPosition = Vector3.zero;
val.transform.localRotation = Quaternion.Euler(0f, 0f, 0f);
Object.Destroy((Object)(object)val.GetComponent<AudioListener>());
DynamicEventUICamera = val.GetComponent<Camera>();
DynamicEventUICamera.targetTexture = null;
DynamicEventUICamera.depth = 10f;
DynamicEventUICamera.clearFlags = (CameraClearFlags)3;
val.SetActive(false);
((Texture)ReferencesStorage.Terminal.playerScreenTexHighRes).width = DynamicEventUICamera.pixelWidth;
((Texture)ReferencesStorage.Terminal.playerScreenTexHighRes).height = DynamicEventUICamera.pixelHeight;
}
private void CreateStaticCamera()
{
//IL_0029: 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)
PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController;
GameObject val = Object.Instantiate<GameObject>(((Component)localPlayerController.gameplayCamera).gameObject, StaticCameraPos);
val.transform.localPosition = Vector3.zero;
val.transform.localRotation = Quaternion.Euler(0f, 0f, 0f);
Object.Destroy((Object)(object)val.GetComponent<AudioListener>());
StaticCamera = val.GetComponent<Camera>();
StaticCamera.targetTexture = ReferencesStorage.Terminal.playerScreenTexHighRes;
StaticCamera.depth = -5f;
StaticCamera.clearFlags = (CameraClearFlags)3;
StaticCamera.fieldOfView = 58f;
StaticEventUICamera.fieldOfView = StaticCamera.fieldOfView - 2f;
val.SetActive(false);
((Texture)ReferencesStorage.Terminal.playerScreenTexHighRes).width = StaticCamera.pixelWidth;
((Texture)ReferencesStorage.Terminal.playerScreenTexHighRes).height = StaticCamera.pixelHeight;
((Component)GameNetworkManager.Instance.localPlayerController.playerBodyAnimator).gameObject.SetActive(false);
((Component)GameNetworkManager.Instance.localPlayerController.playerBodyAnimator).gameObject.SetActive(true);
}
private void OnDestroy()
{
//IL_0008: Unknown result type (might be due to invalid IL or missing references)
//IL_0012: Expected O, but got Unknown
Events.TerminalBeganUsing -= new TerminalEventHandler(OnTerminalBeganUsing);
}
}
public class TerminalIcon : DesktopIconBase
{
public DesktopWindowBase WindowPrefab;
public override void Click()
{
if (!TerminalDesktopManager.Instance.DesktopWindows.Any((DesktopWindowBase win) => win is TerminalWindow))
{
base.Click();
TerminalDesktopManager.Instance.AddWindow(WindowPrefab);
}
}
}
public class TestIcon : DesktopIconBase
{
public DesktopWindowBase WindowBase;
public override void Click()
{
}
private void Call(DesktopWindowBase win)
{
if (win is HackAttackWindow hackAttackWindow)
{
hackAttackWindow.Init(Random.Range(2, 5));
TerminalDesktopManager.Instance.WindowAddedEvent.RemoveListener((UnityAction<DesktopWindowBase>)Call);
}
}
}
public class WalkieIcon : DesktopIconBase
{
public DesktopWindowBase WindowPrefab;
public override void Click()
{
if (!TerminalDesktopManager.Instance.DesktopWindows.Any((DesktopWindowBase win) => win is WalkieWindow))
{
base.Click();
TerminalDesktopManager.Instance.AddWindow(WindowPrefab);
}
}
}
[BepInPlugin("ss.desktop.terminal", "Terminal Desktop", "1.1.0")]
[BepInDependency(/*Could not decode attribute arguments.*/)]
public class Main : BaseUnityPlugin
{
public const string ModGUID = "ss.desktop.terminal";
public const string ModName = "Terminal Desktop";
public const string ModVersion = "1.1.0";
internal static ManualLogSource Log;
private readonly Harmony harmony = new Harmony("ss.desktop.terminal");
private AssetBundle bundle;
private void Awake()
{
Log = ((BaseUnityPlugin)this).Logger;
((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin Terminal Desktop is loading! v 1.1.0");
LoadAssetBundle();
LoadFlashItem();
GameObject val = LoadAsset<GameObject>("desktop.prefab");
GenerateRpc(val);
DesktopStorage.DesktopPrefab = val;
LoadUsbPortObject();
LoadDesktopIcons();
LoadDesktopWindows();
harmony.PatchAll();
GenerateTerminalCommand();
((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin Terminal Desktop is loaded! v 1.1.0");
}
private void LoadAssetBundle()
{
string directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
string text = Path.Combine(directoryName, "terminaldesktop");
if (!File.Exists(text))
{
throw new FileNotFoundException("Asset bundle not found at path: " + text);
}
bundle = AssetBundle.LoadFromFile(text);
if (!Object.op_Implicit((Object)(object)bundle))
{
throw new Exception("Failed to load AssetBundle from path: " + text);
}
}
private T LoadAsset<T>(string assetPath) where T : Object
{
if (bundle == null)
{
throw new Exception("AssetBundle is not loaded. Cannot load asset.");
}
string text = "assets/terminaldesktop/";
return bundle.LoadAsset<T>(text + assetPath);
}
private void LoadFlashItem()
{
Item item = (DesktopStorage.FlashDriveItem = LoadAsset<Item>("items/flashdrive.asset"));
DesktopStorage.SpawnableScraps.Add(item);
}
private void LoadUsbPortObject()
{
GameObject gameObject = (DesktopStorage.UsbFlashPort = LoadAsset<GameObject>("usbport.prefab"));
GenerateRpc(gameObject);
}
private void LoadDesktopIcons()
{
IEnumerable<GameObject> enumerable = from x in bundle.LoadAllAssets<GameObject>()
where Object.op_Implicit((Object)(object)x.GetComponent<DesktopIconBase>())
select x;
foreach (GameObject item in enumerable)
{
DesktopIconBase component = item.GetComponent<DesktopIconBase>();
if (component != null && ((Object)component).name != "DesktopIcon")
{
DesktopStorage.AddIcon(component);
}
}
}
private void LoadDesktopWindows()
{
IEnumerable<GameObject> enumerable = from x in bundle.LoadAllAssets<GameObject>()
where Object.op_Implicit((Object)(object)x.GetComponent<DesktopWindowBase>())
select x;
foreach (GameObject item in enumerable)
{
DesktopWindowBase component = item.GetComponent<DesktopWindowBase>();
if (component != null)
{
DesktopStorage.AddWindow(component);
}
}
}
private void GenerateTerminalCommand()
{
TerminalNode val = TerminalApi.CreateTerminalNode("Computer improved! \n Your new balance is [playerCredits].\n", true, "");
val.creatureName = "upgrade computer";
TerminalKeyword val2 = TerminalApi.CreateTerminalKeyword("upgrade", true, (TerminalNode)null);
TerminalKeyword val3 = TerminalApi.CreateTerminalKeyword("computer", false, (TerminalNode)null);
TerminalApi.AddTerminalKeyword(val3.defaultVerb = TerminalExtenstionMethods.AddCompatibleNoun(val2, val3, val));
TerminalApi.AddTerminalKeyword(val3);
DesktopStorage.ComputerPowerUpgrade = val;
}
private void GenerateRpc(GameObject gameObject)
{
NetworkBehaviour[] componentsInChildren = gameObject.GetComponentsInChildren<NetworkBehaviour>();
if (componentsInChildren == null)
{
return;
}
NetworkBehaviour[] array = componentsInChildren;
foreach (NetworkBehaviour val in array)
{
MethodInfo[] methods = ((object)val).GetType().GetMethods(BindingFlags.Static | BindingFlags.NonPublic);
MethodInfo[] array2 = methods;
foreach (MethodInfo methodInfo in array2)
{
if ((object)methodInfo.DeclaringType != null && methodInfo.DeclaringType.Namespace != null && methodInfo.DeclaringType.Namespace.Contains("TerminalDesktopMod") && methodInfo.GetParameters().Length == 0)
{
methodInfo.Invoke(null, null);
}
}
}
}
}
[HarmonyPatch(typeof(DeleteFileButton))]
public static class DeleteButtonPatch
{
[HarmonyPostfix]
[HarmonyPatch("DeleteFile")]
private static void DeleteFile(DeleteFileButton __instance)
{
string path = Path.Combine(Application.persistentDataPath, $"TD_{__instance.fileToDelete}.json");
if (File.Exists(path))
{
File.Delete(path);
}
}
}
[HarmonyPatch(typeof(GameNetworkManager))]
public static class GameNetworkManagerPatch
{
[HarmonyPatch("Start")]
[HarmonyPostfix]
private static void StartPatch()
{
NetworkManager.Singleton.AddNetworkPrefab(DesktopStorage.DesktopPrefab);
NetworkManager.Singleton.AddNetworkPrefab(DesktopStorage.UsbFlashPort);
foreach (Item spawnableScrap in DesktopStorage.SpawnableScraps)
{
NetworkManager.Singleton.AddNetworkPrefab(spawnableScrap.spawnPrefab);
}
}
[HarmonyPatch("SaveGame")]
[HarmonyPrefix]
private static void PrefixSaveGame(GameNetworkManager __instance)
{
if (__instance.isHostingGame)
{
DesktopStorage.TerminalDesktopSaveModel = new TerminalDesktopSaveModel();
if (WalkieWindow.TerminalWalkieTalkie != null && !((object)WalkieWindow.TerminalWalkieTalkie).Equals((object?)null))
{
((Component)WalkieWindow.TerminalWalkieTalkie).gameObject.SetActive(false);
}
}
}
[HarmonyPatch("SaveGame")]
[HarmonyPostfix]
private static void PostfixSaveGame(GameNetworkManager __instance)
{
if (__instance.isHostingGame)
{
TerminalDesktopManager.Instance.SaveDesktop();
if (WalkieWindow.TerminalWalkieTalkie != null && !((object)WalkieWindow.TerminalWalkieTalkie).Equals((object?)null))
{
((Component)WalkieWindow.TerminalWalkieTalkie).gameObject.SetActive(true);
}
}
}
[HarmonyPatch("ResetSavedGameValues")]
[HarmonyPrefix]
private static void ResetSavedGameValues(GameNetworkManager __instance)
{
TerminalDesktopManager.Instance.StartReset();
}
}
[HarmonyPatch(typeof(HUDManager))]
public static class HUDManagerPatch
{
[HarmonyPatch("SetClock")]
[HarmonyPostfix]
private static void StartPatch(HUDManager __instance, float timeNormalized, float numberOfHours, bool createNewLine)
{
ReferencesStorage.DayTime = __instance.GetClockTimeFormatted(timeNormalized, numberOfHours, createNewLine);
}
}
[HarmonyPatch(typeof(ManualCameraRenderer))]
public static class ManualCameraRendererPatch
{
[HarmonyPatch("Awake")]
[HarmonyPostfix]
public static void Start(ref ManualCameraRenderer __instance)
{
if (((Object)((Component)__instance).gameObject).name == "CameraMonitorScript")
{
ReferencesStorage.ManualCameraRenderer = __instance;
}
}
}
[HarmonyPatch(typeof(RoundManager))]
public static class RoundManagerPatch
{
[HarmonyPatch("SpawnScrapInLevel")]
[HarmonyPrefix]
public static void SpawnScrapInLevel(ref RoundManager __instance)
{
//IL_0057: Unknown result type (might be due to invalid IL or missing references)
//IL_0061: Expected O, but got Unknown
SelectableLevel currentLevel = __instance.currentLevel;
foreach (Item scrap in DesktopStorage.SpawnableScraps)
{
if (currentLevel.spawnableScrap.Count((SpawnableItemWithRarity x) => (Object)(object)x.spawnableItem == (Object)(object)scrap) == 0)
{
currentLevel.spawnableScrap.Add(new SpawnableItemWithRarity(scrap, 70));
}
}
}
}
[HarmonyPatch(typeof(StartOfRound))]
public static class StartOfRoundPatch
{
[HarmonyPatch("Awake")]
[HarmonyPrefix]
public static void Awake(ref StartOfRound __instance)
{
//IL_007e: Unknown result type (might be due to invalid IL or missing references)
//IL_0088: Expected O, but got Unknown
foreach (Item scrap in DesktopStorage.SpawnableScraps)
{
SelectableLevel[] levels = __instance.levels;
foreach (SelectableLevel val in levels)
{
if (val.spawnableScrap.Count((SpawnableItemWithRarity x) => (Object)(object)x.spawnableItem == (Object)(object)scrap) == 0)
{
val.spawnableScrap.Add(new SpawnableItemWithRarity(scrap, 70));
}
}
if (!__instance.allItemsList.itemsList.Contains(scrap))
{
__instance.allItemsList.itemsList.Add(scrap);
}
}
}
[HarmonyPatch("Start")]
[HarmonyPrefix]
public static void Start(ref StartOfRound __instance)
{
WalkieTalkie.allWalkieTalkies.Clear();
DesktopStorage.ClearTerminalNodeEvent();
if (((NetworkBehaviour)__instance).IsServer)
{
string text = GameNetworkManager.Instance.saveFileNum.ToString();
string path = Path.Combine(Application.persistentDataPath, "TD_" + text + ".json");
DesktopStorage.TerminalDesktopSaveModel = new TerminalDesktopSaveModel();
if (File.Exists(path))
{
string text2 = File.ReadAllText(path);
TerminalDesktopSaveModel terminalDesktopSaveModel = JsonConvert.DeserializeObject<TerminalDesktopSaveModel>(text2);
DesktopStorage.TerminalDesktopSaveModel = terminalDesktopSaveModel;
}
GameObject val = Object.Instantiate<GameObject>(DesktopStorage.DesktopPrefab);
NetworkObject component = val.GetComponent<NetworkObject>();
component.Spawn(false);
GameObject val2 = Object.Instantiate<GameObject>(DesktopStorage.UsbFlashPort);
NetworkObject component2 = val2.GetComponent<NetworkObject>();
component2.Spawn(false);
((Component)component2).GetComponent<UsbPort>().LoadPortById(1);
}
}
}
[HarmonyPatch(typeof(Terminal))]
public static class TerminalPatch
{
[HarmonyPatch("Awake")]
[HarmonyPrefix]
public static void Awake(ref Terminal __instance)
{
ReferencesStorage.Terminal = __instance;
}
[HarmonyPatch("LoadNewNode")]
[HarmonyPrefix]
public static void LoadNewNode(ref Terminal __instance, ref TerminalNode node)
{
DesktopStorage.InvokeChangeTerminalNode(__instance, node);
}
[HarmonyPatch("RotateShipDecorSelection")]
[HarmonyPostfix]
public static void RotateShipDecorSelection(ref Terminal __instance)
{
__instance.ShipDecorSelection.Add(DesktopStorage.ComputerPowerUpgrade);
}
}
[HarmonyPatch(typeof(WalkieTalkie))]
public static class WalkiePatch
{
[HarmonyPatch("OnDisable")]
[HarmonyPrefix]
public static bool OnDisable(ref WalkieTalkie __instance)
{
if (WalkieWindow.TerminalWalkieTalkie == null || ((object)WalkieWindow.TerminalWalkieTalkie).Equals((object?)null))
{
return true;
}
if ((Object)(object)WalkieWindow.TerminalWalkieTalkie == (Object)(object)__instance)
{
return false;
}
return true;
}
}
public static class ReferencesStorage
{
public static string DayTime { get; set; }
public static ManualCameraRenderer ManualCameraRenderer { get; set; }
public static Terminal Terminal { get; set; }
}
public class TerminalDesktopManager : NetworkBehaviour
{
[CompilerGenerated]
private sealed class <WaitInitPlayer>d__64 : IEnumerator<object>, IEnumerator, IDisposable
{
private int <>1__state;
private object <>2__current;
public TerminalDesktopManager <>4__this;
object IEnumerator<object>.Current
{
[DebuggerHidden]
get
{
return <>2__current;
}
}
object IEnumerator.Current
{
[DebuggerHidden]
get
{
return <>2__current;
}
}
[DebuggerHidden]
public <WaitInitPlayer>d__64(int <>1__state)
{
this.<>1__state = <>1__state;
}
[DebuggerHidden]
void IDisposable.Dispose()
{
<>1__state = -2;
}
private bool MoveNext()
{
//IL_0086: 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_0033: Unknown result type (might be due to invalid IL or missing references)
//IL_003d: Expected O, but got Unknown
//IL_0064: Unknown result type (might be due to invalid IL or missing references)
//IL_006e: Expected O, but got Unknown
switch (<>1__state)
{
default:
return false;
case 0:
<>1__state = -1;
goto IL_004d;
case 1:
<>1__state = -1;
goto IL_004d;
case 2:
{
<>1__state = -1;
<>4__this.GetSyncWindowsServerRpc();
return false;
}
IL_004d:
if (GameNetworkManager.Instance.localPlayerController == null)
{
<>2__current = (object)new WaitForSeconds(1f);
<>1__state = 1;
return true;
}
<>2__current = (object)new WaitForSeconds(1f);
<>1__state = 2;
return true;
}
}
bool IEnumerator.MoveNext()
{
//ILSpy generated this explicit interface implementation from .override directive in MoveNext
return this.MoveNext();
}
[DebuggerHidden]
void IEnumerator.Reset()
{
throw new NotSupportedException();
}
}
public List<UsbPort> UsbPorts = new List<UsbPort>();
[SerializeField]
private Camera StaticCamera;
[SerializeField]
private Transform IconsParent;
[SerializeField]
private Transform WindowsParent;
[SerializeField]
private Transform CollapsedWindowParent;
[SerializeField]
private GameObject CollapsedWindowPrefab;
[SerializeField]
private TextMeshProUGUI TimeText;
[SerializeField]
private TextMeshProUGUI PowerText;
public static TerminalDesktopManager Instance { get; set; }
public List<DesktopIconBase> DesktopIcons { get; set; } = new List<DesktopIconBase>();
public List<DesktopWindowBase> DesktopWindows { get; set; } = new List<DesktopWindowBase>();
public Dictionary<GameObject, DesktopWindowBase> CollapsedWindows { get; set; } = new Dictionary<GameObject, DesktopWindowBase>();
public UnityEvent<DesktopWindowBase> WindowAddedEvent { get; set; } = new UnityEvent<DesktopWindowBase>();
public UnityEvent TerminalExitEvent { get; set; } = new UnityEvent();
public Canvas CanvasDesktop { get; private set; }
public bool IsUsingTerminal { get; private set; }
private Terminal Terminal { get; set; }
private NetworkVariable<int> UseEnergy { get; set; } = new NetworkVariable<int>(0, (NetworkVariableReadPermission)0, (NetworkVariableWritePermission)0);
private NetworkVariable<int> MaxEnergy { get; set; } = new NetworkVariable<int>(0, (NetworkVariableReadPermission)0, (NetworkVariableWritePermission)0);
private int BaseUpgradeCost { get; set; } = 75;
private int WindowCounter { get; set; }
private void Awake()
{
Instance = this;
}
private void Start()
{
//IL_0041: 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_0072: 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_008e: Expected O, but got Unknown
//IL_009c: Unknown result type (might be due to invalid IL or missing references)
//IL_00a6: Expected O, but got Unknown
Terminal = ReferencesStorage.Terminal;
((Component)this).transform.parent = ((Component)Terminal.terminalUIScreen).transform.parent;
CanvasDesktop = ((Component)this).GetComponentInChildren<Canvas>();
((Component)this).transform.localScale = Vector3.one;
((Component)this).transform.localRotation = Quaternion.Euler(0f, 0f, 0f);
((Component)this).transform.localPosition = Vector3.zero;
Events.TerminalBeganUsing += new TerminalEventHandler(OnBeganUsing);
TerminalExitEvent.AddListener(new UnityAction(OnExitedUsing));
NetworkVariable<int> maxEnergy = MaxEnergy;
maxEnergy.OnValueChanged = (OnValueChangedDelegate<int>)(object)Delegate.Combine((Delegate?)(object)maxEnergy.OnValueChanged, (Delegate?)(object)new OnValueChangedDelegate<int>(OnMaxEnergyValueChanged));
DesktopStorage.TerminalNodeChangeEvent += DesktopStorageOnTerminalNodeChangeEvent;
DesktopStorage.ComputerPowerUpgrade.itemCost = BaseUpgradeCost * MaxEnergy.Value;
foreach (DesktopIconBase iconsPrefab in DesktopStorage.IconsPrefabs)
{
AddIcon(iconsPrefab);
}
if (((NetworkBehaviour)this).IsServer)
{
this.LoadDesktop();
}
if (((NetworkBehaviour)this).IsClient && !((NetworkBehaviour)this).IsHost)
{
((MonoBehaviour)this).StartCoroutine(WaitInitPlayer());
}
}
private void OnMaxEnergyValueChanged(int previousValue, int newValue)
{
DesktopStorage.ComputerPowerUpgrade.itemCost = BaseUpgradeCost * newValue;
}
private void DesktopStorageOnTerminalNodeChangeEvent(Terminal sender, TerminalNode newNode)
{
if (!((Object)(object)newNode != (Object)(object)DesktopStorage.ComputerPowerUpgrade))
{
if (ReferencesStorage.Terminal.groupCredits < newNode.itemCost)
{
newNode.displayText = "you could not afford these item";
return;
}
newNode.displayText = "Computer improved! \n Your new balance is [playerCredits].\n";
ReferencesStorage.Terminal.ChangeCredits(-newNode.itemCost);
SetMaxEnergy(MaxEnergy.Value + 1);
}
}
[IteratorStateMachine(typeof(<WaitInitPlayer>d__64))]
private IEnumerator WaitInitPlayer()
{
//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
return new <WaitInitPlayer>d__64(0)
{
<>4__this = this
};
}
private void FixedUpdate()
{
if (!((NetworkBehaviour)this).IsSpawned)
{
return;
}
((TMP_Text)TimeText).text = ((ReferencesStorage.DayTime == null) ? "??:??" : ReferencesStorage.DayTime);
((TMP_Text)PowerText).text = $"{UseEnergy.Value} / {MaxEnergy.Value}";
if (IsUsingTerminal)
{
PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController;
localPlayerController.isClimbingLadder = true;
if (!localPlayerController.inTerminalMenu)
{
TerminalExitEvent.Invoke();
}
}
}
public void AddIcon(DesktopIconBase iconBasePrefab)
{
//IL_001c: Unknown result type (might be due to invalid IL or missing references)
GameObject val = Object.Instantiate<GameObject>(((Component)iconBasePrefab).gameObject, IconsParent);
DesktopIconBase component = val.GetComponent<DesktopIconBase>();
component.ChangePosition(component.DesktopNormalizedPosition);
DesktopIcons.Add(component);
}
public int GetUseEnergy()
{
return UseEnergy.Value;
}
public int GetMaxEnergy()
{
return MaxEnergy.Value;
}
public int GetFreeEnergy()
{
return MaxEnergy.Value - UseEnergy.Value;
}
public void ChangeUseEnergy(int count)
{
if (((NetworkBehaviour)this).IsServer)
{
NetworkVariable<int> useEnergy = UseEnergy;
useEnergy.Value += count;
}
}
public void SetUseEnergy(int count)
{
if (((NetworkBehaviour)this).IsServer)
{
UseEnergy.Value = count;
}
}
public void SetMaxEnergy(int count)
{
SetMaxEnergyServerRpc(count);
}
[ServerRpc(RequireOwnership = false)]
private void SetMaxEnergyServerRpc(int count)
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_0099: Unknown result type (might be due to invalid IL or missing references)
//IL_00a3: Invalid comparison between Unknown and I4
//IL_005f: 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_0071: Unknown result type (might be due to invalid IL or missing references)
//IL_0089: 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)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost))
{
ServerRpcParams val = default(ServerRpcParams);
FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(482236400u, val, (RpcDelivery)0);
BytePacker.WriteValueBitPacked(val2, count);
((NetworkBehaviour)this).__endSendServerRpc(ref val2, 482236400u, val, (RpcDelivery)0);
}
if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
{
base.__rpc_exec_stage = (__RpcExecStage)0;
MaxEnergy.Value = count;
}
}
}
private void OnBeganUsing(object sender, TerminalEventArgs e)
{
Cursor.visible = true;
Cursor.lockState = (CursorLockMode)0;
IsUsingTerminal = true;
InputAction obj = IngamePlayerSettings.Instance.playerInput.actions.FindAction("Move", false);
if (obj != null)
{
obj.Disable();
}
}
private void OnExitedUsing()
{
IsUsingTerminal = false;
Cursor.visible = false;
Cursor.lockState = (CursorLockMode)1;
InputAction obj = IngamePlayerSettings.Instance.playerInput.actions.FindAction("Move", false);
if (obj != null)
{
obj.Enable();
}
}
private void ForceExitedTerminal()
{
InputAction obj = IngamePlayerSettings.Instance.playerInput.actions.FindAction("Move", false);
if (obj != null)
{
obj.Enable();
}
}
public void CollapseWindow(DesktopWindowBase windowBase)
{
GameObject val = Object.Instantiate<GameObject>(CollapsedWindowPrefab, CollapsedWindowParent);
val.GetComponent<Image>().sprite = windowBase.CollapseSprite;
CollapsedWindows.Add(val, windowBase);
val.SetActive(true);
}
public void ExpandWindow(GameObject collapsedIcon)
{
if (CollapsedWindows.TryGetValue(collapsedIcon, out DesktopWindowBase value))
{
UpdateWindow(value, new WindowSync
{
ChangeCollapsed = true,
IsCollapsed = false
});
}
}
public void ExpandWindow(DesktopWindowBase window)
{
DesktopWindowBase window2 = window;
GameObject key = CollapsedWindows.FirstOrDefault<KeyValuePair<GameObject, DesktopWindowBase>>((KeyValuePair<GameObject, DesktopWindowBase> x) => (Object)(object)x.Value == (Object)(object)window2).Key;
if (key != null)
{
CollapsedWindows.Remove(key);
Object.Destroy((Object)(object)key);
}
}
public DesktopWindowBase GetWindowByIndex(int windowIndex)
{
return DesktopWindows.FirstOrDefault((DesktopWindowBase x) => x.WindowIndex == windowIndex);
}
public void AddNotificationWindow(string notification)
{
DesktopWindowBase windowByType = DesktopStorage.GetWindowByType(typeof(NotificationWindow).FullName);
if (windowByType == null)
{
Main.Log.LogError((object)"Not found notification window");
return;
}
GameObject val = Object.Instantiate<GameObject>(((Component)windowByType).gameObject, WindowsParent);
NotificationWindow component = val.GetComponent<NotificationWindow>();
component.WindowIndex = -1;
component.SetText(notification);
}
public void AddWindow(DesktopWindowBase windowBasePrefab)
{
AddWindowServerRpc(((object)windowBasePrefab).GetType().FullName);
}
[ServerRpc(RequireOwnership = false)]
private void AddWindowServerRpc(string windowType)
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_00ca: Unknown result type (might be due to invalid IL or missing references)
//IL_00d4: Invalid comparison between Unknown and I4
//IL_005f: 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_0088: Unknown result type (might be due to invalid IL or missing references)
//IL_008e: 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_0120: Unknown result type (might be due to invalid IL or missing references)
//IL_0126: 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)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager == null || !networkManager.IsListening)
{
return;
}
if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost))
{
ServerRpcParams val = default(ServerRpcParams);
FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(3506602511u, val, (RpcDelivery)0);
bool flag = windowType != null;
((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives));
if (flag)
{
((FastBufferWriter)(ref val2)).WriteValueSafe(windowType, false);
}
((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3506602511u, val, (RpcDelivery)0);
}
if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
{
base.__rpc_exec_stage = (__RpcExecStage)0;
WindowCounter++;
AddWindowClientRpc(WindowCounter, windowType);
}
}
[ClientRpc]
private void AddWindowClientRpc(int winIndex, string windowType, ClientRpcParams clientRpcParams = default(ClientRpcParams))
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_00d7: Unknown result type (might be due to invalid IL or missing references)
//IL_00e1: Invalid comparison between Unknown and I4
//IL_005f: 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_0071: Unknown result type (might be due to invalid IL or missing references)
//IL_0095: 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_010c: 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)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager == null || !networkManager.IsListening)
{
return;
}
if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost))
{
FastBufferWriter val = ((NetworkBehaviour)this).__beginSendClientRpc(1529086400u, clientRpcParams, (RpcDelivery)0);
BytePacker.WriteValueBitPacked(val, winIndex);
bool flag = windowType != null;
((FastBufferWriter)(ref val)).WriteValueSafe<bool>(ref flag, default(ForPrimitives));
if (flag)
{
((FastBufferWriter)(ref val)).WriteValueSafe(windowType, false);
}
((NetworkBehaviour)this).__endSendClientRpc(ref val, 1529086400u, clientRpcParams, (RpcDelivery)0);
}
if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost))
{
base.__rpc_exec_stage = (__RpcExecStage)0;
DesktopWindowBase windowByType = DesktopStorage.GetWindowByType(windowType);
if (windowByType == null)
{
Main.Log.LogError((object)("Not found " + windowType + " window"));
return;
}
GameObject val2 = Object.Instantiate<GameObject>(((Component)windowByType).gameObject, WindowsParent);
DesktopWindowBase component = val2.GetComponent<DesktopWindowBase>();
component.WindowIndex = winIndex;
DesktopWindows.Add(component);
WindowAddedEvent.Invoke(component);
}
}
public void CloseWindow(DesktopWindowBase windowBase)
{
CloseWindowServerRpc(windowBase.WindowIndex);
}
[ServerRpc(RequireOwnership = false)]
private void CloseWindowServerRpc(int winIndex)
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_0099: Unknown result type (might be due to invalid IL or missing references)
//IL_00a3: Invalid comparison between Unknown and I4
//IL_005f: 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_0071: Unknown result type (might be due to invalid IL or missing references)
//IL_0089: 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)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost))
{
ServerRpcParams val = default(ServerRpcParams);
FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(547301171u, val, (RpcDelivery)0);
BytePacker.WriteValueBitPacked(val2, winIndex);
((NetworkBehaviour)this).__endSendServerRpc(ref val2, 547301171u, val, (RpcDelivery)0);
}
if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
{
base.__rpc_exec_stage = (__RpcExecStage)0;
CloseWindowClientRpc(winIndex);
}
}
}
[ClientRpc]
private void CloseWindowClientRpc(int windowIndex)
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_0099: Unknown result type (might be due to invalid IL or missing references)
//IL_00a3: Invalid comparison between Unknown and I4
//IL_005f: 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_0071: Unknown result type (might be due to invalid IL or missing references)
//IL_0089: 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)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager == null || !networkManager.IsListening)
{
return;
}
if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost))
{
ClientRpcParams val = default(ClientRpcParams);
FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(510893985u, val, (RpcDelivery)0);
BytePacker.WriteValueBitPacked(val2, windowIndex);
((NetworkBehaviour)this).__endSendClientRpc(ref val2, 510893985u, val, (RpcDelivery)0);
}
if ((int)base.__rpc_exec_stage != 1 || (!networkManager.IsClient && !networkManager.IsHost))
{
return;
}
base.__rpc_exec_stage = (__RpcExecStage)0;
DesktopWindowBase window = GetWindowByIndex(windowIndex);
if (window == null)
{
Main.Log.LogError((object)$"Not found {windowIndex} window");
return;
}
DesktopWindows.Remove(window);
GameObject key = CollapsedWindows.FirstOrDefault<KeyValuePair<GameObject, DesktopWindowBase>>((KeyValuePair<GameObject, DesktopWindowBase> x) => (Object)(object)x.Value == (Object)(object)window).Key;
if (key != null)
{
CollapsedWindows.Remove(key);
Object.Destroy((Object)(object)key);
}
window.CloseWindow();
Object.Destroy((Object)(object)((Component)window).gameObject);
}
public void UpdateWindow(DesktopWindowBase window, WindowSync windowSync)
{
UpdateWindowServerRpc(window.WindowIndex, windowSync);
}
[ServerRpc(RequireOwnership = false)]
private void UpdateWindowServerRpc(int indexWindow, WindowSync windowSync)
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_00e4: Unknown result type (might be due to invalid IL or missing references)
//IL_00ee: Invalid comparison between Unknown and I4
//IL_005f: 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_0071: Unknown result type (might be due to invalid IL or missing references)
//IL_0095: 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_0119: 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_00b9: Unknown result type (might be due to invalid IL or missing references)
//IL_00bf: 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_0158: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager == null || !networkManager.IsListening)
{
return;
}
if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost))
{
ServerRpcParams val = default(ServerRpcParams);
FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(1363074004u, val, (RpcDelivery)0);
BytePacker.WriteValueBitPacked(val2, indexWindow);
bool flag = windowSync != null;
((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives));
if (flag)
{
((FastBufferWriter)(ref val2)).WriteValueSafe<WindowSync>(ref windowSync, default(ForNetworkSerializable));
}
((NetworkBehaviour)this).__endSendServerRpc(ref val2, 1363074004u, val, (RpcDelivery)0);
}
if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
{
base.__rpc_exec_stage = (__RpcExecStage)0;
DesktopWindowBase windowByIndex = GetWindowByIndex(indexWindow);
if (windowByIndex == null)
{
Main.Log.LogError((object)$"Not found {indexWindow} window");
}
else
{
UpdateWindowClientRpc(indexWindow, windowSync);
}
}
}
[ClientRpc]
private void UpdateWindowClientRpc(int indexWindow, WindowSync windowSync, ClientRpcParams clientRpcParams = default(ClientRpcParams))
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_00e4: Unknown result type (might be due to invalid IL or missing references)
//IL_00ee: Invalid comparison between Unknown and I4
//IL_005f: 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_0071: Unknown result type (might be due to invalid IL or missing references)
//IL_0095: 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_0119: 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_00b9: Unknown result type (might be due to invalid IL or missing references)
//IL_00bf: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager == null || !networkManager.IsListening)
{
return;
}
if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost))
{
FastBufferWriter val = ((NetworkBehaviour)this).__beginSendClientRpc(434189457u, clientRpcParams, (RpcDelivery)0);
BytePacker.WriteValueBitPacked(val, indexWindow);
bool flag = windowSync != null;
((FastBufferWriter)(ref val)).WriteValueSafe<bool>(ref flag, default(ForPrimitives));
if (flag)
{
((FastBufferWriter)(ref val)).WriteValueSafe<WindowSync>(ref windowSync, default(ForNetworkSerializable));
}
((NetworkBehaviour)this).__endSendClientRpc(ref val, 434189457u, clientRpcParams, (RpcDelivery)0);
}
if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost))
{
base.__rpc_exec_stage = (__RpcExecStage)0;
DesktopWindowBase windowByIndex = GetWindowByIndex(indexWindow);
if (windowByIndex == null)
{
Main.Log.LogError((object)$"Not found {indexWindow} window");
}
else
{
windowByIndex.WindowSync(windowSync);
}
}
}
[ServerRpc(RequireOwnership = false)]
private void GetSyncWindowsServerRpc(ServerRpcParams serverRpcParams = default(ServerRpcParams))
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_008c: Unknown result type (might be due to invalid IL or missing references)
//IL_0096: Invalid comparison between Unknown and I4
//IL_005f: 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_007c: 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_00c7: 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_00d5: Unknown result type (might be due to invalid IL or missing references)
//IL_00df: Unknown result type (might be due to invalid IL or missing references)
//IL_00f6: Unknown result type (might be due to invalid IL or missing references)
//IL_00f7: Unknown result type (might be due to invalid IL or missing references)
//IL_00fc: 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_012b: Unknown result type (might be due to invalid IL or missing references)
//IL_0174: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager == null || !networkManager.IsListening)
{
return;
}
if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost))
{
FastBufferWriter val = ((NetworkBehaviour)this).__beginSendServerRpc(4271948650u, serverRpcParams, (RpcDelivery)0);
((NetworkBehaviour)this).__endSendServerRpc(ref val, 4271948650u, serverRpcParams, (RpcDelivery)0);
}
if ((int)base.__rpc_exec_stage != 1 || (!networkManager.IsServer && !networkManager.IsHost))
{
return;
}
base.__rpc_exec_stage = (__RpcExecStage)0;
ulong senderClientId = serverRpcParams.Receive.SenderClientId;
ClientRpcParams val2 = default(ClientRpcParams);
val2.Send = new ClientRpcSendParams
{
TargetClientIds = new ulong[1] { senderClientId }
};
ClientRpcParams clientRpcParams = val2;
foreach (DesktopWindowBase desktopWindow in DesktopWindows)
{
AddWindowClientRpc(desktopWindow.WindowIndex, ((object)desktopWindow).GetType().FullName, clientRpcParams);
}
foreach (DesktopWindowBase desktopWindow2 in DesktopWindows)
{
UpdateWindowClientRpc(desktopWindow2.WindowIndex, desktopWindow2.GetFullWindowSync(), clientRpcParams);
}
}
public override void OnDestroy()
{
//IL_0008: Unknown result type (might be due to invalid IL or missing references)
//IL_0012: Expected O, but got Unknown
Events.TerminalBeganUsing -= new TerminalEventHandler(OnBeganUsing);
DesktopStorage.TerminalNodeChangeEvent -= DesktopStorageOnTerminalNodeChangeEvent;
WalkieWindow.ManagerDestroyed();
TerminalWindow.ManagerDestroyed();
ForceExitedTerminal();
}
[ServerRpc(RequireOwnership = false)]
public void ChangeObjectOwnerServerRpc(NetworkObjectReference netObjRef, ulong clientId)
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
//IL_00be: Invalid comparison between Unknown and I4
//IL_005f: 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_007d: 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_008c: 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_00e9: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager == null || !networkManager.IsListening)
{
return;
}
if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost))
{
ServerRpcParams val = default(ServerRpcParams);
FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(403763237u, val, (RpcDelivery)0);
((FastBufferWriter)(ref val2)).WriteValueSafe<NetworkObjectReference>(ref netObjRef, default(ForNetworkSerializable));
BytePacker.WriteValueBitPacked(val2, clientId);
((NetworkBehaviour)this).__endSendServerRpc(ref val2, 403763237u, val, (RpcDelivery)0);
}
if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
{
base.__rpc_exec_stage = (__RpcExecStage)0;
NetworkObject val3 = default(NetworkObject);
if (((NetworkObjectReference)(ref netObjRef)).TryGet(ref val3, (NetworkManager)null))
{
val3.RemoveOwnership();
val3.ChangeOwnership(clientId);
}
}
}
public void StartReset()
{
ResetServerRpc();
}
[ServerRpc(RequireOwnership = false)]
private void ResetServerRpc()
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_008c: Unknown result type (might be due to invalid IL or missing references)
//IL_0096: Invalid comparison between Unknown and I4
//IL_005f: 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_007c: 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)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost))
{
ServerRpcParams val = default(ServerRpcParams);
FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(1554722835u, val, (RpcDelivery)0);
((NetworkBehaviour)this).__endSendServerRpc(ref val2, 1554722835u, val, (RpcDelivery)0);
}
if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
{
base.__rpc_exec_stage = (__RpcExecStage)0;
ResetClientRpc();
}
}
}
[ClientRpc]
private void ResetClientRpc()
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_008c: Unknown result type (might be due to invalid IL or missing references)
//IL_0096: Invalid comparison between Unknown and I4
//IL_005f: 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_007c: 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)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost))
{
ClientRpcParams val = default(ClientRpcParams);
FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(1478555575u, val, (RpcDelivery)0);
((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1478555575u, val, (RpcDelivery)0);
}
if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost))
{
base.__rpc_exec_stage = (__RpcExecStage)0;
this.ResetDesktop();
}
}
}
protected override void __initializeVariables()
{
if (UseEnergy == null)
{
throw new Exception("TerminalDesktopManager.<UseEnergy>k__BackingField cannot be null. All NetworkVariableBase instances must be initialized.");
}
((NetworkVariableBase)UseEnergy).Initialize((NetworkBehaviour)(object)this);
((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)UseEnergy, "UseEnergy");
base.NetworkVariableFields.Add((NetworkVariableBase)(object)UseEnergy);
if (MaxEnergy == null)
{
throw new Exception("TerminalDesktopManager.<MaxEnergy>k__BackingField cannot be null. All NetworkVariableBase instances must be initialized.");
}
((NetworkVariableBase)MaxEnergy).Initialize((NetworkBehaviour)(object)this);
((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)MaxEnergy, "MaxEnergy");
base.NetworkVariableFields.Add((NetworkVariableBase)(object)MaxEnergy);
((NetworkBehaviour)this).__initializeVariables();
}
protected override void __initializeRpcs()
{
//IL_000d: Unknown result type (might be due to invalid IL or missing references)
//IL_001c: Expected O, but got Unknown
//IL_0029: Unknown result type (might be due to invalid IL or missing references)
//IL_0038: Expected O, but got Unknown
//IL_0045: Unknown result type (might be due to invalid IL or missing references)
//IL_0054: Expected O, but got Unknown
//IL_0061: Unknown result type (might be due to invalid IL or missing references)
//IL_0070: Expected O, but got Unknown
//IL_007d: Unknown result type (might be due to invalid IL or missing references)
//IL_008c: Expected O, but got Unknown
//IL_0099: Unknown result type (might be due to invalid IL or missing references)
//IL_00a8: Expected O, but got Unknown
//IL_00b5: Unknown result type (might be due to invalid IL or missing references)
//IL_00c4: Expected O, but got Unknown
//IL_00d1: Unknown result type (might be due to invalid IL or missing references)
//IL_00e0: Expected O, but got Unknown
//IL_00ed: Unknown result type (might be due to invalid IL or missing references)
//IL_00fc: Expected O, but got Unknown
//IL_0109: Unknown result type (might be due to invalid IL or missing references)
//IL_0118: Expected O, but got Unknown
//IL_0125: Unknown result type (might be due to invalid IL or missing references)
//IL_0134: Expected O, but got Unknown
((NetworkBehaviour)this).__registerRpc(482236400u, new RpcReceiveHandler(__rpc_handler_482236400), "SetMaxEnergyServerRpc");
((NetworkBehaviour)this).__registerRpc(3506602511u, new RpcReceiveHandler(__rpc_handler_3506602511), "AddWindowServerRpc");
((NetworkBehaviour)this).__registerRpc(1529086400u, new RpcReceiveHandler(__rpc_handler_1529086400), "AddWindowClientRpc");
((NetworkBehaviour)this).__registerRpc(547301171u, new RpcReceiveHandler(__rpc_handler_547301171), "CloseWindowServerRpc");
((NetworkBehaviour)this).__registerRpc(510893985u, new RpcReceiveHandler(__rpc_handler_510893985), "CloseWindowClientRpc");
((NetworkBehaviour)this).__registerRpc(1363074004u, new RpcReceiveHandler(__rpc_handler_1363074004), "UpdateWindowServerRpc");
((NetworkBehaviour)this).__registerRpc(434189457u, new RpcReceiveHandler(__rpc_handler_434189457), "UpdateWindowClientRpc");
((NetworkBehaviour)this).__registerRpc(4271948650u, new RpcReceiveHandler(__rpc_handler_4271948650), "GetSyncWindowsServerRpc");
((NetworkBehaviour)this).__registerRpc(403763237u, new RpcReceiveHandler(__rpc_handler_403763237), "ChangeObjectOwnerServerRpc");
((NetworkBehaviour)this).__registerRpc(1554722835u, new RpcReceiveHandler(__rpc_handler_1554722835), "ResetServerRpc");
((NetworkBehaviour)this).__registerRpc(1478555575u, new RpcReceiveHandler(__rpc_handler_1478555575), "ResetClientRpc");
((NetworkBehaviour)this).__initializeRpcs();
}
private static void __rpc_handler_482236400(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
{
//IL_0023: 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_0050: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = target.NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
int maxEnergyServerRpc = default(int);
ByteUnpacker.ReadValueBitPacked(reader, ref maxEnergyServerRpc);
target.__rpc_exec_stage = (__RpcExecStage)1;
((TerminalDesktopManager)(object)target).SetMaxEnergyServerRpc(maxEnergyServerRpc);
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
private static void __rpc_handler_3506602511(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
{
//IL_002f: Unknown result type (might be due to invalid IL or missing references)
//IL_0035: 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_007b: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = target.NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
bool flag = default(bool);
((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref flag, default(ForPrimitives));
string windowType = null;
if (flag)
{
((FastBufferReader)(ref reader)).ReadValueSafe(ref windowType, false);
}
target.__rpc_exec_stage = (__RpcExecStage)1;
((TerminalDesktopManager)(object)target).AddWindowServerRpc(windowType);
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
private static void __rpc_handler_1529086400(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
{
//IL_0023: Unknown result type (might be due to invalid IL or missing references)
//IL_003c: 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_0068: 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_006e: 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_008b: Unknown result type (might be due to invalid IL or missing references)
//IL_009a: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = target.NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
int winIndex = default(int);
ByteUnpacker.ReadValueBitPacked(reader, ref winIndex);
bool flag = default(bool);
((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref flag, default(ForPrimitives));
string windowType = null;
if (flag)
{
((FastBufferReader)(ref reader)).ReadValueSafe(ref windowType, false);
}
ClientRpcParams client = rpcParams.Client;
target.__rpc_exec_stage = (__RpcExecStage)1;
((TerminalDesktopManager)(object)target).AddWindowClientRpc(winIndex, windowType, client);
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
private static void __rpc_handler_547301171(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
{
//IL_0023: 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_0050: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = target.NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
int winIndex = default(int);
ByteUnpacker.ReadValueBitPacked(reader, ref winIndex);
target.__rpc_exec_stage = (__RpcExecStage)1;
((TerminalDesktopManager)(object)target).CloseWindowServerRpc(winIndex);
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
private static void __rpc_handler_510893985(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
{
//IL_0023: 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_0050: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = target.NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
int windowIndex = default(int);
ByteUnpacker.ReadValueBitPacked(reader, ref windowIndex);
target.__rpc_exec_stage = (__RpcExecStage)1;
((TerminalDesktopManager)(object)target).CloseWindowClientRpc(windowIndex);
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
private static void __rpc_handler_1363074004(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
{
//IL_0023: Unknown result type (might be due to invalid IL or missing references)
//IL_003c: 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_007b: Unknown result type (might be due to invalid IL or missing references)
//IL_0099: Unknown result type (might be due to invalid IL or missing references)
//IL_0065: Unknown result type (might be due to invalid IL or missing references)
//IL_006b: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = target.NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
int indexWindow = default(int);
ByteUnpacker.ReadValueBitPacked(reader, ref indexWindow);
bool flag = default(bool);
((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref flag, default(ForPrimitives));
WindowSync windowSync = null;
if (flag)
{
((FastBufferReader)(ref reader)).ReadValueSafe<WindowSync>(ref windowSync, default(ForNetworkSerializable));
}
target.__rpc_exec_stage = (__RpcExecStage)1;
((TerminalDesktopManager)(object)target).UpdateWindowServerRpc(indexWindow, windowSync);
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
private static void __rpc_handler_434189457(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
{
//IL_0023: Unknown result type (might be due to invalid IL or missing references)
//IL_003c: 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_0075: 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_007b: Unknown result type (might be due to invalid IL or missing references)
//IL_0085: Unknown result type (might be due to invalid IL or missing references)
//IL_0098: 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_0065: Unknown result type (might be due to invalid IL or missing references)
//IL_006b: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = target.NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
int indexWindow = default(int);
ByteUnpacker.ReadValueBitPacked(reader, ref indexWindow);
bool flag = default(bool);
((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref flag, default(ForPrimitives));
WindowSync windowSync = null;
if (flag)
{
((FastBufferReader)(ref reader)).ReadValueSafe<WindowSync>(ref windowSync, default(ForNetworkSerializable));
}
ClientRpcParams client = rpcParams.Client;
target.__rpc_exec_stage = (__RpcExecStage)1;
((TerminalDesktopManager)(object)target).UpdateWindowClientRpc(indexWindow, windowSync, client);
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
private static void __rpc_handler_4271948650(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
{
//IL_0023: 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_0029: 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_003e: Unknown result type (might be due to invalid IL or missing references)
//IL_004d: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = target.NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
ServerRpcParams server = rpcParams.Server;
target.__rpc_exec_stage = (__RpcExecStage)1;
((TerminalDesktopManager)(object)target).GetSyncWindowsServerRpc(server);
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
private static void __rpc_handler_403763237(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
{
//IL_002f: Unknown result type (might be due to invalid IL or missing references)
//IL_0035: 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)
//IL_0051: Unknown result type (might be due to invalid IL or missing references)
//IL_005c: Unknown result type (might be due to invalid IL or missing references)
//IL_006f: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = target.NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
NetworkObjectReference netObjRef = default(NetworkObjectReference);
((FastBufferReader)(ref reader)).ReadValueSafe<NetworkObjectReference>(ref netObjRef, default(ForNetworkSerializable));
ulong clientId = default(ulong);
ByteUnpacker.ReadValueBitPacked(reader, ref clientId);
target.__rpc_exec_stage = (__RpcExecStage)1;
((TerminalDesktopManager)(object)target).ChangeObjectOwnerServerRpc(netObjRef, clientId);
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
private static void __rpc_handler_1554722835(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
{
//IL_0029: 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)
NetworkManager networkManager = target.NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
target.__rpc_exec_stage = (__RpcExecStage)1;
((TerminalDesktopManager)(object)target).ResetServerRpc();
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
private static void __rpc_handler_1478555575(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
{
//IL_0029: 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)
NetworkManager networkManager = target.NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
target.__rpc_exec_stage = (__RpcExecStage)1;
((TerminalDesktopManager)(object)target).ResetClientRpc();
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
protected internal override string __getTypeName()
{
return "TerminalDesktopManager";
}
}
public class UsbPortSaveModel
{
public int FlashInUsbIndex { get; set; }
}
public class UsbPort : NetworkBehaviour
{
public static UnityEvent<UsbPort> UsbPortChangeEvent = new UnityEvent<UsbPort>();
[SerializeField]
private InteractTrigger triggerScript;
public NetworkVariable<int> FlashInUsbIndex { get; set; } = new NetworkVariable<int>(0, (NetworkVariableReadPermission)0, (NetworkVariableWritePermission)0);
public NetworkVariable<int> PortId { get; set; } = new NetworkVariable<int>(0, (NetworkVariableReadPermission)0, (NetworkVariableWritePermission)0);
public FlashDriveProp FlashInUsb { get; set; }
private void Awake()
{
FlashDriveProp.FlashLoadedEvent.AddListener((UnityAction<FlashDriveProp>)LoadFlash);
}
public override void OnDestroy()
{
((NetworkBehaviour)this).OnDestroy();
FlashDriveProp.FlashLoadedEvent.RemoveListener((UnityAction<FlashDriveProp>)LoadFlash);
}
private void Start()
{
//IL_0046: Unknown result type (might be due to invalid IL or missing references)
//IL_0066: Unknown result type (might be due to invalid IL or missing references)
TerminalDesktopManager.Instance.UsbPorts.Add(this);
Terminal terminal = ReferencesStorage.Terminal;
((Component)this).transform.SetParent(FindTerminalTransform(((Component)terminal).transform), false);
((Component)this).transform.localRotation = Quaternion.Euler(180f, 0f, 180f);
((Component)this).transform.localPosition = new Vector3(-0.413f, -0.0728f, 0.7024f);
}
private Transform FindTerminalTransform(Transform trans)
{
NetworkObject val = default(NetworkObject);
while (!((Component)trans).gameObject.TryGetComponent<NetworkObject>(ref val) && (Object)(object)trans != (Object)null)
{
trans = trans.parent;
}
return trans;
}
protected virtual void FixedUpdate()
{
if (GameNetworkManager.Instance != null && GameNetworkManager.Instance.localPlayerController != null)
{
triggerScript.interactable = IsHoldFlash();
}
}
protected virtual bool IsHoldFlash()
{
PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController;
if (!localPlayerController.isHoldingObject)
{
return false;
}
if ((Object)(object)localPlayerController.currentlyHeldObjectServer.itemProperties != (Object)(object)DesktopStorage.FlashDriveItem)
{
return false;
}
if (FlashInUsb != null)
{
return false;
}
return true;
}
public virtual void InsertIntoUsb(PlayerControllerB playerWhoTriggered)
{
//IL_002c: 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_003c: Unknown result type (might be due to invalid IL or missing references)
if (playerWhoTriggered.isHoldingObject && playerWhoTriggered.currentlyHeldObjectServer != null)
{
GrabbableObject currentlyHeldObjectServer = playerWhoTriggered.currentlyHeldObjectServer;
playerWhoTriggered.DiscardHeldObject(true, ((Component)this).GetComponent<NetworkObject>(), default(Vector3), true);
InsertIntoUsbServerRpc(NetworkBehaviourReference.op_Implicit((NetworkBehaviour)(object)currentlyHeldObjectServer));
}
}
[ServerRpc(RequireOwnership = false)]
private void InsertIntoUsbServerRpc(NetworkBehaviourReference flashRef)
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_00a7: Unknown result type (might be due to invalid IL or missing references)
//IL_00b1: Invalid comparison between Unknown and I4
//IL_005f: 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_007d: 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_0097: Unknown result type (might be due to invalid IL or missing references)
//IL_00dc: Unknown result type (might be due to invalid IL or missing references)
//IL_0109: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager == null || !networkManager.IsListening)
{
return;
}
if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost))
{
ServerRpcParams val = default(ServerRpcParams);
FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(988634225u, val, (RpcDelivery)0);
((FastBufferWriter)(ref val2)).WriteValueSafe<NetworkBehaviourReference>(ref flashRef, default(ForNetworkSerializable));
((NetworkBehaviour)this).__endSendServerRpc(ref val2, 988634225u, val, (RpcDelivery)0);
}
if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
{
base.__rpc_exec_stage = (__RpcExecStage)0;
FlashDriveProp flashDriveProp = default(FlashDriveProp);
if (((NetworkBehaviourReference)(ref flashRef)).TryGet<FlashDriveProp>(ref flashDriveProp, (NetworkManager)null))
{
FlashInUsbIndex.Value = flashDriveProp.FlashIndex;
InsertIntoUsbClientRpc(NetworkBehaviourReference.op_Implicit((NetworkBehaviour)(object)flashDriveProp));
}
}
}
[ClientRpc]
private void InsertIntoUsbClientRpc(NetworkBehaviourReference flashRef)
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_00a7: Unknown result type (might be due to invalid IL or missing references)
//IL_00b1: Invalid comparison between Unknown and I4
//IL_005f: 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_007d: 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_0097: Unknown result type (might be due to invalid IL or missing references)
//IL_00dc: Unknown result type (might be due to invalid IL or missing references)
//IL_011a: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager == null || !networkManager.IsListening)
{
return;
}
if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost))
{
ClientRpcParams val = default(ClientRpcParams);
FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(1882689273u, val, (RpcDelivery)0);
((FastBufferWriter)(ref val2)).WriteValueSafe<NetworkBehaviourReference>(ref flashRef, default(ForNetworkSerializable));
((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1882689273u, val, (RpcDelivery)0);
}
if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost))
{
base.__rpc_exec_stage = (__RpcExecStage)0;
FlashDriveProp flashDriveProp = default(FlashDriveProp);
if (((NetworkBehaviourReference)(ref flashRef)).TryGet<FlashDriveProp>(ref flashDriveProp, (NetworkManager)null))
{
FlashInUsb = flashDriveProp;
flashDriveProp.UsbPort = this;
((Component)flashDriveProp).transform.localRotation = Quaternion.Euler(0f, 0f, 180f);
UsbPortChangeEvent.Invoke(this);
}
}
}
public virtual void PulledFlash()
{
PulledFlashServerRpc();
}
[ServerRpc(RequireOwnership = false)]
private void PulledFlashServerRpc()
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_008c: Unknown result type (might be due to invalid IL or missing references)
//IL_0096: Invalid comparison between Unknown and I4
//IL_005f: 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_007c: 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)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost))
{
ServerRpcParams val = default(ServerRpcParams);
FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(2760545246u, val, (RpcDelivery)0);
((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2760545246u, val, (RpcDelivery)0);
}
if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
{
base.__rpc_exec_stage = (__RpcExecStage)0;
FlashInUsbIndex.Value = 0;
PulledFlashClientRpc();
}
}
}
[ClientRpc]
private void PulledFlashClientRpc()
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_008c: Unknown result type (might be due to invalid IL or missing references)
//IL_0096: Invalid comparison between Unknown and I4
//IL_005f: 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_007c: 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)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost))
{
ClientRpcParams val = default(ClientRpcParams);
FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(419952685u, val, (RpcDelivery)0);
((NetworkBehaviour)this).__endSendClientRpc(ref val2, 419952685u, val, (RpcDelivery)0);
}
if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost))
{
base.__rpc_exec_stage = (__RpcExecStage)0;
FlashInUsb = null;
UsbPortChangeEvent.Invoke(this);
}
}
}
public virtual void LoadFlash(FlashDriveProp flashDriveProp)
{
if (flashDriveProp.FlashIndex == FlashInUsbIndex.Value)
{
FlashDriveProp.FlashLoadedEvent.RemoveListener((UnityAction<FlashDriveProp>)LoadFlash);
Main.Log.LogInfo((object)$"Init flash in usb with index {flashDriveProp.FlashIndex}");
InitLoadedFlash(flashDriveProp);
}
}
private void InitLoadedFlash(FlashDriveProp flashDriveProp)
{
//IL_002c: Unknown result type (might be due to invalid IL or missing references)
//IL_004c: Unknown result type (might be due to invalid IL or missing references)
((GrabbableObject)flashDriveProp).reachedFloorTarget = true;
((GrabbableObject)flashDriveProp).fallTime = 1f;
((Component)flashDriveProp).transform.SetParent(((Component)this).transform, true);
((Component)flashDriveProp).transform.localPosition = Vector3.zero;
((Component)flashDriveProp).transform.localRotation = Quaternion.Euler(0f, 0f, 180f);
((GrabbableObject)flashDriveProp).hasHitGround = true;
((GrabbableObject)flashDriveProp).parentObject = ((Component)this).transform;
FlashInUsb = flashDriveProp;
flashDriveProp.UsbPort = this;
UsbPortChangeEvent.Invoke(this);
}
public virtual string GetSaveString()
{
UsbPortSaveModel usbPortSaveModel = new UsbPortSaveModel
{
FlashInUsbIndex = FlashInUsbIndex.Value
};
return JsonConvert.SerializeObject((object)usbPortSaveModel);
}
public virtual void LoadPortById(int id)
{
LoadPortByIdServerRpc(id);
}
[ServerRpc(RequireOwnership = false)]
private void LoadPortByIdServerRpc(int id)
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_0099: Unknown result type (might be due to invalid IL or missing references)
//IL_00a3: Invalid comparison between Unknown and I4
//IL_005f: 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_0071: Unknown result type (might be due to invalid IL or missing references)
//IL_0089: 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)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost))
{
ServerRpcParams val = default(ServerRpcParams);
FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(3163062493u, val, (RpcDelivery)0);
BytePacker.WriteValueBitPacked(val2, id);
((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3163062493u, val, (RpcDelivery)0);
}
if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
{
base.__rpc_exec_stage = (__RpcExecStage)0;
PortId.Value = id;
LoadPort();
}
}
}
protected virtual void LoadPort()
{
if (((NetworkBehaviour)this).IsServer && DesktopStorage.TerminalDesktopSaveModel.UsbPortsSaves.TryGetValue(PortId.Value, out string value))
{
UsbPortSaveModel usbPortSaveModel = JsonConvert.DeserializeObject<UsbPortSaveModel>(value);
FlashInUsbIndex.Value = usbPortSaveModel.FlashInUsbIndex;
Main.Log.LogInfo((object)"load usb port");
}
}
protected override void __initializeVariables()
{
if (FlashInUsbIndex == null)
{
throw new Exception("UsbPort.<FlashInUsbIndex>k__BackingField cannot be null. All NetworkVariableBase instances must be initialized.");
}
((NetworkVariableBase)FlashInUsbIndex).Initialize((NetworkBehaviour)(object)this);
((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)FlashInUsbIndex, "FlashInUsbIndex");
base.NetworkVariableFields.Add((NetworkVariableBase)(object)FlashInUsbIndex);
if (PortId == null)
{
throw new Exception("UsbPort.<PortId>k__BackingField cannot be null. All NetworkVariableBase instances must be initialized.");
}
((NetworkVariableBase)PortId).Initialize((NetworkBehaviour)(object)this);
((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)PortId, "PortId");
base.NetworkVariableFields.Add((NetworkVariableBase)(object)PortId);
((NetworkBehaviour)this).__initializeVariables();
}
protected override void __initializeRpcs()
{
//IL_000d: Unknown result type (might be due to invalid IL or missing references)
//IL_001c: Expected O, but got Unknown
//IL_0029: Unknown result type (might be due to invalid IL or missing references)
//IL_0038: Expected O, but got Unknown
//IL_0045: Unknown result type (might be due to invalid IL or missing references)
//IL_0054: Expected O, but got Unknown
//IL_0061: Unknown result type (might be due to invalid IL or missing references)
//IL_0070: Expected O, but got Unknown
//IL_007d: Unknown result type (might be due to invalid IL or missing references)
//IL_008c: Expected O, but got Unknown
((NetworkBehaviour)this).__registerRpc(988634225u, new RpcReceiveHandler(__rpc_handler_988634225), "InsertIntoUsbServerRpc");
((NetworkBehaviour)this).__registerRpc(1882689273u, new RpcReceiveHandler(__rpc_handler_1882689273), "InsertIntoUsbClientRpc");
((NetworkBehaviour)this).__registerRpc(2760545246u, new RpcReceiveHandler(__rpc_handler_2760545246), "PulledFlashServerRpc");
((NetworkBehaviour)this).__registerRpc(419952685u, new RpcReceiveHandler(__rpc_handler_419952685), "PulledFlashClientRpc");
((NetworkBehaviour)this).__registerRpc(3163062493u, new RpcReceiveHandler(__rpc_handler_3163062493), "LoadPortByIdServerRpc");
((NetworkBehaviour)this).__initializeRpcs();
}
private static void __rpc_handler_988634225(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
{
//IL_002f: Unknown result type (might be due to invalid IL or missing references)
//IL_0035: 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_004f: Unknown result type (might be due to invalid IL or missing references)
//IL_005e: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = target.NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
NetworkBehaviourReference flashRef = default(NetworkBehaviourReference);
((FastBufferReader)(ref reader)).ReadValueSafe<NetworkBehaviourReference>(ref flashRef, default(ForNetworkSerializable));
target.__rpc_exec_stage = (__RpcExecStage)1;
((UsbPort)(object)target).InsertIntoUsbServerRpc(flashRef);
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
private static void __rpc_handler_1882689273(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
{
//IL_002f: Unknown result type (might be due to invalid IL or missing references)
//IL_0035: 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_004f: Unknown result type (might be due to invalid IL or missing references)
//IL_005e: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = target.NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
NetworkBehaviourReference flashRef = default(NetworkBehaviourReference);
((FastBufferReader)(ref reader)).ReadValueSafe<NetworkBehaviourReference>(ref flashRef, default(ForNetworkSerializable));
target.__rpc_exec_stage = (__RpcExecStage)1;
((UsbPort)(object)target).InsertIntoUsbClientRpc(flashRef);
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
private static void __rpc_handler_2760545246(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
{
//IL_0029: 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)
NetworkManager networkManager = target.NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
target.__rpc_exec_stage = (__RpcExecStage)1;
((UsbPort)(object)target).PulledFlashServerRpc();
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
private static void __rpc_handler_419952685(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
{
//IL_0029: 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)
NetworkManager networkManager = target.NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
target.__rpc_exec_stage = (__RpcExecStage)1;
((UsbPort)(object)target).PulledFlashClientRpc();
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
private static void __rpc_handler_3163062493(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
{
//IL_0023: 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_0050: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = target.NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
int id = default(int);
ByteUnpacker.ReadValueBitPacked(reader, ref id);
target.__rpc_exec_stage = (__RpcExecStage)1;
((UsbPort)(object)target).LoadPortByIdServerRpc(id);
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
protected internal override string __getTypeName()
{
return "UsbPort";
}
}
public class CameraWindow : DesktopWindowBase
{
publ