public static Sprite GetPokemonSprite( string resourceName, PokemonSpecies.SpriteType spriteType, bool?gender, bool shiny = false ) { bool useFemale; switch (gender) { case true: case null: useFemale = false; break; case false: useFemale = true; break; } return(GetPokemonSprite(resourceName, spriteType, useFemale, shiny)); }
public Sprite LoadSprite(PokemonSpecies.SpriteType spriteType) => species.LoadSprite(spriteType, gender, IsShiny);
public static Sprite GetPokemonSprite( string speciesResourceName, PokemonSpecies.SpriteType spriteType, bool useFemale, bool shiny = false) { #region Resource Name string resourceName; string alternativeResourceName = null; //The resource path to load if the main can't be found. (this is to use male sprites if female ones can't be found) string nameSuffix; string alternativeNameSuffix = null; nameSuffix = spriteType switch { PokemonSpecies.SpriteType.Front1 => "front1", PokemonSpecies.SpriteType.Front2 => "front2", PokemonSpecies.SpriteType.Back => "back", PokemonSpecies.SpriteType.Icon => "icon", _ => null }; if (nameSuffix == null) { nameSuffix = "icon"; Debug.LogError("Unknown sprite type provided - " + spriteType); } if (spriteType != PokemonSpecies.SpriteType.Icon) { if (!useFemale) { nameSuffix += "_m"; } else { alternativeNameSuffix = nameSuffix + "_m"; nameSuffix += "_f"; } if (shiny) { nameSuffix += "s"; if (alternativeNameSuffix != null) { alternativeNameSuffix += "s"; } } } resourceName = speciesResourceName + '_' + nameSuffix; if (alternativeNameSuffix != null) { alternativeResourceName = speciesResourceName + '_' + alternativeNameSuffix; } #endregion Sprite sprite = GetSprite(SpriteType.Pokemon, resourceName, false); if (sprite != null) { return(sprite); } else { if (alternativeResourceName != null) { return(GetSprite(SpriteType.Pokemon, alternativeResourceName, false)); } else { return(null); } } }