Skip to content

Commit 3a7b81d

Browse files
committed
feat: added LevelGeneratorService , added ITileFactory
1 parent 679f070 commit 3a7b81d

25 files changed

+684
-100
lines changed

Assets/Code/Infrastructure/BootstrapInstaller.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
using Code.Infrastructure.Factory;
2+
using Code.Infrastructure.Generator.Factory;
3+
using Code.Infrastructure.Generator.Services;
24
using Code.Infrastructure.Services.PersistenceProgress;
35
using Code.Infrastructure.Services.SaveLoad;
46
using Code.Infrastructure.Services.StaticData;
@@ -20,11 +22,13 @@ public override void InstallBindings()
2022
BindSaveLoad();
2123
BindProgressData();
2224
BindStaticData();
25+
BindGenerator();
2326
}
2427

2528
private void BindFactory()
2629
{
2730
Container.BindInterfacesTo<UIFactory>().AsSingle();
31+
Container.BindInterfacesTo<TileFactory>().AsSingle();
2832
}
2933

3034
private void BindSaveLoad() =>
@@ -39,6 +43,11 @@ private void BindStaticData()
3943
Container.Bind<IStaticDataService>().To<StaticDataService>().AsSingle();
4044
}
4145

46+
private void BindGenerator()
47+
{
48+
Container.Bind<ILevelGeneratorService>().To<LevelGeneratorService>().AsSingle();
49+
}
50+
4251
public void Initialize()
4352
{
4453
Container.Resolve<IStaticDataService>().LoadData();

Assets/Code/Infrastructure/GameInstaller.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
using Code.Infrastructure.Generator.Services;
23
using Code.Infrastructure.Services.GameStater;
34
using UnityEngine;
45
using Zenject;
@@ -18,6 +19,7 @@ public override void InstallBindings()
1819
public void Initialize()
1920
{
2021
Container.Resolve<IGameStarter>().Initialize();
22+
Container.Resolve<ILevelGeneratorService>().SetUpRootMapHolder(_mapHolder);
2123
}
2224

2325
public void Dispose()

Assets/Code/Infrastructure/Services/Generator.meta renamed to Assets/Code/Infrastructure/Generator.meta

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
using System;
2+
using Code.Infrastructure.Generator.Services;
3+
using UnityEngine;
4+
using UnityEngine.UI;
5+
using Zenject;
6+
7+
namespace Code
8+
{
9+
public class ButtonGenerateLevel : MonoBehaviour
10+
{
11+
[SerializeField] private Button _buttonGenerateLevel;
12+
13+
private ILevelGeneratorService _levelGeneratorService;
14+
15+
private void OnValidate()
16+
{
17+
if(_buttonGenerateLevel == null)
18+
_buttonGenerateLevel = GetComponent<Button>();
19+
}
20+
21+
[Inject]
22+
public void Construct(ILevelGeneratorService levelGeneratorService)
23+
{
24+
_levelGeneratorService = levelGeneratorService;
25+
}
26+
27+
private void Start()
28+
{
29+
_buttonGenerateLevel.onClick.AddListener(OnGenerateLevelButtonClick);
30+
}
31+
32+
private void OnDestroy()
33+
{
34+
_buttonGenerateLevel.onClick.RemoveListener(OnGenerateLevelButtonClick);
35+
}
36+
37+
private void OnGenerateLevelButtonClick()
38+
{
39+
_levelGeneratorService.GenerateLevel();
40+
}
41+
}
42+
}

Assets/Code/Infrastructure/Generator/ButtonGenerateLevel.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/Code/Infrastructure/Generator/Factory.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
using UnityEngine;
2+
3+
namespace Code.Infrastructure.Generator.Factory
4+
{
5+
public interface ITileFactory
6+
{
7+
Tile CreateTile(GameObject parent);
8+
}
9+
}

Assets/Code/Infrastructure/Generator/Factory/ITileFactory.cs.meta

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
using UnityEngine;
2+
using Zenject;
3+
4+
namespace Code.Infrastructure.Generator.Factory
5+
{
6+
public class TileFactory : Infrastructure.Factory.Factory, ITileFactory
7+
{
8+
private const string TilePrefabPath = "Tile/Tile";
9+
10+
public TileFactory(IInstantiator instantiator) : base(instantiator)
11+
{
12+
13+
}
14+
15+
public Tile CreateTile(GameObject parent)
16+
{
17+
var tileObject = Instantiate(TilePrefabPath, parent.transform);
18+
var tile = tileObject.GetComponent<Tile>();
19+
return tile;
20+
}
21+
}
22+
}

Assets/Code/Infrastructure/Generator/Factory/TileFactory.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)