Frame/Assets/Scripts/Player/PlayerManager.cs

61 lines
1.7 KiB
C#
Raw Normal View History

using System.Collections.Generic;
namespace Game.Player
{
public class PlayerManager : ManagerBase, IPlayerManager
{
private Dictionary<string, IPlayer> _players = new Dictionary<string, IPlayer>();
private IPlayer _currentPlayer;
2024-04-05 18:12:04 +08:00
public IPlayer currentPlayer => this._currentPlayer;
protected override void OnInit()
{
base.OnInit();
_players = new Dictionary<string, IPlayer>();
this._currentPlayer = null;
}
2024-04-09 18:16:37 +08:00
public void SetCurrentPlayer(IPlayer player)
{
this._currentPlayer ??= player;
}
2024-04-06 11:59:18 +08:00
public IPlayer CreatePlayer(string playerName, string location, float jinbei)
{
var gameObject = Game.resourceManager.LoadGameObjectSync(location);
IPlayer player = new Player();
player.SetGameObject(gameObject, playerName, jinbei);
this._players.Add(playerName, player);
player.Init();
return player;
}
public IPlayer GetPlayer(string playerName)
{
return this._players.GetValueOrDefault(playerName);
}
public void DeletePlayer(string playerName)
{
if (this._players.TryGetValue(playerName, out var player))
{
player.Dispose();
}
}
}
public interface IPlayerManager
{
IPlayer currentPlayer { get; }
2024-04-06 11:59:18 +08:00
void SetCurrentPlayer(IPlayer player);
2024-04-06 11:59:18 +08:00
//
IPlayer CreatePlayer(string playerName, string assetName, float jinbei);
IPlayer GetPlayer(string playerName);
void DeletePlayer(string playerName);
}
}