public Sprite GetSprite(string name) { Sprite sprite = Optional <Sprite>(name); if (sprite != null) { return(sprite); } try { TextureRegion textureRegion = GetRegion(name); if (textureRegion is TextureAtlas.AtlasRegion) { TextureAtlas.AtlasRegion region = textureRegion as TextureAtlas.AtlasRegion; if (region.Rotate || region.PackedWidth != region.OriginalWidth || region.PackedHeight != region.OriginalHeight) { sprite = new TextureAtlas.AtlasSprite(region); } } if (sprite == null) { sprite = new Sprite(textureRegion); } Add <Sprite>(name, sprite); return(sprite); } catch { throw new Exception("No Sprite, TextureRegion, or Texture registered with name: " + name); } }
public ISceneDrawable GetDrawable(string name) { ISceneDrawable drawable = Optional <ISceneDrawable>(name); if (drawable != null) { return(drawable); } drawable = Optional <TiledDrawable>(name); if (drawable != null) { return(drawable); } try { TextureRegion textureRegion = GetRegion(name); if (textureRegion is TextureAtlas.AtlasRegion) { TextureAtlas.AtlasRegion region = textureRegion as TextureAtlas.AtlasRegion; if (region.Splits != null) { drawable = new NinePatchDrawable(GetPatch(name)); } else if (region.Rotate || region.PackedWidth != region.OriginalWidth || region.PackedHeight != region.OriginalHeight) { drawable = new SpriteDrawable(GetSprite(name)); } } if (drawable == null) { drawable = new TextureRegionDrawable(textureRegion); } } catch { /* ignore */ } if (drawable == null) { NinePatch patch = Optional <NinePatch>(name); if (patch != null) { drawable = new NinePatchDrawable(patch); } else { Sprite sprite = Optional <Sprite>(name); if (sprite != null) { drawable = new SpriteDrawable(sprite); } else { throw new Exception("No Drawable, NinePatch, TextureRegion, Texture, or Sprite registered with name: " + name); } } } Add <ISceneDrawable>(name, drawable); return(drawable); }