Files
riversong-code-showcase/Source/Riversong/Game/CommonServices/Pooling/PoolsInitializationSystem.cs
2026-05-21 16:04:49 +02:00

31 lines
959 B
C#

using Cysharp.Threading.Tasks;
using UnityEngine;
namespace DanieleMarotta.RiversongCodeShowcase
{
[GameSystemGroup(typeof(EarlyGameSystemGroup))]
[InitializeAfter(typeof(PreLoadAssetsSystem))]
public class PoolsInitializationSystem : GameSystem, IInitializable
{
[InjectService]
private IPoolingService _poolingService;
[InjectService]
private IGameDatabase _gameDatabase;
public PoolsInitializationSystem(IServiceLocator serviceLocator) : base(serviceLocator)
{
}
public UniTask InitializeAsync()
{
foreach (var product in _gameDatabase.OfType<ProductDefinition>())
{
_poolingService.GetOrCreatePool((GameObject)product.ProductStackVisualization.Asset);
_poolingService.GetOrCreatePool((GameObject)product.CarriedVisualization.Asset);
}
return UniTask.CompletedTask;
}
}
}