OurSonic.SonicManager.Replace C# (CSharp) Method

Replace() public method

public Replace ( Rectangle from, Point to ) : void
from OurSonic.Utility.Rectangle
to Point
return void
        public void Replace(Rectangle from, Point to)
        {
            for (int y = from.Height; y >= 0; y--)
            {
                int curY = y;
                Window.SetTimeout(
                    () =>
                    {
                        for (int x = 0; x < from.Width; x++)
                        {
                            var toChunkX = (to.X + x) / 8;
                            var toChunkY = (to.Y + curY) / 8;

                            var tochunk = SonicLevel.GetChunkAt(toChunkX, toChunkY);
                            tochunk.ClearCache();
                            var totp = tochunk.TilePieces[(to.X + x) - toChunkX * 8][(to.Y + curY) - toChunkY * 8];
                            tochunk.IsOnlyBackground = null;
                            tochunk.IsOnlyForeground = null;

                            var fromChunkX = (from.X + x) / 8;
                            var fromChunkY = (from.Y + curY) / 8;

                            var fromchunk = SonicLevel.GetChunkAt(fromChunkX, fromChunkY);
                            fromchunk.ClearCache();
                            fromchunk.IsOnlyBackground = null;
                            fromchunk.IsOnlyForeground = null;
                            var fromtp = fromchunk.TilePieces[(from.X + x) - fromChunkX * 8][(from.Y + curY) - fromChunkY * 8];

                            tochunk.TilePieces[(to.X + x) - toChunkX * 8][(to.Y + curY) - toChunkY * 8] = fromtp;
                            fromchunk.TilePieces[(from.X + x) - fromChunkX * 8][(from.Y + curY) - fromChunkY * 8] = totp;

                        }


                    },
                    (from.Height - y) * 50
               );
            }
        }