ContentProvider.AssetLoaded/AssetFailed and TextButton/ImageButton hover mouse icon

It has recently been brought to my attention that the usual method for loading screens (below) will fail if even one asset fails to load.

while ContentProvider.RequestQueueSize > 0 do
	wait(0.1)
end

I propose AssetLoaded(assetId) and AssetFailed(assetId, reason) events (preferably of ContentProvider) to prevent this, and to wait for only those assets which are needed immediately. This kills two birds with one stone, unless there’s something I’ve not thought of which would make this hard to do.

In addition, while working on a project of mine, I noticed that there is no way to show your own “button hover icon” in ROBLOX. Only the default icon will show, which really trashes my UI. I think a lot of people would have a cool use for this, if not implemented as a property of GuiButton then possibly as a property of PlayerMouse or similar.

Also need

[code]ContentProvider:IsLoaded(assetId) -> AssetLoadedState

Enum AssetLoadedState
0 NotQueued
1 Queued
2 Loaded
3 Failed[/code]