public static void DrawPreview(SpriteBatch sb, TileObjectPreviewData op, Vector2 position) { Point16 coordinates = op.Coordinates; Texture2D texture = TextureAssets.Tile[(int)op.Type].get_Value(); TileObjectData tileData = TileObjectData.GetTileData((int)op.Type, (int)op.Style, op.Alternate); int placementStyle = tileData.CalculatePlacementStyle((int)op.Style, op.Alternate, op.Random); int num1 = 0; int drawYoffset = tileData.DrawYOffset; int drawXoffset = tileData.DrawXOffset; int num2 = placementStyle + tileData.DrawStyleOffset; int styleWrapLimit = tileData.StyleWrapLimit; int styleLineSkip = tileData.StyleLineSkip; int? nullable; if (tileData.StyleWrapLimitVisualOverride.HasValue) { nullable = tileData.StyleWrapLimitVisualOverride; styleWrapLimit = nullable.Value; } nullable = tileData.styleLineSkipVisualOverride; if (nullable.HasValue) { nullable = tileData.styleLineSkipVisualOverride; styleLineSkip = nullable.Value; } if (styleWrapLimit > 0) { num1 = num2 / styleWrapLimit * styleLineSkip; num2 %= styleWrapLimit; } int num3; int num4; if (tileData.StyleHorizontal) { num3 = tileData.CoordinateFullWidth * num2; num4 = tileData.CoordinateFullHeight * num1; } else { num3 = tileData.CoordinateFullWidth * num1; num4 = tileData.CoordinateFullHeight * num2; } for (int index1 = 0; index1 < (int)op.Size.X; ++index1) { int x = num3 + (index1 - (int)op.ObjectStart.X) * (tileData.CoordinateWidth + tileData.CoordinatePadding); int y = num4; for (int index2 = 0; index2 < (int)op.Size.Y; ++index2) { int i = (int)coordinates.X + index1; int num5 = (int)coordinates.Y + index2; if (index2 == 0 && tileData.DrawStepDown != 0 && WorldGen.SolidTile(Framing.GetTileSafely(i, num5 - 1))) { drawYoffset += tileData.DrawStepDown; } Color color1; switch (op[index1, index2]) { case 1: color1 = Color.White; break; case 2: color1 = Color.Red * 0.7f; break; default: continue; } Color color2 = color1 * 0.5f; if (index1 >= (int)op.ObjectStart.X && index1 < (int)op.ObjectStart.X + tileData.Width && (index2 >= (int)op.ObjectStart.Y && index2 < (int)op.ObjectStart.Y + tileData.Height)) { SpriteEffects effects = SpriteEffects.None; if (tileData.DrawFlipHorizontal && i % 2 == 0) { effects |= SpriteEffects.FlipHorizontally; } if (tileData.DrawFlipVertical && num5 % 2 == 0) { effects |= SpriteEffects.FlipVertically; } Rectangle rectangle = new Rectangle(x, y, tileData.CoordinateWidth, tileData.CoordinateHeights[index2 - (int)op.ObjectStart.Y]); sb.Draw(texture, new Vector2((float)(i * 16 - (int)((double)position.X + (double)(tileData.CoordinateWidth - 16) / 2.0) + drawXoffset), (float)(num5 * 16 - (int)position.Y + drawYoffset)), new Rectangle?(rectangle), color2, 0.0f, Vector2.Zero, 1f, effects, 0.0f); y += tileData.CoordinateHeights[index2 - (int)op.ObjectStart.Y] + tileData.CoordinatePadding; } } } }
public static void DrawPreview(SpriteBatch sb, TileObjectPreviewData op, Vector2 position) { Point16 coordinates = op.Coordinates; Texture2D texture2D = Main.tileTexture[(int)op.Type]; TileObjectData tileData = TileObjectData.GetTileData((int)op.Type, (int)op.Style, op.Alternate); int placementStyle = tileData.CalculatePlacementStyle((int)op.Style, op.Alternate, op.Random); int num1 = 0; int drawYoffset = tileData.DrawYOffset; if (tileData.StyleWrapLimit > 0) { num1 = placementStyle / tileData.StyleWrapLimit * tileData.StyleLineSkip; placementStyle %= tileData.StyleWrapLimit; } int num2; int num3; if (tileData.StyleHorizontal) { num2 = tileData.CoordinateFullWidth * placementStyle; num3 = tileData.CoordinateFullHeight * num1; } else { num2 = tileData.CoordinateFullWidth * num1; num3 = tileData.CoordinateFullHeight * placementStyle; } for (int index1 = 0; index1 < (int)op.Size.X; ++index1) { int num4 = num2 + (index1 - (int)op.ObjectStart.X) * (tileData.CoordinateWidth + tileData.CoordinatePadding); int num5 = num3; for (int index2 = 0; index2 < (int)op.Size.Y; ++index2) { int i = (int)coordinates.X + index1; int num6 = (int)coordinates.Y + index2; if (index2 == 0 && tileData.DrawStepDown != 0 && WorldGen.SolidTile(Framing.GetTileSafely(i, num6 - 1))) { drawYoffset += tileData.DrawStepDown; } Color color1; switch (op[index1, index2]) { case 1: color1 = Color.get_White(); break; case 2: color1 = Color.op_Multiply(Color.get_Red(), 0.7f); break; default: continue; } Color color2 = Color.op_Multiply(color1, 0.5f); if (index1 >= (int)op.ObjectStart.X && index1 < (int)op.ObjectStart.X + tileData.Width && (index2 >= (int)op.ObjectStart.Y && index2 < (int)op.ObjectStart.Y + tileData.Height)) { SpriteEffects spriteEffects = (SpriteEffects)0; if (tileData.DrawFlipHorizontal && index1 % 2 == 1) { spriteEffects = (SpriteEffects)(spriteEffects | 1); } if (tileData.DrawFlipVertical && index2 % 2 == 1) { spriteEffects = (SpriteEffects)(spriteEffects | 2); } Rectangle rectangle; // ISSUE: explicit reference operation ((Rectangle)@rectangle).\u002Ector(num4, num5, tileData.CoordinateWidth, tileData.CoordinateHeights[index2 - (int)op.ObjectStart.Y]); sb.Draw(texture2D, new Vector2((float)(i * 16 - (int)(position.X + (double)(tileData.CoordinateWidth - 16) / 2.0)), (float)(num6 * 16 - (int)position.Y + drawYoffset)), new Rectangle?(rectangle), color2, 0.0f, Vector2.get_Zero(), 1f, spriteEffects, 0.0f); num5 += tileData.CoordinateHeights[index2 - (int)op.ObjectStart.Y] + tileData.CoordinatePadding; } } } }
public static void DrawPreview(SpriteBatch sb, TileObjectPreviewData op, Vector2 position) { Point16 coordinates = op.Coordinates; Texture2D value = TextureAssets.Tile[op.Type].get_Value(); TileObjectData tileData = TileObjectData.GetTileData(op.Type, op.Style, op.Alternate); int num = 0; int num2 = 0; int num3 = tileData.CalculatePlacementStyle(op.Style, op.Alternate, op.Random); int num4 = 0; int num5 = tileData.DrawYOffset; int drawXOffset = tileData.DrawXOffset; num3 += tileData.DrawStyleOffset; int num6 = tileData.StyleWrapLimit; int num7 = tileData.StyleLineSkip; if (tileData.StyleWrapLimitVisualOverride.HasValue) { num6 = tileData.StyleWrapLimitVisualOverride.Value; } if (tileData.styleLineSkipVisualOverride.HasValue) { num7 = tileData.styleLineSkipVisualOverride.Value; } if (num6 > 0) { num4 = num3 / num6 * num7; num3 %= num6; } if (tileData.StyleHorizontal) { num = tileData.CoordinateFullWidth * num3; num2 = tileData.CoordinateFullHeight * num4; } else { num = tileData.CoordinateFullWidth * num4; num2 = tileData.CoordinateFullHeight * num3; } for (int i = 0; i < op.Size.X; i++) { int x = num + (i - op.ObjectStart.X) * (tileData.CoordinateWidth + tileData.CoordinatePadding); int num8 = num2; for (int j = 0; j < op.Size.Y; j++) { int num9 = coordinates.X + i; int num10 = coordinates.Y + j; if (j == 0 && tileData.DrawStepDown != 0 && WorldGen.SolidTile(Framing.GetTileSafely(num9, num10 - 1))) { num5 += tileData.DrawStepDown; } int num11 = op[i, j]; Color color; if (num11 != 1) { if (num11 != 2) { continue; } color = Color.Red * 0.7f; } else { color = Color.White; } color *= 0.5f; if (i >= op.ObjectStart.X && i < op.ObjectStart.X + tileData.Width && j >= op.ObjectStart.Y && j < op.ObjectStart.Y + tileData.Height) { SpriteEffects spriteEffects = SpriteEffects.None; if (tileData.DrawFlipHorizontal && num9 % 2 == 0) { spriteEffects |= SpriteEffects.FlipHorizontally; } if (tileData.DrawFlipVertical && num10 % 2 == 0) { spriteEffects |= SpriteEffects.FlipVertically; } sb.Draw(sourceRectangle: new Rectangle(x, num8, tileData.CoordinateWidth, tileData.CoordinateHeights[j - op.ObjectStart.Y]), texture: value, position: new Vector2(num9 * 16 - (int)(position.X + (float)(tileData.CoordinateWidth - 16) / 2f) + drawXOffset, num10 * 16 - (int)position.Y + num5), color: color, rotation: 0f, origin: Vector2.Zero, scale: 1f, effects: spriteEffects, layerDepth: 0f); num8 += tileData.CoordinateHeights[j - op.ObjectStart.Y] + tileData.CoordinatePadding; } } } }
public static void DrawPreview(SpriteBatch sb, TileObjectPreviewData op, Vector2 position) { Point16 coordinates = op.Coordinates; Texture2D texture = Main.tileTexture[op.Type]; TileObjectData tileData = TileObjectData.GetTileData(op.Type, op.Style, op.Alternate); int num = 0; int num2 = 0; int num3 = tileData.CalculatePlacementStyle(op.Style, op.Alternate, op.Random); int num4 = 0; int num5 = tileData.DrawYOffset; if (tileData.StyleWrapLimit > 0) { num4 = num3 / tileData.StyleWrapLimit; num3 %= tileData.StyleWrapLimit; } if (tileData.StyleHorizontal) { num = tileData.CoordinateFullWidth * num3; num2 = tileData.CoordinateFullHeight * num4; } else { num = tileData.CoordinateFullWidth * num4; num2 = tileData.CoordinateFullHeight * num3; } for (int i = 0; i < op.Size.X; i++) { int x = num + (i - op.ObjectStart.X) * (tileData.CoordinateWidth + tileData.CoordinatePadding); int num6 = num2; for (int j = 0; j < op.Size.Y; j++) { int num7 = coordinates.X + i; int num8 = coordinates.Y + j; if (j == 0 && tileData.DrawStepDown != 0) { Tile tileSafely = Framing.GetTileSafely(num7, num8 - 1); if (WorldGen.SolidTile(tileSafely)) { num5 += tileData.DrawStepDown; } } Color color; switch (op[i, j]) { case 2: color = Color.Red * 0.7f; break; case 1: color = Color.White; break; default: continue; } color *= 0.5f; if (i >= op.ObjectStart.X && i < op.ObjectStart.X + tileData.Width && j >= op.ObjectStart.Y && j < op.ObjectStart.Y + tileData.Height) { SpriteEffects spriteEffects = SpriteEffects.None; if (tileData.DrawFlipHorizontal && i % 2 == 1) { spriteEffects |= SpriteEffects.FlipHorizontally; } if (tileData.DrawFlipVertical && j % 2 == 1) { spriteEffects |= SpriteEffects.FlipVertically; } sb.Draw(sourceRectangle: new Rectangle(x, num6, tileData.CoordinateWidth, tileData.CoordinateHeights[j - op.ObjectStart.Y]), texture: texture, position: new Vector2(num7 * 16 - (int)(position.X + (float)(tileData.CoordinateWidth - 16) / 2f), num8 * 16 - (int)position.Y + num5), color: color, rotation: 0f, origin: Vector2.Zero, scale: 1f, effects: spriteEffects, layerDepth: 0f); num6 += tileData.CoordinateHeights[j - op.ObjectStart.Y] + tileData.CoordinatePadding; } } } }
public static void DrawPreview(TileObjectPreviewData op, Vector2 position) { }
static TileObject() { TileObject.Empty = new TileObject(); TileObject.objectPreview = new TileObjectPreviewData(); }
// Token: 0x060001A7 RID: 423 RVA: 0x0002FF68 File Offset: 0x0002E168 public static void DrawPreview(SpriteBatch sb, TileObjectPreviewData op, Vector2 position) { Point16 coordinates = op.Coordinates; Texture2D texture = Main.tileTexture[(int)op.Type]; TileObjectData tileData = TileObjectData.GetTileData((int)op.Type, (int)op.Style, op.Alternate); int num = tileData.CalculatePlacementStyle((int)op.Style, op.Alternate, op.Random); int num2 = 0; int num3 = tileData.DrawYOffset; if (tileData.StyleWrapLimit > 0) { num2 = num / tileData.StyleWrapLimit * tileData.StyleLineSkip; num %= tileData.StyleWrapLimit; } int num4; int num5; if (tileData.StyleHorizontal) { num4 = tileData.CoordinateFullWidth * num; num5 = tileData.CoordinateFullHeight * num2; } else { num4 = tileData.CoordinateFullWidth * num2; num5 = tileData.CoordinateFullHeight * num; } for (int i = 0; i < (int)op.Size.X; i++) { int x = num4 + (i - (int)op.ObjectStart.X) * (tileData.CoordinateWidth + tileData.CoordinatePadding); int num6 = num5; int j = 0; while (j < (int)op.Size.Y) { int num7 = (int)coordinates.X + i; int num8 = (int)coordinates.Y + j; if (j == 0 && tileData.DrawStepDown != 0 && WorldGen.SolidTile(Framing.GetTileSafely(num7, num8 - 1))) { num3 += tileData.DrawStepDown; } int num9 = op[i, j]; Color color; if (num9 == 1) { color = Color.White; goto IL_156; } if (num9 == 2) { color = Color.Red * 0.7f; goto IL_156; } IL_289: j++; continue; IL_156: color *= 0.5f; if (i >= (int)op.ObjectStart.X && i < (int)op.ObjectStart.X + tileData.Width && j >= (int)op.ObjectStart.Y && j < (int)op.ObjectStart.Y + tileData.Height) { SpriteEffects spriteEffects = SpriteEffects.None; if (tileData.DrawFlipHorizontal && i % 2 == 1) { spriteEffects |= SpriteEffects.FlipHorizontally; } if (tileData.DrawFlipVertical && j % 2 == 1) { spriteEffects |= SpriteEffects.FlipVertically; } Rectangle value = new Rectangle(x, num6, tileData.CoordinateWidth, tileData.CoordinateHeights[j - (int)op.ObjectStart.Y]); sb.Draw(texture, new Vector2((float)(num7 * 16 - (int)(position.X + (float)(tileData.CoordinateWidth - 16) / 2f)), (float)(num8 * 16 - (int)position.Y + num3)), new Rectangle?(value), color, 0f, Vector2.Zero, 1f, spriteEffects, 0f); num6 += tileData.CoordinateHeights[j - (int)op.ObjectStart.Y] + tileData.CoordinatePadding; goto IL_289; } goto IL_289; } } }
public static void DrawPreview(SpriteBatch sb, TileObjectPreviewData op, Vector2 position) { var coordinates = op.Coordinates; var texture = Main.tileTexture[(int)op.Type]; var tileData = TileObjectData.GetTileData((int)op.Type, (int)op.Style, op.Alternate); var placementStyle = tileData.CalculatePlacementStyle((int)op.Style, op.Alternate, op.Random); var num1 = 0; var drawYoffset = tileData.DrawYOffset; if (tileData.StyleWrapLimit > 0) { num1 = placementStyle / tileData.StyleWrapLimit * tileData.StyleLineSkip; placementStyle %= tileData.StyleWrapLimit; } int num2; int num3; if (tileData.StyleHorizontal) { num2 = tileData.CoordinateFullWidth * placementStyle; num3 = tileData.CoordinateFullHeight * num1; } else { num2 = tileData.CoordinateFullWidth * num1; num3 = tileData.CoordinateFullHeight * placementStyle; } for (var index1 = 0; index1 < (int)op.Size.X; ++index1) { var x = num2 + (index1 - (int)op.ObjectStart.X) * (tileData.CoordinateWidth + tileData.CoordinatePadding); var y = num3; for (var index2 = 0; index2 < (int)op.Size.Y; ++index2) { var i = (int)coordinates.X + index1; var num4 = (int)coordinates.Y + index2; if (index2 == 0 && tileData.DrawStepDown != 0 && WorldGen.SolidTile(Framing.GetTileSafely(i, num4 - 1))) { drawYoffset += tileData.DrawStepDown; } Color color1; switch (op[index1, index2]) { case 1: color1 = Color.White; break; case 2: color1 = Color.Red * 0.7f; break; default: continue; } var color2 = color1 * 0.5f; if (index1 >= (int)op.ObjectStart.X && index1 < (int)op.ObjectStart.X + tileData.Width && (index2 >= (int)op.ObjectStart.Y && index2 < (int)op.ObjectStart.Y + tileData.Height)) { var effects = SpriteEffects.None; if (tileData.DrawFlipHorizontal && index1 % 2 == 1) { effects |= SpriteEffects.FlipHorizontally; } if (tileData.DrawFlipVertical && index2 % 2 == 1) { effects |= SpriteEffects.FlipVertically; } var rectangle = new Rectangle(x, y, tileData.CoordinateWidth, tileData.CoordinateHeights[index2 - (int)op.ObjectStart.Y]); sb.Draw(texture, new Vector2( (float)(i * 16 - (int)((double)position.X + (double)(tileData.CoordinateWidth - 16) / 2.0)), (float)(num4 * 16 - (int)position.Y + drawYoffset)), new Rectangle?(rectangle), color2, 0.0f, Vector2.Zero, 1f, effects, 0.0f); y += tileData.CoordinateHeights[index2 - (int)op.ObjectStart.Y] + tileData.CoordinatePadding; } } } }