32 lines
1.1 KiB
C#
32 lines
1.1 KiB
C#
|
|
namespace DanieleMarotta.RiversongCodeShowcase
|
|
{
|
|
[GameSystemGroup(typeof(EconomySystemGroup))]
|
|
[UpdateAfter(typeof(ProductionTickGameSystem))]
|
|
public class ProducerAnimationSystem : GameSystem, IUpdatable
|
|
{
|
|
[InjectService]
|
|
private IEntityCache _entityCache;
|
|
|
|
[InjectService]
|
|
private IBuildingVisualizationCollection _buildingVisualizations;
|
|
|
|
public ProducerAnimationSystem(IServiceLocator serviceLocator) : base(serviceLocator)
|
|
{
|
|
}
|
|
|
|
public void Update()
|
|
{
|
|
foreach (var producer in _entityCache.GetProducers()) UpdateProducer(producer);
|
|
}
|
|
|
|
private void UpdateProducer(Building producer)
|
|
{
|
|
if (!_buildingVisualizations.TryGetVisualization(producer.Id, out var buildingVisualization)) return;
|
|
if (!buildingVisualization.TryGetComponent<ProducerAnimation>(out var producerAnimation)) return;
|
|
|
|
ref var productionState = ref producer.GetProductionStateRW();
|
|
producerAnimation.UpdateAnimation(productionState);
|
|
}
|
|
}
|
|
} |