27 lines
860 B
C#
27 lines
860 B
C#
using System;
|
|
using Godot;
|
|
using GodotHostTest.AetherBind;
|
|
using GodotHostTest.Interfaces;
|
|
using OwofGames.AetherBind;
|
|
using OwofGames.GodotLume;
|
|
|
|
namespace GodotHostTest.Game.Root;
|
|
|
|
[Injected]
|
|
public partial class Root : Node2D
|
|
{
|
|
[Inject] private ICurrentLevel _currentLevel = null!;
|
|
[Inject] private ILevelDataProvider _levelDataProvider = null!;
|
|
[Export] private PackedScene _levelScene = null!;
|
|
[Inject] private ISceneInstantiator _sceneInstantiator = null!;
|
|
|
|
public override void _Ready()
|
|
{
|
|
var levelData = _levelDataProvider.GetLevelData(_currentLevel.LevelNumber);
|
|
AddChild(_sceneInstantiator.Instantiate(_levelScene,
|
|
OnInstantiate(levelValueSetter => levelValueSetter.Set(levelData))));
|
|
}
|
|
|
|
[ServiceMethod]
|
|
private partial Action<IProvider> OnInstantiate(Action<IValueSetter<ILevel>> a);
|
|
} |