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
TilePaintSystemV2.cs
Go to the documentation of this file.
1using System;
4
6{
7 // Token: 0x020007D3 RID: 2003
8 public class TilePaintSystemV2
9 {
10 // Token: 0x060040BB RID: 16571 RVA: 0x00243AFC File Offset: 0x00241CFC
11 public EffectPass GetTileEffect(int tileType, int tileStyle, int paintColor)
12 {
13 /*
14An exception occurred when decompiling this method (060040BB)
15
16ICSharpCode.Decompiler.DecompilerException: Error decompiling Microsoft.Xna.Framework.Graphics.EffectPass Terraria.GameContent.TilePaintSystemV2::GetTileEffect(System.Int32,System.Int32,System.Int32)
17
18 ---> System.Exception: Basic block has to end with unconditional control flow.
19{
20 Block_0:
21 stloc:TreePaintingSettingsId(var_0_12, ldfld:TreePaintingSettingsId(TreePaintingSettings::Id, call:TreePaintingSettings(TreePaintSystemData::GetTileSettings, ldfld:TreePaintSystemData(TilePaintSystemV2::PaintSystemData, ldloc:TilePaintSystemV2(this)), ldloc:int32(tileType), ldloc:int32(tileStyle))))
22 stloc:class Microsoft.Xna.Framework.Graphics.EffectPass[](var_1_19, ldfld:class Microsoft.Xna.Framework.Graphics.EffectPass[](TilePaintSystemV2::TileShaders, ldloc:TilePaintSystemV2(this)))
23}
24
25 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
26 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
27 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
28 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
29 --- End of inner exception stack trace ---
30 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
31 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
32*/;
33 }
34
35 // Token: 0x060040BC RID: 16572 RVA: 0x00243B24 File Offset: 0x00241D24
41
42 // Token: 0x060040BD RID: 16573 RVA: 0x00243B48 File Offset: 0x00241D48
44 {
45 /*
46An exception occurred when decompiling this method (060040BD)
47
48ICSharpCode.Decompiler.DecompilerException: Error decompiling Microsoft.Xna.Framework.Graphics.EffectPass Terraria.GameContent.TilePaintSystemV2::GetTreeBranchEffect(System.Int32,System.Int32,System.Int32)
49
50 ---> System.Exception: Basic block has to end with unconditional control flow.
51{
52 Block_0:
53 stloc:TreePaintingSettingsId(var_0_12, ldfld:TreePaintingSettingsId(TreePaintingSettings::Id, call:TreePaintingSettings(TreePaintSystemData::GetTreeFoliageSettings, ldfld:TreePaintSystemData(TilePaintSystemV2::PaintSystemData, ldloc:TilePaintSystemV2(this)), ldloc:int32(treeTopIndex), ldloc:int32(treeTopStyle))))
54 stloc:class Microsoft.Xna.Framework.Graphics.EffectPass[](var_1_19, ldfld:class Microsoft.Xna.Framework.Graphics.EffectPass[](TilePaintSystemV2::TileShaders, ldloc:TilePaintSystemV2(this)))
55}
56
57 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
58 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
59 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
60 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
61 --- End of inner exception stack trace ---
62 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
63 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
64*/;
65 }
66
67 // Token: 0x060040BE RID: 16574 RVA: 0x00243B70 File Offset: 0x00241D70
68 public EffectPass GetTreeTopEffect(int treeTopIndex, int treeTopStyle, int paintColor)
69 {
70 /*
71An exception occurred when decompiling this method (060040BE)
72
73ICSharpCode.Decompiler.DecompilerException: Error decompiling Microsoft.Xna.Framework.Graphics.EffectPass Terraria.GameContent.TilePaintSystemV2::GetTreeTopEffect(System.Int32,System.Int32,System.Int32)
74
75 ---> System.Exception: Basic block has to end with unconditional control flow.
76{
77 Block_0:
78 stloc:TreePaintingSettingsId(var_0_12, ldfld:TreePaintingSettingsId(TreePaintingSettings::Id, call:TreePaintingSettings(TreePaintSystemData::GetTreeFoliageSettings, ldfld:TreePaintSystemData(TilePaintSystemV2::PaintSystemData, ldloc:TilePaintSystemV2(this)), ldloc:int32(treeTopIndex), ldloc:int32(treeTopStyle))))
79 stloc:class Microsoft.Xna.Framework.Graphics.EffectPass[](var_1_19, ldfld:class Microsoft.Xna.Framework.Graphics.EffectPass[](TilePaintSystemV2::TileShaders, ldloc:TilePaintSystemV2(this)))
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: 0x060040BF RID: 16575 RVA: 0x00243B98 File Offset: 0x00241D98
94 {
97 if (tileShader == null || tileShader != null)
98 {
99 EffectParameter effectParameter = tileShader.<Parameters>k__BackingField["leafHueTestOffset"];
100 float hueTestOffset = settings.HueTestOffset;
101 EffectParameter effectParameter2 = tileShader.<Parameters>k__BackingField["leafMinHue"];
103 EffectParameter effectParameter3 = tileShader.<Parameters>k__BackingField["leafMaxHue"];
105 EffectParameter effectParameter4 = tileShader.<Parameters>k__BackingField["leafMinSat"];
107 EffectParameter effectParameter5 = tileShader.<Parameters>k__BackingField["leafMaxSat"];
109 EffectParameter effectParameter6 = tileShader.<Parameters>k__BackingField["invertSpecialGroupResult"];
112 int num = 1;
115 EffectPass realShader = this.GetRealShader(num, settings);
116 if (realShader == null || realShader != null)
117 {
118 }
119 }
120 throw new ArrayTypeMismatchException();
121 }
122
123 // Token: 0x060040C0 RID: 16576 RVA: 0x00243C8C File Offset: 0x00241E8C
124 public void CreateTileShaders()
125 {
126 if (this.TileShader == null)
127 {
128 Effect tileShader = Main.tileShader;
129 this.TileShader = tileShader;
130 }
132 Effect effect = this.InitShader(defaultNoSpecialGroups);
134 Effect effect2 = this.InitShader(defaultDirt);
136 Effect effect3 = this.InitShader(cullMud);
138 Effect effect4 = this.InitShader(woodPurity);
140 Effect effect5 = this.InitShader(woodCorruption);
142 Effect effect6 = this.InitShader(woodJungle);
144 Effect effect7 = this.InitShader(woodHallow);
146 Effect effect8 = this.InitShader(woodSnow);
148 Effect effect9 = this.InitShader(woodCrimson);
150 Effect effect10 = this.InitShader(woodJungleUnderground);
152 Effect effect11 = this.InitShader(woodGlowingMushroom);
154 Effect effect12 = this.InitShader(vanityCherry);
156 Effect effect13 = this.InitShader(vanityYellowWillow);
158 Effect effect14 = this.InitShader(gemTreeRuby);
160 Effect effect15 = this.InitShader(palmTreePurity);
162 Effect effect16 = this.InitShader(palmTreeCorruption);
164 Effect effect17 = this.InitShader(palmTreeCrimson);
166 Effect effect18 = this.InitShader(palmTreeHallow);
167 }
168
169 // Token: 0x060040C1 RID: 16577 RVA: 0x00243E4C File Offset: 0x0024204C
170 public EffectPass GetRealShader(int paintColor, TreePaintingSettings settings)
171 {
172 int num2;
173 do
174 {
175 int num = 1;
176 bool useSpecialGroups = settings.UseSpecialGroups;
178 if (num == 0)
179 {
180 }
181 if (num2 != 0)
182 {
183 Effect tileShader = this.TileShader;
184 }
185 }
186 while (this.specialShaders.<Name>k__BackingField != null);
187 return this.InitShader(settings).<CurrentTechnique>k__BackingField.<Passes>k__BackingField[num2];
188 }
189
190 // Token: 0x060040C2 RID: 16578 RVA: 0x00243EA0 File Offset: 0x002420A0
191 public EffectPass GetShader(int paintColor, TreePaintingSettings settings)
192 {
193 /*
194An exception occurred when decompiling this method (060040C2)
195
196ICSharpCode.Decompiler.DecompilerException: Error decompiling Microsoft.Xna.Framework.Graphics.EffectPass Terraria.GameContent.TilePaintSystemV2::GetShader(System.Int32,Terraria.GameContent.TreePaintingSettings)
197
198 ---> System.Exception: Basic block has to end with unconditional control flow.
199{
200 Block_0:
201 stloc:TreePaintingSettingsId(var_0_06, ldfld:TreePaintingSettingsId(TreePaintingSettings::Id, ldloc:TreePaintingSettings(settings)))
202 stloc:class Microsoft.Xna.Framework.Graphics.EffectPass[](var_1_0D, ldfld:class Microsoft.Xna.Framework.Graphics.EffectPass[](TilePaintSystemV2::TileShaders, ldloc:TilePaintSystemV2(this)))
203}
204
205 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
206 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
207 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
208 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
209 --- End of inner exception stack trace ---
210 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
211 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
212*/;
213 }
214
215 // Token: 0x060040C3 RID: 16579 RVA: 0x00243EBC File Offset: 0x002420BC
217 {
218 }
219
220 // Token: 0x04007E97 RID: 32407
222
223 // Token: 0x04007E98 RID: 32408
225
226 // Token: 0x04007E99 RID: 32409
228
229 // Token: 0x04007E9A RID: 32410
231
232 // Token: 0x020007D4 RID: 2004
233 public struct TileVariationkey
234 {
235 // Token: 0x060040C4 RID: 16580 RVA: 0x00243ED0 File Offset: 0x002420D0
237 {
238 /*
239An exception occurred when decompiling this method (060040C4)
240
241ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.GameContent.TilePaintSystemV2/TileVariationkey::Equals(Terraria.GameContent.TilePaintSystemV2/TileVariationkey)
242
243 ---> System.Exception: Basic block has to end with unconditional control flow.
244{
245 Block_0:
246 stloc:int32(var_0_06, ldfld:int32(TileVariationkey::TileStyle, ldloc:valuetype Terraria.GameContent.TilePaintSystemV2/TileVariationkey&(this)))
247 stloc:int32(var_1_0D, ldfld:int32(TileVariationkey::PaintColor, ldloc:valuetype Terraria.GameContent.TilePaintSystemV2/TileVariationkey&(this)))
248}
249
250 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
251 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
252 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
253 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
254 --- End of inner exception stack trace ---
255 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
256 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
257*/;
258 }
259
260 // Token: 0x060040C5 RID: 16581 RVA: 0x00243EEC File Offset: 0x002420EC
261 public override bool Equals(object obj)
262 {
263 if (obj != null)
264 {
265 int tileStyle = this.TileStyle;
266 int paintColor = this.PaintColor;
267 return;
268 }
269 }
270
271 // Token: 0x060040C6 RID: 16582 RVA: 0x00243F0C File Offset: 0x0024210C
272 public override int GetHashCode()
273 {
274 /*
275An exception occurred when decompiling this method (060040C6)
276
277ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 Terraria.GameContent.TilePaintSystemV2/TileVariationkey::GetHashCode()
278
279 ---> System.Exception: Basic block has to end with unconditional control flow.
280{
281 Block_0:
282 stloc:int32(var_0_06, ldfld:int32(TileVariationkey::TileType, ldloc:valuetype Terraria.GameContent.TilePaintSystemV2/TileVariationkey&(this)))
283 stloc:int32(var_1_0D, ldfld:int32(TileVariationkey::PaintColor, ldloc:valuetype Terraria.GameContent.TilePaintSystemV2/TileVariationkey&(this)))
284 stloc:int32(var_2_14, ldfld:int32(TileVariationkey::PaintColor, ldloc:valuetype Terraria.GameContent.TilePaintSystemV2/TileVariationkey&(this)))
285}
286
287 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
288 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
289 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
290 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
291 --- End of inner exception stack trace ---
292 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
293 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
294*/;
295 }
296
297 // Token: 0x060040C7 RID: 16583 RVA: 0x00243F30 File Offset: 0x00242130
301
302 // Token: 0x060040C8 RID: 16584 RVA: 0x00243F40 File Offset: 0x00242140
304 {
305 return true;
306 }
307
308 // Token: 0x04007E9B RID: 32411
309 public int TileType;
310
311 // Token: 0x04007E9C RID: 32412
312 public int TileStyle;
313
314 // Token: 0x04007E9D RID: 32413
315 public int PaintColor;
316 }
317
318 // Token: 0x020007D5 RID: 2005
319 public struct WallVariationKey
320 {
321 // Token: 0x060040C9 RID: 16585 RVA: 0x00243F50 File Offset: 0x00242150
323 {
324 /*
325An exception occurred when decompiling this method (060040C9)
326
327ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.GameContent.TilePaintSystemV2/WallVariationKey::Equals(Terraria.GameContent.TilePaintSystemV2/WallVariationKey)
328
329 ---> System.Exception: Basic block has to end with unconditional control flow.
330{
331 Block_0:
332 stloc:int32(var_0_06, ldfld:int32(WallVariationKey::PaintColor, ldloc:valuetype Terraria.GameContent.TilePaintSystemV2/WallVariationKey&(this)))
333}
334
335 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
336 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
337 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
338 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
339 --- End of inner exception stack trace ---
340 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
341 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
342*/;
343 }
344
345 // Token: 0x060040CA RID: 16586 RVA: 0x00243F68 File Offset: 0x00242168
346 public override bool Equals(object obj)
347 {
348 if (obj != null)
349 {
350 int paintColor = this.PaintColor;
351 return;
352 }
353 }
354
355 // Token: 0x060040CB RID: 16587 RVA: 0x00243F80 File Offset: 0x00242180
356 public override int GetHashCode()
357 {
358 /*
359An exception occurred when decompiling this method (060040CB)
360
361ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 Terraria.GameContent.TilePaintSystemV2/WallVariationKey::GetHashCode()
362
363 ---> System.Exception: Basic block has to end with unconditional control flow.
364{
365 Block_0:
366 stloc:int32(var_0_06, ldfld:int32(WallVariationKey::WallType, ldloc:valuetype Terraria.GameContent.TilePaintSystemV2/WallVariationKey&(this)))
367}
368
369 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
370 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
371 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
372 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
373 --- End of inner exception stack trace ---
374 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
375 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
376*/;
377 }
378
379 // Token: 0x060040CC RID: 16588 RVA: 0x000021DB File Offset: 0x000003DB
381 {
382 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
383 }
384
385 // Token: 0x060040CD RID: 16589 RVA: 0x000021DB File Offset: 0x000003DB
387 {
388 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
389 }
390
391 // Token: 0x04007E9E RID: 32414
392 public int WallType;
393
394 // Token: 0x04007E9F RID: 32415
395 public int PaintColor;
396 }
397
398 // Token: 0x020007D6 RID: 2006
400 {
401 // Token: 0x060040CE RID: 16590 RVA: 0x00243F94 File Offset: 0x00242194
403 {
404 /*
405An exception occurred when decompiling this method (060040CE)
406
407ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.GameContent.TilePaintSystemV2/TreeFoliageVariantKey::Equals(Terraria.GameContent.TilePaintSystemV2/TreeFoliageVariantKey)
408
409 ---> System.Exception: Basic block has to end with unconditional control flow.
410{
411 Block_0:
412 stloc:int32(var_0_06, ldfld:int32(TreeFoliageVariantKey::TextureStyle, ldloc:valuetype Terraria.GameContent.TilePaintSystemV2/TreeFoliageVariantKey&(this)))
413 stloc:int32(var_1_0D, ldfld:int32(TreeFoliageVariantKey::PaintColor, ldloc:valuetype Terraria.GameContent.TilePaintSystemV2/TreeFoliageVariantKey&(this)))
414}
415
416 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
417 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
418 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
419 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
420 --- End of inner exception stack trace ---
421 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
422 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
423*/;
424 }
425
426 // Token: 0x060040CF RID: 16591 RVA: 0x00243FB0 File Offset: 0x002421B0
427 public override bool Equals(object obj)
428 {
429 if (obj != null)
430 {
431 int textureStyle = this.TextureStyle;
432 int paintColor = this.PaintColor;
433 return;
434 }
435 }
436
437 // Token: 0x060040D0 RID: 16592 RVA: 0x00243FD0 File Offset: 0x002421D0
438 public override int GetHashCode()
439 {
440 /*
441An exception occurred when decompiling this method (060040D0)
442
443ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 Terraria.GameContent.TilePaintSystemV2/TreeFoliageVariantKey::GetHashCode()
444
445 ---> System.Exception: Basic block has to end with unconditional control flow.
446{
447 Block_0:
448 stloc:int32(var_0_06, ldfld:int32(TreeFoliageVariantKey::TextureIndex, ldloc:valuetype Terraria.GameContent.TilePaintSystemV2/TreeFoliageVariantKey&(this)))
449 stloc:int32(var_1_0D, ldfld:int32(TreeFoliageVariantKey::PaintColor, ldloc:valuetype Terraria.GameContent.TilePaintSystemV2/TreeFoliageVariantKey&(this)))
450 stloc:int32(var_2_14, ldfld:int32(TreeFoliageVariantKey::PaintColor, ldloc:valuetype Terraria.GameContent.TilePaintSystemV2/TreeFoliageVariantKey&(this)))
451}
452
453 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
454 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
455 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
456 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
457 --- End of inner exception stack trace ---
458 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
459 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
460*/;
461 }
462
463 // Token: 0x060040D1 RID: 16593 RVA: 0x00243FF4 File Offset: 0x002421F4
467
468 // Token: 0x060040D2 RID: 16594 RVA: 0x00244004 File Offset: 0x00242204
470 {
471 return true;
472 }
473
474 // Token: 0x04007EA0 RID: 32416
475 public int TextureIndex;
476
477 // Token: 0x04007EA1 RID: 32417
478 public int TextureStyle;
479
480 // Token: 0x04007EA2 RID: 32418
481 public int PaintColor;
482 }
483 }
484}
class f__AnonymousType0<< Count > j__TPar
EffectPass GetTreeBranchEffect(int treeTopIndex, int treeTopStyle, int paintColor)
EffectPass GetTileEffect(int tileType, int tileStyle, int paintColor)
Effect InitShader(TreePaintingSettings settings)
EffectPass GetTreeTopEffect(int treeTopIndex, int treeTopStyle, int paintColor)
EffectPass GetRealShader(int paintColor, TreePaintingSettings settings)
EffectPass GetWallEffect(int wallType, int paintColor)
EffectPass GetShader(int paintColor, TreePaintingSettings settings)
TreePaintingSettings.TreePaintingSettingsId Id
static Effect tileShader
Definition Main.cs:4379
static bool operator!=(TilePaintSystemV2.TileVariationkey left, TilePaintSystemV2.TileVariationkey right)
bool Equals(TilePaintSystemV2.TileVariationkey other)
static bool operator==(TilePaintSystemV2.TileVariationkey left, TilePaintSystemV2.TileVariationkey right)
static bool operator==(TilePaintSystemV2.TreeFoliageVariantKey left, TilePaintSystemV2.TreeFoliageVariantKey right)
static bool operator!=(TilePaintSystemV2.TreeFoliageVariantKey left, TilePaintSystemV2.TreeFoliageVariantKey right)
bool Equals(TilePaintSystemV2.TreeFoliageVariantKey other)
static bool operator==(TilePaintSystemV2.WallVariationKey left, TilePaintSystemV2.WallVariationKey right)
bool Equals(TilePaintSystemV2.WallVariationKey other)
static bool operator!=(TilePaintSystemV2.WallVariationKey left, TilePaintSystemV2.WallVariationKey right)