public static void HitSwitch(int i, int j)
{
if (Main.tile[i, j] == null)
return;
if ((int)Main.tile[i, j].type == 135 || (int)Main.tile[i, j].type == 314)
{
Main.PlaySound(28, i * 16, j * 16, 0);
Wiring.TripWire(i, j, 1, 1);
}
else if ((int)Main.tile[i, j].type == 136)
{
Main.tile[i, j].frameY = (int)Main.tile[i, j].frameY != 0 ? (short)0 : (short)18;
Main.PlaySound(28, i * 16, j * 16, 0);
Wiring.TripWire(i, j, 1, 1);
}
else if ((int)Main.tile[i, j].type == 144)
{
if ((int)Main.tile[i, j].frameY == 0)
{
Main.tile[i, j].frameY = (short)18;
if (Main.netMode != 1)
Wiring.CheckMech(i, j, 18000);
}
else
Main.tile[i, j].frameY = (short)0;
Main.PlaySound(28, i * 16, j * 16, 0);
}
else
{
if ((int)Main.tile[i, j].type != 132 && (int)Main.tile[i, j].type != 411)
return;
short num1 = (short)36;
int num2 = (int)Main.tile[i, j].frameX / 18 * -1;
int num3 = (int)Main.tile[i, j].frameY / 18 * -1;
int num4 = num2 % 4;
if (num4 < -1)
{
num4 += 2;
num1 = (short)-36;
}
int index1 = num4 + i;
int index2 = num3 + j;
if (Main.netMode != 1 && (int)Main.tile[index1, index2].type == 411)
Wiring.CheckMech(index1, index2, 60);
for (int index3 = index1; index3 < index1 + 2; ++index3)
{
for (int index4 = index2; index4 < index2 + 2; ++index4)
{
if ((int)Main.tile[index3, index4].type == 132 || (int)Main.tile[index3, index4].type == 411)
Main.tile[index3, index4].frameX += num1;
}
}
WorldGen.TileFrame(index1, index2, false, false);
Main.PlaySound(28, i * 16, j * 16, 0);
Wiring.TripWire(index1, index2, 2, 2);
}
}