Files
godot-host-test/Game/Game/GameServiceSource.cs
T
2026-07-29 11:40:39 +02:00

40 lines
1.3 KiB
C#

using Godot;
using GodotHostTest.AetherBind;
using GodotHostTest.Game.Level;
using GodotHostTest.Game.Metrics;
using GodotHostTest.Game.Score;
using GodotHostTest.Game.Target;
using GodotHostTest.Interfaces;
using Microsoft.Extensions.DependencyInjection;
using OwofGames.GodotHost;
using OwofGames.GodotHost.Observability;
using OwofGames.GodotLume;
namespace GodotHostTest.Game.Game;
public partial class GameServiceSource : RootServiceSource
{
[Export] private LevelsData _levelsData = null!;
protected override void Configure(Builder builder)
{
builder
// root scope services
.AddSingleton<ITargetEventBus, TargetEventBus>()
.AddSingleton<IScore, TotalScore>()
// current level / level data management
.AddInstance<ILevelDataProvider, LevelsData>(_levelsData)
.AddSingleton<ICurrentLevel, CurrentLevel>()
// metrics
.AddSingleton<IHostLifetime, MetricsHandler>()
// level scope services
.AddLevelServices();
}
protected override void ConfigureServices(IServiceCollection serviceCollection)
{
serviceCollection.AddObservability(builder => builder
.AddGrpcExporter("http://localhost:4317")
.AddMeterName(MetricsHandler.MeterName));
}
}