- gameServerSettings refactoring: using ObjectProperties for saving/loading instead of doing it manually

- tabs for different types of server settings
- moved banlist to server settings
- option to select autorestart delay
- character name is always the same as client name (less griefing potential)
This commit is contained in:
Regalis
2016-07-21 21:18:09 +03:00
parent 911846acff
commit 8abea5c0c7
6 changed files with 302 additions and 214 deletions
+17 -21
View File
@@ -13,9 +13,9 @@ namespace Barotrauma.Networking
private List<BannedPlayer> bannedPlayers;
private GUIFrame banFrame;
private GUIComponent banFrame;
public GUIFrame BanFrame
public GUIComponent BanFrame
{
get { return banFrame; }
}
@@ -58,22 +58,13 @@ namespace Barotrauma.Networking
{
return bannedPlayers.FirstOrDefault(bp => bp.IP == IP)!=null;
}
public bool ToggleBanFrame(GUIButton button, object obj)
public GUIComponent CreateBanFrame(GUIComponent parent)
{
banFrame = CreateBanFrame();
//GUIFrame banFrame = new GUIFrame(new Rectangle(0,0,0,0), null, Alignment.Center, GUI.Style, parent);
return true;
}
private GUIFrame CreateBanFrame()
{
banFrame = new GUIFrame(new Rectangle(0,0,GameMain.GraphicsWidth,GameMain.GraphicsHeight), Color.Black*0.5f);
GUIFrame innerFrame = new GUIFrame(new Rectangle(0,0,400,300), null, Alignment.Center, GUI.Style, banFrame);
new GUITextBlock(new Rectangle(0, -10, 0, 30), "Banned IPs:", GUI.Style, Alignment.Left, Alignment.Left, innerFrame, false, GUI.LargeFont);
var banList = new GUIListBox(new Rectangle(0, 30, 0, 0), GUI.Style, innerFrame);
//new GUITextBlock(new Rectangle(0, -10, 0, 30), "Banned IPs:", GUI.Style, Alignment.Left, Alignment.Left, banFrame, false, GUI.LargeFont);
banFrame = new GUIListBox(new Rectangle(0,0,0,0), GUI.Style, parent);
foreach (BannedPlayer bannedPlayer in bannedPlayers)
{
@@ -81,17 +72,17 @@ namespace Barotrauma.Networking
new Rectangle(0, 0, 0, 25),
bannedPlayer.IP+" ("+bannedPlayer.Name+")",
GUI.Style,
Alignment.Left, Alignment.Left, banList);
Alignment.Left, Alignment.Left, banFrame);
textBlock.Padding = new Vector4(10.0f, 0.0f, 0.0f, 0.0f);
textBlock.UserData = banList;
textBlock.UserData = banFrame;
var removeButton = new GUIButton(new Rectangle(0,00,100,20), "Remove", Alignment.Right | Alignment.CenterY, GUI.Style, textBlock);
removeButton.UserData = bannedPlayer;
removeButton.OnClicked = RemoveBan;
}
var closeButton = new GUIButton(new Rectangle(0,30,100,20), "Close", Alignment.BottomRight, GUI.Style, innerFrame);
closeButton.OnClicked = CloseFrame;
//var closeButton = new GUIButton(new Rectangle(0,30,100,20), "Close", Alignment.BottomRight, GUI.Style, banFrame);
//closeButton.OnClicked = CloseFrame;
return banFrame;
@@ -104,7 +95,12 @@ namespace Barotrauma.Networking
bannedPlayers.Remove(banned);
CreateBanFrame();
if (banFrame != null)
{
banFrame.Parent.RemoveChild(banFrame);
CreateBanFrame(banFrame.Parent);
}
return true;
}