Skip to content

Commit

Permalink
Max Players setting add to Multiplayer Panel
Browse files Browse the repository at this point in the history
  • Loading branch information
sbanca committed Jan 25, 2025
1 parent 3c1bd2a commit 973e6ef
Show file tree
Hide file tree
Showing 12 changed files with 469 additions and 12 deletions.
395 changes: 383 additions & 12 deletions Assets/Prefabs/Panels/MultiplayerPanel.prefab

Large diffs are not rendered by default.

36 changes: 36 additions & 0 deletions Assets/Scripts/GUI/MultiplayerPanel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ public class MultiplayerPanel : BasePanel
[SerializeField] private TextMeshPro m_RoomOwnership;
[SerializeField] private LocalizedString m_RoomOwnerString;
[SerializeField] private LocalizedString m_NotRoomOwnerString;
[SerializeField] private TextMeshPro m_RoomMaxPlayer;
[SerializeField] private LocalizedString m_RoomMaxPlayerString;
[SerializeField] private TextMeshPro m_AlertsErrors;
[SerializeField] private LocalizedString m_AlertsErrorBeginnerModeActive;
[SerializeField] private LocalizedString m_AlertsRoomAlreadyExistent;
Expand Down Expand Up @@ -75,6 +77,20 @@ public string NickName
}
}

private Tuple<int, int> MaxPlayersRange = new Tuple<int, int>(2, 8);
public int MaxPlayers
{
get { return data.maxPlayers; }
set
{
if (value < MaxPlayersRange.Item1) data.maxPlayers = MaxPlayersRange.Item1;
else if (value > MaxPlayersRange.Item2) data.maxPlayers = MaxPlayersRange.Item2;
else data.maxPlayers = value;
UpdateDisplay();
SaveMaxPlayerNumber(value);
}
}

private RoomCreateData data;

private List<Func<Tuple<bool, string>>> alertChecks;
Expand Down Expand Up @@ -134,13 +150,32 @@ private async void SaveNickname(string nickname)
await m_multiplayer.StoreAsync("nickname", nickname);
}

public async void RetrieveMaxPlayers()
{
try
{
var storedMaxPlayers = await m_multiplayer.GetAsync<int>("maxPlayers");
MaxPlayers = storedMaxPlayers;
}
catch (KeyNotFoundException)
{
MaxPlayers = 4;
}
}

private async void SaveMaxPlayerNumber(int maxPlayers)
{
await m_multiplayer.StoreAsync("maxPlayers", maxPlayers);
}

protected override void OnEnablePanel()
{
base.OnEnablePanel();

m_multiplayer = new PlayerPrefsDataStore("Multiplayer");
RetrieveUsername();
RetrieveRoomName();
RetrieveMaxPlayers();

if (MultiplayerManager.m_Instance == null) return;
if (MultiplayerManager.m_Instance.State == ConnectionState.INITIALIZED || MultiplayerManager.m_Instance.State == ConnectionState.DISCONNECTED)
Expand Down Expand Up @@ -194,6 +229,7 @@ private void UpdateDisplay()
{
if (m_RoomNumber) m_RoomNumber.text = m_RoomNumberString.GetLocalizedString() + data.roomName;
if (m_Nickname) m_Nickname.text = m_NicknameString.GetLocalizedString() + NickName;
if (m_RoomMaxPlayer) m_RoomMaxPlayer.text = m_RoomMaxPlayerString.GetLocalizedString() + MaxPlayers;
Alerts();
updateDisplay = false;
}
Expand Down
8 changes: 8 additions & 0 deletions Assets/Scripts/GUI/MultiplayerPanelButton.cs
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,14 @@ override protected void OnButtonPressed()
{
KeyboardPopUpWindow.m_InitialText = popup.RoomName;
}
else if (m_RequiresPopup & m_Command == SketchControlsScript.GlobalCommands.EditMultiplayerNickName)
{
KeyboardPopUpWindow.m_InitialText = popup.NickName;
}
else if (m_RequiresPopup & m_Command == SketchControlsScript.GlobalCommands.EditMultiplayerRoomMaxPlayers)
{
KeyboardPopUpWindow.m_InitialText = popup.MaxPlayers.ToString();
}

base.OnButtonPressed();
}
Expand Down
10 changes: 10 additions & 0 deletions Assets/Scripts/SketchControlsScript.cs
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,7 @@ public enum GlobalCommands
OpenRoomSettings = 1010,
MuteUserInMultiplayer = 1011,
UnmuteUserInMultiplayer = 1012,
EditMultiplayerRoomMaxPlayers = 1013,

