public void DeleteSprite(Sprite sprite)
{
string usageReport = new SpriteUsageChecker().GetSpriteUsageReport(sprite.Number, _game);
if (usageReport != null)
{
throw new SpriteInUseException("Cannot delete a sprite because it is in use:" + Environment.NewLine + usageReport);
}
else if (AboutToDeleteSprite(sprite.Number))
{
SpriteFolder parent = _game.RootSpriteFolder.FindFolderThatContainsSprite(sprite.Number);
if (parent == null)
{
throw new AGSEditorException("The sprite " + sprite.Number + " could not be found in any sprite folders");
}
parent.Sprites.Remove(sprite);
Factory.NativeProxy.DeleteSprite(sprite);
}
else
{
throw new SpriteInUseException("An editor component did not allow sprite " + sprite.Number + " to be deleted");
}
}