feat: aetherbind, first source generator

This commit is contained in:
redglow
2026-07-18 17:05:03 +02:00
parent 4ce99d9486
commit aae9c083d9
69 changed files with 210 additions and 156 deletions
+16
View File
@@ -0,0 +1,16 @@
using Godot;
using GodotHostTest.Game.Level;
using OwofGames.GodotLume;
using RootServiceSource = GodotHostTest.AetherBind.RootServiceSource;
namespace GodotHostTest.Game.Root;
public partial class GameServiceSource : RootServiceSource
{
[Export] private LevelsData _levelsData = null!;
protected override void Configure(Builder builder)
{
builder.AddLevelServices(_levelsData);
}
}
+1
View File
@@ -0,0 +1 @@
uid://bpes6mnv21f2v
+22
View File
@@ -0,0 +1,22 @@
using Godot;
using GodotHostTest.AetherBind;
using GodotHostTest.Interfaces;
using OwofGames.AetherBind;
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,
(IValueSetter<ILevel> levelSetter) => { levelSetter.Set(levelData); }));
}
}
+1
View File
@@ -0,0 +1 @@
uid://bvjvojer872c8