Fixed incorrectly positioned character info boxes in the info menu
This commit is contained in:
@@ -212,11 +212,15 @@ namespace Barotrauma
|
|||||||
|
|
||||||
GUIListBox crewList = new GUIListBox(new Rectangle(0, y, 280, listBoxHeight), Color.White * 0.7f, "", crewFrame);
|
GUIListBox crewList = new GUIListBox(new Rectangle(0, y, 280, listBoxHeight), Color.White * 0.7f, "", crewFrame);
|
||||||
crewList.Padding = new Vector4(10.0f, 10.0f, 10.0f, 10.0f);
|
crewList.Padding = new Vector4(10.0f, 10.0f, 10.0f, 10.0f);
|
||||||
crewList.OnSelected = SelectCrewCharacter;
|
crewList.OnSelected = (component, obj) =>
|
||||||
|
{
|
||||||
|
SelectCrewCharacter(component.UserData as Character, crewList);
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
|
||||||
foreach (Character character in crew.FindAll(c => c.TeamID == teamIDs[i]))
|
foreach (Character character in crew.FindAll(c => c.TeamID == teamIDs[i]))
|
||||||
{
|
{
|
||||||
GUIFrame frame = new GUIFrame(new Rectangle(0, 0, 0, 40), Color.Transparent, null, crewList);
|
GUIFrame frame = new GUIFrame(new Rectangle(0, 0, 0, 40), Color.Transparent, "ListBoxElement", crewList);
|
||||||
frame.UserData = character;
|
frame.UserData = character;
|
||||||
frame.Padding = new Vector4(5.0f, 5.0f, 5.0f, 5.0f);
|
frame.Padding = new Vector4(5.0f, 5.0f, 5.0f, 5.0f);
|
||||||
frame.Color = (GameMain.NetworkMember != null && GameMain.NetworkMember.Character == character) ? Color.Gold * 0.2f : Color.Transparent;
|
frame.Color = (GameMain.NetworkMember != null && GameMain.NetworkMember.Character == character) ? Color.Gold * 0.2f : Color.Transparent;
|
||||||
@@ -238,29 +242,22 @@ namespace Barotrauma
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual bool SelectCrewCharacter(GUIComponent component, object obj)
|
protected virtual bool SelectCrewCharacter(Character character, GUIComponent crewList)
|
||||||
{
|
{
|
||||||
Character character = obj as Character;
|
|
||||||
if (character == null) return false;
|
if (character == null) return false;
|
||||||
|
|
||||||
var crewFrame = component.Parent;
|
GUIComponent existingFrame = crewList.Parent.FindChild("selectedcharacter");
|
||||||
while (crewFrame.Parent!=null)
|
if (existingFrame != null) crewList.Parent.RemoveChild(existingFrame);
|
||||||
{
|
|
||||||
crewFrame = crewFrame.Parent;
|
|
||||||
}
|
|
||||||
|
|
||||||
GUIComponent existingFrame = crewFrame.FindChild("selectedcharacter");
|
|
||||||
if (existingFrame != null) crewFrame.RemoveChild(existingFrame);
|
|
||||||
|
|
||||||
var previewPlayer = new GUIFrame(
|
var previewPlayer = new GUIFrame(
|
||||||
new Rectangle(0, 0, 230, 300),
|
new Rectangle(0, 0, 230, 300),
|
||||||
new Color(0.0f, 0.0f, 0.0f, 0.8f), Alignment.TopRight, "", crewFrame);
|
new Color(0.0f, 0.0f, 0.0f, 0.8f), Alignment.TopRight, "", crewList.Parent);
|
||||||
previewPlayer.Padding = new Vector4(5.0f, 5.0f, 5.0f, 5.0f);
|
previewPlayer.Padding = new Vector4(5.0f, 5.0f, 5.0f, 5.0f);
|
||||||
previewPlayer.UserData = "selectedcharacter";
|
previewPlayer.UserData = "selectedcharacter";
|
||||||
|
|
||||||
character.Info.CreateInfoFrame(previewPlayer);
|
character.Info.CreateInfoFrame(previewPlayer);
|
||||||
|
|
||||||
if (GameMain.NetworkMember != null) GameMain.NetworkMember.SelectCrewCharacter(component, obj);
|
if (GameMain.NetworkMember != null) GameMain.NetworkMember.SelectCrewCharacter(character, crewList);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -910,13 +910,12 @@ namespace Barotrauma.Networking
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public override bool SelectCrewCharacter(GUIComponent component, object obj)
|
public override bool SelectCrewCharacter(Character character, GUIComponent crewFrame)
|
||||||
{
|
{
|
||||||
var characterFrame = component.Parent.Parent.FindChild("selectedcharacter");
|
|
||||||
|
|
||||||
Character character = obj as Character;
|
|
||||||
if (character == null) return false;
|
if (character == null) return false;
|
||||||
|
|
||||||
|
var characterFrame = crewFrame.FindChild("selectedcharacter");
|
||||||
|
|
||||||
if (character != myCharacter)
|
if (character != myCharacter)
|
||||||
{
|
{
|
||||||
var client = GameMain.NetworkMember.ConnectedClients.Find(c => c.Character == character);
|
var client = GameMain.NetworkMember.ConnectedClients.Find(c => c.Character == character);
|
||||||
|
|||||||
@@ -1544,15 +1544,11 @@ namespace Barotrauma.Networking
|
|||||||
SaveClientPermissions();
|
SaveClientPermissions();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool SelectCrewCharacter(GUIComponent component, object obj)
|
public override bool SelectCrewCharacter(Character character, GUIComponent crewFrame)
|
||||||
{
|
{
|
||||||
base.SelectCrewCharacter(component, obj);
|
|
||||||
|
|
||||||
var characterFrame = component.Parent.Parent.FindChild("selectedcharacter");
|
|
||||||
|
|
||||||
Character character = obj as Character;
|
|
||||||
if (character == null) return false;
|
if (character == null) return false;
|
||||||
|
|
||||||
|
var characterFrame = crewFrame.FindChild("selectedcharacter");
|
||||||
if (character != myCharacter)
|
if (character != myCharacter)
|
||||||
{
|
{
|
||||||
var banButton = new GUIButton(new Rectangle(0, 0, 100, 20), "Ban", Alignment.BottomRight, "", characterFrame);
|
var banButton = new GUIButton(new Rectangle(0, 0, 100, 20), "Ban", Alignment.BottomRight, "", characterFrame);
|
||||||
|
|||||||
@@ -427,7 +427,7 @@ namespace Barotrauma.Networking
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual bool SelectCrewCharacter(GUIComponent component, object obj)
|
public virtual bool SelectCrewCharacter(Character character, GUIComponent crewFrame)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user