reload method

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

Re-resolves this sprite against Ignis.cache.

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

Implementation

@override
SpriteGroup<T> reload() {
  List<Sprite<T>>? resolved;

  for (var index = 0; index < parts.length; index += 1) {
    final part = parts[index];
    final reloaded = part.reload();
    if (identical(reloaded, part)) continue;
    resolved ??= List.of(parts);
    resolved[index] = reloaded;
  }

  return resolved == null ? this : SpriteGroup<T>(resolved);
}