Игрок теперь играется

This commit is contained in:
ThomasCharester committed 2025-11-15 18:30:31 +03:00
1 parent 0f708ff4cb
commit ddb76a5b93
21 files changed
+1618 -445

No files matched your search

@@ -1,13 +1,20 @@
using UnityEngine;
using Code.Configs;
using Code.Gameplay.Character.Core;
using Cysharp.Threading.Tasks;
using Reflex.Attributes;
using Reflex.Core;
using Reflex.Extensions;
using Reflex.Injectors;
using UnityEngine.AddressableAssets;
using UnityEngine.SceneManagement;
namespace Code.Gameplay.Player
{
public class PlayerFactory : IPlayerFactory
{
[Inject] PlayerConfig _playerConfig;
public PlayerHealth CreatePlayerHealth(int count = -1)
{
if (count < 0) count = _playerConfig.maxHealth;
@@ -15,5 +22,18 @@ namespace Code.Gameplay.Player
return new(count);
}
public PlayerMoney CreatePlayerMoney(int count = 0) => new(count);
public async UniTask<CharacterProvider> CreatePlayer()
{
CharacterProvider characterProvider = (await Addressables.InstantiateAsync(_playerConfig.characterPrefab).ToUniTask()).GetComponent<CharacterProvider>();
AttributeInjector.Inject(characterProvider, Container.ProjectContainer);
AttributeInjector.Inject(characterProvider.CustomCharacterController, Container.ProjectContainer);
return characterProvider;
}
public void ReleasePlayer(CharacterProvider characterProvider)
{
Addressables.ReleaseInstance(characterProvider.gameObject);
}
}
}