Files
2026-04-08 23:40:05 +02:00

837 lines
28 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using AGUI.StackedUI.Dialog;
using Cpp2IlInjected;
using Photon.Pun;
using RecRoom.AGUI.ToolUIs;
using RecRoom.Async;
using RecRoom.Core.Creation;
using RecRoom.Core.Creation.Costumes;
using RecRoom.Core.Creation.Shapes;
using RecRoom.Core.Creation.UndoStack;
using UnityEngine;
namespace RecRoom.Tools.MakerPenTools
{
// Token: 0x020025CA RID: 9674
[Token(Token = "0x20025CA")]
[Serializable]
[StructLayout(3)]
public class MakerPenMergeOperation : MakerPenOperation
{
// Token: 0x17002D71 RID: 11633
// (get) Token: 0x06010BEB RID: 68587 RVA: 0x003F0CCC File Offset: 0x003EEECC
[Token(Token = "0x17002D71")]
public bool CanMergeSelection
{
[Token(Token = "0x6010BEB")]
[Address(RVA = "0x150D2C0", Offset = "0x150BCC0", VA = "0x18150D2C0")]
get
{
int num;
do
{
num = 0;
int selectionCount = this.<MakerPen>k__BackingField.<BDFEKAONFDI>k__BackingField.ENEJDOAEDCJ;
int num2 = 0;
MakerPen <MakerPen>k__BackingField = this.<MakerPen>k__BackingField;
List<GIPDDLFFNGG> llfdkcncmkf = <MakerPen>k__BackingField.<BDFEKAONFDI>k__BackingField.LLFDKCNCMKF;
if (<MakerPen>k__BackingField != 0)
{
int num3 = 0;
bool flag = <MakerPen>k__BackingField == num3;
if (!flag && flag)
{
Costume component = <MakerPen>k__BackingField.GetComponent<Costume>();
int num4 = 0;
if (!(component != num4))
{
ShapeContainer component2 = <MakerPen>k__BackingField.GetComponent<ShapeContainer>();
int num5 = 0;
if (!(component2 == num5) && component2.KJCAGKDAABN)
{
continue;
}
}
if (num2 == 0)
{
}
}
}
if (<MakerPen>k__BackingField != 0)
{
}
if (num != -1)
{
if (typeof(IDisposable).TypeHandle == (ulong)152L)
{
}
if (typeof(IDisposable).TypeHandle == (ulong)150L)
{
break;
}
}
}
while (num != 0);
throw new NullReferenceException();
}
}
// Token: 0x06010BEC RID: 68588 RVA: 0x003F0DA4 File Offset: 0x003EEFA4
[Token(Token = "0x6010BEC")]
[Address(RVA = "0x150C4B0", Offset = "0x150AEB0", VA = "0x18150C4B0")]
public IPromise<string> GJOAAFFIBGP()
{
if (this.pendingTryMergeSelectionRequest != (ulong)0L)
{
float realtimeSinceStartup = Time.realtimeSinceStartup;
return Promise.FromResult<string>("Merge request already pending");
}
if (this.CanMergeSelection)
{
Promise<string> promise5 = new Promise();
Promise<string> promise = promise5;
this.pendingTryMergeSelectionRequest = promise5;
float realtimeSinceStartup2 = Time.realtimeSinceStartup;
this.lastMergeRequestTime = realtimeSinceStartup2;
Promise<string> promise2 = promise;
Action action = delegate
{
this.pendingTryMergeSelectionRequest = (ulong)0L;
};
promise2.System.Collections.IEnumerator.Reset();
CreationManager instance = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG;
List<CreationObject> chmmbnihbja = this.<MakerPen>k__BackingField.<BDFEKAONFDI>k__BackingField.CHMMBNIHBJA;
Action<CreationManager.FPDPPELCJIH> action2 = delegate(CreationManager.FPDPPELCJIH result)
{
MakerPenMergeOperation <>4__this = this;
Promise<string> promise4 = promise;
<>4__this.LMELCAONIGK(promise4);
};
Action<string> action3 = delegate(string error)
{
promise.Error(error);
};
}
IPromise<string> promise3 = Promise.FromError<string>("Cannot merge current selection");
throw new NullReferenceException();
}
// Token: 0x06010BED RID: 68589 RVA: 0x003F0E70 File Offset: 0x003EF070
[Token(Token = "0x6010BED")]
[Address(RVA = "0x150C730", Offset = "0x150B130", VA = "0x18150C730")]
private void LMELCAONIGK(Promise<string> NKLGAGCHGPM)
{
int num10;
for (;;)
{
int num = 0;
CreationContext <BDFEKAONFDI>k__BackingField = this.<MakerPen>k__BackingField.<BDFEKAONFDI>k__BackingField;
List<CreationObject> chmmbnihbja = <BDFEKAONFDI>k__BackingField.CHMMBNIHBJA;
Costume component;
if (<BDFEKAONFDI>k__BackingField != 0)
{
component = <BDFEKAONFDI>k__BackingField.GetComponent<Costume>();
int num2 = 0;
if (!(component != num2))
{
continue;
}
int num3 = 0;
if (!(num != num3))
{
}
NKLGAGCHGPM.Complete("Cannot merge current selection - multiple costumes selected");
}
int num4 = 0;
int num5;
if (<BDFEKAONFDI>k__BackingField != 0)
{
num5 = 0;
}
if (num == -1)
{
goto IL_121;
}
if (num5 == 385)
{
return;
}
if (num5 != 114)
{
goto IL_121;
}
ShapeContainer destContainer = num4;
List<ShapeContainer> list = new List();
List<ShapeContainer> containersToMerge = list;
int num6 = 0;
if (component != num6)
{
goto IL_181;
}
MakerPen <MakerPen>k__BackingField = this.<MakerPen>k__BackingField;
List<CreationObject> chmmbnihbja2 = <MakerPen>k__BackingField.<BDFEKAONFDI>k__BackingField.CHMMBNIHBJA;
int currentPhysicsMode;
ShapeContainer.BJOOGDAHOOO currentPhysicsMode2;
if (<MakerPen>k__BackingField != 0)
{
ShapeContainer component2 = <MakerPen>k__BackingField.GetComponent<ShapeContainer>();
containersToMerge.Add(component2);
ShapeContainer destContainer4 = destContainer;
int num7 = 0;
if (!(destContainer4 == num7))
{
currentPhysicsMode = (int)destContainer.MCLCOPABPLF;
currentPhysicsMode2 = component2.MCLCOPABPLF;
float num8;
float num9;
while (num8 <= num9)
{
}
}
destContainer = component2;
goto IL_121;
}
IL_129:
num++;
num10 = 0;
if (<MakerPen>k__BackingField != 0)
{
}
if (num != -1)
{
}
if (currentPhysicsMode == 0)
{
break;
}
continue;
IL_121:
if (currentPhysicsMode2 == ShapeContainer.BJOOGDAHOOO.Environment)
{
goto IL_129;
}
goto IL_251;
}
List<ShapeContainer> containersToMerge3 = bcmdniekahk.containersToMerge;
ShapeContainer destContainer2 = bcmdniekahk.destContainer;
bool flag = containersToMerge3.Remove(destContainer2);
Promise<string> promise = bcmdniekahk.promise;
List<ShapeContainer> containersToMerge2 = bcmdniekahk.containersToMerge;
ShapeContainer destContainer3 = bcmdniekahk.destContainer;
this.MBPMMDOCGJL(destContainer3, containersToMerge2, promise);
return;
IL_181:
MakerPen <MakerPen>k__BackingField2 = this.<MakerPen>k__BackingField;
if (<MakerPen>k__BackingField2.hasAuthority)
{
MakerPenPaletteMoveableToolMenu paletteMenu = <MakerPen>k__BackingField2.paletteMenu;
int num11 = 0;
if (paletteMenu != num11)
{
MakerPenPaletteMoveableToolMenu paletteMenu2 = <MakerPen>k__BackingField2.paletteMenu;
Player owner = <MakerPen>k__BackingField2._tool.BHNPNHMILIF;
if (owner != 0)
{
PhotonView photonView = owner.trackingSpace.photonView;
}
paletteMenu2.OpenAndAttachMenu(num10);
}
}
MakerPenPaletteMoveableToolMenu paletteMenu3 = this.<MakerPen>k__BackingField.paletteMenu;
if (paletteMenu3 != 0)
{
MakerPenPaletteUI paletteUI = paletteMenu3.PKCIBEOKLPG;
}
Action<CostumePiece> action = delegate(CostumePiece costumePiece)
{
for (;;)
{
int num13 = 0;
bcmdniekahk.<>4__this.<MakerPen>k__BackingField.AuthorityHidePaletteMenu();
int num14 = 0;
if (!(costumePiece != num14))
{
break;
}
DecorationShapeContainer ejhepijedck = costumePiece.EJHEPIJEDCK;
bcmdniekahk.destContainer = ejhepijedck;
MakerPen <MakerPen>k__BackingField3 = bcmdniekahk.<>4__this.<MakerPen>k__BackingField;
List<CreationObject> chmmbnihbja3 = <MakerPen>k__BackingField3.<BDFEKAONFDI>k__BackingField.CHMMBNIHBJA;
if (<MakerPen>k__BackingField3 != 0)
{
ShapeContainer component3 = <MakerPen>k__BackingField3.GetComponent<ShapeContainer>();
int num15 = 0;
if (!(component3 != num15))
{
continue;
}
bcmdniekahk.containersToMerge.Add(component3);
}
int num16 = 0;
if (<MakerPen>k__BackingField3 != 0)
{
}
if (num16 != -1)
{
}
if (num13 == 0)
{
goto Block_3;
}
}
bcmdniekahk.promise.Complete("Merge cancelled");
return;
Block_3:
MakerPenMergeOperation <>4__this = bcmdniekahk.<>4__this;
Promise<string> promise2 = bcmdniekahk.promise;
List<ShapeContainer> containersToMerge4 = bcmdniekahk.containersToMerge;
ShapeContainer destContainer5 = bcmdniekahk.destContainer;
<>4__this.MBPMMDOCGJL(destContainer5, containersToMerge4, promise2);
};
if (num10 < bcmdniekahk)
{
num10 += num10;
if (num10 == bcmdniekahk)
{
goto IL_22C;
}
num10++;
}
Action<string> action2 = delegate(string errMsg)
{
bcmdniekahk.promise.Error(errMsg);
};
IL_22C:
uint num12;
num12 += num12;
throw new NullReferenceException();
IL_251:
throw new NullReferenceException();
}
// Token: 0x06010BEE RID: 68590 RVA: 0x003F10EC File Offset: 0x003EF2EC
[Token(Token = "0x6010BEE")]
[Address(RVA = "0x150CEE0", Offset = "0x150B8E0", VA = "0x18150CEE0")]
private void MBPMMDOCGJL(ShapeContainer DNAFLHICPDN, List<ShapeContainer> PJICBFJKDJK, Promise<string> NKLGAGCHGPM)
{
int num;
do
{
num = 0;
List.Enumerator enumerator;
if (enumerator != 0)
{
ShapeContainer destContainer = DNAFLHICPDN;
bool flag;
while (!flag)
{
}
NKLGAGCHGPM.Complete("Merge failed: Fix coming soon!");
}
if (0 != -1)
{
}
}
while (num != 0);
mohmdhhfbkp.currentSelection = (ulong)0L;
List<ShapeContainer> list = new List();
ShapeContainer destContainer2 = mohmdhhfbkp.destContainer;
list.Add(destContainer2);
List<ShapeContainer> containersToMerge = mohmdhhfbkp.containersToMerge;
list.AddRange(containersToMerge);
CreationManager instance = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG;
Func<ShapeContainer, CreationObject> func;
if (MakerPenMergeOperation.<>c.<>9__8_1 == 0)
{
func = (ShapeContainer c) => c.creationObject;
MakerPenMergeOperation.<>c.<>9__8_1 = func;
}
IEnumerable<ShapeContainer> enumerable = Enumerable.Select<ShapeContainer, CreationObject>(list, func);
IPromise<bool> promise = instance.CheckObjectsHaveMatchingPermissions(enumerable);
Action<bool> action = delegate(bool doPermissionsMatch)
{
if (!doPermissionsMatch)
{
IReadOnlyCollection<Guid> readOnlyCollection = mohmdhhfbkp.<>4__this.<MakerPen>k__BackingField.<BDFEKAONFDI>k__BackingField.CacheCurrentSelection();
mohmdhhfbkp.currentSelection = readOnlyCollection;
IPromise<JPIJGHNNIDP> promise2 = Player.<EGKJPJKLEAI>k__BackingField.playerUI.<JNBAANDJIAD>k__BackingField.ShowConfirmationDialog("Merge different permissions", "Are you sure? Some objects have different permissions. The most restrictive permissions will be used for the combined object.");
if (mohmdhhfbkp.<>9__9 == 0)
{
Action<JPIJGHNNIDP> action3 = delegate(JPIJGHNNIDP result)
{
if (result != JPIJGHNNIDP.Affirmative)
{
mohmdhhfbkp.promise.Complete("Merge cancelled.");
return;
}
base.<TryMergeContainers>g__mergeObjects|0();
};
mohmdhhfbkp.<>9__9 = action3;
}
if (mohmdhhfbkp.<>9__10 == 0)
{
Action<string> action4 = delegate(string error)
{
mohmdhhfbkp.promise.Error(error);
};
mohmdhhfbkp.<>9__10 = action4;
}
}
base.<TryMergeContainers>g__mergeObjects|0();
};
Action<string> action2 = delegate(string error)
{
mohmdhhfbkp.promise.Error(error);
};
}
// Token: 0x06010BEF RID: 68591 RVA: 0x003F11E4 File Offset: 0x003EF3E4
[Token(Token = "0x6010BEF")]
[Address(RVA = "0x150D2B0", Offset = "0x150BCB0", VA = "0x18150D2B0")]
public MakerPenMergeOperation()
{
}
// Token: 0x0400B217 RID: 45591
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x400B217")]
[SerializeField]
private ChooseCostumePieceDialog chooseCostumePieceDialogPrefab;
// Token: 0x0400B218 RID: 45592
[Token(Token = "0x400B218")]
private const float MERGE_REQUEST_TIMEOUT_DURATION = 5f;
// Token: 0x0400B219 RID: 45593
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x400B219")]
private Promise<string> pendingTryMergeSelectionRequest;
// Token: 0x0400B21A RID: 45594
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x400B21A")]
private float lastMergeRequestTime = -1f;
// Token: 0x020025CB RID: 9675
[Token(Token = "0x20025CB")]
[CompilerGenerated]
private sealed class LLOMNNNIBPO
{
// Token: 0x06010BF0 RID: 68592 RVA: 0x003F1204 File Offset: 0x003EF404
[Token(Token = "0x6010BF0")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public LLOMNNNIBPO()
{
}
// Token: 0x06010BF1 RID: 68593 RVA: 0x003F1218 File Offset: 0x003EF418
[Token(Token = "0x6010BF1")]
[Address(RVA = "0x1503BE0", Offset = "0x15025E0", VA = "0x181503BE0")]
internal void <TryMergeSelection>b__0()
{
this.<>4__this.pendingTryMergeSelectionRequest = (ulong)0L;
}
// Token: 0x06010BF2 RID: 68594 RVA: 0x003F123C File Offset: 0x003EF43C
[Token(Token = "0x6010BF2")]
[Address(RVA = "0x1503C00", Offset = "0x1502600", VA = "0x181503C00")]
internal void <TryMergeSelection>b__1(CreationManager.FPDPPELCJIH result)
{
MakerPenMergeOperation makerPenMergeOperation = this.<>4__this;
Promise<string> promise = this.promise;
makerPenMergeOperation.LMELCAONIGK(promise);
}
// Token: 0x06010BF3 RID: 68595 RVA: 0x003F1278 File Offset: 0x003EF478
[Token(Token = "0x6010BF3")]
[Address(RVA = "0x1503C80", Offset = "0x1502680", VA = "0x181503C80")]
internal void <TryMergeSelection>b__2(string error)
{
this.promise.Error(error);
}
// Token: 0x0400B21B RID: 45595
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x400B21B")]
public MakerPenMergeOperation <>4__this;
// Token: 0x0400B21C RID: 45596
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x400B21C")]
public Promise<string> promise;
}
// Token: 0x020025CC RID: 9676
[Token(Token = "0x20025CC")]
[CompilerGenerated]
private sealed class BCMDNIEKAHK
{
// Token: 0x06010BF4 RID: 68596 RVA: 0x003F1298 File Offset: 0x003EF498
[Token(Token = "0x6010BF4")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public BCMDNIEKAHK()
{
}
// Token: 0x06010BF5 RID: 68597 RVA: 0x003F12AC File Offset: 0x003EF4AC
[Token(Token = "0x6010BF5")]
[Address(RVA = "0x15023E0", Offset = "0x1500DE0", VA = "0x1815023E0")]
internal void <TryMergeSelectionInternal>b__0(CostumePiece costumePiece)
{
for (;;)
{
int num = 0;
this.<>4__this.<MakerPen>k__BackingField.AuthorityHidePaletteMenu();
int num2 = 0;
if (!(costumePiece != num2))
{
break;
}
DecorationShapeContainer ejhepijedck = costumePiece.EJHEPIJEDCK;
this.destContainer = ejhepijedck;
MakerPen <MakerPen>k__BackingField = this.<>4__this.<MakerPen>k__BackingField;
List<CreationObject> chmmbnihbja = <MakerPen>k__BackingField.<BDFEKAONFDI>k__BackingField.CHMMBNIHBJA;
if (<MakerPen>k__BackingField != 0)
{
ShapeContainer component = <MakerPen>k__BackingField.GetComponent<ShapeContainer>();
int num3 = 0;
if (!(component != num3))
{
continue;
}
this.containersToMerge.Add(component);
}
int num4 = 0;
if (<MakerPen>k__BackingField != 0)
{
}
if (num4 != -1)
{
}
if (num == 0)
{
goto Block_3;
}
}
this.promise.Complete("Merge cancelled");
return;
Block_3:
MakerPenMergeOperation makerPenMergeOperation = this.<>4__this;
Promise<string> promise = this.promise;
List<ShapeContainer> list = this.containersToMerge;
ShapeContainer shapeContainer = this.destContainer;
makerPenMergeOperation.MBPMMDOCGJL(shapeContainer, list, promise);
}
// Token: 0x06010BF6 RID: 68598 RVA: 0x003F1380 File Offset: 0x003EF580
[Token(Token = "0x6010BF6")]
[Address(RVA = "0x1502690", Offset = "0x1501090", VA = "0x181502690")]
internal void <TryMergeSelectionInternal>b__1(string errMsg)
{
this.promise.Error(errMsg);
}
// Token: 0x0400B21D RID: 45597
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x400B21D")]
public MakerPenMergeOperation <>4__this;
// Token: 0x0400B21E RID: 45598
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x400B21E")]
public ShapeContainer destContainer;
// Token: 0x0400B21F RID: 45599
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x400B21F")]
public List<ShapeContainer> containersToMerge;
// Token: 0x0400B220 RID: 45600
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x400B220")]
public Promise<string> promise;
}
// Token: 0x020025CD RID: 9677
[Token(Token = "0x20025CD")]
[CompilerGenerated]
private sealed class MOHMDHHFBKP
{
// Token: 0x06010BF7 RID: 68599 RVA: 0x003F13A0 File Offset: 0x003EF5A0
[Token(Token = "0x6010BF7")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public MOHMDHHFBKP()
{
}
// Token: 0x06010BF8 RID: 68600 RVA: 0x003F13B4 File Offset: 0x003EF5B4
[Token(Token = "0x6010BF8")]
[Address(RVA = "0x15044F0", Offset = "0x1502EF0", VA = "0x1815044F0")]
internal void <TryMergeContainers>g__mergeObjects|0()
{
CreationManager instance = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG;
List<ShapeContainer> list = this.containersToMerge;
Func<ShapeContainer, CreationObject> <>9__8_ = MakerPenMergeOperation.<>c.<>9__8_4;
if (<>9__8_ == 0)
{
MakerPenMergeOperation.<>c.<>9__8_4 = (ShapeContainer c) => c.creationObject;
}
IEnumerable<ShapeContainer> enumerable = Enumerable.Select<ShapeContainer, CreationObject>(list, <>9__8_);
int num = 0;
int num2 = 0;
IPromise<CreationManager.EJPODBPPPBO> promise = instance.SerializeSpawnableTemplate(enumerable, num2, num != 0);
Action<CreationManager.EJPODBPPPBO> action = delegate(CreationManager.EJPODBPPPBO serializeResult)
{
MakerPenMergeOperation.FJODMILMNHO fjodmilmnho = new MakerPenMergeOperation.FJODMILMNHO();
fjodmilmnho.CS$<>8__locals1 = this;
IReadOnlyCollection<Guid> readOnlyCollection = this.currentSelection;
if (readOnlyCollection != 0)
{
this.<>4__this.<MakerPen>k__BackingField.<BDFEKAONFDI>k__BackingField.SetSelectionFromCache(readOnlyCollection);
}
ShapeContainer shapeContainer = this.destContainer;
List<ShapeContainer> list2 = this.containersToMerge;
MakerPenMergeOperation makerPenMergeOperation = this.<>4__this;
CKNHLOINDFF hnhgciihoec = serializeResult.HNHGCIIHOEC;
CreationContext <BDFEKAONFDI>k__BackingField = makerPenMergeOperation.<MakerPen>k__BackingField.<BDFEKAONFDI>k__BackingField;
EIIGKDBCPIC eiigkdbcpic = new EIIGKDBCPIC(shapeContainer, list2, hnhgciihoec, <BDFEKAONFDI>k__BackingField);
fjodmilmnho.undoEntry = eiigkdbcpic;
CreationContext <BDFEKAONFDI>k__BackingField2 = this.<>4__this.<MakerPen>k__BackingField.<BDFEKAONFDI>k__BackingField;
List<ShapeContainer> list3 = this.containersToMerge;
ShapeContainer shapeContainer2 = this.destContainer;
IPromise<bool> promise2 = <BDFEKAONFDI>k__BackingField2.TryMergeShapeSelection(shapeContainer2, list3);
Action<bool> action3 = delegate(bool mergeResult)
{
if (mergeResult)
{
UndoStack undoStack = fjodmilmnho.CS$<>8__locals1.<>4__this.<MakerPen>k__BackingField._undoStack;
EIIGKDBCPIC undoEntry = fjodmilmnho.undoEntry;
undoStack.Add(undoEntry);
}
fjodmilmnho.CS$<>8__locals1.promise.Complete("Merge failed...");
};
if (this.<>9__8 == 0)
{
Action<string> action4 = delegate(string errorMsg)
{
this.promise.Error(errorMsg);
};
this.<>9__8 = action4;
}
throw new NullReferenceException();
};
Action<string> action2 = delegate(string errMsg)
{
this.promise.Error(errMsg);
};
throw new NullReferenceException();
}
// Token: 0x06010BF9 RID: 68601 RVA: 0x003F142C File Offset: 0x003EF62C
[Token(Token = "0x6010BF9")]
[Address(RVA = "0x15041C0", Offset = "0x1502BC0", VA = "0x1815041C0")]
internal void <TryMergeContainers>b__5(CreationManager.EJPODBPPPBO serializeResult)
{
MakerPenMergeOperation.FJODMILMNHO fjodmilmnho = new MakerPenMergeOperation.FJODMILMNHO();
fjodmilmnho.CS$<>8__locals1 = this;
IReadOnlyCollection<Guid> readOnlyCollection = this.currentSelection;
if (readOnlyCollection != 0)
{
this.<>4__this.<MakerPen>k__BackingField.<BDFEKAONFDI>k__BackingField.SetSelectionFromCache(readOnlyCollection);
}
ShapeContainer shapeContainer = this.destContainer;
List<ShapeContainer> list = this.containersToMerge;
MakerPenMergeOperation makerPenMergeOperation = this.<>4__this;
CKNHLOINDFF hnhgciihoec = serializeResult.HNHGCIIHOEC;
CreationContext <BDFEKAONFDI>k__BackingField = makerPenMergeOperation.<MakerPen>k__BackingField.<BDFEKAONFDI>k__BackingField;
EIIGKDBCPIC eiigkdbcpic = new EIIGKDBCPIC(shapeContainer, list, hnhgciihoec, <BDFEKAONFDI>k__BackingField);
fjodmilmnho.undoEntry = eiigkdbcpic;
CreationContext <BDFEKAONFDI>k__BackingField2 = this.<>4__this.<MakerPen>k__BackingField.<BDFEKAONFDI>k__BackingField;
List<ShapeContainer> list2 = this.containersToMerge;
ShapeContainer shapeContainer2 = this.destContainer;
IPromise<bool> promise = <BDFEKAONFDI>k__BackingField2.TryMergeShapeSelection(shapeContainer2, list2);
Action<bool> action = delegate(bool mergeResult)
{
if (mergeResult)
{
UndoStack undoStack = fjodmilmnho.CS$<>8__locals1.<>4__this.<MakerPen>k__BackingField._undoStack;
EIIGKDBCPIC undoEntry = fjodmilmnho.undoEntry;
undoStack.Add(undoEntry);
}
fjodmilmnho.CS$<>8__locals1.promise.Complete("Merge failed...");
};
if (this.<>9__8 == 0)
{
Action<string> action2 = delegate(string errorMsg)
{
this.promise.Error(errorMsg);
};
this.<>9__8 = action2;
}
throw new NullReferenceException();
}
// Token: 0x06010BFA RID: 68602 RVA: 0x003F150C File Offset: 0x003EF70C
[Token(Token = "0x6010BFA")]
[Address(RVA = "0x1504420", Offset = "0x1502E20", VA = "0x181504420")]
internal void <TryMergeContainers>b__8(string errorMsg)
{
this.promise.Error(errorMsg);
}
// Token: 0x06010BFB RID: 68603 RVA: 0x003F152C File Offset: 0x003EF72C
[Token(Token = "0x6010BFB")]
[Address(RVA = "0x15043C0", Offset = "0x1502DC0", VA = "0x1815043C0")]
internal void <TryMergeContainers>b__6(string errMsg)
{
this.promise.Error(errMsg);
}
// Token: 0x06010BFC RID: 68604 RVA: 0x003F154C File Offset: 0x003EF74C
[Token(Token = "0x6010BFC")]
[Address(RVA = "0x1503F60", Offset = "0x1502960", VA = "0x181503F60")]
internal void <TryMergeContainers>b__2(bool doPermissionsMatch)
{
if (!doPermissionsMatch)
{
IReadOnlyCollection<Guid> readOnlyCollection = this.<>4__this.<MakerPen>k__BackingField.<BDFEKAONFDI>k__BackingField.CacheCurrentSelection();
this.currentSelection = readOnlyCollection;
IPromise<JPIJGHNNIDP> promise = Player.<EGKJPJKLEAI>k__BackingField.playerUI.<JNBAANDJIAD>k__BackingField.ShowConfirmationDialog("Merge different permissions", "Are you sure? Some objects have different permissions. The most restrictive permissions will be used for the combined object.");
if (this.<>9__9 == 0)
{
Action<JPIJGHNNIDP> action = delegate(JPIJGHNNIDP result)
{
if (result != JPIJGHNNIDP.Affirmative)
{
this.promise.Complete("Merge cancelled.");
return;
}
this.<TryMergeContainers>g__mergeObjects|0();
};
this.<>9__9 = action;
}
if (this.<>9__10 == 0)
{
Action<string> action2 = delegate(string error)
{
this.promise.Error(error);
};
this.<>9__10 = action2;
}
}
this.<TryMergeContainers>g__mergeObjects|0();
}
// Token: 0x06010BFD RID: 68605 RVA: 0x003F15E0 File Offset: 0x003EF7E0
[Token(Token = "0x6010BFD")]
[Address(RVA = "0x1504480", Offset = "0x1502E80", VA = "0x181504480")]
internal void <TryMergeContainers>b__9(JPIJGHNNIDP result)
{
if (result != JPIJGHNNIDP.Affirmative)
{
this.promise.Complete("Merge cancelled.");
return;
}
this.<TryMergeContainers>g__mergeObjects|0();
}
// Token: 0x06010BFE RID: 68606 RVA: 0x003F1610 File Offset: 0x003EF810
[Token(Token = "0x6010BFE")]
[Address(RVA = "0x1503F00", Offset = "0x1502900", VA = "0x181503F00")]
internal void <TryMergeContainers>b__10(string error)
{
this.promise.Error(error);
}
// Token: 0x06010BFF RID: 68607 RVA: 0x003F1630 File Offset: 0x003EF830
[Token(Token = "0x6010BFF")]
[Address(RVA = "0x1504160", Offset = "0x1502B60", VA = "0x181504160")]
internal void <TryMergeContainers>b__3(string error)
{
this.promise.Error(error);
}
// Token: 0x0400B221 RID: 45601
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x400B221")]
public List<ShapeContainer> containersToMerge;
// Token: 0x0400B222 RID: 45602
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x400B222")]
public IReadOnlyCollection<Guid> currentSelection;
// Token: 0x0400B223 RID: 45603
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x400B223")]
public MakerPenMergeOperation <>4__this;
// Token: 0x0400B224 RID: 45604
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x400B224")]
public ShapeContainer destContainer;
// Token: 0x0400B225 RID: 45605
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
[Token(Token = "0x400B225")]
public Promise<string> promise;
// Token: 0x0400B226 RID: 45606
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
[Token(Token = "0x400B226")]
public Action<string> <>9__8;
// Token: 0x0400B227 RID: 45607
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x400B227")]
public Action<JPIJGHNNIDP> <>9__9;
// Token: 0x0400B228 RID: 45608
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
[Token(Token = "0x400B228")]
public Action<string> <>9__10;
}
// Token: 0x020025CE RID: 9678
[Token(Token = "0x20025CE")]
[CompilerGenerated]
private sealed class FJODMILMNHO
{
// Token: 0x06010C00 RID: 68608 RVA: 0x003F1650 File Offset: 0x003EF850
[Token(Token = "0x6010C00")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public FJODMILMNHO()
{
}
// Token: 0x06010C01 RID: 68609 RVA: 0x003F1664 File Offset: 0x003EF864
[Token(Token = "0x6010C01")]
[Address(RVA = "0x1503440", Offset = "0x1501E40", VA = "0x181503440")]
internal void <TryMergeContainers>b__7(bool mergeResult)
{
if (mergeResult)
{
UndoStack undoStack = this.CS$<>8__locals1.<>4__this.<MakerPen>k__BackingField._undoStack;
EIIGKDBCPIC eiigkdbcpic = this.undoEntry;
undoStack.Add(eiigkdbcpic);
}
this.CS$<>8__locals1.promise.Complete("Merge failed...");
}
// Token: 0x0400B229 RID: 45609
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x400B229")]
public EIIGKDBCPIC undoEntry;
// Token: 0x0400B22A RID: 45610
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x400B22A")]
public MakerPenMergeOperation.MOHMDHHFBKP CS$<>8__locals1;
}
}
}