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
TEItemFrame.cs
Go to the documentation of this file.
1using System;
2using System.IO;
7
9{
10 // Token: 0x02000814 RID: 2068
12 {
13 // Token: 0x0600423A RID: 16954 RVA: 0x0024A828 File Offset: 0x00248A28
14 public override void RegisterTileEntityID(int assignedID)
15 {
16 }
17
18 // Token: 0x0600423B RID: 16955 RVA: 0x0024A838 File Offset: 0x00248A38
19 public override void NetPlaceEntityAttempt(int x, int y)
20 {
22 }
23
24 // Token: 0x0600423C RID: 16956 RVA: 0x0024A84C File Offset: 0x00248A4C
25 public static void NetPlaceEntity(int x, int y)
26 {
27 int num = TEItemFrame.Place(x, y);
28 }
29
30 // Token: 0x0600423D RID: 16957 RVA: 0x000021DB File Offset: 0x000003DB
31 public override TileEntity GenerateInstance()
32 {
33 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
34 }
35
36 // Token: 0x0600423E RID: 16958 RVA: 0x0024A864 File Offset: 0x00248A64
37 public TEItemFrame()
38 {
39 if (!true)
40 {
41 }
42 base..ctor();
43 }
44
45 // Token: 0x0600423F RID: 16959 RVA: 0x0024A87C File Offset: 0x00248A7C
46 public static int Place(int x, int y)
47 {
48 if (!true)
49 {
50 }
51 int num = TileEntity.AssignNewID();
52 Monitor.Enter(x, x != 0);
53 long num2 = 0L;
54 Monitor.Exit(x);
55 if (num2 == 0L)
56 {
57 return x;
58 }
59 throw new OutOfMemoryException();
60 }
61
62 // Token: 0x06004240 RID: 16960 RVA: 0x0024A8CC File Offset: 0x00248ACC
63 public override bool IsTileValidForEntity(int x, int y)
64 {
65 return TEItemFrame.ValidTile(x, y);
66 }
67
68 // Token: 0x06004241 RID: 16961 RVA: 0x0024A8E0 File Offset: 0x00248AE0
69 public static int Hook_AfterPlacement(int x, int y, int type = 395, int style = 0, int direction = 1, int alternate = 0)
70 {
71 if (!true)
72 {
73 }
75 if (!true)
76 {
77 }
78 int myPlayer = Main.myPlayer;
79 return 87;
80 }
81
82 // Token: 0x06004242 RID: 16962 RVA: 0x0024A91C File Offset: 0x00248B1C
83 public static void Kill(int x, int y)
84 {
85 if (!true)
86 {
87 }
88 int key = TileEntity.GetKey(x, y);
89 int key2 = TileEntity.GetKey(x, y);
90 if (!false)
91 {
92 return;
93 }
94 throw new OutOfMemoryException();
95 }
96
97 // Token: 0x06004243 RID: 16963 RVA: 0x0024A960 File Offset: 0x00248B60
98 public static int Find(int x, int y)
99 {
100 if (!true)
101 {
102 }
103 int key = TileEntity.GetKey(int.MinValue, x);
104 return int.MinValue;
105 }
106
107 // Token: 0x06004244 RID: 16964 RVA: 0x0024A988 File Offset: 0x00248B88
108 public static bool ValidTile(int x, int y)
109 {
110 /*
111An exception occurred when decompiling this method (06004244)
112
113ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.GameContent.Tile_Entities.TEItemFrame::ValidTile(System.Int32,System.Int32)
114
115 ---> System.Exception: Basic block has to end with unconditional control flow.
116{
117 IL_002F:
118 stloc:int16(var_11_36, callgetter:int16(Tile::get_frameX, ldloc:Tile[exp:valuetype Terraria.Tile&](var_10)))
119}
120
121 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
122 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
123 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
124 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
125 --- End of inner exception stack trace ---
126 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
127 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
128*/;
129 }
130
131 // Token: 0x06004245 RID: 16965 RVA: 0x0024A9CC File Offset: 0x00248BCC
132 public override void WriteExtraData(BinaryWriter writer, bool networkSend)
133 {
134 int netID = this.item.netID;
135 byte prefix = this.item.prefix;
136 int stack = this.item.stack;
137 }
138
139 // Token: 0x06004246 RID: 16966 RVA: 0x0024AA00 File Offset: 0x00248C00
140 public override void ReadExtraData(BinaryReader reader, bool networkSend)
141 {
142 long num = 0L;
143 bool flag = this.item.Prefix((int)num);
144 Item item = this.item;
145 }
146
147 // Token: 0x06004247 RID: 16967 RVA: 0x0024AA24 File Offset: 0x00248C24
148 public override string ToString()
149 {
150 Point16 position = this.Position;
151 string text;
152 if ((text == null || text != null) && ("x " == null || "x " != null))
153 {
154 short y = this.Position.Y;
155 string text2;
156 if ((text2 == null || text2 != null) && ("y item: " == null || "y item: " != null))
157 {
158 Item item = this.item;
159 if (item == null || item == null || item != null)
160 {
161 string text3;
162 return text3;
163 }
164 }
165 }
166 throw new ArrayTypeMismatchException();
167 }
168
169 // Token: 0x06004248 RID: 16968 RVA: 0x0024AA88 File Offset: 0x00248C88
170 public void DropItem()
171 {
172 if (!true)
173 {
174 }
175 bool logicHost = Main.LogicHost;
176 Item item = this.item;
177 int netID = item.netID;
178 byte prefix = item.prefix;
179 }
180
181 // Token: 0x06004249 RID: 16969 RVA: 0x0024AAB8 File Offset: 0x00248CB8
182 public static void TryPlacing(int x, int y, int netid, int prefix, int stack)
183 {
184 WorldGen.RangeFrame(x, y, netid, prefix);
185 int num = TEItemFrame.Find(x, y);
186 }
187
188 // Token: 0x0600424A RID: 16970 RVA: 0x0024AAE4 File Offset: 0x00248CE4
189 public static void OnPlayerInteraction(Player player, int clickX, int clickY)
190 {
191 Vector2 position = player.inventory.position;
192 if (position != null)
193 {
194 if (position == null)
195 {
196 }
197 Tile tile;
198 short frameX = tile.frameX;
199 int num = 36409;
200 int num2 = 36;
201 if (num == 0)
202 {
203 }
204 Tile tile2;
205 short frameY = tile2.frameY;
206 int num3 = TEItemFrame.Find((int)frameY, num2);
207 if (position == null)
208 {
209 }
211 int num4 = 1;
212 long num5 = 0L;
213 long num6 = 0L;
214 WorldGen.KillTile(clickX, clickY, num4 != 0, num5 != 0L, num6 != 0L);
215 bool netClient = Main.NetClient;
216 return;
217 }
220 Recipe.FindRecipes(false);
221 }
222
223 // Token: 0x0600424B RID: 16971 RVA: 0x000021DB File Offset: 0x000003DB
224 public static bool FitsItemFrame(Item i)
225 {
226 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
227 }
228
229 // Token: 0x0600424C RID: 16972 RVA: 0x0024AB7C File Offset: 0x00248D7C
230 public static void PlaceItemInFrame(Player player, int x, int y)
231 {
232 int num = 1;
233 if (num == 0)
234 {
235 }
236 Tile tile;
237 short frameX = tile.frameX;
238 if (36409 == 0)
239 {
240 }
241 Tile tile2;
242 short frameY = tile2.frameY;
243 int num2 = TEItemFrame.Find(x, y);
244 if (num == 0)
245 {
246 }
247 int num3 = 1;
248 long num4 = 0L;
249 long num5 = 0L;
250 WorldGen.KillTile(x, y, num3 != 0, num4 != 0L, num5 != 0L);
251 bool netClient = Main.NetClient;
252 int tileTargetX = Player.tileTargetX;
254 int selectedItem = player.selectedItem;
255 int whoAmI = player.whoAmI;
256 }
257
258 // Token: 0x0600424D RID: 16973 RVA: 0x0024ACA0 File Offset: 0x00248EA0
259 public void FixLoadedData()
260 {
261 this.item.FixAgainstExploit();
262 }
263
264 // Token: 0x040080D0 RID: 32976
265 private static byte _myEntityID;
266
267 // Token: 0x040080D1 RID: 32977
268 public Item item;
269 }
270}
class f__AnonymousType0<< Count > j__TPar
static void Exit(object obj)
Definition Monitor.cs:47
static void Enter(object obj)
Definition Monitor.cs:11
static int GetKey(int x, int y)
Vector2 position
Definition Entity.cs:460
override void RegisterTileEntityID(int assignedID)
override bool IsTileValidForEntity(int x, int y)
override void ReadExtraData(BinaryReader reader, bool networkSend)
override void NetPlaceEntityAttempt(int x, int y)
override void WriteExtraData(BinaryWriter writer, bool networkSend)
static void OnPlayerInteraction(Player player, int clickX, int clickY)
static void PlaceItemInFrame(Player player, int x, int y)
static void TryPlacing(int x, int y, int netid, int prefix, int stack)
static int Hook_AfterPlacement(int x, int y, int type=395, int style=0, int direction=1, int alternate=0)
bool Prefix(int prefixWeWant)
Definition Item.cs:234
byte prefix
Definition Item.cs:2397
void FixAgainstExploit()
Definition Item.cs:1274
static int myPlayer
Definition Main.cs:2337
static bool NetClient
Definition Main.cs:5438
static bool NetClientOnly
Definition Main.cs:5407
static bool LogicHost
Definition Main.cs:5469
void GamepadEnableGrappleCooldown()
Definition Player.cs:7876
static int tileTargetX
Definition Player.cs:66
Item[] inventory
Definition Player.cs:21263
static void FindRecipes(bool canDelayCheck=false)
Definition Recipe.cs:204
static void KillTile(int i, int j, bool fail=false, bool effectOnly=false, bool noItem=false)
static void RangeFrame(int startX, int startY, int endX, int endY)
short frameY
Definition Tile.cs:285
short frameX
Definition Tile.cs:244