Global Game Jam 2021
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

61 lines
1.4 KiB

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEngine.InputSystem;
using NaughtyAttributes;
using Random = UnityEngine.Random;
[CreateAssetMenu(menuName = "Data/PlayerList")]
public class PlayerList : ScriptableObject
{
[ShowNativeProperty]
public int PlayerCount => Players.Count;
public PlayerData[] AllPlayers => Players.Values.ToArray();
public Dictionary<PlayerInput, PlayerData> Players = new Dictionary<PlayerInput, PlayerData>();
private uint m_totalPlayerCount;
public event EventHandler<PlayerData> OnPlayerJoin;
public PlayerData AddPlayer(UnityEngine.InputSystem.PlayerInput input)
{
uint ID = m_totalPlayerCount++;
Color color = Random.ColorHSV(0, 1, 1, 1, 0.75f, 1);
PlayerData data = PlayerData.Initialise(ID, color, input);
Players.Add(input, data);
OnPlayerJoin?.Invoke(this,data);
return data;
}
[ContextMenu("Add Fake Player")]
private void AddFakePlayer()
{
uint ID = m_totalPlayerCount++;
Color color = Random.ColorHSV(0, 1, 1, 1, 0.75f, 1);
PlayerData data = PlayerData.Initialise(ID, color, null);
//Players.Add(null, data);
OnPlayerJoin?.Invoke(this, data);
}
private void OnEnable()
{
Players = new Dictionary<UnityEngine.InputSystem.PlayerInput, PlayerData>();
}
}