Unstable 0.16.0.0
This commit is contained in:
@@ -143,8 +143,7 @@ namespace Barotrauma.Steam
|
||||
return;
|
||||
}
|
||||
|
||||
currentLobby = ((Task<Steamworks.Data.Lobby?>)lobby).Result;
|
||||
|
||||
lobby.TryGetResult(out currentLobby);
|
||||
if (currentLobby == null)
|
||||
{
|
||||
DebugConsole.ThrowError("Failed to create Steam lobby: returned lobby was null");
|
||||
@@ -250,7 +249,7 @@ namespace Barotrauma.Steam
|
||||
TaskPool.Add("JoinLobbyAsync", Steamworks.SteamMatchmaking.JoinLobbyAsync(lobbyID),
|
||||
(lobby) =>
|
||||
{
|
||||
currentLobby = ((Task<Steamworks.Data.Lobby?>)lobby).Result;
|
||||
lobby.TryGetResult(out currentLobby);
|
||||
lobbyState = LobbyState.Joined;
|
||||
lobbyID = (currentLobby?.Id).Value;
|
||||
if (joinServer)
|
||||
@@ -293,10 +292,11 @@ namespace Barotrauma.Steam
|
||||
taskDone();
|
||||
return;
|
||||
}
|
||||
var lobbies = ((Task<List<Steamworks.Data.Lobby>>)t).Result;
|
||||
if (lobbies != null)
|
||||
t.TryGetResult(out List<Steamworks.Data.Lobby> lobbies);
|
||||
IEnumerable<CoroutineStatus> lobbyAddCoroutine()
|
||||
{
|
||||
foreach (var lobby in lobbies)
|
||||
int i = 0;
|
||||
foreach (var lobby in lobbies ?? Enumerable.Empty<Steamworks.Data.Lobby>())
|
||||
{
|
||||
if (string.IsNullOrEmpty(lobby.GetData("name"))) { continue; }
|
||||
|
||||
@@ -312,9 +312,13 @@ namespace Barotrauma.Steam
|
||||
AssignLobbyDataToServerInfo(lobby, serverInfo);
|
||||
|
||||
addToServerList(serverInfo);
|
||||
i++;
|
||||
if (i >= 16) { yield return CoroutineStatus.Running; i = 0; }
|
||||
}
|
||||
taskDone();
|
||||
yield return CoroutineStatus.Success;
|
||||
}
|
||||
taskDone();
|
||||
CoroutineManager.StartCoroutine(lobbyAddCoroutine());
|
||||
});
|
||||
|
||||
Steamworks.ServerList.Internet serverQuery = new Steamworks.ServerList.Internet();
|
||||
@@ -344,13 +348,10 @@ namespace Barotrauma.Steam
|
||||
return;
|
||||
}
|
||||
|
||||
var rules = ((Task<Dictionary<string, string>>)t).Result;
|
||||
t.TryGetResult(out Dictionary<string, string> rules);
|
||||
AssignServerRulesToServerInfo(rules, serverInfo);
|
||||
|
||||
CrossThread.RequestExecutionOnMainThread(() =>
|
||||
{
|
||||
addToServerList(serverInfo);
|
||||
});
|
||||
addToServerList(serverInfo);
|
||||
});
|
||||
}
|
||||
else
|
||||
@@ -618,7 +619,10 @@ namespace Barotrauma.Steam
|
||||
.WithLongDescription();
|
||||
if (requireTags != null) { query = query.WithTags(requireTags); }
|
||||
|
||||
TaskPool.Add("GetSubscribedWorkshopItems", GetWorkshopItemsAsync(query), (task) => { onItemsFound?.Invoke(((Task<List<Steamworks.Ugc.Item>>)task).Result); });
|
||||
TaskPool.Add("GetSubscribedWorkshopItems", GetWorkshopItemsAsync(query), (task) =>
|
||||
{
|
||||
task.TryGetResult(out List<Steamworks.Ugc.Item> result); onItemsFound?.Invoke(result);
|
||||
});
|
||||
}
|
||||
|
||||
public static void GetPopularWorkshopItems(Action<IList<Steamworks.Ugc.Item>> onItemsFound, int amount, List<string> requireTags = null)
|
||||
@@ -632,7 +636,7 @@ namespace Barotrauma.Steam
|
||||
|
||||
TaskPool.Add("GetPopularWorkshopItems", GetWorkshopItemsAsync(query, amount, (item) => !item.IsSubscribed), (task) =>
|
||||
{
|
||||
var entries = ((Task<List<Steamworks.Ugc.Item>>)task).Result;
|
||||
task.TryGetResult(out List<Steamworks.Ugc.Item> entries);
|
||||
|
||||
//count the number of each unique tag
|
||||
foreach (var item in entries)
|
||||
@@ -677,7 +681,10 @@ namespace Barotrauma.Steam
|
||||
.WithLongDescription();
|
||||
if (requireTags != null) query.WithTags(requireTags);
|
||||
|
||||
TaskPool.Add("GetPublishedWorkshopItems", GetWorkshopItemsAsync(query), (task) => { onItemsFound?.Invoke(((Task<List<Steamworks.Ugc.Item>>)task).Result); });
|
||||
TaskPool.Add("GetPublishedWorkshopItems", GetWorkshopItemsAsync(query), (task) =>
|
||||
{
|
||||
task.TryGetResult(out List<Steamworks.Ugc.Item> result); onItemsFound?.Invoke(result);
|
||||
});
|
||||
}
|
||||
|
||||
private static readonly HashSet<ulong> pendingWorkshopSubscriptions = new HashSet<ulong>();
|
||||
@@ -724,7 +731,7 @@ namespace Barotrauma.Steam
|
||||
}
|
||||
else
|
||||
{
|
||||
var item = ((Task<Steamworks.Ugc.Item?>)t).Result;
|
||||
t.TryGetResult(out Steamworks.Ugc.Item? item);
|
||||
if (item != null)
|
||||
{
|
||||
if (item?.IsInstalled ?? false)
|
||||
@@ -1077,7 +1084,7 @@ namespace Barotrauma.Steam
|
||||
GameMain.SteamWorkshopScreen?.SetReinstallButtonStatus(item, true, GUI.Style.Red);
|
||||
return;
|
||||
}
|
||||
string errorMsg = ((Task<string>)task).Result;
|
||||
task.TryGetResult(out string errorMsg);
|
||||
if (!string.IsNullOrWhiteSpace(errorMsg))
|
||||
{
|
||||
DebugConsole.ThrowError($"Failed to copy \"{item.Title}\": {errorMsg}");
|
||||
|
||||
Reference in New Issue
Block a user