reload method

  1. @override
SpriteMap<T> reload()
override

Re-resolves this sprite against Ignis.cache.

Returns this unless what it was built from has since been replaced, so the caller can tell whether anything changed by identity.

Implementation

@override
SpriteMap<T> reload() {
  Map<T, Sprite<int>>? resolved;

  for (final entry in sprites.entries) {
    final key = entry.key;
    final sprite = entry.value;
    final reloaded = sprite.reload();
    if (identical(reloaded, sprite)) continue;
    resolved ??= Map.of(sprites);
    resolved[key] = reloaded;
  }

  if (resolved == null) return this;
  return SpriteMap<T>(resolved);
}