31 lines
959 B
C#
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;
|
|
}
|
|
}
|
|
} |