public void PlaceThing()
{
if ((this.inventory[this.selectedItem].itemId == 1071 || this.inventory[this.selectedItem].itemId == 1543) && ((double)this.position.X / 16.0 - (double)Player.tileRangeX - (double)this.inventory[this.selectedItem].tileBoost - (double)this.blockRange <= (double)Player.tileTargetX && ((double)this.position.X + (double)this.width) / 16.0 + (double)Player.tileRangeX + (double)this.inventory[this.selectedItem].tileBoost - 1.0 + (double)this.blockRange >= (double)Player.tileTargetX) && ((double)this.position.Y / 16.0 - (double)Player.tileRangeY - (double)this.inventory[this.selectedItem].tileBoost - (double)this.blockRange <= (double)Player.tileTargetY && ((double)this.position.Y + (double)this.height) / 16.0 + (double)Player.tileRangeY + (double)this.inventory[this.selectedItem].tileBoost - 2.0 + (double)this.blockRange >= (double)Player.tileTargetY))
{
int x = Player.tileTargetX;
int y = Player.tileTargetY;
if (Main.tile[x, y] != null && Main.tile[x, y].active())
{
this.showItemIcon = true;
if (this.itemTime == 0 && this.itemAnimation > 0 && this.controlUseItem)
{
int num1 = -1;
int num2 = -1;
for (int index = 0; index < 58; ++index)
{
if (this.inventory[index].stack > 0 && (int)this.inventory[index].paint > 0)
{
num1 = (int)this.inventory[index].paint;
num2 = index;
break;
}
}
if (num1 > 0 && (int)Main.tile[x, y].color() != num1 && WorldGen.paintTile(x, y, (byte)num1, true))
{
int index = num2;
--this.inventory[index].stack;
if (this.inventory[index].stack <= 0)
this.inventory[index].SetDefaults(0, false);
this.itemTime = this.inventory[this.selectedItem].useTime;
}
}
}
}
if ((this.inventory[this.selectedItem].itemId == 1072 || this.inventory[this.selectedItem].itemId == 1544) && ((double)this.position.X / 16.0 - (double)Player.tileRangeX - (double)this.inventory[this.selectedItem].tileBoost - (double)this.blockRange <= (double)Player.tileTargetX && ((double)this.position.X + (double)this.width) / 16.0 + (double)Player.tileRangeX + (double)this.inventory[this.selectedItem].tileBoost - 1.0 + (double)this.blockRange >= (double)Player.tileTargetX) && ((double)this.position.Y / 16.0 - (double)Player.tileRangeY - (double)this.inventory[this.selectedItem].tileBoost - (double)this.blockRange <= (double)Player.tileTargetY && ((double)this.position.Y + (double)this.height) / 16.0 + (double)Player.tileRangeY + (double)this.inventory[this.selectedItem].tileBoost - 2.0 + (double)this.blockRange >= (double)Player.tileTargetY))
{
int x = Player.tileTargetX;
int y = Player.tileTargetY;
if (Main.tile[x, y] != null && (int)Main.tile[x, y].wall > 0)
{
this.showItemIcon = true;
if (this.itemTime == 0 && this.itemAnimation > 0 && this.controlUseItem)
{
int num1 = -1;
int num2 = -1;
for (int index = 0; index < 58; ++index)
{
if (this.inventory[index].stack > 0 && (int)this.inventory[index].paint > 0)
{
num1 = (int)this.inventory[index].paint;
num2 = index;
break;
}
}
if (num1 > 0 && (int)Main.tile[x, y].wallColor() != num1 && WorldGen.paintWall(x, y, (byte)num1, true))
{
int index = num2;
--this.inventory[index].stack;
if (this.inventory[index].stack <= 0)
this.inventory[index].SetDefaults(0, false);
this.itemTime = this.inventory[this.selectedItem].useTime;
}
}
}
}
if ((this.inventory[this.selectedItem].itemId == 1100 || this.inventory[this.selectedItem].itemId == 1545) && ((double)this.position.X / 16.0 - (double)Player.tileRangeX - (double)this.inventory[this.selectedItem].tileBoost - (double)this.blockRange <= (double)Player.tileTargetX && ((double)this.position.X + (double)this.width) / 16.0 + (double)Player.tileRangeX + (double)this.inventory[this.selectedItem].tileBoost - 1.0 + (double)this.blockRange >= (double)Player.tileTargetX) && ((double)this.position.Y / 16.0 - (double)Player.tileRangeY - (double)this.inventory[this.selectedItem].tileBoost - (double)this.blockRange <= (double)Player.tileTargetY && ((double)this.position.Y + (double)this.height) / 16.0 + (double)Player.tileRangeY + (double)this.inventory[this.selectedItem].tileBoost - 2.0 + (double)this.blockRange >= (double)Player.tileTargetY))
{
int x = Player.tileTargetX;
int y = Player.tileTargetY;
if (Main.tile[x, y] != null && ((int)Main.tile[x, y].wallColor() > 0 && (int)Main.tile[x, y].wall > 0 || (int)Main.tile[x, y].color() > 0 && Main.tile[x, y].active()))
{
this.showItemIcon = true;
if (this.itemTime == 0 && this.itemAnimation > 0 && this.controlUseItem)
{
if ((int)Main.tile[x, y].color() > 0 && Main.tile[x, y].active() && WorldGen.paintTile(x, y, (byte)0, true))
this.itemTime = this.inventory[this.selectedItem].useTime;
else if ((int)Main.tile[x, y].wallColor() > 0 && (int)Main.tile[x, y].wall > 0 && WorldGen.paintWall(x, y, (byte)0, true))
this.itemTime = this.inventory[this.selectedItem].useTime;
}
}
}
if ((this.inventory[this.selectedItem].itemId == 929 || this.inventory[this.selectedItem].itemId == 1338 || this.inventory[this.selectedItem].itemId == 1345) && ((double)this.position.X / 16.0 - (double)Player.tileRangeX - (double)this.inventory[this.selectedItem].tileBoost - (double)this.blockRange <= (double)Player.tileTargetX && ((double)this.position.X + (double)this.width) / 16.0 + (double)Player.tileRangeX + (double)this.inventory[this.selectedItem].tileBoost - 1.0 + (double)this.blockRange >= (double)Player.tileTargetX && ((double)this.position.Y / 16.0 - (double)Player.tileRangeY - (double)this.inventory[this.selectedItem].tileBoost - (double)this.blockRange <= (double)Player.tileTargetY && ((double)this.position.Y + (double)this.height) / 16.0 + (double)Player.tileRangeY + (double)this.inventory[this.selectedItem].tileBoost - 2.0 + (double)this.blockRange >= (double)Player.tileTargetY)))
{
int index1 = Player.tileTargetX;
int index2 = Player.tileTargetY;
if (Main.tile[index1, index2].active() && (int)Main.tile[index1, index2].type == 209)
{
int num1 = 0;
if ((int)Main.tile[index1, index2].frameX < 72)
{
if (this.inventory[this.selectedItem].itemId == 929)
num1 = 1;
}
else if ((int)Main.tile[index1, index2].frameX < 144)
{
if (this.inventory[this.selectedItem].itemId == 1338)
num1 = 2;
}
else if ((int)Main.tile[index1, index2].frameX < 288 && this.inventory[this.selectedItem].itemId == 1345)
num1 = 3;
if (num1 > 0)
{
this.showItemIcon = true;
if (this.itemTime == 0 && this.itemAnimation > 0 && this.controlUseItem)
{
int num2 = (int)Main.tile[index1, index2].frameX / 18;
int num3 = 0;
int num4 = 0;
while (num2 >= 4)
{
++num3;
num2 -= 4;
}
int num5 = index1 - num2;
int num6 = (int)Main.tile[index1, index2].frameY / 18;
while (num6 >= 3)
{
++num4;
num6 -= 3;
}
int num7 = index2 - num6;
this.itemTime = this.inventory[this.selectedItem].useTime;
float num8 = 14f;
float num9 = 0.0f;
float num10 = 0.0f;
int Type = 162;
if (num1 == 2)
Type = 281;
if (num1 == 3)
Type = 178;
int Damage = this.inventory[this.selectedItem].damage;
int num11 = 8;
if (num4 == 0)
{
num9 = 10f;
num10 = 0.0f;
}
if (num4 == 1)
{
num9 = 7.5f;
num10 = -2.5f;
}
if (num4 == 2)
{
num9 = 5f;
num10 = -5f;
}
if (num4 == 3)
{
num9 = 2.75f;
num10 = -6f;
}
if (num4 == 4)
{
num9 = 0.0f;
num10 = -10f;
}
if (num4 == 5)
{
num9 = -2.75f;
num10 = -6f;
}
if (num4 == 6)
{
num9 = -5f;
num10 = -5f;
}
if (num4 == 7)
{
num9 = -7.5f;
num10 = -2.5f;
}
if (num4 == 8)
{
num9 = -10f;
num10 = 0.0f;
}
Vector2 vector2 = new Vector2((float)((num5 + 2) * 16), (float)((num7 + 2) * 16));
float num12 = num9;
float num13 = num10;
float num14 = (float)Math.Sqrt((double)num12 * (double)num12 + (double)num13 * (double)num13);
float num15 = num8 / num14;
float SpeedX = num12 * num15;
float SpeedY = num13 * num15;
Projectile.NewProjectile(vector2.X, vector2.Y, SpeedX, SpeedY, Type, Damage, (float)num11, Main.myPlayer, 0.0f, 0.0f);
}
}
}
}
if (this.inventory[this.selectedItem].itemId >= 1874 && this.inventory[this.selectedItem].itemId <= 1905 && (Main.tile[Player.tileTargetX, Player.tileTargetY].active() && (int)Main.tile[Player.tileTargetX, Player.tileTargetY].type == 171) && ((double)this.position.X / 16.0 - (double)Player.tileRangeX - (double)this.inventory[this.selectedItem].tileBoost - (double)this.blockRange <= (double)Player.tileTargetX && ((double)this.position.X + (double)this.width) / 16.0 + (double)Player.tileRangeX + (double)this.inventory[this.selectedItem].tileBoost - 1.0 + (double)this.blockRange >= (double)Player.tileTargetX && ((double)this.position.Y / 16.0 - (double)Player.tileRangeY - (double)this.inventory[this.selectedItem].tileBoost - (double)this.blockRange <= (double)Player.tileTargetY && ((double)this.position.Y + (double)this.height) / 16.0 + (double)Player.tileRangeY + (double)this.inventory[this.selectedItem].tileBoost - 2.0 + (double)this.blockRange >= (double)Player.tileTargetY)) && (this.itemTime == 0 && this.itemAnimation > 0 && this.controlUseItem))
{
int num = this.inventory[this.selectedItem].itemId;
if (num >= 1874 && num <= 1877)
{
int style = num - 1873;
if (WorldGen.checkXmasTreeDrop(Player.tileTargetX, Player.tileTargetY, 0) != style)
{
this.itemTime = this.inventory[this.selectedItem].useTime;
WorldGen.dropXmasTree(Player.tileTargetX, Player.tileTargetY, 0);
WorldGen.setXmasTree(Player.tileTargetX, Player.tileTargetY, 0, style);
int tileX = Player.tileTargetX;
int tileY = Player.tileTargetY;
if ((int)Main.tile[Player.tileTargetX, Player.tileTargetY].frameX < 10)
{
tileX -= (int)Main.tile[Player.tileTargetX, Player.tileTargetY].frameX;
tileY -= (int)Main.tile[Player.tileTargetX, Player.tileTargetY].frameY;
}
NetMessage.SendTileSquare(-1, tileX, tileY, 1);
}
}
else if (num >= 1878 && num <= 1883)
{
int style = num - 1877;
if (WorldGen.checkXmasTreeDrop(Player.tileTargetX, Player.tileTargetY, 1) != style)
{
this.itemTime = this.inventory[this.selectedItem].useTime;
WorldGen.dropXmasTree(Player.tileTargetX, Player.tileTargetY, 1);
WorldGen.setXmasTree(Player.tileTargetX, Player.tileTargetY, 1, style);
int tileX = Player.tileTargetX;
int tileY = Player.tileTargetY;
if ((int)Main.tile[Player.tileTargetX, Player.tileTargetY].frameX < 10)
{
tileX -= (int)Main.tile[Player.tileTargetX, Player.tileTargetY].frameX;
tileY -= (int)Main.tile[Player.tileTargetX, Player.tileTargetY].frameY;
}
NetMessage.SendTileSquare(-1, tileX, tileY, 1);
}
}
else if (num >= 1884 && num <= 1894)
{
int style = num - 1883;
if (WorldGen.checkXmasTreeDrop(Player.tileTargetX, Player.tileTargetY, 2) != style)
{
this.itemTime = this.inventory[this.selectedItem].useTime;
WorldGen.dropXmasTree(Player.tileTargetX, Player.tileTargetY, 2);
WorldGen.setXmasTree(Player.tileTargetX, Player.tileTargetY, 2, style);
int tileX = Player.tileTargetX;
int tileY = Player.tileTargetY;
if ((int)Main.tile[Player.tileTargetX, Player.tileTargetY].frameX < 10)
{
tileX -= (int)Main.tile[Player.tileTargetX, Player.tileTargetY].frameX;
tileY -= (int)Main.tile[Player.tileTargetX, Player.tileTargetY].frameY;
}
NetMessage.SendTileSquare(-1, tileX, tileY, 1);
}
}
else if (num >= 1895 && num <= 1905)
{
int style = num - 1894;
if (WorldGen.checkXmasTreeDrop(Player.tileTargetX, Player.tileTargetY, 3) != style)
{
this.itemTime = this.inventory[this.selectedItem].useTime;
WorldGen.dropXmasTree(Player.tileTargetX, Player.tileTargetY, 3);
WorldGen.setXmasTree(Player.tileTargetX, Player.tileTargetY, 3, style);
int tileX = Player.tileTargetX;
int tileY = Player.tileTargetY;
if ((int)Main.tile[Player.tileTargetX, Player.tileTargetY].frameX < 10)
{
tileX -= (int)Main.tile[Player.tileTargetX, Player.tileTargetY].frameX;
tileY -= (int)Main.tile[Player.tileTargetX, Player.tileTargetY].frameY;
}
NetMessage.SendTileSquare(-1, tileX, tileY, 1);
}
}
}
if (ItemID.Sets.ExtractinatorMode[this.inventory[this.selectedItem].itemId] >= 0 && Main.tile[Player.tileTargetX, Player.tileTargetY].active() && (int)Main.tile[Player.tileTargetX, Player.tileTargetY].type == 219)
{
if ((double)this.position.X / 16.0 - (double)Player.tileRangeX - (double)this.inventory[this.selectedItem].tileBoost - (double)this.blockRange <= (double)Player.tileTargetX && ((double)this.position.X + (double)this.width) / 16.0 + (double)Player.tileRangeX + (double)this.inventory[this.selectedItem].tileBoost - 1.0 + (double)this.blockRange >= (double)Player.tileTargetX && ((double)this.position.Y / 16.0 - (double)Player.tileRangeY - (double)this.inventory[this.selectedItem].tileBoost - (double)this.blockRange <= (double)Player.tileTargetY && ((double)this.position.Y + (double)this.height) / 16.0 + (double)Player.tileRangeY + (double)this.inventory[this.selectedItem].tileBoost - 2.0 + (double)this.blockRange >= (double)Player.tileTargetY) && (this.itemTime == 0 && this.itemAnimation > 0 && this.controlUseItem))
{
this.itemTime = this.inventory[this.selectedItem].useTime;
Main.PlaySound(7, -1, -1, 1);
Player.ExtractinatorUse(ItemID.Sets.ExtractinatorMode[this.inventory[this.selectedItem].itemId]);
}
}
else if (this.inventory[this.selectedItem].createTile >= 0 && (double)this.position.X / 16.0 - (double)Player.tileRangeX - (double)this.inventory[this.selectedItem].tileBoost - (double)this.blockRange <= (double)Player.tileTargetX && (((double)this.position.X + (double)this.width) / 16.0 + (double)Player.tileRangeX + (double)this.inventory[this.selectedItem].tileBoost - 1.0 + (double)this.blockRange >= (double)Player.tileTargetX && (double)this.position.Y / 16.0 - (double)Player.tileRangeY - (double)this.inventory[this.selectedItem].tileBoost - (double)this.blockRange <= (double)Player.tileTargetY) && ((double)this.position.Y + (double)this.height) / 16.0 + (double)Player.tileRangeY + (double)this.inventory[this.selectedItem].tileBoost - 2.0 + (double)this.blockRange >= (double)Player.tileTargetY)
{
this.showItemIcon = true;
bool flag1 = false;
if ((int)Main.tile[Player.tileTargetX, Player.tileTargetY].liquid > 0 && Main.tile[Player.tileTargetX, Player.tileTargetY].lava())
{
if (Main.tileSolid[this.inventory[this.selectedItem].createTile])
flag1 = true;
else if (!TileObjectData.CheckLiquidPlacement(this.inventory[this.selectedItem].createTile, this.inventory[this.selectedItem].placeStyle, Main.tile[Player.tileTargetX, Player.tileTargetY]))
flag1 = true;
}
bool flag2 = true;
if (this.inventory[this.selectedItem].tileWand > 0)
{
int num = this.inventory[this.selectedItem].tileWand;
flag2 = false;
for (int index = 0; index < 58; ++index)
{
if (num == this.inventory[index].itemId && this.inventory[index].stack > 0)
{
flag2 = true;
break;
}
}
}
if (Main.tileRope[this.inventory[this.selectedItem].createTile] && flag2 && (Main.tile[Player.tileTargetX, Player.tileTargetY].active() && Main.tileRope[(int)Main.tile[Player.tileTargetX, Player.tileTargetY].type]))
{
int index1 = Player.tileTargetY;
int index2 = Player.tileTargetX;
int num = this.inventory[this.selectedItem].createTile;
while (Main.tile[index2, index1].active() && Main.tileRope[(int)Main.tile[index2, index1].type] && (index1 < Main.maxTilesX - 5 && Main.tile[index2, index1 + 2] != null) && !Main.tile[index2, index1 + 1].lava())
{
++index1;
if (Main.tile[index2, index1] == null)
{
flag2 = false;
index1 = Player.tileTargetY;
}
}
if (!Main.tile[index2, index1].active())
Player.tileTargetY = index1;
}
if (flag2 && (!Main.tile[Player.tileTargetX, Player.tileTargetY].active() && !flag1 || Main.tileCut[(int)Main.tile[Player.tileTargetX, Player.tileTargetY].type] || ((int)Main.tile[Player.tileTargetX, Player.tileTargetY].type >= 373 && (int)Main.tile[Player.tileTargetX, Player.tileTargetY].type <= 375 || (this.inventory[this.selectedItem].createTile == 199 || this.inventory[this.selectedItem].createTile == 23)) || (this.inventory[this.selectedItem].createTile == 2 || this.inventory[this.selectedItem].createTile == 109 || (this.inventory[this.selectedItem].createTile == 60 || this.inventory[this.selectedItem].createTile == 70) || TileID.Sets.BreakableWhenPlacing[(int)Main.tile[Player.tileTargetX, Player.tileTargetY].type])) && (this.itemTime == 0 && this.itemAnimation > 0 && this.controlUseItem))
{
bool flag3 = false;
bool flag4 = false;
TileObject objectData = new TileObject();
if (TileObjectData.CustomPlace(this.inventory[this.selectedItem].createTile, this.inventory[this.selectedItem].placeStyle) && this.inventory[this.selectedItem].createTile != 82)
{
flag4 = true;
flag3 = TileObject.CanPlace(Player.tileTargetX, Player.tileTargetY, (int)(ushort)this.inventory[this.selectedItem].createTile, this.inventory[this.selectedItem].placeStyle, this.direction, out objectData, false);
}
else
{
if (this.inventory[this.selectedItem].itemId == 213)
{
if ((int)Main.tile[Player.tileTargetX, Player.tileTargetY].type == 0 || (int)Main.tile[Player.tileTargetX, Player.tileTargetY].type == 1)
flag3 = true;
}
else if (this.inventory[this.selectedItem].createTile == 23 || this.inventory[this.selectedItem].createTile == 2 || (this.inventory[this.selectedItem].createTile == 109 || this.inventory[this.selectedItem].createTile == 199))
{
if (Main.tile[Player.tileTargetX, Player.tileTargetY].nactive() && (int)Main.tile[Player.tileTargetX, Player.tileTargetY].type == 0)
flag3 = true;
}
else if (this.inventory[this.selectedItem].createTile == 227)
flag3 = true;
else if (this.inventory[this.selectedItem].createTile >= 373 && this.inventory[this.selectedItem].createTile <= 375)
{
int index1 = Player.tileTargetX;
int index2 = Player.tileTargetY - 1;
if (Main.tile[index1, index2].nactive() && Main.tileSolid[(int)Main.tile[index1, index2].type] && !Main.tileSolidTop[(int)Main.tile[index1, index2].type])
flag3 = true;
}
else if (this.inventory[this.selectedItem].createTile == 60 || this.inventory[this.selectedItem].createTile == 70)
{
if (Main.tile[Player.tileTargetX, Player.tileTargetY].nactive() && (int)Main.tile[Player.tileTargetX, Player.tileTargetY].type == 59)
flag3 = true;
}
else if (this.inventory[this.selectedItem].createTile == 4 || this.inventory[this.selectedItem].createTile == 136)
{
if ((int)Main.tile[Player.tileTargetX, Player.tileTargetY].wall > 0)
{
flag3 = true;
}
else
{
if (!WorldGen.SolidTileNoAttach(Player.tileTargetX, Player.tileTargetY + 1) && !WorldGen.SolidTileNoAttach(Player.tileTargetX - 1, Player.tileTargetY) && !WorldGen.SolidTileNoAttach(Player.tileTargetX + 1, Player.tileTargetY))
{
if (!WorldGen.SolidTileNoAttach(Player.tileTargetX, Player.tileTargetY + 1) && (Main.tile[Player.tileTargetX, Player.tileTargetY + 1].halfBrick() || (int)Main.tile[Player.tileTargetX, Player.tileTargetY + 1].slope() != 0))
{
if ((int)Main.tile[Player.tileTargetX, Player.tileTargetY + 1].type != 19)
{
WorldGen.SlopeTile(Player.tileTargetX, Player.tileTargetY + 1, 0);
if (Main.netMode == 1)
NetMessage.SendData(17, -1, -1, "", 14, (float)Player.tileTargetX, (float)(Player.tileTargetY + 1), 0.0f, 0, 0, 0);
}
}
else if (!WorldGen.SolidTileNoAttach(Player.tileTargetX, Player.tileTargetY + 1) && !WorldGen.SolidTileNoAttach(Player.tileTargetX - 1, Player.tileTargetY) && (Main.tile[Player.tileTargetX - 1, Player.tileTargetY].halfBrick() || (int)Main.tile[Player.tileTargetX - 1, Player.tileTargetY].slope() != 0))
{
if ((int)Main.tile[Player.tileTargetX, Player.tileTargetY + 1].type != 19)
{
WorldGen.SlopeTile(Player.tileTargetX - 1, Player.tileTargetY, 0);
if (Main.netMode == 1)
NetMessage.SendData(17, -1, -1, "", 14, (float)(Player.tileTargetX - 1), (float)Player.tileTargetY, 0.0f, 0, 0, 0);
}
}
else if (!WorldGen.SolidTileNoAttach(Player.tileTargetX, Player.tileTargetY + 1) && !WorldGen.SolidTileNoAttach(Player.tileTargetX - 1, Player.tileTargetY) && !WorldGen.SolidTileNoAttach(Player.tileTargetX + 1, Player.tileTargetY) && ((Main.tile[Player.tileTargetX + 1, Player.tileTargetY].halfBrick() || (int)Main.tile[Player.tileTargetX + 1, Player.tileTargetY].slope() != 0) && (int)Main.tile[Player.tileTargetX, Player.tileTargetY + 1].type != 19))
{
WorldGen.SlopeTile(Player.tileTargetX + 1, Player.tileTargetY, 0);
if (Main.netMode == 1)
NetMessage.SendData(17, -1, -1, "", 14, (float)(Player.tileTargetX + 1), (float)Player.tileTargetY, 0.0f, 0, 0, 0);
}
}
int index1 = (int)Main.tile[Player.tileTargetX, Player.tileTargetY + 1].type;
if (Main.tile[Player.tileTargetX, Player.tileTargetY].halfBrick())
index1 = -1;
int index2 = (int)Main.tile[Player.tileTargetX - 1, Player.tileTargetY].type;
int index3 = (int)Main.tile[Player.tileTargetX + 1, Player.tileTargetY].type;
int num1 = (int)Main.tile[Player.tileTargetX - 1, Player.tileTargetY - 1].type;
int num2 = (int)Main.tile[Player.tileTargetX + 1, Player.tileTargetY - 1].type;
int num3 = (int)Main.tile[Player.tileTargetX - 1, Player.tileTargetY - 1].type;
int num4 = (int)Main.tile[Player.tileTargetX + 1, Player.tileTargetY + 1].type;
if (!Main.tile[Player.tileTargetX, Player.tileTargetY + 1].nactive())
index1 = -1;
if (!Main.tile[Player.tileTargetX - 1, Player.tileTargetY].nactive())
index2 = -1;
if (!Main.tile[Player.tileTargetX + 1, Player.tileTargetY].nactive())
index3 = -1;
if (!Main.tile[Player.tileTargetX - 1, Player.tileTargetY - 1].nactive())
num1 = -1;
if (!Main.tile[Player.tileTargetX + 1, Player.tileTargetY - 1].nactive())
num2 = -1;
if (!Main.tile[Player.tileTargetX - 1, Player.tileTargetY + 1].nactive())
num3 = -1;
if (!Main.tile[Player.tileTargetX + 1, Player.tileTargetY + 1].nactive())
num4 = -1;
if (index1 >= 0 && Main.tileSolid[index1] && (!Main.tileNoAttach[index1] || index1 == 19))
flag3 = true;
else if (index2 >= 0 && Main.tileSolid[index2] && !Main.tileNoAttach[index2] || index2 == 5 && num1 == 5 && num3 == 5 || index2 == 124)
flag3 = true;
else if (index3 >= 0 && Main.tileSolid[index3] && !Main.tileNoAttach[index3] || index3 == 5 && num2 == 5 && num4 == 5 || index3 == 124)
flag3 = true;
}
}
else if (this.inventory[this.selectedItem].createTile == 78 || this.inventory[this.selectedItem].createTile == 98 || (this.inventory[this.selectedItem].createTile == 100 || this.inventory[this.selectedItem].createTile == 173) || (this.inventory[this.selectedItem].createTile == 174 || this.inventory[this.selectedItem].createTile == 324))
{
if (Main.tile[Player.tileTargetX, Player.tileTargetY + 1].nactive() && (Main.tileSolid[(int)Main.tile[Player.tileTargetX, Player.tileTargetY + 1].type] || Main.tileTable[(int)Main.tile[Player.tileTargetX, Player.tileTargetY + 1].type]))
flag3 = true;
}
else if (this.inventory[this.selectedItem].createTile == 13 || this.inventory[this.selectedItem].createTile == 29 || (this.inventory[this.selectedItem].createTile == 33 || this.inventory[this.selectedItem].createTile == 49) || (this.inventory[this.selectedItem].createTile == 50 || this.inventory[this.selectedItem].createTile == 103))
{
if (Main.tile[Player.tileTargetX, Player.tileTargetY + 1].nactive() && Main.tileTable[(int)Main.tile[Player.tileTargetX, Player.tileTargetY + 1].type])
flag3 = true;
}
else if (this.inventory[this.selectedItem].createTile == 275 || this.inventory[this.selectedItem].createTile == 276 || this.inventory[this.selectedItem].createTile == 277)
flag3 = true;
else if (this.inventory[this.selectedItem].createTile == 51 || this.inventory[this.selectedItem].createTile == 330 || (this.inventory[this.selectedItem].createTile == 331 || this.inventory[this.selectedItem].createTile == 332) || (this.inventory[this.selectedItem].createTile == 333 || this.inventory[this.selectedItem].createTile == 336 || (this.inventory[this.selectedItem].createTile == 340 || this.inventory[this.selectedItem].createTile == 342)) || (this.inventory[this.selectedItem].createTile == 341 || this.inventory[this.selectedItem].createTile == 343 || (this.inventory[this.selectedItem].createTile == 344 || this.inventory[this.selectedItem].createTile == 379) || this.inventory[this.selectedItem].createTile == 351))
{
if (Main.tile[Player.tileTargetX + 1, Player.tileTargetY].active() || (int)Main.tile[Player.tileTargetX + 1, Player.tileTargetY].wall > 0 || (Main.tile[Player.tileTargetX - 1, Player.tileTargetY].active() || (int)Main.tile[Player.tileTargetX - 1, Player.tileTargetY].wall > 0) || (Main.tile[Player.tileTargetX, Player.tileTargetY + 1].active() || (int)Main.tile[Player.tileTargetX, Player.tileTargetY + 1].wall > 0 || (Main.tile[Player.tileTargetX, Player.tileTargetY - 1].active() || (int)Main.tile[Player.tileTargetX, Player.tileTargetY - 1].wall > 0)))
flag3 = true;
}
else if (this.inventory[this.selectedItem].createTile == 314)
{
for (int index1 = Player.tileTargetX - 1; index1 <= Player.tileTargetX + 1; ++index1)
{
for (int index2 = Player.tileTargetY - 1; index2 <= Player.tileTargetY + 1; ++index2)
{
Tile tile = Main.tile[index1, index2];
if (tile.active() || (int)tile.wall > 0)
{
flag3 = true;
break;
}
}
}
}
else
{
Tile tile1 = Main.tile[Player.tileTargetX - 1, Player.tileTargetY];
Tile tile2 = Main.tile[Player.tileTargetX + 1, Player.tileTargetY];
Tile tile3 = Main.tile[Player.tileTargetX, Player.tileTargetY - 1];
Tile tile4 = Main.tile[Player.tileTargetX, Player.tileTargetY + 1];
if (tile2.active() && (Main.tileSolid[(int)tile2.type] || Main.tileRope[(int)tile2.type] || (int)tile2.type == 314) || (int)tile2.wall > 0 || (tile1.active() && (Main.tileSolid[(int)tile1.type] || Main.tileRope[(int)tile1.type] || (int)tile1.type == 314) || (int)tile1.wall > 0) || (tile4.active() && (Main.tileSolid[(int)tile4.type] || (int)tile4.type == 124 || (Main.tileRope[(int)tile4.type] || (int)tile4.type == 314)) || (int)tile4.wall > 0 || (tile3.active() && (Main.tileSolid[(int)tile3.type] || (int)tile3.type == 124 || (Main.tileRope[(int)tile3.type] || (int)tile3.type == 314)) || (int)tile3.wall > 0)))
flag3 = true;
}
if (this.inventory[this.selectedItem].itemId == 213 && Main.tile[Player.tileTargetX, Player.tileTargetY].active())
{
int index1 = Player.tileTargetX;
int index2 = Player.tileTargetY;
if ((int)Main.tile[index1, index2].type == 3 || (int)Main.tile[index1, index2].type == 73 || (int)Main.tile[index1, index2].type == 84)
{
WorldGen.KillTile(Player.tileTargetX, Player.tileTargetY, false, false, false);
if (!Main.tile[Player.tileTargetX, Player.tileTargetY].active() && Main.netMode == 1)
NetMessage.SendData(17, -1, -1, "", 0, (float)Player.tileTargetX, (float)Player.tileTargetY, 0.0f, 0, 0, 0);
}
else if ((int)Main.tile[index1, index2].type == 83)
{
bool flag5 = false;
int num = (int)Main.tile[index1, index2].frameX / 18;
if (num == 0 && Main.dayTime)
flag5 = true;
if (num == 1 && !Main.dayTime)
flag5 = true;
if (num == 3 && !Main.dayTime && (Main.bloodMoon || Main.moonPhase == 0))
flag5 = true;
if (num == 4 && (Main.raining || (double)Main.cloudAlpha > 0.0))
flag5 = true;
if (num == 5 && !Main.raining && (Main.dayTime && Main.time > 40500.0))
flag5 = true;
if (flag5)
{
WorldGen.KillTile(Player.tileTargetX, Player.tileTargetY, false, false, false);
NetMessage.SendData(17, -1, -1, "", 0, (float)Player.tileTargetX, (float)Player.tileTargetY, 0.0f, 0, 0, 0);
}
}
}
if (Main.tileAlch[this.inventory[this.selectedItem].createTile])
flag3 = true;
if (Main.tile[Player.tileTargetX, Player.tileTargetY].active() && (Main.tileCut[(int)Main.tile[Player.tileTargetX, Player.tileTargetY].type] || TileID.Sets.BreakableWhenPlacing[(int)Main.tile[Player.tileTargetX, Player.tileTargetY].type] || (int)Main.tile[Player.tileTargetX, Player.tileTargetY].type >= 373 && (int)Main.tile[Player.tileTargetX, Player.tileTargetY].type <= 375))
{
if ((int)Main.tile[Player.tileTargetX, Player.tileTargetY].type != this.inventory[this.selectedItem].createTile)
{
if ((int)Main.tile[Player.tileTargetX, Player.tileTargetY + 1].type != 78 && (int)Main.tile[Player.tileTargetX, Player.tileTargetY + 1].type != 380 || ((int)Main.tile[Player.tileTargetX, Player.tileTargetY].type == 3 || (int)Main.tile[Player.tileTargetX, Player.tileTargetY].type == 73) && Main.tileAlch[this.inventory[this.selectedItem].createTile])
{
WorldGen.KillTile(Player.tileTargetX, Player.tileTargetY, false, false, false);
if (!Main.tile[Player.tileTargetX, Player.tileTargetY].active() && Main.netMode == 1)
NetMessage.SendData(17, -1, -1, "", 4, (float)Player.tileTargetX, (float)Player.tileTargetY, 0.0f, 0, 0, 0);
}
else
flag3 = false;
}
else
flag3 = false;
}
if (!flag3 && this.inventory[this.selectedItem].createTile == 19)
{
for (int index1 = Player.tileTargetX - 1; index1 <= Player.tileTargetX + 1; ++index1)
{
for (int index2 = Player.tileTargetY - 1; index2 <= Player.tileTargetY + 1; ++index2)
{
if (Main.tile[index1, index2].active())
{
flag3 = true;
break;
}
}
}
}
}
if (flag3)
{
int num1 = this.inventory[this.selectedItem].placeStyle;
if (!flag4)
{
if (this.inventory[this.selectedItem].createTile == 36)
num1 = Main.rand.Next(7);
if (this.inventory[this.selectedItem].createTile == 212 && this.direction > 0)
num1 = 1;
if (this.inventory[this.selectedItem].createTile == 141)
num1 = Main.rand.Next(2);
if (this.inventory[this.selectedItem].createTile == 128 || this.inventory[this.selectedItem].createTile == 269 || this.inventory[this.selectedItem].createTile == 334)
num1 = this.direction >= 0 ? 1 : -1;
if (this.inventory[this.selectedItem].createTile == 241 && this.inventory[this.selectedItem].placeStyle == 0)
num1 = Main.rand.Next(0, 9);
if (this.inventory[this.selectedItem].createTile == 35 && this.inventory[this.selectedItem].placeStyle == 0)
num1 = Main.rand.Next(9);
}
if (this.inventory[this.selectedItem].createTile == 314 && num1 == 2 && this.direction == 1)
++num1;
int[,] numArray = new int[11, 11];
if (this.autoPaint)
{
for (int index1 = 0; index1 < 11; ++index1)
{
for (int index2 = 0; index2 < 11; ++index2)
{
int index3 = Player.tileTargetX - 5 + index1;
int index4 = Player.tileTargetY - 5 + index2;
numArray[index1, index2] = !Main.tile[index3, index4].active() ? -1 : (int)Main.tile[index3, index4].type;
}
}
}
bool forced = false;
bool flag5;
if (flag4)
{
flag5 = TileObject.Place(objectData);
WorldGen.SquareTileFrame(Player.tileTargetX, Player.tileTargetY, true);
Main.PlaySound(0, Player.tileTargetX * 16, Player.tileTargetY * 16, 1);
}
else
flag5 = WorldGen.PlaceTile(Player.tileTargetX, Player.tileTargetY, this.inventory[this.selectedItem].createTile, false, forced, this.whoAmI, num1);
if (this.inventory[this.selectedItem].itemId == 213 && !flag5 && ((int)Main.tile[Player.tileTargetX, Player.tileTargetY].type == 1 && Main.tile[Player.tileTargetX, Player.tileTargetY].active()))
{
int num2 = 0;
int num3 = 0;
Point point = Utils.ToTileCoordinates(this.Center);
Dictionary<ushort, int> resultsOutput = new Dictionary<ushort, int>();
WorldUtils.Gen(new Point(point.X - 25, point.Y - 25), (GenShape)new Shapes.Rectangle(50, 50), (GenAction)new Actions.TileScanner(new ushort[6]
{
(ushort) 182,
(ushort) 180,
(ushort) 179,
(ushort) 183,
(ushort) 181,
(ushort) 381
}).Output(resultsOutput));
foreach (KeyValuePair<ushort, int> keyValuePair in resultsOutput)
{
if (keyValuePair.Value > num3)
{
num3 = keyValuePair.Value;
num2 = (int)keyValuePair.Key;
}
}
if (num3 == 0)
num2 = Utils.SelectRandom<int>(Main.rand, 182, 180, 179, 183, 181);
if (num2 != 0)
{
Main.tile[Player.tileTargetX, Player.tileTargetY].type = (ushort)num2;
WorldGen.SquareTileFrame(Player.tileTargetX, Player.tileTargetY, true);
NetMessage.SendTileSquare(-1, Player.tileTargetX, Player.tileTargetY, 1);
flag5 = true;
}
}
if (flag5)
{
this.itemTime = (int)((double)this.inventory[this.selectedItem].useTime * (double)this.tileSpeed);
if (flag4)
{
TileObjectData.CallPostPlacementPlayerHook(Player.tileTargetX, Player.tileTargetY, this.inventory[this.selectedItem].createTile, num1, this.direction, objectData);
if (Main.netMode == 1 && !Main.tileContainer[this.inventory[this.selectedItem].createTile])
NetMessage.SendObjectPlacment(-1, Player.tileTargetX, Player.tileTargetY, objectData.type, objectData.style, objectData.alternate, objectData.random, this.direction);
}
else
{
NetMessage.SendData(17, -1, -1, "", 1, (float)Player.tileTargetX, (float)Player.tileTargetY, (float)this.inventory[this.selectedItem].createTile, num1, 0, 0);
if (this.inventory[this.selectedItem].createTile == 15)
{
if (this.direction == 1)
{
Main.tile[Player.tileTargetX, Player.tileTargetY].frameX += (short)18;
Main.tile[Player.tileTargetX, Player.tileTargetY - 1].frameX += (short)18;
}
if (Main.netMode == 1)
NetMessage.SendTileSquare(-1, Player.tileTargetX - 1, Player.tileTargetY - 1, 3);
}
else if ((this.inventory[this.selectedItem].createTile == 79 || this.inventory[this.selectedItem].createTile == 90) && Main.netMode == 1)
NetMessage.SendTileSquare(-1, Player.tileTargetX, Player.tileTargetY, 5);
}
if (this.inventory[this.selectedItem].createTile == 137)
{
if (this.direction == 1)
Main.tile[Player.tileTargetX, Player.tileTargetY].frameX += (short)18;
if (Main.netMode == 1)
NetMessage.SendTileSquare(-1, Player.tileTargetX, Player.tileTargetY, 1);
}
if (this.inventory[this.selectedItem].createTile == 19 && Main.smartDigEnabled)
{
int index1 = Player.tileTargetX;
int index2 = Player.tileTargetY;
int slope1 = -1;
int num2 = 0;
int num3 = 0;
bool flag6 = true;
for (int index3 = -1; index3 < 2; ++index3)
{
for (int index4 = -1; index4 < 2; ++index4)
{
if ((index3 != 0 || index4 != 0) && (int)Main.tile[index1 + index3, index2 + index4].type == 19)
flag6 = false;
}
}
if (!flag6)
{
Tile tile1 = Main.tile[index1 - 1, index2 - 1];
if (tile1.active() && (int)tile1.type == 19 && (int)tile1.slope() != 2)
++num2;
Tile tile2 = Main.tile[index1 - 1, index2 + 1];
if (tile2.active() && (int)tile2.type == 19 && (int)tile2.slope() != 1)
++num3;
Tile tile3 = Main.tile[index1 + 1, index2 - 1];
if (tile3.active() && (int)tile3.type == 19 && (int)tile3.slope() != 1)
++num3;
Tile tile4 = Main.tile[index1 + 1, index2 + 1];
if (tile4.active() && (int)tile4.type == 19 && (int)tile4.slope() != 2)
++num2;
Tile testTile1 = Main.tile[index1 - 1, index2];
if (WorldGen.SolidTile(testTile1))
{
++num2;
if ((int)testTile1.type == 19 && (int)testTile1.slope() == 0)
++num2;
}
Tile testTile2 = Main.tile[index1 + 1, index2];
if (WorldGen.SolidTile(testTile2))
{
++num3;
if ((int)testTile2.type == 19 && (int)testTile2.slope() == 0)
++num3;
}
if (num2 > num3)
slope1 = 1;
else if (num3 > num2)
slope1 = 2;
Tile tile5 = Main.tile[index1 - 1, index2];
if (tile5.active() && (int)tile5.type == 19)
slope1 = 0;
Tile tile6 = Main.tile[index1 + 1, index2];
if (tile6.active() && (int)tile6.type == 19)
slope1 = 0;
if (slope1 != -1)
{
WorldGen.SlopeTile(index1, index2, slope1);
int num4 = (int)Main.tile[index1, index2].slope();
if (Main.netMode == 1)
NetMessage.SendData(17, -1, -1, "", 14, (float)Player.tileTargetX, (float)Player.tileTargetY, (float)num4, 0, 0, 0);
int num5;
int num6;
if (slope1 == 1)
{
num5 = -1;
num6 = -1;
}
else
{
num5 = 1;
num6 = -1;
}
Tile tile7 = Main.tile[index1 + num5, index2 + num6];
if (tile7.active() && (int)tile7.type == 19 && (int)tile7.slope() == 0 && (!Main.tile[index1 + num5 + num5, index2 + num6].active() || (int)Main.tile[index1 + num5 + num5, index2 + num6].type != 19 || !Main.tile[index1 + num5 + num5, index2 + num6].halfBrick()))
{
WorldGen.SlopeTile(index1 + num5, index2 + num6, slope1);
int num7 = (int)tile7.slope();
if (Main.netMode == 1)
NetMessage.SendData(17, -1, -1, "", 14, (float)(index1 + num5), (float)(index2 + num6), (float)num7, 0, 0, 0);
}
int num8;
int num9;
if (slope1 == 1)
{
num8 = 1;
num9 = 1;
}
else
{
num8 = -1;
num9 = 1;
}
Tile tile8 = Main.tile[index1 + num8, index2 + num9];
if (tile8.active() && (int)tile8.type == 19 && ((int)tile8.slope() == 0 && WorldGen.PlatformProperSides(index1 + num8, index2 + num9, true) <= 0))
{
WorldGen.SlopeTile(index1 + num8, index2 + num9, slope1);
int num7 = (int)tile8.slope();
if (Main.netMode == 1)
NetMessage.SendData(17, -1, -1, "", 14, (float)(index1 + num8), (float)(index2 + num9), (float)num7, 0, 0, 0);
}
}
else
{
int num4 = -1;
Tile tile7 = Main.tile[index1 + num4, index2];
if (tile7.active() && (int)tile7.type == 19 && (int)tile7.slope() != 0)
{
int num5 = Utils.ToDirectionInt((int)tile7.slope() == 1) * num4;
int slope2 = num5 == -1 ? 0 : (int)tile7.slope();
bool flag7 = true;
if (Main.tile[index1 + num4 * 2, index2 + num5].active() && (int)Main.tile[index1 + num4 * 2, index2].type == 19 && slope2 == (int)Main.tile[index1 + num4 * 2, index2 + num5].slope())
flag7 = false;
if (Main.tile[index1, index2 - num5].active() && (int)Main.tile[index1, index2 - num5].type == 19 && (int)tile7.slope() == (int)Main.tile[index1, index2 - num5].slope())
flag7 = false;
if (flag7)
{
WorldGen.SlopeTile(index1 + num4, index2, slope2);
int num6 = (int)tile7.slope();
if (Main.netMode == 1)
NetMessage.SendData(17, -1, -1, "", 14, (float)(index1 + num4), (float)index2, (float)num6, 0, 0, 0);
}
}
int num7 = 1;
int num8 = 0;
Tile tile8 = Main.tile[index1 + num7, index2 + num8];
if (tile8.active() && (int)tile8.type == 19 && (int)tile8.slope() != 0)
{
int num5 = Utils.ToDirectionInt((int)tile8.slope() == 1) * num7;
int slope2 = num5 == -1 ? 0 : (int)tile8.slope();
bool flag7 = true;
if (Main.tile[index1 + num7 * 2, index2 + num5].active() && (int)Main.tile[index1 + num7 * 2, index2].type == 19 && slope2 == (int)Main.tile[index1 + num7 * 2, index2 + num5].slope())
flag7 = false;
if (Main.tile[index1, index2 - num5].active() && (int)Main.tile[index1, index2 - num5].type == 19 && (int)tile8.slope() == (int)Main.tile[index1, index2 - num5].slope())
flag7 = false;
if (flag7)
{
WorldGen.SlopeTile(index1 + num7, index2, slope2);
int num6 = (int)tile8.slope();
if (Main.netMode == 1)
NetMessage.SendData(17, -1, -1, "", 14, (float)(index1 + num7), (float)index2, (float)num6, 0, 0, 0);
}
}
if (num2 == num3 && WorldGen.PlatformProperSides(index1, index2, false) == 0)
{
Tile tile9 = Main.tile[index1, index2 + 1];
if (tile9.active() && !tile9.halfBrick() && ((int)tile9.slope() == 0 && Main.tileSolid[(int)tile9.type]))
{
int slope2 = this.direction == 1 ? 2 : 1;
WorldGen.SlopeTile(index1, index2, slope2);
int num5 = (int)Main.tile[index1, index2].slope();
if (Main.netMode == 1)
NetMessage.SendData(17, -1, -1, "", 14, (float)Player.tileTargetX, (float)Player.tileTargetY, (float)num5, 0, 0, 0);
}
}
}
}
}
if (Main.tileSolid[this.inventory[this.selectedItem].createTile] && this.inventory[this.selectedItem].createTile != 19)
{
int i1 = Player.tileTargetX;
int j1 = Player.tileTargetY + 1;
if (Main.tile[i1, j1] != null && (int)Main.tile[i1, j1].type != 19 && (Main.tile[i1, j1].topSlope() || Main.tile[i1, j1].halfBrick()))
{
WorldGen.SlopeTile(i1, j1, 0);
if (Main.netMode == 1)
NetMessage.SendData(17, -1, -1, "", 14, (float)i1, (float)j1, 0.0f, 0, 0, 0);
}
int i2 = Player.tileTargetX;
int j2 = Player.tileTargetY - 1;
if (Main.tile[i2, j2] != null && (int)Main.tile[i2, j2].type != 19 && Main.tile[i2, j2].bottomSlope())
{
WorldGen.SlopeTile(i2, j2, 0);
if (Main.netMode == 1)
NetMessage.SendData(17, -1, -1, "", 14, (float)i2, (float)j2, 0.0f, 0, 0, 0);
}
}
if (Main.tileSolid[this.inventory[this.selectedItem].createTile])
{
for (int i1 = Player.tileTargetX - 1; i1 <= Player.tileTargetX + 1; ++i1)
{
for (int j1 = Player.tileTargetY - 1; j1 <= Player.tileTargetY + 1; ++j1)
{
if (Main.tile[i1, j1].active() && this.inventory[this.selectedItem].createTile != (int)Main.tile[i1, j1].type && ((int)Main.tile[i1, j1].type == 2 || (int)Main.tile[i1, j1].type == 23 || ((int)Main.tile[i1, j1].type == 60 || (int)Main.tile[i1, j1].type == 70) || ((int)Main.tile[i1, j1].type == 109 || (int)Main.tile[i1, j1].type == 199)))
{
bool flag6 = true;
for (int i2 = i1 - 1; i2 <= i1 + 1; ++i2)
{
for (int j2 = j1 - 1; j2 <= j1 + 1; ++j2)
{
if (!WorldGen.SolidTile(i2, j2))
flag6 = false;
}
}
if (flag6)
{
WorldGen.KillTile(i1, j1, true, false, false);
if (Main.netMode == 1)
NetMessage.SendData(17, -1, -1, "", 0, (float)i1, (float)j1, 1f, 0, 0, 0);
}
}
}
}
}
if (this.autoPaint)
{
for (int index1 = 0; index1 < 11; ++index1)
{
for (int index2 = 0; index2 < 11; ++index2)
{
int x = Player.tileTargetX - 5 + index1;
int y = Player.tileTargetY - 5 + index2;
if ((Main.tile[x, y].active() || numArray[index1, index2] != -1) && (!Main.tile[x, y].active() || numArray[index1, index2] != (int)Main.tile[x, y].type))
{
int num2 = -1;
int num3 = -1;
for (int index3 = 0; index3 < 58; ++index3)
{
if (this.inventory[index3].stack > 0 && (int)this.inventory[index3].paint > 0)
{
num2 = (int)this.inventory[index3].paint;
num3 = index3;
break;
}
}
if (num2 > 0 && (int)Main.tile[x, y].color() != num2 && WorldGen.paintTile(x, y, (byte)num2, true))
{
int index3 = num3;
--this.inventory[index3].stack;
if (this.inventory[index3].stack <= 0)
this.inventory[index3].SetDefaults(0, false);
this.itemTime = (int)((double)this.inventory[this.selectedItem].useTime * (double)this.tileSpeed);
}
}
}
}
}
}
}
}
}
if (this.inventory[this.selectedItem].createWall < 0 || (double)this.position.X / 16.0 - (double)Player.tileRangeX - (double)this.inventory[this.selectedItem].tileBoost > (double)Player.tileTargetX || (((double)this.position.X + (double)this.width) / 16.0 + (double)Player.tileRangeX + (double)this.inventory[this.selectedItem].tileBoost - 1.0 < (double)Player.tileTargetX || (double)this.position.Y / 16.0 - (double)Player.tileRangeY - (double)this.inventory[this.selectedItem].tileBoost > (double)Player.tileTargetY) || ((double)this.position.Y + (double)this.height) / 16.0 + (double)Player.tileRangeY + (double)this.inventory[this.selectedItem].tileBoost - 2.0 < (double)Player.tileTargetY)
return;
this.showItemIcon = true;
if (this.itemTime != 0 || this.itemAnimation <= 0 || !this.controlUseItem || !Main.tile[Player.tileTargetX + 1, Player.tileTargetY].active() && (int)Main.tile[Player.tileTargetX + 1, Player.tileTargetY].wall <= 0 && (!Main.tile[Player.tileTargetX - 1, Player.tileTargetY].active() && (int)Main.tile[Player.tileTargetX - 1, Player.tileTargetY].wall <= 0) && (!Main.tile[Player.tileTargetX, Player.tileTargetY + 1].active() && (int)Main.tile[Player.tileTargetX, Player.tileTargetY + 1].wall <= 0 && (!Main.tile[Player.tileTargetX, Player.tileTargetY - 1].active() && (int)Main.tile[Player.tileTargetX, Player.tileTargetY - 1].wall <= 0)) || (int)Main.tile[Player.tileTargetX, Player.tileTargetY].wall == this.inventory[this.selectedItem].createWall)
return;
if (Player.SmartCursorSettings.SmartWallReplacement && (int)Main.tile[Player.tileTargetX, Player.tileTargetY].wall != 0 && WorldGen.NearFriendlyWall(Player.tileTargetX, Player.tileTargetY))
{
WorldGen.KillWall(Player.tileTargetX, Player.tileTargetY, false);
if ((int)Main.tile[Player.tileTargetX, Player.tileTargetY].wall == 0 && Main.netMode == 1)
NetMessage.SendData(17, -1, -1, "", 2, (float)Player.tileTargetX, (float)Player.tileTargetY, 0.0f, 0, 0, 0);
if (this.inventory[this.selectedItem].consumable)
++this.inventory[this.selectedItem].stack;
this.itemTime = (int)((double)this.inventory[this.selectedItem].useTime * (double)this.wallSpeed);
}
else
{
WorldGen.PlaceWall(Player.tileTargetX, Player.tileTargetY, this.inventory[this.selectedItem].createWall, false);
if ((int)Main.tile[Player.tileTargetX, Player.tileTargetY].wall != this.inventory[this.selectedItem].createWall)
return;
this.itemTime = (int)((double)this.inventory[this.selectedItem].useTime * (double)this.wallSpeed);
if (Main.netMode == 1)
NetMessage.SendData(17, -1, -1, "", 3, (float)Player.tileTargetX, (float)Player.tileTargetY, (float)this.inventory[this.selectedItem].createWall, 0, 0, 0);
if (this.inventory[this.selectedItem].stack > 1)
{
int type = this.inventory[this.selectedItem].createWall;
for (int index1 = 0; index1 < 4; ++index1)
{
int i = Player.tileTargetX;
int j = Player.tileTargetY;
if (index1 == 0)
--i;
if (index1 == 1)
++i;
if (index1 == 2)
--j;
if (index1 == 3)
++j;
if ((int)Main.tile[i, j].wall == 0)
{
int num1 = 0;
for (int index2 = 0; index2 < 4; ++index2)
{
int index3 = i;
int index4 = j;
if (index2 == 0)
--index3;
if (index2 == 1)
++index3;
if (index2 == 2)
--index4;
if (index2 == 3)
++index4;
if ((int)Main.tile[index3, index4].wall == type)
++num1;
}
if (num1 == 4)
{
WorldGen.PlaceWall(i, j, type, false);
if ((int)Main.tile[i, j].wall == type)
{
--this.inventory[this.selectedItem].stack;
if (this.inventory[this.selectedItem].stack == 0)
this.inventory[this.selectedItem].SetDefaults(0, false);
if (Main.netMode == 1)
NetMessage.SendData(17, -1, -1, "", 3, (float)i, (float)j, (float)type, 0, 0, 0);
if (this.autoPaint)
{
int x = i;
int y = j;
int num2 = -1;
int num3 = -1;
for (int index2 = 0; index2 < 58; ++index2)
{
if (this.inventory[index2].stack > 0 && (int)this.inventory[index2].paint > 0)
{
num2 = (int)this.inventory[index2].paint;
num3 = index2;
break;
}
}
if (num2 > 0 && (int)Main.tile[x, y].wallColor() != num2 && WorldGen.paintWall(x, y, (byte)num2, true))
{
int index2 = num3;
--this.inventory[index2].stack;
if (this.inventory[index2].stack <= 0)
this.inventory[index2].SetDefaults(0, false);
this.itemTime = (int)((double)this.inventory[this.selectedItem].useTime * (double)this.wallSpeed);
}
}
}
}
}
}
}
if (!this.autoPaint)
return;
int x1 = Player.tileTargetX;
int y1 = Player.tileTargetY;
int num4 = -1;
int num5 = -1;
for (int index = 0; index < 58; ++index)
{
if (this.inventory[index].stack > 0 && (int)this.inventory[index].paint > 0)
{
num4 = (int)this.inventory[index].paint;
num5 = index;
break;
}
}
if (num4 <= 0 || (int)Main.tile[x1, y1].wallColor() == num4 || !WorldGen.paintWall(x1, y1, (byte)num4, true))
return;
int index5 = num5;
--this.inventory[index5].stack;
if (this.inventory[index5].stack <= 0)
this.inventory[index5].SetDefaults(0, false);
this.itemTime = (int)((double)this.inventory[this.selectedItem].useTime * (double)this.wallSpeed);
}
}