diff --git a/Barotrauma/BarotraumaClient/Source/GameSession/GameSession.cs b/Barotrauma/BarotraumaClient/Source/GameSession/GameSession.cs index 2950e988f..016cd1d1c 100644 --- a/Barotrauma/BarotraumaClient/Source/GameSession/GameSession.cs +++ b/Barotrauma/BarotraumaClient/Source/GameSession/GameSession.cs @@ -36,28 +36,37 @@ namespace Barotrauma int width = 600, height = 400; infoFrame = new GUIButton(new RectTransform(Vector2.One, GUI.Canvas), style: "GUIBackgroundBlocker"); - - var innerFrame = new GUIFrame(new RectTransform(new Vector2(0.3f, 0.35f), infoFrame.RectTransform, Anchor.Center) { MinSize = new Point(width,height) }); - var paddedFrame = new GUIFrame(new RectTransform(new Vector2(0.95f, 0.9f), innerFrame.RectTransform, Anchor.Center), style:null); + var innerFrame = new GUIFrame(new RectTransform(new Vector2(0.3f, 0.35f), infoFrame.RectTransform, Anchor.Center) { MinSize = new Point(width, height) }); + + var paddedFrame = new GUIFrame(new RectTransform(new Vector2(0.95f, 0.9f), innerFrame.RectTransform, Anchor.Center), style: null); var buttonArea = new GUILayoutGroup(new RectTransform(new Vector2(1.0f, 0.08f), paddedFrame.RectTransform), isHorizontal: true) { RelativeSpacing = 0.01f }; - infoFrameContent = new GUIFrame(new RectTransform(new Vector2(1.0f, 0.8f), paddedFrame.RectTransform) { RelativeOffset = new Vector2(0.0f, 0.08f) }, style: "InnerFrame"); + infoFrameContent = new GUIFrame(new RectTransform(new Vector2(1.0f, 0.85f), paddedFrame.RectTransform) { RelativeOffset = new Vector2(0.0f, 0.08f) }, style: "InnerFrame"); - var crewButton = new GUIButton(new RectTransform(new Vector2(0.2f, 1.0f), buttonArea.RectTransform), TextManager.Get("Crew")) + var crewButton = new GUIButton(new RectTransform(new Vector2(0.2f, 1.0f), buttonArea.RectTransform), TextManager.Get("Crew"), style: "GUITabButton") { UserData = InfoFrameTab.Crew, OnClicked = SelectInfoFrameTab }; - var missionButton = new GUIButton(new RectTransform(new Vector2(0.2f, 1.0f), buttonArea.RectTransform), TextManager.Get("Mission")) + var missionButton = new GUIButton(new RectTransform(new Vector2(0.2f, 1.0f), buttonArea.RectTransform), TextManager.Get("Mission"), style: "GUITabButton") { UserData = InfoFrameTab.Mission, OnClicked = SelectInfoFrameTab }; + if (GameMain.NetworkMember != null) + { + var myCharacterButton = new GUIButton(new RectTransform(new Vector2(0.2f, 1.0f), buttonArea.RectTransform), TextManager.Get("MyCharacter"), style: "GUITabButton") + { + UserData = InfoFrameTab.MyCharacter, + OnClicked = SelectInfoFrameTab + }; + } + /*TODO: fix if (GameMain.Server != null) { @@ -84,6 +93,10 @@ namespace Barotrauma case InfoFrameTab.Mission: CreateMissionInfo(infoFrameContent); break; + case InfoFrameTab.MyCharacter: + if (GameMain.NetworkMember == null) { return false; } + GameMain.NetLobbyScreen.CreatePlayerFrame(infoFrameContent); + break; case InfoFrameTab.ManagePlayers: //TODO: fix //GameMain.Server.ManagePlayersFrame(infoFrameContent); diff --git a/Barotrauma/BarotraumaClient/Source/Screens/NetLobbyScreen.cs b/Barotrauma/BarotraumaClient/Source/Screens/NetLobbyScreen.cs index a79601b8b..43e3dbaa2 100644 --- a/Barotrauma/BarotraumaClient/Source/Screens/NetLobbyScreen.cs +++ b/Barotrauma/BarotraumaClient/Source/Screens/NetLobbyScreen.cs @@ -886,6 +886,20 @@ namespace Barotrauma } private void UpdatePlayerFrame(CharacterInfo characterInfo, bool allowEditing = true) + { + UpdatePlayerFrame(characterInfo, allowEditing, playerInfoContainer); + } + + + public void CreatePlayerFrame(GUIComponent parent) + { + UpdatePlayerFrame( + playerInfoContainer.Children?.First().UserData as CharacterInfo, + allowEditing: campaignCharacterInfo == null, + parent: parent); + } + + private void UpdatePlayerFrame(CharacterInfo characterInfo, bool allowEditing, GUIComponent parent) { if (characterInfo == null) { @@ -901,12 +915,13 @@ namespace Barotrauma GameMain.Client.CharacterInfo = characterInfo; } - playerInfoContainer.ClearChildren(); - - GUIComponent infoContainer = new GUILayoutGroup(new RectTransform(new Vector2(1.0f, 0.9f), playerInfoContainer.RectTransform, Anchor.BottomCenter), childAnchor: Anchor.TopCenter) + parent.ClearChildren(); + + GUIComponent infoContainer = new GUILayoutGroup(new RectTransform(new Vector2(1.0f, 0.9f), parent.RectTransform, Anchor.BottomCenter), childAnchor: Anchor.TopCenter) { RelativeSpacing = 0.02f, - Stretch = true + Stretch = true, + UserData = characterInfo }; new GUITextBlock(new RectTransform(new Vector2(1.0f, 0.1f), infoContainer.RectTransform), characterInfo.Name, font: GUI.LargeFont, textAlignment: Alignment.Center, wrap: true); @@ -974,7 +989,7 @@ namespace Barotrauma JobPrefab job = JobPrefab.List.Find(j => j.Identifier == jobIdentifier); if (job == null || job.MaxNumber <= 0) continue; - var jobFrame = new GUIFrame(new RectTransform(new Vector2(1.0f, 0.2f), jobList.Content.RectTransform), style: "ListBoxElement") + var jobFrame = new GUIFrame(new RectTransform(new Vector2(1.0f, 0.2f), jobList.Content.RectTransform) { MinSize = new Point(0, 20) }, style: "ListBoxElement") { UserData = job }; @@ -1013,7 +1028,7 @@ namespace Barotrauma } GUITickBox randPrefTickBox = new GUITickBox( - new RectTransform(new Vector2(0.5f, 0.05f), infoContainer.RectTransform) + new RectTransform(new Vector2(0.5f, 0.08f), infoContainer.RectTransform) { RelativeOffset = new Vector2(-0.0f, 0.0f) }, TextManager.Get("RandomPreferences")) { diff --git a/Barotrauma/BarotraumaShared/Submarines/Dugong.sub b/Barotrauma/BarotraumaShared/Submarines/Dugong.sub index 4ac57dc62..7b7dd9cdc 100644 Binary files a/Barotrauma/BarotraumaShared/Submarines/Dugong.sub and b/Barotrauma/BarotraumaShared/Submarines/Dugong.sub differ