private void Sync(Point index, out Tile?prevTile, out Sprite prevSprite, out Point prevIndex)
        {
            prevSprite = ground.GetSprite(index);
            prevTile   = tiles[index.X, index.Y];
            prevIndex  = index;

            tiles[index.X, index.Y] = null;
            ground.ClearSprite(index);
            OnSpriteChanged(new SpriteChangedEventArgs(index, ground.GetSprite(index)));
        }