Esempio n. 1
0
 public void SetContent(RefCountedSprite content)
 {
     if (content == Content)
     {
         return;
     }
     if (Content != null)
     {
         Content.Release();
         Content.SpriteChanged -= OnSpriteLoaded;
     }
     Content = content;
     if (Content == null)
     {
         _renderer.sprite = _defaultSprite;
         return;
     }
     Content.SpriteChanged += OnSpriteLoaded;
     _renderer.sprite       = Content.Sprite;
     if (_renderer.sprite == null)
     {
         _renderer.sprite = _defaultSprite;
     }
     Content.AddReference();
 }
Esempio n. 2
0
 public RefCountedSprite SpawnTile(int x, int y)
 {
     RefCountedSprite sprite;
     if (Dict.TryGetValue(new LRUSpriteDictionary.SpriteID(x, y), out sprite))
     {
         return sprite;
     }
     sprite = new RefCountedSprite();
     Dict.Add(new LRUSpriteDictionary.SpriteID(x, y), sprite);
     AssetLoader.Loader.Enqueue(string.Format("http://mts1.google.com/vt/lyrs=m@245168067&src=apiv3&hl=de&x={0}&y={1}&z={2}&apistyle=s.e%3Al%7Cp.v%3Aoff%2Cp.il%3Atrue%7Cp.w%3A2.4%7Cp.h%3A%2300f6ff%7Cp.s%3A54%2Cs.t%3A6%7Cp.c%3A%23ff92c2d6&style=47,37%7Csmartmaps%20(256x256)", x, y, ZoomLevel), sprite.SetSprite);
     //AssetLoader.Loader.Enqueue(string.Format("http://mts1.google.com/vt/x={0}&y={1}&z={2} ", x, y, ZoomLevel), sprite.SetSprite);
     return sprite;
 }
Esempio n. 3
0
    public RefCountedSprite SpawnTile(int x, int y)
    {
        RefCountedSprite sprite;

        if (_spriteDictionary.TryGetValue(new LRUSpriteDictionary.SpriteID(x, y), out sprite))
        {
            return(sprite);
        }
        sprite = new RefCountedSprite();
        _spriteDictionary.Add(new LRUSpriteDictionary.SpriteID(x, y), sprite);

        SpriteLoaderService.LoadSpriteAsync(string.Format(RENDER_URL_SCHEME, x, y, ZoomLevel), sprite.SetSprite);

        return(sprite);
    }
Esempio n. 4
0
    public void Shift(int deltaX, int deltaY)
    {
        Grid <RefCountedSprite> contentGrid = Grid <RefCountedSprite> .CreateEmpty(_grid);

        contentGrid.SetIDOffset(_grid.IDOffsetX, _grid.IDOffsetY);

        for (int i = contentGrid.IDOffsetY; i < contentGrid.IDOffsetY + contentGrid.Height; i++)
        {
            for (int j = contentGrid.IDOffsetX; j < contentGrid.IDOffsetX + contentGrid.Width; j++)
            {
                RefCountedSprite temp = _grid[j, i].GetContent();
                if (temp != null)
                {
                    temp.AddReference();
                }
                contentGrid[j, i] = temp;
            }
        }
        _grid.ShiftIDs(-deltaX, -deltaY);
        for (int i = _grid.IDOffsetY; i < _grid.IDOffsetY + _grid.Height; i++)
        {
            for (int j = _grid.IDOffsetX; j < _grid.IDOffsetX + _grid.Width; j++)
            {
                if (_grid[j, i] is Object)
                {
                    (_grid[j, i] as Object).name = "cell_" + j + "_" + i;
                }
                _grid[j, i].SetContent(contentGrid[j, i]);
            }
        }

        for (int i = contentGrid.IDOffsetY; i < contentGrid.IDOffsetY + contentGrid.Height; i++)
        {
            for (int j = contentGrid.IDOffsetX; j < contentGrid.IDOffsetX + contentGrid.Width; j++)
            {
                RefCountedSprite temp = contentGrid[j, i];
                if (temp != null)
                {
                    temp.Release();
                }
            }
        }
    }