Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of The Femmployee Mod v1.1.9
plugins/FemmployeeMod.dll
Decompiled 7 months ago
The result has been truncated due to the large size, download it to view full contents!
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 System.Text.RegularExpressions; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using FemmployeeMod; using FemmployeeMod.NetcodePatcher; using FemmployeeMod.UIScripts; using GameNetcodeStuff; using HarmonyLib; using LethalCompanyInputUtils.Api; using LethalLib.Modules; using Microsoft.CodeAnalysis; using ModelReplacement; using ModelReplacement.Monobehaviors; using Newtonsoft.Json; using TMPro; using Unity.Collections; using Unity.Netcode; using UnityEngine; using UnityEngine.InputSystem; 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("AmazingAssets.TerrainToMesh")] [assembly: IgnoresAccessChecksTo("Assembly-CSharp-firstpass")] [assembly: IgnoresAccessChecksTo("Assembly-CSharp")] [assembly: IgnoresAccessChecksTo("ClientNetworkTransform")] [assembly: IgnoresAccessChecksTo("com.olegknyazev.softmask")] [assembly: IgnoresAccessChecksTo("DissonanceVoip")] [assembly: IgnoresAccessChecksTo("EasyTextEffects")] [assembly: IgnoresAccessChecksTo("Facepunch Transport for Netcode for GameObjects")] [assembly: IgnoresAccessChecksTo("Facepunch.Steamworks.Win64")] [assembly: IgnoresAccessChecksTo("LethalCompanyInputUtils")] [assembly: IgnoresAccessChecksTo("LethalLib")] [assembly: IgnoresAccessChecksTo("ModelReplacementAPI")] [assembly: IgnoresAccessChecksTo("MoreSuits")] [assembly: IgnoresAccessChecksTo("Unity.AI.Navigation")] [assembly: IgnoresAccessChecksTo("Unity.Animation.Rigging")] [assembly: IgnoresAccessChecksTo("Unity.Animation.Rigging.DocCodeExamples")] [assembly: IgnoresAccessChecksTo("Unity.Burst")] [assembly: IgnoresAccessChecksTo("Unity.Burst.Unsafe")] [assembly: IgnoresAccessChecksTo("Unity.Collections")] [assembly: IgnoresAccessChecksTo("Unity.Collections.LowLevel.ILSupport")] [assembly: IgnoresAccessChecksTo("Unity.InputSystem")] [assembly: IgnoresAccessChecksTo("Unity.InputSystem.ForUI")] [assembly: IgnoresAccessChecksTo("Unity.Jobs")] [assembly: IgnoresAccessChecksTo("Unity.Mathematics")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.Common")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.MetricTypes")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetStats")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetStatsMonitor.Component")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetStatsMonitor.Configuration")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetStatsMonitor.Implementation")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetStatsReporting")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetworkProfiler.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetworkSolutionInterface")] [assembly: IgnoresAccessChecksTo("Unity.Netcode.Components")] [assembly: IgnoresAccessChecksTo("Unity.Netcode.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.Networking.Transport")] [assembly: IgnoresAccessChecksTo("Unity.ProBuilder.Csg")] [assembly: IgnoresAccessChecksTo("Unity.ProBuilder")] [assembly: IgnoresAccessChecksTo("Unity.ProBuilder.KdTree")] [assembly: IgnoresAccessChecksTo("Unity.ProBuilder.Poly2Tri")] [assembly: IgnoresAccessChecksTo("Unity.ProBuilder.Stl")] [assembly: IgnoresAccessChecksTo("Unity.Profiling.Core")] [assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.Core.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.Core.ShaderLibrary")] [assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.HighDefinition.Config.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.HighDefinition.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.ShaderGraph.ShaderGraphLibrary")] [assembly: IgnoresAccessChecksTo("Unity.Services.Authentication")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Analytics")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Components")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Configuration")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Device")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Environments")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Environments.Internal")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Internal")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Networking")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Registration")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Scheduler")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Telemetry")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Threading")] [assembly: IgnoresAccessChecksTo("Unity.Services.QoS")] [assembly: IgnoresAccessChecksTo("Unity.Services.Relay")] [assembly: IgnoresAccessChecksTo("Unity.TextMeshPro")] [assembly: IgnoresAccessChecksTo("Unity.Timeline")] [assembly: IgnoresAccessChecksTo("Unity.VisualEffectGraph.Runtime")] [assembly: IgnoresAccessChecksTo("UnityEngine.ARModule")] [assembly: IgnoresAccessChecksTo("UnityEngine.NVIDIAModule")] [assembly: IgnoresAccessChecksTo("UnityEngine.UI")] [assembly: AssemblyCompany("FemmployeeMod")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+822e3acf49b28e7017f04e50ec7aec85abfd421f")] [assembly: AssemblyProduct("FemmployeeMod")] [assembly: AssemblyTitle("FemmployeeMod")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.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.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } [CreateAssetMenu(fileName = "FemmployeePart", menuName = "FemmployeeMod/FemmployeePart", order = 1)] public class FemmployeePart : ScriptableObject { public Mesh mesh; public Material[] materials; } [CreateAssetMenu(fileName = "FemmployeePartsInitializationList", menuName = "FemmployeeMod/FemmployeePartsInitializationList", order = 1)] public class FemmployeePartsInitializationList : ScriptableObject { public List<FemmployeePart[]> fullPartsList = new List<FemmployeePart[]>(); public FemmployeePart[] headParts; public FemmployeePart[] chestParts; public FemmployeePart[] armsParts; public FemmployeePart[] waistParts; public FemmployeePart[] legsParts; public void Awake() { fullPartsList.Add(headParts); fullPartsList.Add(chestParts); fullPartsList.Add(armsParts); fullPartsList.Add(waistParts); fullPartsList.Add(legsParts); } } [Serializable] public struct BlendshapeValuePair : INetworkSerializable, IEquatable<BlendshapeValuePair> { public float ShapeValue; public int ShapeID; public BlendshapeValuePair(float floatValue, int shapeID) { ShapeValue = floatValue; ShapeID = shapeID; } public unsafe void NetworkSerialize<T>(BufferSerializer<T> serializer) where T : IReaderWriter { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) ((BufferSerializer<float>*)(&serializer))->SerializeValue<float>(ref ShapeValue, default(ForPrimitives)); ((BufferSerializer<int>*)(&serializer))->SerializeValue<int>(ref ShapeID, default(ForPrimitives)); } public bool Equals(BlendshapeValuePair other) { return ShapeValue.Equals(other.ShapeValue) && ShapeID.Equals(other.ShapeID); } public override bool Equals(object obj) { if (obj is BlendshapeValuePair) { return Equals((BlendshapeValuePair)obj); } return false; } public override int GetHashCode() { int num = 17; num = num * 23 + ShapeValue.GetHashCode(); return num * 23 + ShapeID.GetHashCode(); } public static bool operator ==(BlendshapeValuePair left, BlendshapeValuePair right) { return left.Equals(right); } public static bool operator !=(BlendshapeValuePair left, BlendshapeValuePair right) { return !(left == right); } } namespace FemmployeeMod { public class FemmployeeSettings : MonoBehaviour { public PlayerControllerB controller; public GameObject replacementModel; public FemmployeePart[] previewBodyParts; public SkinnedMeshRenderer[] bodyRegionMeshRenderers; public NetworkedSettings networkedSettings; public List<Dictionary<string, FemmployeePart>> partsList = new List<Dictionary<string, FemmployeePart>>(); public Dictionary<string, FemmployeePart> headPartsCollection = new Dictionary<string, FemmployeePart>(); public Dictionary<string, FemmployeePart> chestPartsCollection = new Dictionary<string, FemmployeePart>(); public Dictionary<string, FemmployeePart> armsPartsCollection = new Dictionary<string, FemmployeePart>(); public Dictionary<string, FemmployeePart> waistPartsCollection = new Dictionary<string, FemmployeePart>(); public Dictionary<string, FemmployeePart> legsPartsCollection = new Dictionary<string, FemmployeePart>(); public string suitName { get; set; } = ""; } public class FemmployeeSuitPreview : MonoBehaviour { public Camera modelViewCamera; public GameObject previewModel; public FemmployeeSettings settings; public Slider previewSpinSlider; public void Update() { //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) float value = previewSpinSlider.value; Quaternion rotation = Quaternion.Euler(0f, value, 0f); previewModel.transform.rotation = rotation; } public void PreviewLoadSaveData(Femmployee playerFemmployee) { //IL_03b8: Unknown result type (might be due to invalid IL or missing references) //IL_046d: Unknown result type (might be due to invalid IL or missing references) settings.bodyRegionMeshRenderers[0].sharedMesh = playerFemmployee.settings.partsList[0][playerFemmployee.settings.networkedSettings.headSync].mesh; ((Renderer)settings.bodyRegionMeshRenderers[0]).materials = playerFemmployee.settings.partsList[0][playerFemmployee.settings.networkedSettings.headSync].materials; settings.bodyRegionMeshRenderers[1].sharedMesh = playerFemmployee.settings.partsList[1][playerFemmployee.settings.networkedSettings.chestSync].mesh; ((Renderer)settings.bodyRegionMeshRenderers[1]).materials = playerFemmployee.settings.partsList[1][playerFemmployee.settings.networkedSettings.chestSync].materials; settings.bodyRegionMeshRenderers[2].sharedMesh = playerFemmployee.settings.partsList[2][playerFemmployee.settings.networkedSettings.armsSync].mesh; ((Renderer)settings.bodyRegionMeshRenderers[2]).materials = playerFemmployee.settings.partsList[2][playerFemmployee.settings.networkedSettings.armsSync].materials; settings.bodyRegionMeshRenderers[3].sharedMesh = playerFemmployee.settings.partsList[3][playerFemmployee.settings.networkedSettings.waistSync].mesh; ((Renderer)settings.bodyRegionMeshRenderers[3]).materials = playerFemmployee.settings.partsList[3][playerFemmployee.settings.networkedSettings.waistSync].materials; settings.bodyRegionMeshRenderers[4].sharedMesh = playerFemmployee.settings.partsList[4][playerFemmployee.settings.networkedSettings.legSync].mesh; ((Renderer)settings.bodyRegionMeshRenderers[4]).materials = playerFemmployee.settings.partsList[4][playerFemmployee.settings.networkedSettings.legSync].materials; NetworkList<BlendshapeValuePair>[] array = new NetworkList<BlendshapeValuePair>[5] { playerFemmployee.settings.networkedSettings.headBlendshapeValues, playerFemmployee.settings.networkedSettings.chestBlendshapeValues, playerFemmployee.settings.networkedSettings.armsBlendshapeValues, playerFemmployee.settings.networkedSettings.waistBlendshapeValues, playerFemmployee.settings.networkedSettings.legsBlendshapeValues }; for (int i = 0; i < 5; i++) { SkinnedMeshRenderer component = ((Component)settings.bodyRegionMeshRenderers[i]).GetComponent<SkinnedMeshRenderer>(); if ((Object)(object)component != (Object)null && component.sharedMesh.blendShapeCount > 0) { for (int j = 0; j < array[i].Count; j++) { component.SetBlendShapeWeight(j, array[i][j].ShapeValue); } } } SkinnedMeshRenderer[] bodyRegionMeshRenderers = settings.bodyRegionMeshRenderers; foreach (SkinnedMeshRenderer val in bodyRegionMeshRenderers) { Material[] materials = ((Renderer)val).materials; foreach (Material val2 in materials) { if (((Object)val2).name == "Suit (Instance)") { val2.color = playerFemmployee.settings.networkedSettings.suitMaterialValues.Value.colorValue; val2.SetFloat("_Metallic", playerFemmployee.settings.networkedSettings.suitMaterialValues.Value.metallicValue); val2.SetFloat("_Smoothness", playerFemmployee.settings.networkedSettings.suitMaterialValues.Value.smoothnessValue); } } Material[] materials2 = ((Renderer)val).materials; foreach (Material val3 in materials2) { if (((Object)val3).name == "Skin (Instance)") { val3.color = playerFemmployee.settings.networkedSettings.skinMaterialValues.Value.colorValue; val3.SetFloat("_Metallic", playerFemmployee.settings.networkedSettings.skinMaterialValues.Value.metallicValue); val3.SetFloat("_Smoothness", playerFemmployee.settings.networkedSettings.skinMaterialValues.Value.smoothnessValue); } } } } public void SetPreviewRegion(int dropdownID, string selectionKeyName, Femmployee playerFemmployee) { //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_0191: Unknown result type (might be due to invalid IL or missing references) playerFemmployee.settings.previewBodyParts[dropdownID] = settings.partsList[dropdownID][selectionKeyName]; settings.bodyRegionMeshRenderers[dropdownID].sharedMesh = playerFemmployee.settings.previewBodyParts[dropdownID].mesh; ((Renderer)settings.bodyRegionMeshRenderers[dropdownID]).materials = playerFemmployee.settings.previewBodyParts[dropdownID].materials; if (Tools.CheckIsServer()) { switch (dropdownID) { case 0: playerFemmployee.settings.networkedSettings.headSync = selectionKeyName; break; case 1: playerFemmployee.settings.networkedSettings.chestSync = selectionKeyName; break; case 2: playerFemmployee.settings.networkedSettings.armsSync = selectionKeyName; break; case 3: playerFemmployee.settings.networkedSettings.waistSync = selectionKeyName; break; case 4: playerFemmployee.settings.networkedSettings.legSync = selectionKeyName; break; default: FemmployeeModBase.mls.LogWarning((object)"Invalid dropdown ID"); return; } } else { playerFemmployee.settings.networkedSettings.SetNetworkVarServerRpc(dropdownID, selectionKeyName); } SetMaterialSettings(playerFemmployee.settings.networkedSettings.suitMaterialValues.Value.colorValue, playerFemmployee.settings.networkedSettings.suitMaterialValues.Value.metallicValue, playerFemmployee.settings.networkedSettings.suitMaterialValues.Value.smoothnessValue, playerFemmployee.settings.networkedSettings.skinMaterialValues.Value.colorValue, playerFemmployee.settings.networkedSettings.skinMaterialValues.Value.metallicValue, playerFemmployee.settings.networkedSettings.skinMaterialValues.Value.smoothnessValue, playerFemmployee); } public void SetPreviewBlendshape(int id, float value, BlendshapeData[] blendshapes, Femmployee playerFemmployee) { for (int i = 0; i < blendshapes.Length; i++) { BlendshapeData blendshapeData = blendshapes[i]; int originalRegionID = blendshapeData.OriginalRegionID; int blendShapeIndex = settings.bodyRegionMeshRenderers[originalRegionID].sharedMesh.GetBlendShapeIndex(blendshapeData.BlendshapeName); if (blendShapeIndex != -1) { settings.bodyRegionMeshRenderers[originalRegionID].SetBlendShapeWeight(blendShapeIndex, value); playerFemmployee.settings.networkedSettings.SetBlendshapeValue(value, blendshapes); } } } public void SetMaterialSettings(Color suitColorValue, float suitMetallicValue, float suitSmoothnessValue, Color skinColorValue, float skinMetallicValue, float skinSmoothnessValue, Femmployee playerFemmployee) { //IL_0106: 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) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_004b: 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) SkinnedMeshRenderer[] bodyRegionMeshRenderers = settings.bodyRegionMeshRenderers; foreach (SkinnedMeshRenderer val in bodyRegionMeshRenderers) { Material[] materials = ((Renderer)val).materials; foreach (Material val2 in materials) { if (((Object)val2).name == "Suit (Instance)") { val2.color = suitColorValue; val2.SetFloat("_Metallic", suitMetallicValue); val2.SetFloat("_Smoothness", suitSmoothnessValue); } if (((Object)val2).name == "Skin (Instance)") { val2.color = skinColorValue; val2.SetFloat("_Metallic", skinMetallicValue); val2.SetFloat("_Smoothness", skinSmoothnessValue); } } } if (Tools.CheckIsServer()) { playerFemmployee.settings.networkedSettings.SetMaterialData(suitColorValue, suitMetallicValue, suitSmoothnessValue, skinColorValue, skinMetallicValue, skinSmoothnessValue); } else { playerFemmployee.settings.networkedSettings.SetMaterialDataServerRpc(suitColorValue, suitMetallicValue, suitSmoothnessValue, skinColorValue, skinMetallicValue, skinSmoothnessValue); } } } public struct BlendshapeData { public int OriginalRegionID; public int ControllingRegionID; public string BlendshapeName; } public class FemmployeeViewmodel : MonoBehaviour { public FemmployeeSettings settings; public void Start() { settings = ((Component)this).gameObject.GetComponent<FemmployeeSettings>(); } } public class NetworkedSettings : NetworkBehaviour { public FemmployeeSettings settings; private NetworkVariable<FixedString64Bytes> _headSync = new NetworkVariable<FixedString64Bytes>(default(FixedString64Bytes), (NetworkVariableReadPermission)0, (NetworkVariableWritePermission)0) { Value = FixedString64Bytes.op_Implicit("") }; private NetworkVariable<FixedString64Bytes> _chestSync = new NetworkVariable<FixedString64Bytes>(default(FixedString64Bytes), (NetworkVariableReadPermission)0, (NetworkVariableWritePermission)0) { Value = FixedString64Bytes.op_Implicit("") }; private NetworkVariable<FixedString64Bytes> _armsSync = new NetworkVariable<FixedString64Bytes>(default(FixedString64Bytes), (NetworkVariableReadPermission)0, (NetworkVariableWritePermission)0) { Value = FixedString64Bytes.op_Implicit("") }; private NetworkVariable<FixedString64Bytes> _waistSync = new NetworkVariable<FixedString64Bytes>(default(FixedString64Bytes), (NetworkVariableReadPermission)0, (NetworkVariableWritePermission)0) { Value = FixedString64Bytes.op_Implicit("") }; private NetworkVariable<FixedString64Bytes> _legSync = new NetworkVariable<FixedString64Bytes>(default(FixedString64Bytes), (NetworkVariableReadPermission)0, (NetworkVariableWritePermission)0) { Value = FixedString64Bytes.op_Implicit("") }; public NetworkList<BlendshapeValuePair> headBlendshapeValues = new NetworkList<BlendshapeValuePair>(); public NetworkList<BlendshapeValuePair> chestBlendshapeValues = new NetworkList<BlendshapeValuePair>(); public NetworkList<BlendshapeValuePair> armsBlendshapeValues = new NetworkList<BlendshapeValuePair>(); public NetworkList<BlendshapeValuePair> waistBlendshapeValues = new NetworkList<BlendshapeValuePair>(); public NetworkList<BlendshapeValuePair> legsBlendshapeValues = new NetworkList<BlendshapeValuePair>(); public NetworkVariable<NetworkMaterialProperties> suitMaterialValues = new NetworkVariable<NetworkMaterialProperties>((NetworkMaterialProperties)null, (NetworkVariableReadPermission)0, (NetworkVariableWritePermission)0); public NetworkVariable<NetworkMaterialProperties> skinMaterialValues = new NetworkVariable<NetworkMaterialProperties>((NetworkMaterialProperties)null, (NetworkVariableReadPermission)0, (NetworkVariableWritePermission)0); public NetworkVariable<int> playerID; public NetworkVariable<bool> hasInitialized; public FemmployeeConfigUI localUI; private bool _networkListsCreatedByThis = false; public string headSync { get { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) FixedString64Bytes value = _headSync.Value; return ((FixedString64Bytes)(ref value)).Value; } internal set { //IL_0008: Unknown result type (might be due to invalid IL or missing references) _headSync.Value = new FixedString64Bytes(value); } } public string chestSync { get { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) FixedString64Bytes value = _chestSync.Value; return ((FixedString64Bytes)(ref value)).Value; } internal set { //IL_0008: Unknown result type (might be due to invalid IL or missing references) _chestSync.Value = new FixedString64Bytes(value); } } public string armsSync { get { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) FixedString64Bytes value = _armsSync.Value; return ((FixedString64Bytes)(ref value)).Value; } internal set { //IL_0008: Unknown result type (might be due to invalid IL or missing references) _armsSync.Value = new FixedString64Bytes(value); } } public string waistSync { get { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) FixedString64Bytes value = _waistSync.Value; return ((FixedString64Bytes)(ref value)).Value; } internal set { //IL_0008: Unknown result type (might be due to invalid IL or missing references) _waistSync.Value = new FixedString64Bytes(value); } } public string legSync { get { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) FixedString64Bytes value = _legSync.Value; return ((FixedString64Bytes)(ref value)).Value; } internal set { //IL_0008: Unknown result type (might be due to invalid IL or missing references) _legSync.Value = new FixedString64Bytes(value); } } public override void OnNetworkSpawn() { //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) ((NetworkBehaviour)this).OnNetworkSpawn(); if (Tools.CheckIsServer()) { playerID.Value = -1; NetworkMaterialProperties networkMaterialProperties = new NetworkMaterialProperties(); networkMaterialProperties.colorValue = FemmployeeConfigUI.instance.suitMaterialSettings.defaultColorValue; networkMaterialProperties.metallicValue = FemmployeeConfigUI.instance.suitMaterialSettings.defaultMetallicValue; networkMaterialProperties.smoothnessValue = FemmployeeConfigUI.instance.suitMaterialSettings.defaultSmoothnessValue; suitMaterialValues.Value = networkMaterialProperties; NetworkMaterialProperties networkMaterialProperties2 = new NetworkMaterialProperties(); networkMaterialProperties2.colorValue = FemmployeeConfigUI.instance.skinMaterialSettings.defaultColorValue; networkMaterialProperties2.metallicValue = FemmployeeConfigUI.instance.skinMaterialSettings.defaultMetallicValue; networkMaterialProperties2.smoothnessValue = FemmployeeConfigUI.instance.skinMaterialSettings.defaultSmoothnessValue; skinMaterialValues.Value = networkMaterialProperties2; } ((MonoBehaviour)this).StartCoroutine(waitForIDSync()); } public IEnumerator waitForIDSync() { yield return (object)new WaitUntil((Func<bool>)(() => playerID.Value != -1)); ((MonoBehaviour)this).StartCoroutine(WaitForFemmployeeComponent(playerID.Value)); } [ClientRpc] public void AssignValuesClientRpc(int _playerID) { //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.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(1272767705u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, _playerID); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1272767705u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; ((MonoBehaviour)this).StartCoroutine(WaitForFemmployeeComponent(_playerID)); } } } private IEnumerator WaitForFemmployeeComponent(int _playerID) { yield return (object)new WaitUntil((Func<bool>)(() => (Object)(object)((Component)StartOfRound.Instance.allPlayerScripts[_playerID]).GetComponent<Femmployee>() != (Object)null)); AssignValuesToComponents(_playerID); } public void AssignValuesToComponents(int _playerID) { settings = ((Component)StartOfRound.Instance.allPlayerScripts[_playerID]).GetComponent<Femmployee>().settings; settings.networkedSettings = this; ((Object)this).name = ((Object)this).name + " || Player: " + _playerID; localUI = ((Component)StartOfRound.Instance.allPlayerScripts[playerID.Value]).GetComponent<Femmployee>().localModdedUI; if (Tools.CheckIsServer()) { headSync = ((Object)settings.bodyRegionMeshRenderers[0].sharedMesh).name; chestSync = ((Object)settings.bodyRegionMeshRenderers[1].sharedMesh).name; armsSync = ((Object)settings.bodyRegionMeshRenderers[2].sharedMesh).name; waistSync = ((Object)settings.bodyRegionMeshRenderers[3].sharedMesh).name; legSync = ((Object)settings.bodyRegionMeshRenderers[4].sharedMesh).name; hasInitialized.Value = true; } if ((Object)(object)settings.controller == (Object)(object)GameNetworkManager.Instance.localPlayerController && File.Exists(FemmployeeModBase.saveFilePath)) { LoadSuitData(SuitDataParser(File.ReadAllText(FemmployeeModBase.saveFilePath))); } else { FemmployeeModBase.mls.LogWarning((object)"Suit data file not found! A new file will be generated next time you apply suit settings."); } ((MonoBehaviour)this).StartCoroutine(waitToAssign()); } public IEnumerator waitToAssign() { yield return (object)new WaitForSeconds(0.5f); ApplySettings(); } [ServerRpc(RequireOwnership = false)] public void SetNetworkVarServerRpc(int id, string value) { //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.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(1759863977u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, id); bool flag = value != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(value, false); } ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 1759863977u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; switch (id) { case 0: headSync = value; break; case 1: chestSync = value; break; case 2: armsSync = value; break; case 3: waistSync = value; break; case 4: legSync = value; break; default: FemmployeeModBase.mls.LogWarning((object)"Invalid dropdown ID"); break; } } } public void ApplySettings() { if (((NetworkBehaviour)this).IsServer) { ApplySettingsClientRpc(); } else { ApplySettingsServerRpc(); } } [ServerRpc(RequireOwnership = false)] public void ApplySettingsServerRpc() { //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(2348116511u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2348116511u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; ApplySettingsClientRpc(); } } } [ClientRpc] public void ApplySettingsClientRpc() { //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(2903334129u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2903334129u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; ((Component)StartOfRound.Instance.allPlayerScripts[playerID.Value]).GetComponent<Femmployee>().ApplySwapRegions(); } } } public void SetBlendshapeValue(float value, BlendshapeData[] blendshapes) { List<BlendshapeValuePair> list = new List<BlendshapeValuePair>(); List<BlendshapeValuePair> list2 = new List<BlendshapeValuePair>(); List<BlendshapeValuePair> list3 = new List<BlendshapeValuePair>(); List<BlendshapeValuePair> list4 = new List<BlendshapeValuePair>(); List<BlendshapeValuePair> list5 = new List<BlendshapeValuePair>(); for (int i = 0; i < blendshapes.Length; i++) { BlendshapeData blendshapeData = blendshapes[i]; int originalRegionID = blendshapeData.OriginalRegionID; int blendShapeIndex = settings.bodyRegionMeshRenderers[originalRegionID].sharedMesh.GetBlendShapeIndex(blendshapeData.BlendshapeName); if (blendShapeIndex == -1) { continue; } BlendshapeValuePair item = new BlendshapeValuePair(value, blendShapeIndex); switch (originalRegionID) { case 0: list.Add(item); break; case 1: list2.Add(item); break; case 2: list3.Add(item); break; case 3: list4.Add(item); break; case 4: list5.Add(item); break; default: FemmployeeModBase.mls.LogWarning((object)"Invalid region ID"); break; } if (Tools.CheckIsServer()) { switch (originalRegionID) { case 0: AddValuesToList(headBlendshapeValues, list); break; case 1: AddValuesToList(chestBlendshapeValues, list2); break; case 2: AddValuesToList(armsBlendshapeValues, list3); break; case 3: AddValuesToList(waistBlendshapeValues, list4); break; case 4: AddValuesToList(legsBlendshapeValues, list5); break; } } else { if (1 == 0) { } List<BlendshapeValuePair> blendshapeList = originalRegionID switch { 0 => list, 1 => list2, 2 => list3, 3 => list4, 4 => list5, _ => new List<BlendshapeValuePair>(), }; if (1 == 0) { } var (shapeValues, shapeIDs) = ConvertBlendshapeListToArrays(blendshapeList); SetBlendshapeNetworkVarServerRpc(originalRegionID, shapeValues, shapeIDs); } } static void AddValuesToList(NetworkList<BlendshapeValuePair> settingsList, List<BlendshapeValuePair> blendshapeValues) { foreach (BlendshapeValuePair blendshapeValue in blendshapeValues) { bool flag = false; for (int j = 0; j < settingsList.Count; j++) { if (settingsList[j].ShapeID == blendshapeValue.ShapeID) { settingsList[j] = blendshapeValue; flag = true; break; } } if (!flag) { settingsList.Add(blendshapeValue); } } } } private (float[] shapeValues, int[] shapeIDs) ConvertBlendshapeListToArrays(List<BlendshapeValuePair> blendshapeList) { int count = blendshapeList.Count; float[] array = new float[count]; int[] array2 = new int[count]; for (int i = 0; i < count; i++) { array[i] = blendshapeList[i].ShapeValue; array2[i] = blendshapeList[i].ShapeID; } return (array, array2); } [ServerRpc(RequireOwnership = false)] public void SetBlendshapeNetworkVarServerRpc(int id, float[] shapeValues, int[] shapeIDs) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0139: 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_0164: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_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_011f: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) 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(1024183679u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, id); bool flag = shapeValues != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(shapeValues, default(ForPrimitives)); } bool flag2 = shapeIDs != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag2, default(ForPrimitives)); if (flag2) { ((FastBufferWriter)(ref val2)).WriteValueSafe<int>(shapeIDs, default(ForPrimitives)); } ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 1024183679u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; switch (id) { case 0: AddValuesToList(headBlendshapeValues, shapeValues, shapeIDs); break; case 1: AddValuesToList(chestBlendshapeValues, shapeValues, shapeIDs); break; case 2: AddValuesToList(armsBlendshapeValues, shapeValues, shapeIDs); break; case 3: AddValuesToList(waistBlendshapeValues, shapeValues, shapeIDs); break; case 4: AddValuesToList(legsBlendshapeValues, shapeValues, shapeIDs); break; } } static void AddValuesToList(NetworkList<BlendshapeValuePair> list, float[] values, int[] ids) { for (int i = 0; i < values.Length; i++) { bool flag3 = false; for (int j = 0; j < list.Count; j++) { if (list[j].ShapeID == ids[i]) { list[j] = new BlendshapeValuePair(values[i], ids[i]); flag3 = true; break; } } if (!flag3) { list.Add(new BlendshapeValuePair(values[i], ids[i])); } } } } [ServerRpc(RequireOwnership = false)] public void ResetBlendshapeNetworkVarServerRPC(int TargetList) { //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(939713145u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, TargetList); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 939713145u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; ResetBlendshapeNetworkVar(TargetList); } } } public void ResetBlendshapeNetworkVar(int targetList) { if ((Object)(object)settings?.networkedSettings == (Object)null) { Debug.LogError((object)"Settings or networkedSettings are null"); return; } List<NetworkList<BlendshapeValuePair>> list = new List<NetworkList<BlendshapeValuePair>> { settings.networkedSettings.headBlendshapeValues, settings.networkedSettings.chestBlendshapeValues, settings.networkedSettings.armsBlendshapeValues, settings.networkedSettings.waistBlendshapeValues, settings.networkedSettings.legsBlendshapeValues }; if (targetList < 0 || targetList >= list.Count) { Debug.LogError((object)$"Invalid targetList index: {targetList}"); } else { list[targetList].Clear(); } } [ServerRpc(RequireOwnership = false)] public void SetMaterialDataServerRpc(Color suitColorValue, float suitMetallicValue, float suitSmoothnessValue, Color skinColorValue, float skinMetallicValue, float skinSmoothnessValue) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0112: Unknown result type (might be due to invalid IL or missing references) //IL_011c: 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_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Unknown result type (might be due to invalid IL or missing references) //IL_0147: Unknown result type (might be due to invalid IL or missing references) //IL_014e: 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) 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(1865529678u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref suitColorValue); ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref suitMetallicValue, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref suitSmoothnessValue, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref skinColorValue); ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref skinMetallicValue, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref skinSmoothnessValue, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 1865529678u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; SetMaterialData(suitColorValue, skinMetallicValue, suitSmoothnessValue, skinColorValue, skinMetallicValue, skinSmoothnessValue); } } } public void SetMaterialData(Color suitColorValue, float suitMetallicValue, float suitSmoothnessValue, Color skinColorValue, float skinMetallicValue, float skinSmoothnessValue) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) NetworkMaterialProperties value = new NetworkMaterialProperties { colorValue = skinColorValue, metallicValue = skinMetallicValue, smoothnessValue = skinSmoothnessValue }; NetworkMaterialProperties value2 = new NetworkMaterialProperties { colorValue = suitColorValue, metallicValue = suitMetallicValue, smoothnessValue = suitSmoothnessValue }; suitMaterialValues.Value = value2; skinMaterialValues.Value = value; } public void SaveSuitData() { List<BlendshapeSlider>[] array = new List<BlendshapeSlider>[5]; for (int i = 0; i < 5; i++) { array[i] = new List<BlendshapeSlider>(); foreach (BlendshapeSlider item in localUI.AllSliders[i]) { if (item.objectID == i) { array[i].Add(item); } } } Femmployee.FemmployeeSaveData femmployeeSaveData = new Femmployee.FemmployeeSaveData { PartsList = new Femmployee.PartsList { HeadSync = headSync, ChestSync = chestSync, ArmsSync = armsSync, WaistSync = waistSync, LegSync = legSync }, SliderValues = { { "Head Sliders", Tools.RetriveSliderData(array[0]) }, { "Chest Sliders", Tools.RetriveSliderData(array[1]) }, { "Arms Sliders", Tools.RetriveSliderData(array[2]) }, { "Waist Sliders", Tools.RetriveSliderData(array[3]) }, { "Legs Sliders", Tools.RetriveSliderData(array[4]) } }, MultiplierValue = localUI.sliderMultiplier, Multiplier = localUI.isMultiplierEnabled, suitMaterialData = new Femmployee.MaterialData { colorValueR = suitMaterialValues.Value.colorValue.r, colorValueG = suitMaterialValues.Value.colorValue.g, colorValueB = suitMaterialValues.Value.colorValue.b, metallicValue = suitMaterialValues.Value.metallicValue, smoothnessValue = suitMaterialValues.Value.smoothnessValue }, skinMaterialData = new Femmployee.MaterialData { colorValueR = skinMaterialValues.Value.colorValue.r, colorValueG = skinMaterialValues.Value.colorValue.g, colorValueB = skinMaterialValues.Value.colorValue.b, metallicValue = skinMaterialValues.Value.metallicValue, smoothnessValue = skinMaterialValues.Value.smoothnessValue } }; string contents = JsonConvert.SerializeObject((object)femmployeeSaveData, (Formatting)(FemmployeeModBase.useSaveFileFormatting.Value ? 1 : 0)); File.WriteAllText(FemmployeeModBase.saveFilePath, contents); } public Femmployee.FemmployeeSaveData SuitDataParser(string _suitData) { Femmployee.FemmployeeSaveData femmployeeSaveData = JsonConvert.DeserializeObject<Femmployee.FemmployeeSaveData>(_suitData); int num = (localUI.isMultiplierEnabled ? (localUI.sliderMultiplier * 100) : 100); Femmployee.FemmployeeSaveData femmployeeSaveData2 = femmployeeSaveData; foreach (KeyValuePair<string, Dictionary<string, float>> sliderValue in femmployeeSaveData2.SliderValues) { foreach (KeyValuePair<string, float> item in sliderValue.Value) { Mathf.Clamp(item.Value, 0f, (float)num); } } return femmployeeSaveData2; } public void LoadSuitData(Femmployee.FemmployeeSaveData suitData) { //IL_03bb: Unknown result type (might be due to invalid IL or missing references) //IL_03f7: Unknown result type (might be due to invalid IL or missing references) //IL_03f9: Unknown result type (might be due to invalid IL or missing references) //IL_03fd: Unknown result type (might be due to invalid IL or missing references) //IL_0439: Unknown result type (might be due to invalid IL or missing references) //IL_043b: Unknown result type (might be due to invalid IL or missing references) //IL_043e: Unknown result type (might be due to invalid IL or missing references) //IL_0456: Unknown result type (might be due to invalid IL or missing references) string[] array = new string[5] { "HeadSync", "ChestSync", "ArmsSync", "WaistSync", "LegSync" }; if ((Object)(object)settings.controller == (Object)(object)GameNetworkManager.Instance.localPlayerController) { for (int i = 0; i < array.Length; i++) { string partSync = (string)suitData.PartsList.GetType().GetProperty(array[i]).GetValue(suitData.PartsList); localUI.regionDropdowns[i].value = localUI.regionDropdowns[i].options.FindIndex((OptionData option) => option.text == partSync); } localUI.isMultiplierEnabled = suitData.Multiplier; localUI.sliderMultiplier = suitData.MultiplierValue; localUI.multiplierDropdown.value = suitData.MultiplierValue - 1; localUI.multiplierToggle.isOn = suitData.Multiplier; localUI.suitMaterialSettings.RGBSliders[0].value = suitData.suitMaterialData.colorValueR; localUI.suitMaterialSettings.RGBSliders[1].value = suitData.suitMaterialData.colorValueG; localUI.suitMaterialSettings.RGBSliders[2].value = suitData.suitMaterialData.colorValueB; localUI.suitMaterialSettings.metallicSlider.value = suitData.suitMaterialData.metallicValue; localUI.suitMaterialSettings.smoothnessSlider.value = suitData.suitMaterialData.smoothnessValue; localUI.skinMaterialSettings.RGBSliders[0].value = suitData.skinMaterialData.colorValueR; localUI.skinMaterialSettings.RGBSliders[1].value = suitData.skinMaterialData.colorValueG; localUI.skinMaterialSettings.RGBSliders[2].value = suitData.skinMaterialData.colorValueB; localUI.skinMaterialSettings.metallicSlider.value = suitData.skinMaterialData.metallicValue; localUI.skinMaterialSettings.smoothnessSlider.value = suitData.skinMaterialData.smoothnessValue; for (int j = 0; j < 5; j++) { string key = array[j].Replace("Sync", "") + " Sliders"; foreach (BlendshapeSlider item in localUI.AllSliders[j]) { if (item.objectID == j) { item.shapeSlider.maxValue = item.DefaultSliderMax * (float)suitData.MultiplierValue; item.shapeSlider.value = suitData.SliderValues[key][item.blendshapes[0].BlendshapeName]; } } } } if (Tools.CheckIsServer()) { headSync = suitData.PartsList.HeadSync; chestSync = suitData.PartsList.ChestSync; armsSync = suitData.PartsList.ArmsSync; waistSync = suitData.PartsList.WaistSync; legSync = suitData.PartsList.LegSync; Color val = default(Color); val.r = suitData.suitMaterialData.colorValueR; val.g = suitData.suitMaterialData.colorValueG; val.b = suitData.suitMaterialData.colorValueB; Color suitColorValue = val; val = default(Color); val.r = suitData.skinMaterialData.colorValueR; val.g = suitData.skinMaterialData.colorValueG; val.b = suitData.skinMaterialData.colorValueB; Color skinColorValue = val; SetMaterialData(suitColorValue, suitData.suitMaterialData.metallicValue, suitData.suitMaterialData.smoothnessValue, skinColorValue, suitData.skinMaterialData.metallicValue, suitData.skinMaterialData.smoothnessValue); } else { string suitDataString = JsonConvert.SerializeObject((object)suitData, (Formatting)(FemmployeeModBase.useSaveFileFormatting.Value ? 1 : 0)); LoadSuitSaveDataServerRpc(suitDataString); } } [ServerRpc(RequireOwnership = false)] public void LoadSuitSaveDataServerRpc(string suitDataString) { //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_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(2172041260u, val, (RpcDelivery)0); bool flag = suitDataString != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(suitDataString, false); } ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2172041260u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; Femmployee.FemmployeeSaveData suitData = JsonConvert.DeserializeObject<Femmployee.FemmployeeSaveData>(suitDataString); LoadSuitData(suitData); } } public void SelfDestruct() { ((Component)this).GetComponent<NetworkObject>().Despawn(true); } public override void OnDestroy() { if (_networkListsCreatedByThis) { try { NetworkList<BlendshapeValuePair> obj = headBlendshapeValues; if (obj != null) { ((NetworkVariableBase)obj).Dispose(); } NetworkList<BlendshapeValuePair> obj2 = chestBlendshapeValues; if (obj2 != null) { ((NetworkVariableBase)obj2).Dispose(); } NetworkList<BlendshapeValuePair> obj3 = armsBlendshapeValues; if (obj3 != null) { ((NetworkVariableBase)obj3).Dispose(); } NetworkList<BlendshapeValuePair> obj4 = waistBlendshapeValues; if (obj4 != null) { ((NetworkVariableBase)obj4).Dispose(); } NetworkList<BlendshapeValuePair> obj5 = legsBlendshapeValues; if (obj5 != null) { ((NetworkVariableBase)obj5).Dispose(); } } catch (Exception arg) { Debug.LogWarning((object)$"Error disposing network lists: {arg}"); } } ((NetworkBehaviour)this).OnDestroy(); } protected override void __initializeVariables() { if (_headSync == null) { throw new Exception("NetworkedSettings._headSync cannot be null. All NetworkVariableBase instances must be initialized."); } ((NetworkVariableBase)_headSync).Initialize((NetworkBehaviour)(object)this); ((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)_headSync, "_headSync"); base.NetworkVariableFields.Add((NetworkVariableBase)(object)_headSync); if (_chestSync == null) { throw new Exception("NetworkedSettings._chestSync cannot be null. All NetworkVariableBase instances must be initialized."); } ((NetworkVariableBase)_chestSync).Initialize((NetworkBehaviour)(object)this); ((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)_chestSync, "_chestSync"); base.NetworkVariableFields.Add((NetworkVariableBase)(object)_chestSync); if (_armsSync == null) { throw new Exception("NetworkedSettings._armsSync cannot be null. All NetworkVariableBase instances must be initialized."); } ((NetworkVariableBase)_armsSync).Initialize((NetworkBehaviour)(object)this); ((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)_armsSync, "_armsSync"); base.NetworkVariableFields.Add((NetworkVariableBase)(object)_armsSync); if (_waistSync == null) { throw new Exception("NetworkedSettings._waistSync cannot be null. All NetworkVariableBase instances must be initialized."); } ((NetworkVariableBase)_waistSync).Initialize((NetworkBehaviour)(object)this); ((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)_waistSync, "_waistSync"); base.NetworkVariableFields.Add((NetworkVariableBase)(object)_waistSync); if (_legSync == null) { throw new Exception("NetworkedSettings._legSync cannot be null. All NetworkVariableBase instances must be initialized."); } ((NetworkVariableBase)_legSync).Initialize((NetworkBehaviour)(object)this); ((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)_legSync, "_legSync"); base.NetworkVariableFields.Add((NetworkVariableBase)(object)_legSync); if (headBlendshapeValues == null) { throw new Exception("NetworkedSettings.headBlendshapeValues cannot be null. All NetworkVariableBase instances must be initialized."); } ((NetworkVariableBase)headBlendshapeValues).Initialize((NetworkBehaviour)(object)this); ((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)headBlendshapeValues, "headBlendshapeValues"); base.NetworkVariableFields.Add((NetworkVariableBase)(object)headBlendshapeValues); if (chestBlendshapeValues == null) { throw new Exception("NetworkedSettings.chestBlendshapeValues cannot be null. All NetworkVariableBase instances must be initialized."); } ((NetworkVariableBase)chestBlendshapeValues).Initialize((NetworkBehaviour)(object)this); ((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)chestBlendshapeValues, "chestBlendshapeValues"); base.NetworkVariableFields.Add((NetworkVariableBase)(object)chestBlendshapeValues); if (armsBlendshapeValues == null) { throw new Exception("NetworkedSettings.armsBlendshapeValues cannot be null. All NetworkVariableBase instances must be initialized."); } ((NetworkVariableBase)armsBlendshapeValues).Initialize((NetworkBehaviour)(object)this); ((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)armsBlendshapeValues, "armsBlendshapeValues"); base.NetworkVariableFields.Add((NetworkVariableBase)(object)armsBlendshapeValues); if (waistBlendshapeValues == null) { throw new Exception("NetworkedSettings.waistBlendshapeValues cannot be null. All NetworkVariableBase instances must be initialized."); } ((NetworkVariableBase)waistBlendshapeValues).Initialize((NetworkBehaviour)(object)this); ((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)waistBlendshapeValues, "waistBlendshapeValues"); base.NetworkVariableFields.Add((NetworkVariableBase)(object)waistBlendshapeValues); if (legsBlendshapeValues == null) { throw new Exception("NetworkedSettings.legsBlendshapeValues cannot be null. All NetworkVariableBase instances must be initialized."); } ((NetworkVariableBase)legsBlendshapeValues).Initialize((NetworkBehaviour)(object)this); ((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)legsBlendshapeValues, "legsBlendshapeValues"); base.NetworkVariableFields.Add((NetworkVariableBase)(object)legsBlendshapeValues); if (suitMaterialValues == null) { throw new Exception("NetworkedSettings.suitMaterialValues cannot be null. All NetworkVariableBase instances must be initialized."); } ((NetworkVariableBase)suitMaterialValues).Initialize((NetworkBehaviour)(object)this); ((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)suitMaterialValues, "suitMaterialValues"); base.NetworkVariableFields.Add((NetworkVariableBase)(object)suitMaterialValues); if (skinMaterialValues == null) { throw new Exception("NetworkedSettings.skinMaterialValues cannot be null. All NetworkVariableBase instances must be initialized."); } ((NetworkVariableBase)skinMaterialValues).Initialize((NetworkBehaviour)(object)this); ((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)skinMaterialValues, "skinMaterialValues"); base.NetworkVariableFields.Add((NetworkVariableBase)(object)skinMaterialValues); if (playerID == null) { throw new Exception("NetworkedSettings.playerID cannot be null. All NetworkVariableBase instances must be initialized."); } ((NetworkVariableBase)playerID).Initialize((NetworkBehaviour)(object)this); ((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)playerID, "playerID"); base.NetworkVariableFields.Add((NetworkVariableBase)(object)playerID); if (hasInitialized == null) { throw new Exception("NetworkedSettings.hasInitialized cannot be null. All NetworkVariableBase instances must be initialized."); } ((NetworkVariableBase)hasInitialized).Initialize((NetworkBehaviour)(object)this); ((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)hasInitialized, "hasInitialized"); base.NetworkVariableFields.Add((NetworkVariableBase)(object)hasInitialized); ((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 ((NetworkBehaviour)this).__registerRpc(1272767705u, new RpcReceiveHandler(__rpc_handler_1272767705), "AssignValuesClientRpc"); ((NetworkBehaviour)this).__registerRpc(1759863977u, new RpcReceiveHandler(__rpc_handler_1759863977), "SetNetworkVarServerRpc"); ((NetworkBehaviour)this).__registerRpc(2348116511u, new RpcReceiveHandler(__rpc_handler_2348116511), "ApplySettingsServerRpc"); ((NetworkBehaviour)this).__registerRpc(2903334129u, new RpcReceiveHandler(__rpc_handler_2903334129), "ApplySettingsClientRpc"); ((NetworkBehaviour)this).__registerRpc(1024183679u, new RpcReceiveHandler(__rpc_handler_1024183679), "SetBlendshapeNetworkVarServerRpc"); ((NetworkBehaviour)this).__registerRpc(939713145u, new RpcReceiveHandler(__rpc_handler_939713145), "ResetBlendshapeNetworkVarServerRPC"); ((NetworkBehaviour)this).__registerRpc(1865529678u, new RpcReceiveHandler(__rpc_handler_1865529678), "SetMaterialDataServerRpc"); ((NetworkBehaviour)this).__registerRpc(2172041260u, new RpcReceiveHandler(__rpc_handler_2172041260), "LoadSuitSaveDataServerRpc"); ((NetworkBehaviour)this).__initializeRpcs(); } private static void __rpc_handler_1272767705(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 num = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref num); target.__rpc_exec_stage = (__RpcExecStage)1; ((NetworkedSettings)(object)target).AssignValuesClientRpc(num); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1759863977(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_006e: 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) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int id = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref id); bool flag = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref flag, default(ForPrimitives)); string value = null; if (flag) { ((FastBufferReader)(ref reader)).ReadValueSafe(ref value, false); } target.__rpc_exec_stage = (__RpcExecStage)1; ((NetworkedSettings)(object)target).SetNetworkVarServerRpc(id, value); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2348116511(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; ((NetworkedSettings)(object)target).ApplySettingsServerRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2903334129(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; ((NetworkedSettings)(object)target).ApplySettingsClientRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1024183679(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_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_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) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int id = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref id); bool flag = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref flag, default(ForPrimitives)); float[] shapeValues = null; if (flag) { ((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref shapeValues, default(ForPrimitives)); } bool flag2 = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref flag2, default(ForPrimitives)); int[] shapeIDs = null; if (flag2) { ((FastBufferReader)(ref reader)).ReadValueSafe<int>(ref shapeIDs, default(ForPrimitives)); } target.__rpc_exec_stage = (__RpcExecStage)1; ((NetworkedSettings)(object)target).SetBlendshapeNetworkVarServerRpc(id, shapeValues, shapeIDs); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_939713145(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 targetList = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref targetList); target.__rpc_exec_stage = (__RpcExecStage)1; ((NetworkedSettings)(object)target).ResetBlendshapeNetworkVarServerRPC(targetList); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1865529678(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //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_0057: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_007f: 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_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { Color suitColorValue = default(Color); ((FastBufferReader)(ref reader)).ReadValueSafe(ref suitColorValue); float suitMetallicValue = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref suitMetallicValue, default(ForPrimitives)); float suitSmoothnessValue = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref suitSmoothnessValue, default(ForPrimitives)); Color skinColorValue = default(Color); ((FastBufferReader)(ref reader)).ReadValueSafe(ref skinColorValue); float skinMetallicValue = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref skinMetallicValue, default(ForPrimitives)); float skinSmoothnessValue = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref skinSmoothnessValue, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((NetworkedSettings)(object)target).SetMaterialDataServerRpc(suitColorValue, suitMetallicValue, suitSmoothnessValue, skinColorValue, skinMetallicValue, skinSmoothnessValue); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2172041260(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 suitDataString = null; if (flag) { ((FastBufferReader)(ref reader)).ReadValueSafe(ref suitDataString, false); } target.__rpc_exec_stage = (__RpcExecStage)1; ((NetworkedSettings)(object)target).LoadSuitSaveDataServerRpc(suitDataString); target.__rpc_exec_stage = (__RpcExecStage)0; } } [MethodImpl(MethodImplOptions.NoInlining)] protected internal override string __getTypeName() { return "NetworkedSettings"; } } public static class Tools { public static void LogAll(object obj) { Type type = obj.GetType(); string name = type.Name; FieldInfo[] fields = type.GetFields(BindingFlags.Instance | BindingFlags.Public); FieldInfo[] array = fields; foreach (FieldInfo fieldInfo in array) { FemmployeeModBase.mls.LogWarning((object)$"Class: {name}, Variable: {fieldInfo.Name}, Value: {fieldInfo.GetValue(obj)}"); } } public static bool CheckIsServer() { if (NetworkManager.Singleton.IsServer) { return true; } return false; } public static Dictionary<string, float> RetriveSliderData(List<BlendshapeSlider> sliders) { Dictionary<string, float> dictionary = new Dictionary<string, float>(); foreach (BlendshapeSlider slider in sliders) { if (!dictionary.ContainsKey(slider.blendshapes[0].BlendshapeName)) { dictionary.Add(slider.blendshapes[0].BlendshapeName, slider.shapeSlider.value); } } return dictionary; } } public static class MyPluginInfo { public const string PLUGIN_GUID = "FemmployeeMod"; public const string PLUGIN_NAME = "FemmployeeMod"; public const string PLUGIN_VERSION = "1.0.0"; } } namespace FemmployeeMod.UIScripts { public class BlendshapeSlider : MonoBehaviour { public FemmployeeConfigUI configUI; public int objectID; public GameObject targetElement; public Slider shapeSlider; public float DefaultSliderMax = 100f; public BlendshapeData[] blendshapes; public void OnDestroy() { if ((Object)(object)shapeSlider != (Object)null) { configUI.AllSliders[objectID].Remove(this); } } public void SliderValueChange(float value) { configUI.femmployeeSuitPreview.SetPreviewBlendshape(objectID, value, blendshapes, configUI.localFemmployeeGo.GetComponent<Femmployee>()); } } public class FemmployeeConfigUI : MonoBehaviour { public GameObject localFemmployeeGo; public TMP_Dropdown[] regionDropdowns; public TMP_Dropdown multiplierDropdown; public FemmployeeUIMaterialSettings suitMaterialSettings; public FemmployeeUIMaterialSettings skinMaterialSettings; public Toggle multiplierToggle; public List<BlendshapeSlider>[] AllSliders = new List<BlendshapeSlider>[5]; public bool isUIOpen; public FemmployeeSuitPreview femmployeeSuitPreview; public Slider previewSpinSlider; public GameObject menuRoot; public GameObject mainMenu; public GameObject settingsMenu; public int sliderMultiplier; public bool isMultiplierEnabled; public static FemmployeeConfigUI instance; public void Awake() { SetupKeybindCallbacks(); for (int i = 0; i < AllSliders.Length; i++) { AllSliders[i] = new List<BlendshapeSlider>(); } instance = this; } public void Start() { //IL_0030: 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_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Expected O, but got Unknown if ((Object)(object)femmployeeSuitPreview == (Object)null) { GameObject val = (GameObject)Object.Instantiate(Assets.MainAssetBundle.LoadAsset("FemmployeeSuitPreviewPrefab.prefab"), new Vector3(400f, -100f, 400f), Quaternion.identity); femmployeeSuitPreview = val.GetComponent<FemmployeeSuitPreview>(); femmployeeSuitPreview.previewSpinSlider = previewSpinSlider; } sliderMultiplier = 1; TMP_Dropdown[] array = regionDropdowns; foreach (TMP_Dropdown val2 in array) { PopulateSliders(((Component)val2).GetComponent<RegionDropdown>()); } } public void Update() { if (!isUIOpen) { return; } TMP_Dropdown[] array = regionDropdowns; foreach (TMP_Dropdown val in array) { if (val.IsExpanded) { ((Component)val).GetComponent<RegionDropdown>().targetElement.SetActive(false); } else { ((Component)val).GetComponent<RegionDropdown>().targetElement.SetActive(true); } } } public void PopulateDropdowns() { //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Expected O, but got Unknown TMP_Dropdown[] array = regionDropdowns; foreach (TMP_Dropdown val in array) { val.ClearOptions(); } for (int j = 0; j < regionDropdowns.Length; j++) { if (j < femmployeeSuitPreview.settings.partsList.Count) { foreach (KeyValuePair<string, FemmployeePart> item in femmployeeSuitPreview.settings.partsList[j]) { regionDropdowns[j].options.Add(new OptionData(item.Key)); } } else { FemmployeeModBase.mls.LogWarning((object)$"No parts found for region {j}"); } } } public void SetMultiplier(int value) { for (int i = 0; i < 5; i++) { foreach (BlendshapeSlider item in AllSliders[i]) { item.shapeSlider.maxValue = item.DefaultSliderMax * (float)value; } } } public void PopulateSliders(RegionDropdown sender) { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Expected O, but got Unknown //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Expected O, but got Unknown foreach (Transform item in sender.targetElement.transform) { Transform val = item; Object.Destroy((Object)(object)((Component)val).gameObject); } AllSliders[sender.objectID].Clear(); List<BlendshapeData> list = new List<BlendshapeData>(); GameObject val2 = (GameObject)Assets.MainAssetBundle.LoadAsset("BlendshapeSlider.prefab"); GameObject targetElement = sender.targetElement; string[] array = new string[5] { "Head", "Chest", "Arms", "Waist", "Leg" }; SkinnedMeshRenderer[] bodyRegionMeshRenderers = femmployeeSuitPreview.settings.bodyRegionMeshRenderers; foreach (SkinnedMeshRenderer val3 in bodyRegionMeshRenderers) { int originalRegionID = Array.IndexOf(femmployeeSuitPreview.settings.bodyRegionMeshRenderers, val3); for (int j = 0; j < val3.sharedMesh.blendShapeCount; j++) { string blendShapeName = val3.sharedMesh.GetBlendShapeName(j); string[] array2 = blendShapeName.Split('_'); if (array2.Length > 2 && int.TryParse(array2[1], out var _) && array2[2] == array[sender.objectID]) { list.Add(new BlendshapeData { OriginalRegionID = originalRegionID, ControllingRegionID = sender.objectID, BlendshapeName = blendShapeName }); } } } Dictionary<int, List<BlendshapeData>> dictionary = (from shape in list group shape by shape.BlendshapeName.Split('_')[1]).ToDictionary((IGrouping<string, BlendshapeData> g) => int.Parse(g.Key), (IGrouping<string, BlendshapeData> g) => g.ToList()); foreach (KeyValuePair<int, List<BlendshapeData>> item2 in dictionary) { GameObject val4 = Object.Instantiate<GameObject>(val2, targetElement.transform); BlendshapeSlider component = val4.GetComponent<BlendshapeSlider>(); component.configUI = this; component.blendshapes = item2.Value.ToArray(); component.objectID = sender.objectID; component.shapeSlider.maxValue = component.DefaultSliderMax * (float)sliderMultiplier; SkinnedMeshRenderer val5 = femmployeeSuitPreview.settings.bodyRegionMeshRenderers[item2.Value[0].OriginalRegionID]; int blendShapeIndex = val5.sharedMesh.GetBlendShapeIndex(item2.Value[0].BlendshapeName); component.shapeSlider.value = val5.GetBlendShapeWeight(blendShapeIndex); string blendshapeName = item2.Value[0].BlendshapeName; string text = Regex.Replace(blendshapeName, "_.*$", ""); component.targetElement.GetComponent<TMP_Text>().text = text; ((Object)component).name = $"BlendshapeSlider_{item2.Key}"; AllSliders[sender.objectID].Add(component); } } public void OnDestroy() { FemmployeeModBase.InputActionsInstance.FemmployeeUIToggle.performed -= FemmployeeUIToggle; } public void SetupKeybindCallbacks() { FemmployeeModBase.InputActionsInstance.FemmployeeUIToggle.performed += FemmployeeUIToggle; } public void FemmployeeUIToggle(CallbackContext UIOpenContext) { Femmployee femmployee = default(Femmployee); if (((CallbackContext)(ref UIOpenContext)).performed && ((Component)GameNetworkManager.Instance.localPlayerController).TryGetComponent<Femmployee>(ref femmployee)) { isUIOpen = !isUIOpen; menuRoot.SetActive(isUIOpen); mainMenu.SetActive(isUIOpen); settingsMenu.SetActive(false); ((Component)femmployeeSuitPreview.modelViewCamera).gameObject.SetActive(isUIOpen); Cursor.lockState = (CursorLockMode)((!isUIOpen) ? 1 : 0); Cursor.visible = isUIOpen; GameNetworkManager.Instance.localPlayerController.disableLookInput = isUIOpen; GameNetworkManager.Instance.localPlayerController.inTerminalMenu = isUIOpen; } } public void ApplyChanges() { localFemmployeeGo.GetComponent<Femmployee>().settings.networkedSettings.ApplySettings(); localFemmployeeGo.GetComponent<Femmployee>().settings.networkedSettings.SaveSuitData(); } public void ToggleMultiplier(bool value) { isMultiplierEnabled = value; if (!value) { SetMultiplier(1); sliderMultiplier = 1; multiplierDropdown.value = 0; } } public void SetSliderMultiplier(int value) { sliderMultiplier = value + 1; SetMultiplier(sliderMultiplier); } public void RegionDropdownSelection(RegionDropdown sender, string selectionKeyName) { int objectID = sender.objectID; femmployeeSuitPreview.SetPreviewRegion(objectID, selectionKeyName, localFemmployeeGo.GetComponent<Femmployee>()); PopulateSliders(sender); } public void MultiplierDropdownSelection(int value) { if (isMultiplierEnabled) { SetSliderMultiplier(value); } } public void SendColorData() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) femmployeeSuitPreview.SetMaterialSettings(suitMaterialSettings.colorValue, suitMaterialSettings.metallicValue, suitMaterialSettings.smoothnessValue, skinMaterialSettings.colorValue, skinMaterialSettings.metallicValue, skinMaterialSettings.smoothnessValue, localFemmployeeGo.GetComponent<Femmployee>()); } } public class FemmployeeUIMaterialSettings : MonoBehaviour { public FemmployeeConfigUI localFemmployeeConfigUI; public Slider[] RGBSliders; public Slider metallicSlider; public Slider smoothnessSlider; public Color colorValue; public float metallicValue; public float smoothnessValue; public Color defaultColorValue; public float defaultMetallicValue = 0f; public float defaultSmoothnessValue = 0f; public string materialName; public void SetColorValue(float value) { colorValue.r = RGBSliders[0].value; colorValue.g = RGBSliders[1].value; colorValue.b = RGBSliders[2].value; localFemmployeeConfigUI.SendColorData(); } public void SetMetallicValue(float value) { metallicValue = metallicSlider.value; localFemmployeeConfigUI.SendColorData(); } public void SetSmoothnessSlider(float value) { smoothnessValue = smoothnessSlider.value; localFemmployeeConfigUI.SendColorData(); } public void ResetColorValue(bool value) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) colorValue = defaultColorValue; RGBSliders[0].value = defaultColorValue.r; RGBSliders[1].value = defaultColorValue.g; RGBSliders[2].value = defaultColorValue.b; } public void ResetMetallicsSlider(bool value) { metallicValue = defaultMetallicValue; metallicSlider.value = defaultMetallicValue; } public void ResetSmoothnessSlider(bool value) { smoothnessValue = defaultSmoothnessValue; smoothnessSlider.value = defaultSmoothnessValue; } } public class MenuButton : MonoBehaviour { public int objectID; public GameObject targetElement; public bool shouldDisable; public GameObject[] disableList; public void ButtonTrigger() { targetElement.SetActive(!targetElement.activeSelf); if (shouldDisable) { GameObject[] array = disableList; foreach (GameObject val in array) { val.SetActive(false); } } } } public class MultiplierToggle : MonoBehaviour { public FemmployeeConfigUI configUI; public GameObject targetElement; public void ToggleInteract(bool value) { GameObject obj = targetElement; if (obj != null) { obj.SetActive(value); } configUI.ToggleMultiplier(value); } } public class RegionDropdown : MonoBehaviour { public FemmployeeConfigUI configUI; public int objectID; public GameObject targetElement; public bool shouldDisable; public GameObject[] disableList; public void DropdownTrigger(int selectionIndex) { TMP_Dropdown component = ((Component)this).GetComponent<TMP_Dropdown>(); configUI.RegionDropdownSelection(this, component.options[component.value].text); } } } namespace ModelReplacement { public class Femmployee : BodyReplacementBase { public class FemmployeeSaveData { public PartsList PartsList { get; set; } public Dictionary<string, Dictionary<string, float>> SliderValues { get; set; } = new Dictionary<string, Dictionary<string, float>>(); public int MultiplierValue { get; set; } public bool Multiplier { get; set; } public MaterialData suitMaterialData { get; set; } public MaterialData skinMaterialData { get; set; } } public class PartsList { public string HeadSync { get; set; } public string ChestSync { get; set; } public string ArmsSync { get; set; } public string WaistSync { get; set; } public string LegSync { get; set; } } public class MaterialData { public float colorValueR { get; set; } public float colorValueG { get; set; } public float colorValueB { get; set; } public float metallicValue { get; set; } public float smoothnessValue { get; set; } } public FemmployeeSettings settings; public FemmployeeConfigUI localModdedUI; public FemmployeeViewmodel localViewModel; public override GameObject LoadAssetsAndReturnModel() { string text = "Femmployee"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } public override void Awake() { ((BodyReplacementBase)this).Awake(); } public override void OnDestroy() { ((BodyReplacementBase)this).OnDestroy(); if (Tools.CheckIsServer()) { settings.networkedSettings.SelfDestruct(); } } public override void Start() { settings = base.replacementModel.GetComponent<FemmployeeSettings>(); settings.controller = ((BodyReplacementBase)this).controller; settings.replacementModel = base.replacementModel; settings.suitName = ((BodyReplacementBase)this).suitName; if (Tools.CheckIsServer()) { GameObject val = Object.Instantiate<GameObject>(FemmployeeModBase.networkedSettingsGo); NetworkObject component = val.GetComponent<NetworkObject>(); NetworkedSettings component2 = val.GetComponent<NetworkedSettings>(); component.Spawn(false); component.TrySetParent(base.replacementModel.gameObject, false); component2.playerID.Value = (int)((BodyReplacementBase)this).controller.playerClientId; } localModdedUI = Object.FindObjectOfType<FemmployeeConfigUI>(); InitializeParts(); if (!((Object)(object)((BodyReplacementBase)this).controller != (Object)(object)GameNetworkManager.Instance.localPlayerController)) { localModdedUI.femmployeeSuitPreview.settings.partsList = settings.partsList; localModdedUI.localFemmployeeGo = ((Component)this).gameObject; localModdedUI.PopulateDropdowns(); ((MonoBehaviour)this).StartCoroutine(WaitForNetworkSettingsInitialization()); } } private IEnumerator WaitForNetworkSettingsInitialization() { yield return (object)new WaitUntil((Func<bool>)(() => (Object)(object)settings.networkedSettings != (Object)null)); yield return (object)new WaitUntil((Func<bool>)(() => settings.networkedSettings.hasInitialized.Value)); yield return (object)new WaitForSeconds(0.2f); localModdedUI.femmployeeSuitPreview.PreviewLoadSaveData(this); } private void InitializeParts() { ScriptableObject[] array = Assets.MainAssetBundle.LoadAllAssets<ScriptableObject>(); ScriptableObject[] array2 = array; foreach (ScriptableObject val in array2) { if (!(val is FemmployeePartsInitializationList femmployeePartsInitializationList)) { continue; } for (int j = 0; j < femmployeePartsInitializationList.fullPartsList.Count; j++) { Dictionary<string, FemmployeePart> dictionary = new Dictionary<string, FemmployeePart>(); FemmployeePart[] array3 = femmployeePartsInitializationList.fullPartsList[j]; foreach (FemmployeePart femmployeePart in array3) { dictionary.Add(((Object)femmployeePart).name, femmployeePart); } settings.partsList.Add(dictionary); } } } public void ApplySwapRegions() { int num = (localModdedUI.isMultiplierEnabled ? (localModdedUI.sliderMultiplier * 100) : 100); ApplyMeshesAndMaterials(); List<NetworkList<BlendshapeValuePair>> list = new List<NetworkList<BlendshapeValuePair>> { settings.networkedSettings.headBlendshapeValues, settings.networkedSettings.chestBlendshapeValues, settings.networkedSettings.armsBlendshapeValues, settings.networkedSettings.waistBlendshapeValues, settings.networkedSettings.legsBlendshapeValues }; for (int i = 0; i < list.Count; i++) { SkinnedMeshRenderer val = settings.bodyRegionMeshRenderers[i]; foreach (BlendshapeValuePair item in list[i]) { float num2 = Mathf.Clamp(item.ShapeValue, 0f, (float)num); val.SetBlendShapeWeight(item.ShapeID, num2); } } ApplyMaterialProperties(); } private void ApplyMeshesAndMaterials() { for (int i = 0; i < settings.bodyRegionMeshRenderers.Length; i++) { settings.bodyRegionMeshRenderers[i].sharedMesh = settings.partsList[i][GetSyncValue(i)].mesh; ((Renderer)settings.bodyRegionMeshRenderers[i]).materials = settings.partsList[i][GetSyncValue(i)].materials; } if (!ModelReplacementAPI.EnforceViewModelGeneration.Value) { FemmployeeModBase.mls.LogWarning((object)"'Generate Viewmodels by default' is disabled! Skipping viewmodel generation"); } else if (!((Object)(object)((BodyReplacementBase)this).controller != (Object)(object)GameNetworkManager.Instance.localPlayerController)) { ApplyLocalViewmodel(); } } private void ApplyLocalViewmodel() { FemmployeeSettings component = base.replacementViewModel.GetComponent<FemmployeeSettings>(); component.bodyRegionMeshRenderers[2].sharedMesh = settings.partsList[2][GetSyncValue(2)].mesh; ((Renderer)component.bodyRegionMeshRenderers[2]).materials = settings.partsList[2][GetSyncValue(2)].materials; Object.Destroy((Object)(object)base.replacementViewModel); base.replacementViewModel = ((BodyReplacementBase)this).LoadViewModelreplacement(); ((BodyReplacementBase)this).viewModelAvatar.AssignViewModelReplacement(((Component)((BodyReplacementBase)this).controller).gameObject, base.replacementViewModel); ((BodyReplacementBase)this).SetAvatarRenderers(true); ((ManagerBase)base.viewState).ReportBodyReplacementAddition((BodyReplacementBase)(object)this); ((ManagerBase)base.cosmeticManager).ReportBodyReplacementAddition((BodyReplacementBase)(object)this); } private string GetSyncValue(int index) { return index switch { 0 => settings.networkedSettings.headSync, 1 => settings.networkedSettings.chestSync, 2 => settings.networkedSettings.armsSync, 3 => settings.networkedSettings.waistSync, 4 => settings.networkedSettings.legSync, _ => string.Empty, }; } private void ApplyMaterialProperties() { //IL_0060: 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) SkinnedMeshRenderer[] bodyRegionMeshRenderers = settings.bodyRegionMeshRenderers; foreach (SkinnedMeshRenderer val in bodyRegionMeshRenderers) { Material[] materials = ((Renderer)val).materials; foreach (Material val2 in materials) { if (((Object)val2).name == "Suit (Instance)") { val2.color = settings.networkedSettings.suitMaterialValues.Value.colorValue; val2.SetFloat("_Metallic", settings.networkedSettings.suitMaterialValues.Value.metallicValue); val2.SetFloat("_Smoothness", settings.networkedSettings.suitMaterialValues.Value.smoothnessValue); } if (((Object)val2).name == "Skin (Instance)") { val2.color = settings.networkedSettings.skinMaterialValues.Value.colorValue; val2.SetFloat("_Metallic", settings.networkedSettings.skinMaterialValues.Value.metallicValue); val2.SetFloat("_Smoothness", settings.networkedSettings.skinMaterialValues.Value.smoothnessValue); } } } if (ModelReplacementAPI.EnforceViewModelGeneration.Value && !((Object)(object)((BodyReplacementBase)this).controller != (Object)(object)GameNetworkManager.Instance.localPlayerController)) { ApplyViewmodelMaterialProperties(); } } private void ApplyViewmodelMaterialProperties() { //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) FemmployeeSettings component = base.replacementViewModel.GetComponent<FemmployeeSettings>(); Material[] materials = ((Renderer)component.bodyRegionMeshRenderers[2]).materials; foreach (Material val in materials) { if (((Object)val).name == "Suit (Instance)") { val.color = settings.networkedSettings.suitMaterialValues.Value.colorValue; val.SetFloat("_Metallic", settings.networkedSettings.suitMaterialValues.Value.metallicValue); val.SetFloat("_Smoothness", settings.networkedSettings.suitMaterialValues.Value.smoothnessValue); } if (((Object)val).name == "Skin (Instance)") { val.color = settings.networkedSettings.skinMaterialValues.Value.colorValue; val.SetFloat("_Metallic", settings.networkedSettings.skinMaterialValues.Value.metallicValue); val.SetFloat("_Smoothness", settings.networkedSettings.skinMaterialValues.Value.smoothnessValue); } } } } [BepInPlugin("com.TiltedHat.FemmployeeMod", "Femmployee Mod", "1.1.9")] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] public class FemmployeeModBase : BaseUnityPlugin { public static FemmployeeModBase instance; internal static InputClass InputActionsInstance = new InputClass(); public static ManualLogSource mls; public static ConfigFile config; public static GameObject networkedSettingsGo; public static string saveFilePath = Path.Combine(Paths.BepInExRootPath, "plugins", "TiltedTomb-The_Femmployee_Mod", "FemmployeeSaveData.json"); public static ConfigEntry<bool> useSaveFileFormatting; private static void InitConfig() { useSaveFileFormatting = config.Bind<bool>("Femmployee Mod Settings", "Use Save File formatting", false, "Enable for save file debugging. makes the mod generate the JSON with Formatting.Indented true."); } private void Awake() { //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Expected O, but got Unknown //IL_0101: Unknown result type (might be due to invalid IL or missing references) //IL_010b: Expected O, but got Unknown config = ((BaseUnityPlugin)this).Config; InitConfig(); if ((Object)(object)instance == (Object)null) { instance = this; } Type[] types = Assembly.GetExecutingAssembly().GetTypes(); Type[] array = types; foreach (Type type in array) { MethodInfo[] methods = type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic); MethodInfo[] array2 = methods; foreach (MethodInfo methodInfo in array2) { object[] customAttributes = methodInfo.GetCustomAttributes(typeof(RuntimeInitializeOnLoadMethodAttribute), inherit: false); if (customAttributes.Length != 0) { methodInfo.Invoke(null, null); } } } Assets.PopulateAssets(); ModelReplacementAPI.RegisterSuitModelReplacement("Femmployee", typeof(Femmployee)); Harmony val = new Harmony("com.TiltedHat.FemmployeeMod"); val.PatchAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin com.TiltedHat.FemmployeeMod is loaded!"); mls = ((BaseUnityPlugin)this).Logger; networkedSettingsGo = (GameObject)Assets.MainAssetBundle.LoadAsset("NetworkedSettings.prefab"); NetworkPrefabs.RegisterNetworkPrefab(networkedSettingsGo); } } public static class Assets { public static string mainAssetBundleName = "femmployeemodbundle"; public static AssetBundle MainAssetBundle = null; private static string GetAssemblyName() { return Assembly.GetExecutingAssembly().GetName().Name.Replace(" ", "_"); } public static void PopulateAssets() { if ((Object)(object)MainAssetBundle == (Object)null)