public static PlayerData From(List <Player> players) { List <PersistedPlayerData> persistedPlayers = new List <PersistedPlayerData>(); foreach (Player player in players) { PersistedPlayerData persistedPlayer = new PersistedPlayerData(); persistedPlayer.Name = player.Name; persistedPlayer.EquippedItems = player.getAllEquipment(); persistedPlayer.Modules = player.getAllModules(); persistedPlayer.Id = player.Id; persistedPlayer.SpawnPosition = player.Position; persistedPlayer.CurrentStats = player.Stats; persistedPlayer.SubRootId = player.SubRootId.OrElse(null); persistedPlayer.Permissions = player.Permissions; persistedPlayer.NitroxId = player.GameObjectId; persistedPlayers.Add(persistedPlayer); } PlayerData playerData = new PlayerData(); playerData.Players = persistedPlayers; return(playerData); }
public Vector3 GetPosition(string playerName) { lock (playersByPlayerName) { PersistedPlayerData playerPersistedData = GetOrCreatePersistedPlayerData(playerName); return(playerPersistedData.PlayerSpawnData); } }
public void RemoveEquipment(string playerName, string guid) { lock (playersByPlayerName) { PersistedPlayerData playerData = playersByPlayerName[playerName]; playerData.EquippedItemsByGuid.Remove(guid); } }
public Optional <NitroxId> GetSubRootId(string playerName) { lock (playersByPlayerName) { PersistedPlayerData playerPersistedData = GetOrCreatePersistedPlayerData(playerName); return(Optional <NitroxId> .OfNullable(playerPersistedData.SubRootId)); } }
public void AddEquipment(string playerName, EquippedItemData equippedItem) { lock (playersByPlayerName) { PersistedPlayerData playerData = playersByPlayerName[playerName]; playerData.EquippedItemsById.Add(equippedItem.ItemId, equippedItem); } }
public NitroxId GetNitroxId(string playerName) { lock (playersByPlayerName) { PersistedPlayerData playerPersistedData = GetOrCreatePersistedPlayerData(playerName); return(playerPersistedData.PlayerNitroxId); } }
public void RemoveEquipment(string playerName, NitroxId id) { lock (playersByPlayerName) { PersistedPlayerData playerData = playersByPlayerName[playerName]; playerData.EquippedItemsById.Remove(id); } }
public void AddEquipment(string playerName, ItemData itemData) { lock (playersByPlayerName) { PersistedPlayerData playerData = playersByPlayerName[playerName]; playerData.EquipmentByGuid.Add(itemData.Guid, itemData); } }
public ulong PlayerId(string playerName, ulong steamId) { lock (playersByPlayerName) { PersistedPlayerData playerPersistedData = GetOrCreatePersistedPlayerData(playerName, steamId); return(playerPersistedData.PlayerId); } }
public Perms GetPermissions(string playerName) { lock (playersByPlayerName) { PersistedPlayerData playerPersistedData = GetOrCreatePersistedPlayerData(playerName); return(playerPersistedData.Permissions); } }
public ushort GetPlayerId(string playerName) { lock (playersByPlayerName) { PersistedPlayerData playerPersistedData = GetOrCreatePersistedPlayerData(playerName); return(playerPersistedData.PlayerId); } }
public PlayerStatsData GetPlayerStats(string playerName) { lock (playersByPlayerName) { PersistedPlayerData playerPersistedData = GetOrCreatePersistedPlayerData(playerName); return(playersByPlayerName[playerName].CurrentStats); } }
public void SetPlayerStats(string playerName, PlayerStats statsData) { lock (playersByPlayerName) { PersistedPlayerData playerPersistedData = GetOrCreatePersistedPlayerData(playerName); playersByPlayerName[playerName].CurrentStats = new PlayerStatsData(statsData.Oxygen, statsData.MaxOxygen, statsData.Health, statsData.Food, statsData.Water); } }
public List <EquippedItemData> GetEquippedItemsForInitialSync(string playerName) { lock (playersByPlayerName) { PersistedPlayerData playerPersistedData = GetOrCreatePersistedPlayerData(playerName); List <EquippedItemData> ItemData = new List <EquippedItemData>(playerPersistedData.EquippedItemsById.Values); ItemData.AddRange((new List <EquippedItemData>(ModulesItemsById.Values))); return(ItemData); } }
// Must be called when playersByPlayerName is locked. private PersistedPlayerData GetOrCreatePersistedPlayerData(string playerName, ulong steamId = 0) { PersistedPlayerData playerPersistedData = null; if (!playersByPlayerName.TryGetValue(playerName, out playerPersistedData)) { playerPersistedData = playersByPlayerName[playerName] = new PersistedPlayerData(playerName, steamId); } return(playerPersistedData); }
// Must be called when playersByPlayerName is locked. private PersistedPlayerData GetOrCreatePersistedPlayerData(string playerName) { PersistedPlayerData playerPersistedData = null; if (!playersByPlayerName.TryGetValue(playerName, out playerPersistedData)) { playerPersistedData = playersByPlayerName[playerName] = new PersistedPlayerData(playerName, ++currentPlayerId); } return(playerPersistedData); }
public Vector3 PlayerSpawn(string playerName) { lock (playersByPlayerName) { PersistedPlayerData playerPersistedData = null; if (!playersByPlayerName.TryGetValue(playerName, out playerPersistedData)) { playerPersistedData = playersByPlayerName[playerName] = new PersistedPlayerData(playerName); } return(playerPersistedData.PlayerSpawnData); } }
public void PlayerStats(string playerName, PlayerStats statsData) { lock (playersByPlayerName) { PersistedPlayerData playerPersistedData = null; if (!playersByPlayerName.TryGetValue(playerName, out playerPersistedData)) { playerPersistedData = playersByPlayerName[playerName] = new PersistedPlayerData(playerName); } playersByPlayerName[playerName].CurrentStats = new PlayerStatsData(statsData.Oxygen, statsData.MaxOxygen, statsData.Health, statsData.Food, statsData.Water); } }
public PlayerStatsData Stats(string playerName) { lock (playersByPlayerName) { PersistedPlayerData playerPersistedData = null; if (!playersByPlayerName.TryGetValue(playerName, out playerPersistedData)) { playerPersistedData = playersByPlayerName[playerName] = new PersistedPlayerData(playerName); } return(playersByPlayerName[playerName].CurrentStats); } }
public List <EquippedItemData> GetEquippedItemsForInitialSync(string playerName) { PersistedPlayerData playerPersistedData = null; lock (playersByPlayerName) { if (!playersByPlayerName.TryGetValue(playerName, out playerPersistedData)) { playerPersistedData = playersByPlayerName[playerName] = new PersistedPlayerData(playerName); } return(new List <EquippedItemData>(playerPersistedData.EquippedItemsByGuid.Values)); } }
public string PlayerGuid(string playerName) { lock (playersByPlayerName) { PersistedPlayerData playerPersistedData = null; if (!playersByPlayerName.TryGetValue(playerName, out playerPersistedData)) { playerPersistedData = playersByPlayerName[playerName] = new PersistedPlayerData(playerName); } if (string.IsNullOrEmpty(playerPersistedData.PlayerGuid)) { return(playerPersistedData.PlayerGuid = Guid.NewGuid().ToString()); } else { return(playerPersistedData.PlayerGuid); } } }