RenameSketch = 5200,
OpenLayerOptionsPopup = 5201,
Expand Down Expand Up @@ -4526,6 +4527,14 @@ public void IssueGlobalCommand(GlobalCommands rEnum, int iParam1 = -1,
DismissPopupOnCurrentGazeObject(false);
break;
}
case GlobalCommands.EditMultiplayerRoomMaxPlayers:
{
var panel = (MultiplayerPanel)m_PanelManager.GetActivePanelByType(BasePanel.PanelType.Multiplayer);
if (int.TryParse(KeyboardPopUpWindow.m_LastInput, out var parsedMaxPlayers))
panel.MaxPlayers = parsedMaxPlayers;
DismissPopupOnCurrentGazeObject(false);
break;
}
case GlobalCommands.EditMultiplayerNickName:
{
var panel = (MultiplayerPanel)m_PanelManager.GetActivePanelByType(BasePanel.PanelType.Multiplayer);
Expand Down Expand Up @@ -5104,6 +5113,7 @@ public bool IsCommandAvailable(GlobalCommands rEnum, int iParam = -1)
case GlobalCommands.SketchbookMenu:
case GlobalCommands.EditMultiplayerNickName:
case GlobalCommands.EditMultiplayerRoomName:
case GlobalCommands.EditMultiplayerRoomMaxPlayers:
return !(MultiplayerManager.m_Instance.State == ConnectionState.IN_ROOM);
case GlobalCommands.WhatIsNew:
return false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3439,6 +3439,10 @@ MonoBehaviour:
m_Key: ADMIN_PANEL_MULTIPLAYER_DESCRIPTION
m_Metadata:
m_Items: []
- m_Id: 326532953040941056
m_Key: MULTIPLAYER_PANEL_MAX_ROOM_NUMBER
m_Metadata:
m_Items: []
m_Metadata:
m_Items: []
m_KeyGenerator:
Expand Down
4 changes: 4 additions & 0 deletions Assets/Settings/Localization/Strings/Strings_de.asset
Original file line number Diff line number Diff line change
Expand Up @@ -3638,6 +3638,10 @@ MonoBehaviour:
m_Localized: "Mehrspieler-Men\xFC"
m_Metadata:
m_Items: []
- m_Id: 326532953040941056
m_Localized: 'Maximale Spieler: '
m_Metadata:
m_Items: []
references:
version: 2
RefIds: []
4 changes: 4 additions & 0 deletions Assets/Settings/Localization/Strings/Strings_en.asset
Original file line number Diff line number Diff line change
Expand Up @@ -3608,6 +3608,10 @@ MonoBehaviour:
m_Localized: 'Multiplayer Menu '
m_Metadata:
m_Items: []
- m_Id: 326532953040941056
m_Localized: 'Max Players: '
m_Metadata:
m_Items: []
references:
version: 2
RefIds: []
4 changes: 4 additions & 0 deletions Assets/Settings/Localization/Strings/Strings_es.asset
Original file line number Diff line number Diff line change
Expand Up @@ -3608,6 +3608,10 @@ MonoBehaviour:
m_Localized: "Men\xFA Multijugador"
m_Metadata:
m_Items: []
- m_Id: 326532953040941056
m_Localized: "Jugadores M\xE1ximos: "
m_Metadata:
m_Items: []
references:
version: 2
RefIds: []
4 changes: 4 additions & 0 deletions Assets/Settings/Localization/Strings/Strings_fr.asset
Original file line number Diff line number Diff line change
Expand Up @@ -3578,6 +3578,10 @@ MonoBehaviour:
m_Localized: Menu Multijoueur
m_Metadata:
m_Items: []
- m_Id: 326532953040941056
m_Localized: 'Joueurs Max: '
m_Metadata:
m_Items: []
references:
version: 2
RefIds: []
4 changes: 4 additions & 0 deletions Assets/Settings/Localization/Strings/Strings_ja.asset
Original file line number Diff line number Diff line change
Expand Up @@ -3530,6 +3530,10 @@ MonoBehaviour:
m_Localized: "\u30DE\u30EB\u30C1\u30D7\u30EC\u30A4\u30E4\u30FC\u30E1\u30CB\u30E5\u30FC"
m_Metadata:
m_Items: []
- m_Id: 326532953040941056
m_Localized: "\u6700\u5927\u30D7\u30EC\u30A4\u30E4\u30FC\u6570: "
m_Metadata:
m_Items: []
references:
version: 2
RefIds: []
4 changes: 4 additions & 0 deletions Assets/Settings/Localization/Strings/Strings_ko.asset
Original file line number Diff line number Diff line change
Expand Up @@ -3599,6 +3599,10 @@ MonoBehaviour:
m_Localized: "\uBA40\uD2F0\uD50C\uB808\uC774 \uBA54\uB274"
m_Metadata:
m_Items: []
- m_Id: 326532953040941056
m_Localized: "\uCD5C\uB300 \uD50C\uB808\uC774\uC5B4 \uC218: "
m_Metadata:
m_Items: []
references:
version: 2
RefIds: []
4 changes: 4 additions & 0 deletions Assets/Settings/Localization/Strings/Strings_zh.asset
Original file line number Diff line number Diff line change
Expand Up @@ -3526,6 +3526,10 @@ MonoBehaviour:
m_Localized: "\u591A\u4EBA\u83DC\u5355"
m_Metadata:
m_Items: []
- m_Id: 326532953040941056
m_Localized: "\u6700\u5927\u73A9\u5BB6\u6570: "
m_Metadata:
m_Items: []
references:
version: 2
RefIds: []

0 comments on commit 973e6ef

Please sign in to comment.