public static ClientAnimatedCellBitmapSet GetAnimatedCellBitmapSetIdFor( IReadOnlyZoneInfo zoneInfo, Func <AnimatedCellBitmapSetLayers, AnimatedCellBitmapSet> bitmapSelector) { var result = TextureAtlas.TilesetAccessor.TryGetBitmapFor(snapShot: zoneInfo.TakeSnapshot(), includeNoElectricity: true); if (result.HasNoMatch) { return(default(ClientAnimatedCellBitmapSet)); } var animatedCellBitmapSet = bitmapSelector(result.MatchingObject); if (animatedCellBitmapSet == null) { return(default(ClientAnimatedCellBitmapSet)); } return(new ClientAnimatedCellBitmapSet( animatedCellBitmapSet.Id, animatedCellBitmapSet.Delay, animatedCellBitmapSet.Bitmaps.Select(x => x.Id).ToArray())); }