using System; using System.Collections.Generic; using System.Text; using System.Text.RegularExpressions; using Cpp2IlInjected; using Photon.Pun; using RecRoom.Circuits; using RecRoom.Core.Creation.Circuits; using TMPro; using UnityEngine; using UnityEngine.Events; using UnityEngine.UI; // Token: 0x02000263 RID: 611 [Token(Token = "0x2000263")] [DisallowMultipleComponent] public abstract class PlayerEditableTextBase : MonoBehaviourPun, EOCLMMENCKH { // Token: 0x170002A8 RID: 680 // (get) Token: 0x0600123A RID: 4666 RVA: 0x0004D9B4 File Offset: 0x0004BBB4 [Token(Token = "0x170002A8")] public IReadOnlyList FAPLMCMJEHG { [Token(Token = "0x600123A")] [Address(RVA = "0x417710", Offset = "0x416710", VA = "0x180417710")] get { /* An exception occurred when decompiling this method (0600123A) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Collections.Generic.IReadOnlyList`1 PlayerEditableTextBase::get_TextElements() ---> System.Exception: Basic block has to end with unconditional control flow. { Block_0: stloc:class [mscorlib]System.Collections.Generic.List`1(var_0_06, ldfld:class [mscorlib]System.Collections.Generic.List`1(PlayerEditableTextBase::PGDICHHPLBI, ldloc:PlayerEditableTextBase(this))) } at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88 --- End of inner exception stack trace --- at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663 */; } } // Token: 0x0600123B RID: 4667 RVA: 0x0004D9C8 File Offset: 0x0004BBC8 [Token(Token = "0x600123B")] [Address(RVA = "0x142DD50", Offset = "0x142CD50", VA = "0x18142DD50", Slot = "13")] protected override void Awake() { base..ctor(); Text text = this.uiText; int num = 0; if (text != num) { Text text2 = this.uiText; List pgdichhplbi = this.PGDICHHPLBI; } TextMesh textMesh = this.textMesh; int num2 = 0; if (textMesh != num2) { TextMesh textMesh2 = this.textMesh; List pgdichhplbi2 = this.PGDICHHPLBI; } TextMeshPro textMeshPro = this.textMeshPro; int num3 = 0; if (textMeshPro != num3) { TextMeshPro textMeshPro2 = this.textMeshPro; List pgdichhplbi3 = this.PGDICHHPLBI; } int num4 = 0; InputSlot[] allStandardInputSlots = IOSlots.AllStandardInputSlots; if (num4 < allStandardInputSlots.Length) { InputSlot[] allStandardInputSlots2 = IOSlots.AllStandardInputSlots; Dictionary noggjiokbof = this.NOGGJIOKBOF; int num5 = 0; InputSlot inputSlot = allStandardInputSlots2[num4]; noggjiokbof[inputSlot] = num5; num4++; } CircuitNodeDisplay circuitNodeDisplay = this.nodeDisplay; int num6 = 0; if (circuitNodeDisplay != num6 && this.usesCircuits) { CircuitNodeDisplay circuitNodeDisplay2 = this.nodeDisplay; Action action = new Action(this.BJHFLABFJPM); circuitNodeDisplay2.DMKDMKIDPLC += action; } PlayerEditableTextBase.UnityStringEvent onTextUpdated = this.OnTextUpdated; UnityAction unityAction = new UnityAction(this.AMHHNDOJGHJ); onTextUpdated.AddListener(unityAction); } // Token: 0x0600123C RID: 4668 RVA: 0x0004DAF4 File Offset: 0x0004BCF4 [Token(Token = "0x600123C")] [Address(RVA = "0x142E800", Offset = "0x142D800", VA = "0x18142E800")] protected void Start() { if (!this.DIKNJPBKDBG && EIMGAFPPJFD.IKDFDELJBII()) { this.DIKNJPBKDBG = true; } this.LDEGMHLJLGJ(); } // Token: 0x0600123D RID: 4669 RVA: 0x0004DB24 File Offset: 0x0004BD24 [Token(Token = "0x600123D")] [Address(RVA = "0x142E780", Offset = "0x142D780", VA = "0x18142E780")] public void RegisterEditables() { if (!this.DIKNJPBKDBG && EIMGAFPPJFD.IKDFDELJBII()) { this.DIKNJPBKDBG = true; this.JHNBIICLJLM(); return; } } // Token: 0x0600123E RID: 4670 [Token(Token = "0x600123E")] [Address(Slot = "18")] protected abstract void JHNBIICLJLM(); // Token: 0x0600123F RID: 4671 RVA: 0x0004DB54 File Offset: 0x0004BD54 [Token(Token = "0x600123F")] [Address(RVA = "0x142E670", Offset = "0x142D670", VA = "0x18142E670", Slot = "14")] protected override void OnDestroy() { base.OnDestroy(); CircuitNodeDisplay circuitNodeDisplay = this.nodeDisplay; int num = 0; if (circuitNodeDisplay != num) { CircuitNodeDisplay circuitNodeDisplay2 = this.nodeDisplay; Action action = new Action(this.BJHFLABFJPM); circuitNodeDisplay2.DMKDMKIDPLC -= action; } PlayerEditableTextBase.UnityStringEvent onTextUpdated = this.OnTextUpdated; UnityAction unityAction = new UnityAction(this.AMHHNDOJGHJ); onTextUpdated.RemoveListener(unityAction); } // Token: 0x06001240 RID: 4672 RVA: 0x0004DBBC File Offset: 0x0004BDBC [Token(Token = "0x6001240")] [Address(RVA = "0x142E0F0", Offset = "0x142D0F0", VA = "0x18142E0F0")] public void Circuit_UpdateText(Dictionary signals) { int num; do { num = 0; bool flag; if (flag) { Dictionary noggjiokbof = this.NOGGJIOKBOF; } } while (num != 0); this.usesCircuits = true; this.LDEGMHLJLGJ(); } // Token: 0x06001241 RID: 4673 RVA: 0x0004DBF4 File Offset: 0x0004BDF4 [Token(Token = "0x6001241")] [Address(RVA = "0x142E080", Offset = "0x142D080", VA = "0x18142E080")] public void Circuit_UpdateSingleSignalText(int BECIIEHIPMJ) { Dictionary noggjiokbof = this.NOGGJIOKBOF; this.usesCircuits = true; int num = 0; noggjiokbof[num] = BECIIEHIPMJ; this.LDEGMHLJLGJ(); } // Token: 0x06001242 RID: 4674 RVA: 0x0004DC28 File Offset: 0x0004BE28 [Token(Token = "0x6001242")] [Address(RVA = "0x142E070", Offset = "0x142D070", VA = "0x18142E070")] private void BJHFLABFJPM() { this.LDEGMHLJLGJ(); } // Token: 0x06001243 RID: 4675 RVA: 0x0004DC3C File Offset: 0x0004BE3C [Token(Token = "0x6001243")] [Address(RVA = "0x142E3C0", Offset = "0x142D3C0", VA = "0x18142E3C0")] protected void LDEGMHLJLGJ() { if (!this.usesCircuits) { this.JHNBIICLJLM(); bool flag; if (flag) { PlayerEditableTextBase.UnityStringEvent onTextUpdated = this.OnTextUpdated; } return; } this.JHNBIICLJLM(); bool flag2; if (flag2) { int hashCode = this.OEHELEIBKEB.GetHashCode(); } string kknkmoncaej = this.KKNKMONCAEJ; string text; bool flag3 = text != kknkmoncaej; throw new NullReferenceException(); } // Token: 0x06001244 RID: 4676 RVA: 0x0004DC94 File Offset: 0x0004BE94 [Token(Token = "0x6001244")] [Address(RVA = "0x142E330", Offset = "0x142D330", VA = "0x18142E330")] private void ENIFIGCGICP() { this.JHNBIICLJLM(); bool flag; if (flag) { PlayerEditableTextBase.UnityStringEvent onTextUpdated = this.OnTextUpdated; } } // Token: 0x06001245 RID: 4677 RVA: 0x0004DCB8 File Offset: 0x0004BEB8 [Token(Token = "0x6001245")] [Address(RVA = "0x142E230", Offset = "0x142D230", VA = "0x18142E230")] private void DGMJBFOMMML() { this.JHNBIICLJLM(); bool flag; if (flag) { int hashCode = this.OEHELEIBKEB.GetHashCode(); } string kknkmoncaej = this.KKNKMONCAEJ; string text; if (text != kknkmoncaej) { PlayerEditableTextBase.UnityStringEvent onTextUpdated = this.OnTextUpdated; this.KKNKMONCAEJ = text; onTextUpdated.Invoke(text); } } // Token: 0x06001246 RID: 4678 RVA: 0x0004DD0C File Offset: 0x0004BF0C [Token(Token = "0x6001246")] [Address(RVA = "0x142D850", Offset = "0x142C850", VA = "0x18142D850")] private bool AGMANNIBDDA(string NGPMADFHHKP) { int num = 0; if (NGPMADFHHKP.Contains("{") && NGPMADFHHKP.Contains("}")) { StringBuilder stringBuilder = this.OEHELEIBKEB.Clear(); StringBuilder stringBuilder2 = this.OEHELEIBKEB.Append(NGPMADFHHKP); InputSlot[] allStandardInputSlots = IOSlots.AllStandardInputSlots; if (num < allStandardInputSlots.Length) { InputSlot inputSlot = IOSlots.AllStandardInputSlots[num]; int num2 = this.MJCOCPMPPHH(inputSlot); bool flag = PlayerEditableTextBase.AADNLEIJENE.TryGetValue(inputSlot, num); if (!flag) { int hashCode = flag.GetHashCode(); PlayerEditableTextBase.BONDLNHHNIF bondlnhhnif = new PlayerEditableTextBase.BONDLNHHNIF(); string text2; string text = "{" + text2 + "}"; bondlnhhnif.NECNNNABFEA = text; string text4; string text3 = "{" + text4 + "}"; bondlnhhnif.CFEHFCGJGKI = text3; Dictionary aadnleijene = PlayerEditableTextBase.AADNLEIJENE; } string text5; StringBuilder stringBuilder3 = this.OEHELEIBKEB.Replace(num, text5); StringBuilder stringBuilder4 = this.OEHELEIBKEB.Replace(num, text5); num++; } return true; } throw new NullReferenceException(); } // Token: 0x06001247 RID: 4679 [Token(Token = "0x6001247")] [Address(Slot = "19")] protected abstract string NCOBPFBEHPD(); // Token: 0x06001248 RID: 4680 RVA: 0x0004DE14 File Offset: 0x0004C014 [Token(Token = "0x6001248")] [Address(RVA = "0x142E510", Offset = "0x142D510", VA = "0x18142E510")] protected static string LOFGKLDPGJI(string NGPMADFHHKP, int OMJLGGPHALE) { return NGPMADFHHKP; } // Token: 0x06001249 RID: 4681 RVA: 0x0004DE34 File Offset: 0x0004C034 [Token(Token = "0x6001249")] [Address(RVA = "0x142DBA0", Offset = "0x142CBA0", VA = "0x18142DBA0")] private void AMHHNDOJGHJ(string NCPBDBJDNHB) { int num; do { num = 0; if ((this.unescapeString ? 1 : 0) != num) { string text = Regex.Unescape(NCPBDBJDNHB); } List pgdichhplbi = this.PGDICHHPLBI; bool flag; if (flag) { num += num; num++; num++; num += 19; } } while (num != 0); } // Token: 0x0600124A RID: 4682 RVA: 0x0004DE7C File Offset: 0x0004C07C [Token(Token = "0x600124A")] [Address(RVA = "0x142E5A0", Offset = "0x142D5A0", VA = "0x18142E5A0")] protected int MJCOCPMPPHH(InputSlot POFOFFDCGCB) { CircuitNodeDisplay circuitNodeDisplay = this.nodeDisplay; int num = 0; if (circuitNodeDisplay != num && this.nodeDisplay.MBBJMCDGDMN != 0) { int num2; return num2; } Dictionary noggjiokbof = this.NOGGJIOKBOF; int num3; return num3; } // Token: 0x170002A9 RID: 681 // (get) Token: 0x0600124B RID: 4683 RVA: 0x0004DEBC File Offset: 0x0004C0BC [Token(Token = "0x170002A9")] public bool JBMFJOBFJHP { [Token(Token = "0x600124B")] [Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "15")] get { } } // Token: 0x0600124C RID: 4684 [Token(Token = "0x600124C")] [Address(Slot = "20")] public abstract void DeserializeFrom(KPNDFONGDGF HFBJGCHOANH); // Token: 0x0600124D RID: 4685 [Token(Token = "0x600124D")] [Address(Slot = "21")] public abstract void SerializeTo(ref PDEKIHFJKHJ IABNDBNHMKF, ref MKNCHKCCIHK NHFINJNIPGK, StringBuilder BIPOIFGEMGB); // Token: 0x0600124E RID: 4686 RVA: 0x0004DECC File Offset: 0x0004C0CC [Token(Token = "0x600124E")] [Address(RVA = "0x142E8E0", Offset = "0x142D8E0", VA = "0x18142E8E0")] protected PlayerEditableTextBase() { List list = new List(); this.PGDICHHPLBI = list; this.defaultMessage = "Rec Room"; this.maxMessageLength = (int)((ulong)100L); this.dialogMessage = "Enter a message to display"; StringBuilder stringBuilder = new StringBuilder(); this.OEHELEIBKEB = stringBuilder; Dictionary dictionary = new Dictionary(); this.NOGGJIOKBOF = dictionary; base..ctor(); } // Token: 0x04000E2B RID: 3627 [FieldOffset(Offset = "0x40")] [Token(Token = "0x4000E2B")] [SerializeField] private TextMesh textMesh; // Token: 0x04000E2C RID: 3628 [FieldOffset(Offset = "0x48")] [Token(Token = "0x4000E2C")] [SerializeField] private TextMeshPro textMeshPro; // Token: 0x04000E2D RID: 3629 [FieldOffset(Offset = "0x50")] [Token(Token = "0x4000E2D")] [SerializeField] private Text uiText; // Token: 0x04000E2E RID: 3630 [FieldOffset(Offset = "0x58")] [Token(Token = "0x4000E2E")] private readonly List PGDICHHPLBI; // Token: 0x04000E2F RID: 3631 [FieldOffset(Offset = "0x60")] [Token(Token = "0x4000E2F")] [SerializeField] [Tooltip("Default message if none is provided by a player")] protected string defaultMessage; // Token: 0x04000E30 RID: 3632 [FieldOffset(Offset = "0x68")] [Token(Token = "0x4000E30")] [SerializeField] [Tooltip("Truncate message to this length")] protected int maxMessageLength; // Token: 0x04000E31 RID: 3633 [FieldOffset(Offset = "0x6C")] [Token(Token = "0x4000E31")] [SerializeField] [Tooltip("Convert \"\\n\" to a newline, and other escape sequences")] protected bool unescapeString; // Token: 0x04000E32 RID: 3634 [FieldOffset(Offset = "0x6D")] [Token(Token = "0x4000E32")] [SerializeField] [Tooltip("Will this attempt to replace {R} with a circuit signal")] private bool usesCircuits; // Token: 0x04000E33 RID: 3635 [FieldOffset(Offset = "0x70")] [Token(Token = "0x4000E33")] [SerializeField] [Tooltip("Message in the UI Dialog used by player to edit")] protected string dialogMessage; // Token: 0x04000E34 RID: 3636 [FieldOffset(Offset = "0x78")] [Token(Token = "0x4000E34")] [SerializeField] [Tooltip("Type of text editor used in input dialog")] protected EBPEIAPPJJK textInputMode; // Token: 0x04000E35 RID: 3637 [FieldOffset(Offset = "0x80")] [Token(Token = "0x4000E35")] [SerializeField] [OAGJHJAIMMP(FHBJCBPFODN.Self, false, false, false)] private CircuitNodeDisplay nodeDisplay; // Token: 0x04000E36 RID: 3638 [FieldOffset(Offset = "0x88")] [Token(Token = "0x4000E36")] public PlayerEditableTextBase.UnityStringEvent OnTextUpdated; // Token: 0x04000E37 RID: 3639 [FieldOffset(Offset = "0x90")] [Token(Token = "0x4000E37")] private readonly StringBuilder OEHELEIBKEB; // Token: 0x04000E38 RID: 3640 [Token(Token = "0x4000E38")] private static readonly Dictionary AADNLEIJENE = new Dictionary(); // Token: 0x04000E39 RID: 3641 [FieldOffset(Offset = "0x98")] [Token(Token = "0x4000E39")] private readonly Dictionary NOGGJIOKBOF; // Token: 0x04000E3A RID: 3642 [FieldOffset(Offset = "0xA0")] [Token(Token = "0x4000E3A")] private string KKNKMONCAEJ; // Token: 0x04000E3B RID: 3643 [FieldOffset(Offset = "0xA8")] [Token(Token = "0x4000E3B")] private bool DIKNJPBKDBG; // Token: 0x02000264 RID: 612 [Token(Token = "0x2000264")] private class BONDLNHHNIF { // Token: 0x06001250 RID: 4688 RVA: 0x0004DF40 File Offset: 0x0004C140 [Token(Token = "0x6001250")] [Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")] public BONDLNHHNIF() { } // Token: 0x04000E3C RID: 3644 [FieldOffset(Offset = "0x10")] [Token(Token = "0x4000E3C")] public string NECNNNABFEA; // Token: 0x04000E3D RID: 3645 [FieldOffset(Offset = "0x18")] [Token(Token = "0x4000E3D")] public string CFEHFCGJGKI; } // Token: 0x02000265 RID: 613 [Token(Token = "0x2000265")] [Serializable] public class UnityStringEvent : UnityEvent { // Token: 0x06001251 RID: 4689 RVA: 0x0004DF54 File Offset: 0x0004C154 [Token(Token = "0x6001251")] [Address(RVA = "0x1444A30", Offset = "0x1443A30", VA = "0x181444A30")] public UnityStringEvent() { } } }