SpriteMap<T> constructor
Implementation
SpriteMap(Map<T, Sprite<int>> sprites) //
: sprites = .unmodifiable(sprites) {
if (this.sprites.isEmpty) {
throw ArgumentError.value(
sprites,
'sprites',
'Must hold at least one.',
);
}
final resolved = <SpriteEntry<T>>[];
_keys = {};
for (final MapEntry(:key, :value) in this.sprites.entries) {
if (value.entries.length != 1) {
throw ArgumentError.value(
value.entries.length,
'$key',
'A name holds one entry. Take the one you mean.',
);
}
final entry = value.entries[0].rename(resolved.length, key);
_keys[key] = entry;
resolved.add(entry);
}
entries = List.of(resolved, growable: false);
}