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(); }
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; }
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); }
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(); } } } }