Skip to content

Commit

Permalink
added sliders to initializer
Browse files Browse the repository at this point in the history
  • Loading branch information
Aeroluna committed Apr 3, 2022
1 parent 7da1373 commit 813628f
Show file tree
Hide file tree
Showing 6 changed files with 26 additions and 3 deletions.
4 changes: 2 additions & 2 deletions Chroma/Colorizer/NoteColorizer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -104,12 +104,12 @@ public ColorType ColorType
{
get
{
if (_noteController is not GameNoteController gameNoteController)
if (_noteController is not NoteController noteController)
{
return ColorType.ColorA;
}

NoteData noteData = gameNoteController.noteData;
NoteData noteData = noteController.noteData;
return noteData?.colorType ?? ColorType.ColorA;
}
}
Expand Down
1 change: 1 addition & 0 deletions Chroma/HeckImplementation/ObjectInitializer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

namespace Chroma
{
// TODO: implement slider colorizers
[UsedImplicitly]
internal class ObjectInitializer : IGameNoteInitializer, IBombNoteInitializer, IObstacleInitializer
{
Expand Down
6 changes: 6 additions & 0 deletions Heck/HarmonyPatches/ObjectInitializer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,12 @@ private static void FromInitializer(FactoryFromBinderBase binderBase, Object pre
case FactoryFromBinder<MultiplayerConnectedPlayerObstacleController> binder:
binder.FromResolveGetter<ObjectInitializerManager>(n => n.CreateObstacleController<MultiplayerConnectedPlayerObstacleController>(prefab));
break;
case FactoryFromBinder<BurstSliderGameNoteController> binder:
binder.FromResolveGetter<ObjectInitializerManager>(n => n.CreateGameNoteController<BurstSliderGameNoteController>(prefab));
break;
case FactoryFromBinder<SliderController> binder:
binder.FromResolveGetter<ObjectInitializerManager>(n => n.CreateSliderController<SliderController>(prefab));
break;
default:
// fallback
binderBase.FromComponentInNewPrefab(prefab);
Expand Down
5 changes: 5 additions & 0 deletions Heck/Services/ObjectInitialize/InitializerManagers.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,9 @@ public interface IObstacleInitializer
{
public void InitializeObstacle(ObstacleControllerBase obstacleController);
}

public interface ISliderInitializer
{
public void InitializeSlider(SliderControllerBase sliderController);
}
}
11 changes: 11 additions & 0 deletions Heck/Services/ObjectInitialize/ObjectInitializerManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,20 @@ internal class ObjectInitializerManager
private readonly List<IGameNoteInitializer> _gameNoteInitializers;
private readonly List<IBombNoteInitializer> _bombNoteInitializers;
private readonly List<IObstacleInitializer> _obstacleInitializers;
private readonly List<ISliderInitializer> _sliderInitializers;
private readonly IInstantiator _instantiator;

private ObjectInitializerManager(
[InjectOptional] List<IGameNoteInitializer> gameNoteInitializers,
[InjectOptional] List<IBombNoteInitializer> bombNoteInitializers,
[InjectOptional] List<IObstacleInitializer> obstacleInitializers,
[InjectOptional] List<ISliderInitializer> sliderInitializers,
IInstantiator instantiator)
{
_gameNoteInitializers = gameNoteInitializers;
_bombNoteInitializers = bombNoteInitializers;
_obstacleInitializers = obstacleInitializers;
_sliderInitializers = sliderInitializers;
_instantiator = instantiator;
}

Expand All @@ -48,5 +51,13 @@ internal T CreateObstacleController<T>(Object prefab)
_obstacleInitializers.ForEach(n => n.InitializeObstacle(controller));
return (T)controller;
}

internal T CreateSliderController<T>(Object prefab)
where T : SliderControllerBase
{
SliderControllerBase controller = _instantiator.InstantiatePrefabForComponent<SliderControllerBase>(prefab);
_sliderInitializers.ForEach(n => n.InitializeSlider(controller));
return (T)controller;
}
}
}
2 changes: 1 addition & 1 deletion Heck/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"id": "_Heck",
"name": "Heck",
"author": "Aeroluna",
"version": "1.3.4",
"version": "1.3.5",
"description": "Library for Aeroluna's mods.",
"gameVersion": "1.21.0",
"dependsOn": {
Expand Down

0 comments on commit 813628f

Please sign in to comment.