terraria-cpp2il-methodrecon v1.4.4.9
Terraria mobile dump, with reconstructed method body. Dump with CallAnalysis: https://infinitynichto.github.io/terraria-cpp2il
Loading...
Searching...
No Matches
MinecartDiggerHelper.cs
Go to the documentation of this file.
1using System;
4
6{
7 // Token: 0x020007B0 RID: 1968
9 {
10 // Token: 0x06004013 RID: 16403 RVA: 0x00242094 File Offset: 0x00240294
12 {
13 int num = 1;
14 if (num == 0)
15 {
16 }
17 Point point;
18 ushort type = Framing.GetTileSafely(point).type;
19 if (num == 0)
20 {
21 }
22 Item item;
23 if (item != null)
24 {
25 this.ConsumeATrackItem(player);
26 this.PlaceATrack(int.MinValue, 43134976);
27 float x = player.velocity.X;
29 }
30 }
31
32 // Token: 0x06004014 RID: 16404 RVA: 0x002420F8 File Offset: 0x002402F8
33 private bool CanConsumeATrackItem(Player player)
34 {
35 /*
36An exception occurred when decompiling this method (06004014)
37
38ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.GameContent.MinecartDiggerHelper::CanConsumeATrackItem(Terraria.Player)
39
40 ---> System.Exception: Basic block has to end with unconditional control flow.
41{
42 Block_0:
43 stloc:Item(var_0_07, call:Item(MinecartDiggerHelper::FindMinecartTrackItem, ldloc:MinecartDiggerHelper(this), ldloc:Player(player)))
44}
45
46 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
47 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
48 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
49 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
50 --- End of inner exception stack trace ---
51 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
52 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 1683
53*/;
54 }
55
56 // Token: 0x06004015 RID: 16405 RVA: 0x0024210C File Offset: 0x0024030C
57 private void ConsumeATrackItem(Player player)
58 {
59 Item item = this.FindMinecartTrackItem(player);
60 int stack = item.stack;
62 }
63
64 // Token: 0x06004016 RID: 16406 RVA: 0x0024213C File Offset: 0x0024033C
66 {
67 /*
68An exception occurred when decompiling this method (06004016)
69
70ICSharpCode.Decompiler.DecompilerException: Error decompiling Terraria.Item Terraria.GameContent.MinecartDiggerHelper::FindMinecartTrackItem(Terraria.Player)
71
72 ---> System.Exception: Basic block has to end with unconditional control flow.
73{
74 Block_0:
75 stloc:int32(var_0_06, ldfld:int32(Player::selectedItem, ldloc:Player(player)))
76 stloc:int32(var_2_0F, ldfld:int32(Player::itemAnimation, ldloc:Player(player)))
77 stloc:int32(var_3_16, ldfld:int32(Player::reuseDelay, ldloc:Player(player)))
78 stloc:int32(var_4_1D, ldfld:int32(Player::itemTime, ldloc:Player(player)))
79 stloc:Vector2(var_5_2A, ldfld:Vector2(Entity::position, ldfld:class Terraria.Item[][exp:Entity](Player::inventory, ldloc:Player(player))))
80}
81
82 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
83 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
84 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
85 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
86 --- End of inner exception stack trace ---
87 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
88 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 1683
89*/;
90 }
91
92 // Token: 0x06004017 RID: 16407 RVA: 0x00242178 File Offset: 0x00240378
93 private void PoundTrack(Point spot)
94 {
95 if (!true)
96 {
97 }
98 Tile tile;
99 ushort type = tile.type;
100 bool netClient = Main.NetClient;
101 }
102
103 // Token: 0x06004018 RID: 16408 RVA: 0x00242198 File Offset: 0x00240398
111
112 // Token: 0x06004019 RID: 16409 RVA: 0x002421C0 File Offset: 0x002403C0
114 {
115 int num = 1;
117 expectedEndRight.hasValue = num != 0;
118 }
119
120 // Token: 0x0600401A RID: 16410 RVA: 0x002421F0 File Offset: 0x002403F0
125
126 // Token: 0x0600401B RID: 16411 RVA: 0x00242208 File Offset: 0x00240408
128 {
129 if (!true)
130 {
131 }
133 bool flag = Framing.GetTileSafely(endCoords).active();
134 if (!true)
135 {
136 }
137 if (!true)
138 {
139 }
140 }
141
142 // Token: 0x0600401C RID: 16412 RVA: 0x00242234 File Offset: 0x00240434
143 private bool HasPickPower(Player player, int x, int y)
144 {
145 return player.HasEnoughPickPowerToHurtTile(x, y);
146 }
147
148 // Token: 0x0600401D RID: 16413 RVA: 0x0024224C File Offset: 0x0024044C
149 private bool CanGetPastTile(int x, int y)
150 {
151 /*
152An exception occurred when decompiling this method (0600401D)
153
154ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.GameContent.MinecartDiggerHelper::CanGetPastTile(System.Int32,System.Int32)
155
156 ---> System.Exception: Basic block has to end with unconditional control flow.
157{
158 IL_0035:
159 stloc:bool(var_7_3C, call:bool(WorldGen::CanKillTile, ldloc:int32(x), ldloc:int32(y)))
160}
161
162 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
163 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
164 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
165 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
166 --- End of inner exception stack trace ---
167 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
168 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 1683
169*/;
170 }
171
172 // Token: 0x0600401E RID: 16414 RVA: 0x0024229C File Offset: 0x0024049C
173 private void PlaceATrack(int x, int y)
174 {
175 if (!true)
176 {
177 }
178 int myPlayer = Main.myPlayer;
179 long num = 0L;
180 long num2 = 0L;
181 long num3 = 0L;
182 bool flag = WorldGen.PlaceTile(x, y, 314, num != 0L, num2 != 0L, myPlayer, (int)num3);
183 }
184
185 // Token: 0x0600401F RID: 16415 RVA: 0x002422D0 File Offset: 0x002404D0
186 private void MineTheTileIfNecessary(int x, int y)
187 {
188 Tile tile;
189 bool flag = tile.active();
190 long num = 0L;
191 long num2 = 0L;
192 long num3 = 0L;
193 WorldGen.KillTile(x, y, num != 0L, num2 != 0L, num3 != 0L);
194 }
195
196 // Token: 0x06004020 RID: 16416 RVA: 0x002422F8 File Offset: 0x002404F8
198 {
199 }
200
201 // Token: 0x06004021 RID: 16417 RVA: 0x0024230C File Offset: 0x0024050C
202 // Note: this type is marked as 'beforefieldinit'.
204 {
205 }
206
207 // Token: 0x04007E00 RID: 32256
209 }
210}
class f__AnonymousType0<< Count > j__TPar
Vector2 velocity
Definition Entity.cs:463
static Tile GetTileSafely(Vector2 position)
Definition Framing.cs:356
static void GetExpectedDirections(Point startCoords, Point endCoords, [Out] int? expectedStartLeft, [Out] int? expectedStartRight, [Out] int? expectedEndLeft, [Out] int? expectedEndRight)
void TryDigging(Player player, Vector2 trackWorldPosition, int digDirectionX, int digDirectionY)
bool DoTheTracksConnectProperly(Point tileCoordsOfFrontWheel, Point tileCoordsWeWantToReach)
bool HasPickPower(Player player, int x, int y)
void CorrectTrackConnections(Point startCoords, Point endCoords)
bool AlreadyLeadsIntoWantedTrack(Point tileCoordsOfFrontWheel, Point tileCoordsWeWantToReach)
static int myPlayer
Definition Main.cs:2337
static bool NetClient
Definition Main.cs:5438
bool HasEnoughPickPowerToHurtTile(int x, int y)
Definition Player.cs:17773
static void KillTile(int i, int j, bool fail=false, bool effectOnly=false, bool noItem=false)
static bool PlaceTile(int i, int j, int Type, bool mute=false, bool forced=false, int plr=-1, int style=0)
ushort type
Definition Tile.cs:58
bool active()
Definition Tile.cs:1241