Terraria.Wiring.XferWater C# (CSharp) Method

XferWater() private static method

private static XferWater ( ) : void
return void
        private static void XferWater()
        {
            for (int index1 = 0; index1 < Wiring._numInPump; ++index1)
            {
                int i1 = Wiring._inPumpX[index1];
                int j1 = Wiring._inPumpY[index1];
                int num1 = (int)Main.tile[i1, j1].liquid;
                if (num1 > 0)
                {
                    bool lava = Main.tile[i1, j1].lava();
                    bool honey = Main.tile[i1, j1].honey();
                    for (int index2 = 0; index2 < Wiring._numOutPump; ++index2)
                    {
                        int i2 = Wiring._outPumpX[index2];
                        int j2 = Wiring._outPumpY[index2];
                        int num2 = (int)Main.tile[i2, j2].liquid;
                        if (num2 < (int)byte.MaxValue)
                        {
                            bool flag1 = Main.tile[i2, j2].lava();
                            bool flag2 = Main.tile[i2, j2].honey();
                            if (num2 == 0)
                            {
                                flag1 = lava;
                                flag2 = honey;
                            }
                            if (lava == flag1 && honey == flag2)
                            {
                                int num3 = num1;
                                if (num3 + num2 > (int)byte.MaxValue)
                                    num3 = (int)byte.MaxValue - num2;
                                Main.tile[i2, j2].liquid += (byte)num3;
                                Main.tile[i1, j1].liquid -= (byte)num3;
                                num1 = (int)Main.tile[i1, j1].liquid;
                                Main.tile[i2, j2].lava(lava);
                                Main.tile[i2, j2].honey(honey);
                                WorldGen.SquareTileFrame(i2, j2, true);
                                if ((int)Main.tile[i1, j1].liquid == 0)
                                {
                                    Main.tile[i1, j1].lava(false);
                                    WorldGen.SquareTileFrame(i1, j1, true);
                                    break;
                                }
                            }
                        }
                    }
                    WorldGen.SquareTileFrame(i1, j1, true);
                }
            }
        }