Merge branch 'master' into new-netcode

Conflicts:
	Subsurface/Source/GUI/GUIButton.cs
	Subsurface/Source/GameSession/CrewManager.cs
	Subsurface/Source/GameSession/GameSession.cs
	Subsurface/Source/Items/Item.cs
	Subsurface/Source/Networking/GameServer.cs
	Subsurface/Source/Screens/MainMenuScreen.cs
	Subsurface/Source/Screens/ServerListScreen.cs
This commit is contained in:
Regalis
2017-04-23 21:40:11 +03:00
70 changed files with 1147 additions and 858 deletions
+13 -13
View File
@@ -107,7 +107,7 @@ namespace Launcher2
guiRoot = new GUIFrame(new Rectangle(0,0,graphicsWidth, graphicsHeight), Color.Transparent); guiRoot = new GUIFrame(new Rectangle(0,0,graphicsWidth, graphicsHeight), Color.Transparent);
guiRoot.Padding = new Vector4(40.0f, 40.0f, 40.0f, 40.0f); guiRoot.Padding = new Vector4(40.0f, 40.0f, 40.0f, 40.0f);
launchButton = new GUIButton(new Rectangle(0,0,100,30), "START", Alignment.BottomRight, GUI.Style, guiRoot); launchButton = new GUIButton(new Rectangle(0,0,100,30), "START", Alignment.BottomRight, "", guiRoot);
launchButton.OnClicked = LaunchClick; launchButton.OnClicked = LaunchClick;
int y = 50; int y = 50;
@@ -115,15 +115,15 @@ namespace Launcher2
var checkForUpdates = new GUITickBox(new Rectangle(0, y, 20, 20), "Automatically check for updates", Alignment.TopLeft, guiRoot); var checkForUpdates = new GUITickBox(new Rectangle(0, y, 20, 20), "Automatically check for updates", Alignment.TopLeft, guiRoot);
checkForUpdates.Selected = settings.AutoCheckUpdates; checkForUpdates.Selected = settings.AutoCheckUpdates;
updateInfoText = new GUITextBlock(new Rectangle(0,y+30,100,20), "", GUI.Style, guiRoot); updateInfoText = new GUITextBlock(new Rectangle(0,y+30,100,20), "", "", guiRoot);
updateInfoBox = new GUIListBox(new Rectangle(0, y + 55, 330, graphicsHeight-y-55-30-80), GUI.Style, guiRoot); updateInfoBox = new GUIListBox(new Rectangle(0, y + 55, 330, graphicsHeight-y-55-30-80), "", guiRoot);
updateInfoBox.Visible = false; updateInfoBox.Visible = false;
progressBar = new GUIProgressBar(new Rectangle(110,0,220,20), Color.Green, 0.0f, Alignment.BottomLeft, guiRoot); progressBar = new GUIProgressBar(new Rectangle(110,0,220,20), Color.Green, 0.0f, Alignment.BottomLeft, guiRoot);
progressBar.Visible = false; progressBar.Visible = false;
downloadButton = new GUIButton(new Rectangle(0, 0, 100, 20), "Download", Alignment.BottomLeft, GUI.Style, guiRoot); downloadButton = new GUIButton(new Rectangle(0, 0, 100, 20), "Download", Alignment.BottomLeft, "", guiRoot);
downloadButton.OnClicked = DownloadButtonClicked; downloadButton.OnClicked = DownloadButtonClicked;
downloadButton.Visible = false; downloadButton.Visible = false;
@@ -131,8 +131,8 @@ namespace Launcher2
//----------------------------------------------------------------- //-----------------------------------------------------------------
int x = 360; int x = 360;
new GUITextBlock(new Rectangle(x, y, 20, 20), "Resolution", GUI.Style, Alignment.TopLeft, Alignment.TopLeft, guiRoot); new GUITextBlock(new Rectangle(x, y, 20, 20), "Resolution", "", Alignment.TopLeft, Alignment.TopLeft, guiRoot);
resolutionDD = new GUIDropDown(new Rectangle(x, y + 20, 200, 20), "", GUI.Style, guiRoot); resolutionDD = new GUIDropDown(new Rectangle(x, y + 20, 200, 20), "", "", guiRoot);
foreach (DisplayMode mode in GraphicsAdapter.DefaultAdapter.SupportedDisplayModes) foreach (DisplayMode mode in GraphicsAdapter.DefaultAdapter.SupportedDisplayModes)
{ {
@@ -149,8 +149,8 @@ namespace Launcher2
resolutionDD.SelectItem(GraphicsAdapter.DefaultAdapter.SupportedDisplayModes.Last()); resolutionDD.SelectItem(GraphicsAdapter.DefaultAdapter.SupportedDisplayModes.Last());
} }
new GUITextBlock(new Rectangle(x, y + 50, 20, 20), "Content package", GUI.Style, Alignment.TopLeft, Alignment.TopLeft, guiRoot); new GUITextBlock(new Rectangle(x, y + 50, 20, 20), "Content package", "", Alignment.TopLeft, Alignment.TopLeft, guiRoot);
contentPackageDD = new GUIDropDown(new Rectangle(x, y + 70, 200, 20), "", GUI.Style, guiRoot); contentPackageDD = new GUIDropDown(new Rectangle(x, y + 70, 200, 20), "", "", guiRoot);
foreach (ContentPackage contentPackage in ContentPackage.list) foreach (ContentPackage contentPackage in ContentPackage.list)
{ {
@@ -161,8 +161,8 @@ namespace Launcher2
//new GUIButton(new Rectangle(x,y+120,150,20), "Package Manager", GUI.Style, guiRoot); //new GUIButton(new Rectangle(x,y+120,150,20), "Package Manager", GUI.Style, guiRoot);
new GUITextBlock(new Rectangle(x, y + 130, 20, 20), "Display mode", GUI.Style, Alignment.TopLeft, Alignment.TopLeft, guiRoot); new GUITextBlock(new Rectangle(x, y + 130, 20, 20), "Display mode", "", Alignment.TopLeft, Alignment.TopLeft, guiRoot);
displayModeDD = new GUIDropDown(new Rectangle(x, y + 150, 200, 20), "", GUI.Style, guiRoot); displayModeDD = new GUIDropDown(new Rectangle(x, y + 150, 200, 20), "", "", guiRoot);
displayModeDD.AddItem("Fullscreen", WindowMode.Fullscreen); displayModeDD.AddItem("Fullscreen", WindowMode.Fullscreen);
displayModeDD.AddItem("Windowed", WindowMode.Windowed); displayModeDD.AddItem("Windowed", WindowMode.Windowed);
displayModeDD.AddItem("Borderless windowed", WindowMode.BorderlessWindowed); displayModeDD.AddItem("Borderless windowed", WindowMode.BorderlessWindowed);
@@ -310,7 +310,7 @@ namespace Launcher2
GUITextBlock textBlock = new GUITextBlock( GUITextBlock textBlock = new GUITextBlock(
new Rectangle(indent, 0, 0, heigth), new Rectangle(indent, 0, 0, heigth),
line, GUI.Style, line, "",
Alignment.TopLeft, Alignment.TopLeft, Alignment.TopLeft, Alignment.TopLeft,
updateInfoBox, true, GUI.SmallFont); updateInfoBox, true, GUI.SmallFont);
textBlock.Padding = new Vector4(indent, 0, 0, 0); textBlock.Padding = new Vector4(indent, 0, 0, 0);
@@ -551,7 +551,7 @@ namespace Launcher2
GUITextBlock textBlock = new GUITextBlock( GUITextBlock textBlock = new GUITextBlock(
new Rectangle(0, 0, 0, 17), new Rectangle(0, 0, 0, 17),
"Downloading " + filesToDownload[filesDownloaded] + "...", GUI.Style, "Downloading " + filesToDownload[filesDownloaded] + "...", "",
Alignment.TopLeft, Alignment.TopLeft, Alignment.TopLeft, Alignment.TopLeft,
updateInfoBox, false, GUI.SmallFont); updateInfoBox, false, GUI.SmallFont);
textBlock.CanBeFocused = false; textBlock.CanBeFocused = false;
@@ -591,7 +591,7 @@ namespace Launcher2
GUITextBlock textBlock = new GUITextBlock( GUITextBlock textBlock = new GUITextBlock(
new Rectangle(0, 0, 0, 0), new Rectangle(0, 0, 0, 0),
errorMsg, GUI.Style, errorMsg, "",
Alignment.TopLeft, Alignment.TopLeft, Alignment.TopLeft, Alignment.TopLeft,
updateInfoBox, true, GUI.SmallFont); updateInfoBox, true, GUI.SmallFont);
textBlock.TextColor = Color.Red; textBlock.TextColor = Color.Red;
+3
View File
@@ -1060,6 +1060,9 @@
<Content Include="Content\UI\uiIcons.png"> <Content Include="Content\UI\uiIcons.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content> </Content>
<Content Include="Content\UI\UI_Atlas.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Content\utg_4.mp4"> <Content Include="Content\utg_4.mp4">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content> </Content>
+1 -1
View File
@@ -9,7 +9,7 @@
<ErrorReportUrlHistory /> <ErrorReportUrlHistory />
<FallbackCulture>en-US</FallbackCulture> <FallbackCulture>en-US</FallbackCulture>
<VerifyUploadedFiles>false</VerifyUploadedFiles> <VerifyUploadedFiles>false</VerifyUploadedFiles>
<ProjectView>ShowAllFiles</ProjectView> <ProjectView>ProjectFiles</ProjectView>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<ReferencePath> <ReferencePath>
@@ -14,6 +14,6 @@
</Holdable> </Holdable>
<Label canbeselected = "true"> <Label canbeselected = "true">
<GuiFrame rect="0,0,0.4,0.4" alignment="Center" color="0.0,0.0,0.0,0.8"/> <GuiFrame rect="0,0,0.4,0.4" alignment="Center" style="ItemUI"/>
</Label> </Label>
</Item> </Item>
@@ -17,7 +17,7 @@
<PowerTransfer canbeselected = "true"> <PowerTransfer canbeselected = "true">
<StatusEffect type="InWater" target="This" condition="-0.5"/> <StatusEffect type="InWater" target="This" condition="-0.5"/>
<GuiFrame rect="0,0,350,160" alignment="Center" color="0.0,0.0,0.0,0.6"/> <GuiFrame rect="0,0,350,160" alignment="Center" style="ItemUI"/>
</PowerTransfer> </PowerTransfer>
<ConnectionPanel selectkey="Action" canbeselected = "true" msg="Rewire [Screwdriver]"> <ConnectionPanel selectkey="Action" canbeselected = "true" msg="Rewire [Screwdriver]">
@@ -46,7 +46,7 @@
<Sprite texture ="battery.png" depth="0.8"/> <Sprite texture ="battery.png" depth="0.8"/>
<PowerContainer capacity="2000.0" maxrechargespeed="500.0" maxoutput="1000.0" canbeselected = "true"> <PowerContainer capacity="2000.0" maxrechargespeed="500.0" maxoutput="1000.0" canbeselected = "true">
<GuiFrame rect="0,-100,350,160" alignment="Center" color="0.0,0.0,0.0,0.6"/> <GuiFrame rect="0,-100,350,160" alignment="Center" style="ItemUI"/>
<StatusEffect type="OnActive" target="Contained" targetnames="loadable" Condition="2.0"/> <StatusEffect type="OnActive" target="Contained" targetnames="loadable" Condition="2.0"/>
</PowerContainer> </PowerContainer>
@@ -74,7 +74,7 @@
<Sprite texture ="supercapacitor.png" depth="0.8"/> <Sprite texture ="supercapacitor.png" depth="0.8"/>
<PowerContainer capacity="20.0" maxrechargespeed="20.0" maxoutput="2000000.0" canbeselected = "true"> <PowerContainer capacity="20.0" maxrechargespeed="20.0" maxoutput="2000000.0" canbeselected = "true">
<GuiFrame rect="0,0,0.3,0.3" alignment="Center" color="0.0,0.0,0.0,0.8"/> <GuiFrame rect="0,0,0.3,0.3" alignment="Center" style="ItemUI"/>
</PowerContainer> </PowerContainer>
<ConnectionPanel selectkey="Action" canbeselected = "true" msg="Rewire [Screwdriver]"> <ConnectionPanel selectkey="Action" canbeselected = "true" msg="Rewire [Screwdriver]">
@@ -224,7 +224,7 @@
<Sprite texture="signalcomp.png" depth="0.8" sourcerect="48,16,16,16"/> <Sprite texture="signalcomp.png" depth="0.8" sourcerect="48,16,16,16"/>
<RelayComponent canbeselected = "true"> <RelayComponent canbeselected = "true">
<GuiFrame rect="0,0,200,160" alignment="Center" color="0.0,0.0,0.0,0.6"/> <GuiFrame rect="0,0,200,160" alignment="Center" style="ItemUI"/>
</RelayComponent> </RelayComponent>
<fixrequirement name="Reset fuse"> <fixrequirement name="Reset fuse">
+5 -5
View File
@@ -18,7 +18,7 @@
<Engine minvoltage="0.5" powerconsumption="2000.0" maxforce="2000" canbeselected = "true"> <Engine minvoltage="0.5" powerconsumption="2000.0" maxforce="2000" canbeselected = "true">
<StatusEffect type="InWater" target="This" condition="-2.0"/> <StatusEffect type="InWater" target="This" condition="-2.0"/>
<GuiFrame rect="0,0,350,160" alignment="Center" color="0.0,0.0,0.0,0.6"/> <GuiFrame rect="0,0,350,160" alignment="Center" style="ItemUI"/>
<sound file="engine.ogg" type="OnActive" range="3000.0" volume="CurrentVolume" loop="true"/> <sound file="engine.ogg" type="OnActive" range="3000.0" volume="CurrentVolume" loop="true"/>
</Engine> </Engine>
@@ -45,7 +45,7 @@
</fixrequirement> </fixrequirement>
<Engine minvoltage="0.5" powerconsumption="500.0" maxforce="300" canbeselected = "true"> <Engine minvoltage="0.5" powerconsumption="500.0" maxforce="300" canbeselected = "true">
<GuiFrame rect="0,0,350,160" alignment="Center" color="0.0,0.0,0.0,0.6"/> <GuiFrame rect="0,0,350,160" alignment="Center" style="ItemUI"/>
<sound file="engine.ogg" type="OnActive" range="3000.0" volume="CurrentVolume" loop="true"/> <sound file="engine.ogg" type="OnActive" range="3000.0" volume="CurrentVolume" loop="true"/>
</Engine> </Engine>
@@ -72,12 +72,12 @@
<Steering minvoltage="0.5" canbeselected = "true" powerconsumption="10"> <Steering minvoltage="0.5" canbeselected = "true" powerconsumption="10">
<StatusEffect type="InWater" target="This" condition="-1.0"/> <StatusEffect type="InWater" target="This" condition="-1.0"/>
<GuiFrame rect="0,0,0.5,0.5" alignment="Center" color="0.0,0.0,0.0,0.6"/> <GuiFrame rect="0,0,0.5,0.5" alignment="Center" style="ItemUI"/>
</Steering> </Steering>
<Radar canbeselected = "true" powerconsumption="100"> <Radar canbeselected = "true" powerconsumption="100">
<sound file="radarPing.ogg" type="OnUse" range="4000.0"/> <sound file="radarPing.ogg" type="OnUse" range="4000.0"/>
<GuiFrame rect="0,0,0.5,0.5" alignment="Center" color="0.0,0.0,0.0,0.0"/> <GuiFrame rect="0,0,0.5,0.5" alignment="Center" style="ItemUI" color="0.0,0.0,0.0,0.0"/>
<PingCircle texture="Content/Items/Engine/pingCircle.png" origin="0.5,0.5"/> <PingCircle texture="Content/Items/Engine/pingCircle.png" origin="0.5,0.5"/>
<ScreenOverlay texture="Content/Items/Engine/radarOverlay.png" origin="0.5,0.5"/> <ScreenOverlay texture="Content/Items/Engine/radarOverlay.png" origin="0.5,0.5"/>
</Radar> </Radar>
@@ -107,7 +107,7 @@
<Radar canbeselected = "true" powerconsumption="100"> <Radar canbeselected = "true" powerconsumption="100">
<StatusEffect type="InWater" target="This" condition="-1.0"/> <StatusEffect type="InWater" target="This" condition="-1.0"/>
<GuiFrame rect="0,0,0.5,0.5" alignment="Center" color="0.0,0.0,0.0,0.6"/> <GuiFrame rect="0,0,0.5,0.5" alignment="Center" style="ItemUI"/>
<PingCircle texture="Content/Items/Engine/pingCircle.png" origin="0.5,0.5"/> <PingCircle texture="Content/Items/Engine/pingCircle.png" origin="0.5,0.5"/>
<ScreenOverlay texture="Content/Items/Engine/radarOverlay.png" origin="0.5,0.5"/> <ScreenOverlay texture="Content/Items/Engine/radarOverlay.png" origin="0.5,0.5"/>
</Radar> </Radar>
@@ -11,7 +11,7 @@
<Fabricator canbeselected = "true" powerconsumption="500.0"> <Fabricator canbeselected = "true" powerconsumption="500.0">
<GuiFrame rect="0,0,600,400" alignment="Center" color="0.0,0.0,0.0,0.6"/> <GuiFrame rect="0,0,600,400" alignment="Center" style="ItemUI"/>
<sound file="fabricator.ogg" type="OnActive" range="1000.0" loop="true"/> <sound file="fabricator.ogg" type="OnActive" range="1000.0" loop="true"/>
@@ -92,7 +92,7 @@
<Fabricator canbeselected = "true" powerconsumption="100.0"> <Fabricator canbeselected = "true" powerconsumption="100.0">
<GuiFrame rect="0,0,600,400" alignment="Center" color="0.0,0.0,0.0,0.6"/> <GuiFrame rect="0,0,600,400" alignment="Center" style="ItemUI"/>
<sound file="fabricator.ogg" type="OnActive" range="1000.0" loop="true"/> <sound file="fabricator.ogg" type="OnActive" range="1000.0" loop="true"/>
@@ -166,7 +166,7 @@
<Deconstructor canbeselected = "true" powerconsumption="500.0"> <Deconstructor canbeselected = "true" powerconsumption="500.0">
<sound file="deconstructor.ogg" type="OnActive" range="1000.0" loop="true"/> <sound file="deconstructor.ogg" type="OnActive" range="1000.0" loop="true"/>
<GuiFrame rect="0,0,300,200" alignment="Center" color="0.0,0.0,0.0,0.6"/> <GuiFrame rect="0,0,300,200" alignment="Center" style="ItemUI"/>
</Deconstructor> </Deconstructor>
<ConnectionPanel selectkey="Action" canbeselected = "true"> <ConnectionPanel selectkey="Action" canbeselected = "true">
+1 -1
View File
@@ -8,7 +8,7 @@
<Sprite texture="Content/Items/machines.png" depth="0.8" sourcerect="64,0,64,128"/> <Sprite texture="Content/Items/machines.png" depth="0.8" sourcerect="64,0,64,128"/>
<MiniMap MinVoltage="0.5" PowerConsumption="100" canbeselected = "true"> <MiniMap MinVoltage="0.5" PowerConsumption="100" canbeselected = "true">
<GuiFrame rect="0,0,0.5,0.5" alignment="Center" color="0.0,0.0,0.0,0.8"/> <GuiFrame rect="0,0,0.5,0.5" alignment="Center" style="ItemUI"/>
</MiniMap> </MiniMap>
<ConnectionPanel selectkey="Action" canbeselected = "true" msg="Rewire [Screwdriver]"> <ConnectionPanel selectkey="Action" canbeselected = "true" msg="Rewire [Screwdriver]">
+2 -2
View File
@@ -8,7 +8,7 @@
<Sprite texture ="pump.png" depth="0.8"/> <Sprite texture ="pump.png" depth="0.8"/>
<Pump canbeselected = "true" maxflow="500" PowerConsumption="300.0" MinVoltage="0.3"> <Pump canbeselected = "true" maxflow="500" PowerConsumption="300.0" MinVoltage="0.3">
<GuiFrame rect="0,0,330,145" alignment="Center" color="0.0,0.0,0.0,0.6"/> <GuiFrame rect="0,0,330,145" alignment="Center" style="ItemUI"/>
<sound file="pump.ogg" type="OnActive" range="800.0" volume="CurrFlow" volumemultiplier="0.01" loop="true"/> <sound file="pump.ogg" type="OnActive" range="800.0" volume="CurrFlow" volumemultiplier="0.01" loop="true"/>
</Pump> </Pump>
@@ -31,7 +31,7 @@
<Sprite texture ="smallpump.png" depth="0.8" sourcerect="0,0,64,48"/> <Sprite texture ="smallpump.png" depth="0.8" sourcerect="0,0,64,48"/>
<Pump canbeselected = "true" maxflow="100" PowerConsumption="60.0" MinVoltage="0.3"> <Pump canbeselected = "true" maxflow="100" PowerConsumption="60.0" MinVoltage="0.3">
<GuiFrame rect="0,0,330,145" alignment="Center" color="0.0,0.0,0.0,0.6"/> <GuiFrame rect="0,0,330,145" alignment="Center" style="ItemUI"/>
<sound file="pump.ogg" type="OnActive" range="500.0" volume="CurrFlow" volumemultiplier="0.01" loop="true"/> <sound file="pump.ogg" type="OnActive" range="500.0" volume="CurrFlow" volumemultiplier="0.01" loop="true"/>
</Pump> </Pump>
+1 -1
View File
@@ -22,7 +22,7 @@
<Sprite texture = "reactor.png" sourcerect="0,0,321,192" depth="0.8"/> <Sprite texture = "reactor.png" sourcerect="0,0,321,192" depth="0.8"/>
<Reactor canbeselected = "true"> <Reactor canbeselected = "true">
<GuiFrame rect="0,0,760,460" alignment="Center" color="0.0,0.0,0.0,0.6"/> <GuiFrame rect="0,0,760,460" alignment="Center" style="ItemUI"/>
<StatusEffect type="InWater" target="This" Temperature="-500.0"/> <StatusEffect type="InWater" target="This" Temperature="-500.0"/>
<StatusEffect type="OnActive" target="Contained" targetnames="Fuel Rod, Heat Absorber, Temperature Control Circuit" Condition="-0.1" /> <StatusEffect type="OnActive" target="Contained" targetnames="Fuel Rod, Heat Absorber, Temperature Control Circuit" Condition="-0.1" />
<sound file="reactor.ogg" type="OnActive" range="2000.0" volume="FissionRate" volumemultiplier="0.02" loop="true"/> <sound file="reactor.ogg" type="OnActive" range="2000.0" volume="FissionRate" volumemultiplier="0.02" loop="true"/>
+1 -1
View File
@@ -201,7 +201,7 @@
<Radar range="6000.0" powerconsumption="10" drawhudwhenequipped="true" detectsubmarinewalls="true"> <Radar range="6000.0" powerconsumption="10" drawhudwhenequipped="true" detectsubmarinewalls="true">
<StatusEffect type="OnUse" target="Contained" Condition="-1.0" disabledeltatime="true"/> <StatusEffect type="OnUse" target="Contained" Condition="-1.0" disabledeltatime="true"/>
<sound file="Content/Items/Engine/radarPing.ogg" type="OnUse" range="1000.0"/> <sound file="Content/Items/Engine/radarPing.ogg" type="OnUse" range="1000.0"/>
<GuiFrame rect="0,0,0.5,0.5" alignment="Center" color="0.0,0.0,0.0,0.6"/> <GuiFrame rect="0,0,0.5,0.5" alignment="Center" style="ItemUI"/>
<PingCircle texture="Content/Items/Engine/pingCircle.png" origin="0.5,0.5"/> <PingCircle texture="Content/Items/Engine/pingCircle.png" origin="0.5,0.5"/>
<ScreenOverlay texture="Content/Items/Engine/radarOverlay.png" origin="0.5,0.5"/> <ScreenOverlay texture="Content/Items/Engine/radarOverlay.png" origin="0.5,0.5"/>
</Radar> </Radar>
Binary file not shown.

After

Width:  |  Height:  |  Size: 444 KiB

+208 -42
View File
@@ -1,70 +1,212 @@
<?xml version="1.0" encoding="utf-8" ?> <?xml version="1.0" encoding="utf-8" ?>
<style> <style>
<GUIFrame <GUIFrame
padding="40.0, 40.0, 40.0, 40.0" padding="40.0, 50.0, 40.0, 50.0"
color="0.8, 0.8, 0.8, 0.85" color="1.0,1.0,1.0,1.0"
hovercolor="1.0,1.0,1.0,1.0"
selectedcolor="1.0,1.0,1.0,1.0"
textcolor="0.0, 0.0, 0.0, 1.0" textcolor="0.0, 0.0, 0.0, 1.0">
hovercolor="0.8, 0.8, 0.8, 1.0"
selectedcolor="1.0, 0.82, 0.05, 1.0"
outlinecolor="0.5, 0.57, 0.6, 1.0">
<Sprite texture="Content/UI/uiBackground.png" size="0.0, 0.0" sourcerect ="0.0, 90.0, 0.0, 100.0"/> <Sprite texture="Content/UI/UI_Atlas.png" size="0.0, 0.0" sourcerect ="32, 541, 420, 220" slice="87,576,430,687"/>
</GUIFrame> </GUIFrame>
<GUIFrameHeader
padding="40.0, 40.0, 40.0, 40.0"
color="1.0,1.0,1.0,1.0"
hovercolor="1.0,1.0,1.0,1.0"
selectedcolor="1.0,1.0,1.0,1.0"
textcolor="0.0, 0.0, 0.0, 1.0">
<Sprite texture="Content/UI/UI_Atlas.png" size="0.0, 0.0" sourcerect ="32, 780, 420, 220" slice="87,853,430,929"/>
</GUIFrameHeader>
<GUIFrameTop
padding="40.0, 40.0, 40.0, 40.0"
color="1.0,1.0,1.0,1.0"
hovercolor="1.0,1.0,1.0,1.0"
selectedcolor="1.0,1.0,1.0,1.0"
textcolor="0.0, 0.0, 0.0, 1.0">
<Sprite texture="Content/UI/UI_Atlas.png" size="0.0, 0.0" sourcerect ="32, 705, 420, 55" slice="87,706,430,739"/>
</GUIFrameTop>
<GUIFrameLeft
padding="40.0, 40.0, 40.0, 40.0"
color="1.0,1.0,1.0,1.0"
hovercolor="1.0,1.0,1.0,1.0"
selectedcolor="1.0,1.0,1.0,1.0"
textcolor="0.0, 0.0, 0.0, 1.0">
<Sprite texture="Content/UI/UI_Atlas.png" size="0.0, 0.0" sourcerect ="87, 541, 365, 220" slice="88,576,430,687"/>
</GUIFrameLeft>
<GUIFrameRight
padding="40.0, 40.0, 40.0, 40.0"
color="1.0,1.0,1.0,1.0"
hovercolor="1.0,1.0,1.0,1.0"
selectedcolor="1.0,1.0,1.0,1.0"
textcolor="0.0, 0.0, 0.0, 1.0">
<Sprite texture="Content/UI/UI_Atlas.png" size="0.0, 0.0" sourcerect ="32, 541, 395, 220" slice="87,576,430,687"/>
</GUIFrameRight>
<InnerFrame
padding="40.0, 40.0, 40.0, 40.0"
color="1.0,1.0,1.0,1.0"
hovercolor="1.0,1.0,1.0,1.0"
selectedcolor="1.0,1.0,1.0,1.0"
textcolor="0.0, 0.0, 0.0, 1.0">
<Sprite texture="Content/UI/UI_Atlas.png" size="0.0, 0.0" sourcerect ="466, 660, 275, 166" slice="472,666,737,820"/>
</InnerFrame>
<GUIButton <GUIButton
color="0.88, 0.25, 0.15, 0.8" color="1.0,1.0,1.0,1.0"
hovercolor="1.0,1.0,1.0,1.0"
textcolor="1.0, 1.0, 1.0, 1.0" selectedcolor="1.0,1.0,1.0,1.0">
hovercolor="0.88, 0.25, 0.15, 1.0"
selectedcolor="1.0, 0.0, 0.0, 1.0">
<Sprite texture="Content/UI/uiButton.png" size="1.0, 1.0" tile="false" maintainaspectratio="false" sourcerect ="0.0, 0.0, 0.0, 71.0"/> <Sprite texture="Content/UI/UI_Atlas.png" state="None" sourcerect ="683, 74, 129, 41" slice="687, 78, 808, 109"/>
<Sprite texture="Content/UI/UI_Atlas.png" state="Hover" sourcerect ="888, 91, 129, 41" slice="893, 98, 1013, 125"/>
<Sprite texture="Content/UI/UI_Atlas.png" state="Selected" sourcerect ="553, 74, 129, 41" slice="557, 78, 676, 109"/>
<Sprite texture="Content/UI/UI_Atlas.png" state="Pressed" sourcerect ="553, 74, 129, 41" slice="557, 78, 676, 109"/>
<GUITextBlock
textcolor="0.6, 0.65, 0.7, 1.0"
padding="10.0, 0.0, 10.0, 0.0"/>
</GUIButton> </GUIButton>
<GUIButtonLarge
color="1.0,1.0,1.0,1.0"
hovercolor="1.0,1.0,1.0,1.0"
selectedcolor="1.0,1.0,1.0,1.0"
textcolor="1.0, 1.0, 1.0, 1.0">
<Sprite texture="Content/UI/UI_Atlas.png" sourcerect ="13, 667, 220, 59" slice="27, 673, 226, 718"/>
</GUIButtonLarge>
<GUITextBlock <GUITextBlock
textcolor="1.0, 1.0, 1.0, 1.0" textcolor="0.5, 0.55, 0.6, 1.0"
hovercolor="1.0,1.0,1.0,1.0"
selectedcolor="1.0,1.0,1.0,1.0"
padding="10.0, 0.0, 10.0, 0.0">
<Sprite texture="Content/UI/UI_Atlas.png" state="Hover" sourcerect ="474, 544, 266, 52" slice="480, 552, 731, 584"/>
<Sprite texture="Content/UI/UI_Atlas.png" state="Selected" sourcerect ="474, 544, 266, 52" slice="480, 552, 731, 584"/>
</GUITextBlock>
<GUIToolTip
textcolor="0.5, 0.55, 0.6, 1.0"
color="1.0,1.0,1.0,0.85"
hovercolor="0.3, 0.3, 0.3, 0.5" hovercolor="0.3, 0.3, 0.3, 0.5"
selectedcolor="1.0, 0.6, 0.0, 0.3" selectedcolor="1.0, 0.6, 0.0, 0.3"
padding="10.0, 0.0, 10.0, 0.0"/> padding="10.0, 0.0, 10.0, 0.0">
<Sprite texture="Content/UI/UI_Atlas.png" state="None" sourcerect ="746, 704, 120, 120" slice="754, 711, 865, 816"/>
</GUIToolTip>
<GUIListBox <GUIListBox
color="0.0, 0.0, 0.0, 1.0" color="1.0, 1.0, 1.0, 1.0"
textcolor="1.0, 1.0, 1.0, 1.0" textcolor="1.0, 1.0, 1.0, 1.0"
outlinecolor="0.5, 0.57, 0.6, 1.0"> outlinecolor="0.5, 0.57, 0.6, 1.0">
<GUIFrame
color="1.0,1.0,1.0,1.0"
hovercolor="1.0,1.0,1.0,1.0"
selectedcolor="1.0,1.0,1.0,1.0"
textcolor="1.0, 1.0, 1.0, 1.0">
<Sprite texture="Content/UI/UI_Atlas.png" size="0.0, 0.0" sourcerect ="466, 660, 275, 166" slice="472,666,737,820"/>
</GUIFrame>
</GUIListBox> </GUIListBox>
<GUIScrollBar <ListBoxElement
color="0.88, 0.25, 0.15, 0.8" textcolor="0.5, 0.55, 0.6, 1.0"
color="0.0,0.0,0.0,0.0"
textcolor="1.0, 1.0, 1.0, 1.0" hovercolor="1.0,1.0,1.0,1.0"
outlinecolor="0.5, 0.57, 0.6, 1.0"> selectedcolor="1.0,1.0,1.0,1.0"
<Sprite texture="Content/UI/uiBackground.png" size="0.0, 0.0"/> padding="5.0, 5.0, 5.0, 5.0">
<Sprite texture="Content/UI/UI_Atlas.png" state="Hover" sourcerect ="493, 544, 227, 52" slice="494, 552, 718, 584"/>
<Sprite texture="Content/UI/UI_Atlas.png" state="Selected" sourcerect ="493, 490, 227, 52" slice="494, 497, 718, 529"/>
</ListBoxElement>
<GUIScrollBar>
<GUIFrameHorizontal
color="1.0,1.0,1.0,1.0"
textcolor="1.0,1.0,1.0,1.0"
padding="9.0, 2.0, 9.0, 2.0">
<Sprite texture="Content/UI/UI_Atlas.png" sourcerect="0, 11, 307, 11" slice="7, 13, 299, 20"/>
</GUIFrameHorizontal>
<GUIFrameVertical
color="1.0,1.0,1.0,1.0"
textcolor="1.0,1.0,1.0,1.0"
padding="2.0, 6.0, 2.0, 6.0">
<Sprite texture="Content/UI/UI_Atlas.png" sourcerect="986, 874, 11, 148" slice="988, 881, 995, 1014"/>
</GUIFrameVertical>
</GUIScrollBar> </GUIScrollBar>
<GUISlider>
<GUIFrameHorizontal
color="1.0,1.0,1.0,1.0"
hovercolor="1.0,1.0,1.0,1.0"
selectedcolor="1.0,1.0,1.0,1.0"
textcolor="1.0,1.0,1.0,1.0"
padding="0.0, 0.0, 0.0, 0.0">
<Sprite texture="Content/UI/UI_Atlas.png" sourcerect="555, 61, 338, 13" slice="558, 64, 889, 69"/>
</GUIFrameHorizontal>
<GUIButtonHorizontal
color="1.0,1.0,1.0,1.0"
textcolor="1.0,1.0,1.0,1.0"
padding="2.0, 6.0, 2.0, 6.0">
<Sprite texture="Content/UI/UI_Atlas.png" state="None" sourcerect="805, 318, 26, 15" slice="813,318,822,332"/>
<Sprite texture="Content/UI/UI_Atlas.png" state="Hover" sourcerect="795, 518, 26, 15" slice="813,518,822,532"/>
<Sprite texture="Content/UI/UI_Atlas.png" state="Selected" sourcerect="795, 518, 26, 15" slice="813,518,822,532"/>
</GUIButtonHorizontal>
</GUISlider>
<GUIDropDown <GUIDropDown
color="0.3, 0.3, 0.3, 1.0" color="1.0,1.0,1.0,1.0"
textcolor="1.0, 1.0, 1.0, 1.0" hovercolor="1.0,1.0,1.0,1.0"
outlinecolor="0.5, 0.57, 0.6, 1.0"> selectedcolor="1.0,1.0,1.0,1.0"
<Sprite texture="Content/UI/uiBackground.png" size="0.0, 0.0"/>
textcolor="0.5, 0.55, 0.6, 1.0">
<Sprite texture="Content/UI/UI_Atlas.png" state="None" sourcerect ="470, 599, 274, 52" slice="480, 610, 731, 640"/>
<Sprite texture="Content/UI/UI_Atlas.png" state="Hover" sourcerect ="470, 544, 274, 52" slice="480, 552, 731, 584"/>
<Sprite texture="Content/UI/UI_Atlas.png" state="Selected" sourcerect ="470, 544, 274, 52" slice="480, 552, 731, 584"/>
</GUIDropDown> </GUIDropDown>
<GUITextBox <GUITextBox
color="0.0, 0.0, 0.0, 1.0" color="1.0,1.0,1.0,1.0"
hovercolor="0.5, 0.5, 0.5, 0.7" hovercolor="1.0,1.0,1.0,1.0"
textcolor="1.0, 1.0, 1.0, 1.0" selectedcolor="1.0,1.0,1.0,1.0"
outlinecolor="0.5, 0.57, 0.6, 1.0">
textcolor="0.5, 0.55, 0.6, 1.0">
<Sprite texture="Content/UI/UI_Atlas.png" state="None" sourcerect ="470, 599, 274, 52" slice="480, 610, 731, 640"/>
<Sprite texture="Content/UI/UI_Atlas.png" state="Hover" sourcerect ="470, 544, 274, 52" slice="480, 552, 731, 584"/>
<Sprite texture="Content/UI/UI_Atlas.png" state="Selected" sourcerect ="470, 490, 274, 52" slice="480, 497, 731, 529"/>
</GUITextBox> </GUITextBox>
<GUITickBox <GUITickBox
color="0.5, 0.5, 0.5, 1.0" color="1.0,1.0,1.0,1.0"
hovercolor="1.0,1.0,1.0,1.0"
outlinecolor="0.5, 0.57, 0.6, 1.0"> selectedcolor="1.0,1.0,1.0,1.0" >
<Sprite texture="Content/UI/uiBackground.png" size="0.0, 0.0" sourcerect ="0.0, 90.0, 0.0, 100.0"/> <Sprite texture="Content/UI/UI_Atlas.png" state="None" sourcerect ="991, 846, 23, 23" slice="997, 852, 1006, 862"/>
<Sprite texture="Content/UI/UI_Atlas.png" state="Pressed" sourcerect ="991, 846, 23, 23" slice="997, 852, 1006, 862"/>
<Sprite texture="Content/UI/UI_Atlas.png" state="Hover" sourcerect ="991, 813, 23, 23" slice="997, 818, 1006, 828"/>
<Sprite texture="Content/UI/UI_Atlas.png" state="Selected" sourcerect ="489, 943, 23, 23" slice="494, 947, 506, 960"/>
<GUITextBlock
textcolor="0.5, 0.55, 0.6, 1.0"
hovercolor="0.3, 0.3, 0.3, 0.5"
selectedcolor="1.0, 0.6, 0.0, 0.3"
padding="10.0, 0.0, 10.0, 0.0"/>
</GUITickBox> </GUITickBox>
<GUIMessageBox <GUIMessageBox
@@ -78,18 +220,42 @@
outlinecolor="0.5, 0.57, 0.6, 1.0"> outlinecolor="0.5, 0.57, 0.6, 1.0">
<Sprite texture="Content/UI/uiBackground.png" size="0.0, 0.0" sourcerect ="0.0, 90.0, 0.0, 100.0"/> <Sprite texture="Content/UI/UI_Atlas.png" sourcerect ="32, 541, 420, 454" slice="87,576,430,960"/>
<Sprite texture="Content/UI/uiBackground.png" size="0.0, 1.0" sourcerect ="0.0, 0.0, 0.0, 90.0"/>
</GUIMessageBox> </GUIMessageBox>
<GUIProgressBar <GUIProgressBar
padding="5.0, 5.0, 5.0, 5.0" padding="0.0, 0.0, 0.0, 0.0"
color="0.0, 0.0, 0.0, 0.5" color="0.0, 0.0, 0.0, 0.5"
hovercolor="0.0, 0.0, 0.0, 0.5" hovercolor="0.0, 0.0, 0.0, 0.5"
selectedcolor="0.0, 0.0, 0.0, 0.5" selectedcolor="0.0, 0.0, 0.0, 0.5"
outlinecolor="0.5, 0.57, 0.6, 1.0"> outlinecolor="0.5, 0.57, 0.6, 1.0">
<GUIFrame
color="1.0,1.0,1.0,1.0"
hovercolor="1.0,1.0,1.0,1.0"
selectedcolor="1.0,1.0,1.0,1.0">
<Sprite texture="Content/UI/UI_Atlas.png" tile="false" sourcerect ="28, 430, 875, 49"/>
</GUIFrame>
<Slider
color="1.0,1.0,1.0,1.0"
hovercolor="1.0,1.0,1.0,1.0"
selectedcolor="1.0,1.0,1.0,1.0">
<Sprite texture="Content/UI/UI_Atlas.png" tile="false" sourcerect ="0, 276, 859, 37"/>
</Slider>
</GUIProgressBar> </GUIProgressBar>
<ItemUI
padding="40.0,40.0,40.0,40.0"
color="1.0,1.0,1.0,1.0"
hovercolor="1.0,1.0,1.0,1.0"
selectedcolor="1.0,1.0,1.0,1.0">
<Sprite texture="Content/UI/UI_Atlas.png" size="0.0, 0.0" sourcerect ="32, 541, 420, 220" slice="87,576,430,687"/>
</ItemUI>
</style> </style>
@@ -52,10 +52,10 @@ namespace Barotrauma
private void CreateGUIFrame() private void CreateGUIFrame()
{ {
frame = new GUIFrame(Rectangle.Empty, Color.Black * 0.6f); frame = new GUIFrame(Rectangle.Empty, Color.Black * 0.6f, null);
frame.Padding = new Vector4(200.0f, 100.0f, 200.0f, 100.0f); frame.Padding = new Vector4(200.0f, 100.0f, 200.0f, 100.0f);
GUIButton closeButton = new GUIButton(new Rectangle(0, 50, 100, 20), "Close", Alignment.BottomCenter, GUI.Style, frame); GUIButton closeButton = new GUIButton(new Rectangle(0, 50, 100, 20), "Close", Alignment.BottomCenter, "", frame);
closeButton.OnClicked = (GUIButton button, object userData) => closeButton.OnClicked = (GUIButton button, object userData) =>
{ {
ToggleGUIFrame(); ToggleGUIFrame();
@@ -110,12 +110,12 @@ namespace Barotrauma
private GUIButton CreateOrderButton(Rectangle rect, Order order, bool createSymbol = true) private GUIButton CreateOrderButton(Rectangle rect, Order order, bool createSymbol = true)
{ {
var orderButton = new GUIButton(rect, order.Name, Color.Black * 0.7f, Alignment.TopCenter, Alignment.Center, null, frame); var orderButton = new GUIButton(rect, order.Name, null, Alignment.TopCenter, Alignment.Center, "GUITextBox", frame);
orderButton.Padding = new Vector4(5.0f, 5.0f, 5.0f, 5.0f); orderButton.Padding = new Vector4(5.0f, 5.0f, 5.0f, 5.0f);
orderButton.TextColor = Color.White; /*orderButton.TextColor = Color.White;
orderButton.Color = Color.Black * 0.5f; orderButton.Color = Color.Black * 0.5f;
orderButton.HoverColor = Color.LightGray * 0.5f; orderButton.HoverColor = Color.LightGray * 0.5f;
orderButton.OutlineColor = Color.LightGray * 0.8f; orderButton.OutlineColor = Color.LightGray * 0.8f;*/
orderButton.UserData = order; orderButton.UserData = order;
orderButton.OnClicked = SetOrder; orderButton.OnClicked = SetOrder;
@@ -169,15 +169,15 @@ namespace Barotrauma
int x = startX + (150 + spacing) * (i % Math.Min(charactersPerRow, aliveCharacters.Count)); int x = startX + (150 + spacing) * (i % Math.Min(charactersPerRow, aliveCharacters.Count));
int y = (105 + spacing)*((int)Math.Floor((double)i / charactersPerRow)); int y = (105 + spacing)*((int)Math.Floor((double)i / charactersPerRow));
GUIButton characterButton = new GUIButton(new Rectangle(x+75, y, 150, 40), "", Color.Black, Alignment.TopCenter, null, frame); GUIButton characterButton = new GUIButton(new Rectangle(x+75, y, 150, 40), "", null, Alignment.TopCenter, "GUITextBox", frame);
characterButton.UserData = character; characterButton.UserData = character;
characterButton.Padding = new Vector4(5.0f, 5.0f, 5.0f, 5.0f); characterButton.Padding = new Vector4(5.0f, 5.0f, 5.0f, 5.0f);
characterButton.Color = Character.Controlled == character ? Color.Gold * 0.2f : Color.Black * 0.5f; characterButton.Color = Character.Controlled == character ? Color.Gold : Color.White;
characterButton.HoverColor = Color.LightGray * 0.5f; /*characterButton.HoverColor = Color.LightGray * 0.5f;
characterButton.SelectedColor = Color.Gold * 0.6f; characterButton.SelectedColor = Color.Gold * 0.6f;
characterButton.OutlineColor = Color.LightGray * 0.8f; characterButton.OutlineColor = Color.LightGray * 0.8f;*/
characterFrameBottom = Math.Max(characterFrameBottom, characterButton.Rect.Bottom); characterFrameBottom = Math.Max(characterFrameBottom, characterButton.Rect.Bottom);
@@ -187,9 +187,9 @@ namespace Barotrauma
GUITextBlock textBlock = new GUITextBlock( GUITextBlock textBlock = new GUITextBlock(
new Rectangle(40, 0, 0, 25), new Rectangle(40, 0, 0, 25),
name, name,
Color.Transparent, Color.White, Color.Transparent, null,
Alignment.Left, Alignment.Left, Alignment.Left, Alignment.Left,
null, characterButton, false); "", characterButton, false);
textBlock.Font = GUI.SmallFont; textBlock.Font = GUI.SmallFont;
textBlock.Padding = new Vector4(5.0f, 0.0f, 5.0f, 0.0f); textBlock.Padding = new Vector4(5.0f, 0.0f, 5.0f, 0.0f);
@@ -259,8 +259,8 @@ namespace Barotrauma
var existingOrder = characterFrame.children.Find(c => c.UserData is Order); var existingOrder = characterFrame.children.Find(c => c.UserData is Order);
if (existingOrder != null) characterFrame.RemoveChild(existingOrder); if (existingOrder != null) characterFrame.RemoveChild(existingOrder);
var orderFrame = new GUIFrame(new Rectangle(-5, characterFrame.Rect.Height, characterFrame.Rect.Width, 30 + order.Options.Length * 15), null, characterFrame); var orderFrame = new GUIFrame(new Rectangle(-5, characterFrame.Rect.Height, characterFrame.Rect.Width, 30 + order.Options.Length * 15), "InnerFrame", characterFrame);
orderFrame.OutlineColor = Color.LightGray * 0.5f; /*orderFrame.OutlineColor = Color.LightGray * 0.5f;*/
orderFrame.Padding = new Vector4(5.0f, 5.0f, 5.0f, 5.0f); orderFrame.Padding = new Vector4(5.0f, 5.0f, 5.0f, 5.0f);
orderFrame.UserData = order; orderFrame.UserData = order;
@@ -269,18 +269,14 @@ namespace Barotrauma
img.Color = order.Color; img.Color = order.Color;
img.CanBeFocused = false; img.CanBeFocused = false;
new GUITextBlock(new Rectangle(0, 0, 0, 20), order.DoingText, GUI.Style, Alignment.TopLeft, Alignment.TopCenter, orderFrame); new GUITextBlock(new Rectangle(img.Rect.Width, 0, 0, 20), order.DoingText, "", Alignment.TopLeft, Alignment.CenterLeft, orderFrame);
var optionList = new GUIListBox(new Rectangle(0, 20, 0, 80), Color.Transparent, null, orderFrame); var optionList = new GUIListBox(new Rectangle(0, 20, 0, 80), Color.Transparent, null, orderFrame);
optionList.UserData = order; optionList.UserData = order;
for (int i = 0; i < order.Options.Length; i++ ) for (int i = 0; i < order.Options.Length; i++ )
{ {
var optionBox = new GUITextBlock(new Rectangle(0, 0, 0, 15), order.Options[i], GUI.Style, optionList); var optionBox = new GUITextBlock(new Rectangle(0, 0, 0, 15), order.Options[i], "", Alignment.TopLeft, Alignment.CenterLeft, optionList);
optionBox.Font = GUI.SmallFont; optionBox.Font = GUI.SmallFont;
optionBox.UserData = order.Options[i]; optionBox.UserData = order.Options[i];
+4 -4
View File
@@ -154,7 +154,7 @@ namespace Barotrauma
if (cprButton == null) if (cprButton == null)
{ {
cprButton = new GUIButton( cprButton = new GUIButton(
new Rectangle(character.SelectedCharacter.Inventory.SlotPositions[0].ToPoint() + new Point(320, -30), new Point(130, 20)), "Perform CPR", GUI.Style); new Rectangle(character.SelectedCharacter.Inventory.SlotPositions[0].ToPoint() + new Point(320, -30), new Point(130, 20)), "Perform CPR", "");
cprButton.OnClicked = (button, userData) => cprButton.OnClicked = (button, userData) =>
{ {
@@ -252,7 +252,7 @@ namespace Barotrauma
if (suicideButton == null) if (suicideButton == null)
{ {
suicideButton = new GUIButton( suicideButton = new GUIButton(
new Rectangle(new Point(GameMain.GraphicsWidth / 2 - 60, 20), new Point(120, 20)), "Give in", GUI.Style); new Rectangle(new Point(GameMain.GraphicsWidth / 2 - 60, 20), new Point(120, 20)), "Give in", "");
suicideButton.ToolTip = GameMain.NetworkMember == null ? suicideButton.ToolTip = GameMain.NetworkMember == null ?
@@ -287,10 +287,10 @@ namespace Barotrauma
{ {
int width = 100, height = 20; int width = 100, height = 20;
drowningBar = new GUIProgressBar(new Rectangle(30, GameMain.GraphicsHeight - 200, width, height), Color.Blue, GUI.Style, 1.0f, Alignment.TopLeft); drowningBar = new GUIProgressBar(new Rectangle(30, GameMain.GraphicsHeight - 200, width, height), Color.Blue, "", 1.0f, Alignment.TopLeft);
new GUIImage(new Rectangle(-27, -7, 20, 20), new Rectangle(17, 0, 20, 24), statusIcons, Alignment.TopLeft, drowningBar); new GUIImage(new Rectangle(-27, -7, 20, 20), new Rectangle(17, 0, 20, 24), statusIcons, Alignment.TopLeft, drowningBar);
healthBar = new GUIProgressBar(new Rectangle(30, GameMain.GraphicsHeight - 230, width, height), Color.Red, GUI.Style, 1.0f, Alignment.TopLeft); healthBar = new GUIProgressBar(new Rectangle(30, GameMain.GraphicsHeight - 230, width, height), Color.Red, "", 1.0f, Alignment.TopLeft);
new GUIImage(new Rectangle(-26, -7, 20, 20), new Rectangle(0, 0, 13, 24), statusIcons, Alignment.TopLeft, healthBar); new GUIImage(new Rectangle(-26, -7, 20, 20), new Rectangle(0, 0, 13, 24), statusIcons, Alignment.TopLeft, healthBar);
} }
+9 -14
View File
@@ -226,24 +226,24 @@ namespace Barotrauma
ScalableFont font = frame.Rect.Width<280 ? GUI.SmallFont : GUI.Font; ScalableFont font = frame.Rect.Width<280 ? GUI.SmallFont : GUI.Font;
int x = 0, y = 0; int x = 0, y = 0;
new GUITextBlock(new Rectangle(x+60, y, 200, 20), Name, GUI.Style, frame, font); new GUITextBlock(new Rectangle(x+60, y, 200, 20), Name, "", frame, font);
y += 20; y += 20;
if (Job!=null) if (Job!=null)
{ {
new GUITextBlock(new Rectangle(x + 60, y, 200, 20), Job.Name, GUI.Style, frame, font); new GUITextBlock(new Rectangle(x + 60, y, 200, 20), Job.Name, "", frame, font);
y += 30; y += 30;
var skills = Job.Skills; var skills = Job.Skills;
skills.Sort((s1, s2) => -s1.Level.CompareTo(s2.Level)); skills.Sort((s1, s2) => -s1.Level.CompareTo(s2.Level));
new GUITextBlock(new Rectangle(x, y, 200, 20), "Skills:", GUI.Style, frame, font); new GUITextBlock(new Rectangle(x, y, 200, 20), "Skills:", "", frame, font);
y += 20; y += 20;
foreach (Skill skill in skills) foreach (Skill skill in skills)
{ {
Color textColor = Color.White * (0.5f + skill.Level/200.0f); Color textColor = Color.White * (0.5f + skill.Level/200.0f);
new GUITextBlock(new Rectangle(x, y, 200, 20), skill.Name, Color.Transparent, textColor, Alignment.Left, GUI.Style, frame).Font = font; new GUITextBlock(new Rectangle(x, y, 200, 20), skill.Name, Color.Transparent, textColor, Alignment.Left, "", frame).Font = font;
new GUITextBlock(new Rectangle(x, y, 200, 20), skill.Level.ToString(), Color.Transparent, textColor, Alignment.Right, GUI.Style, frame).Font = font; new GUITextBlock(new Rectangle(x, y, 200, 20), skill.Level.ToString(), Color.Transparent, textColor, Alignment.Right, "", frame).Font = font;
y += 20; y += 20;
} }
} }
@@ -254,20 +254,15 @@ namespace Barotrauma
public GUIFrame CreateCharacterFrame(GUIComponent parent, string text, object userData) public GUIFrame CreateCharacterFrame(GUIComponent parent, string text, object userData)
{ {
GUIFrame frame = new GUIFrame(new Rectangle(0, 0, 0, 40), Color.Transparent, null, parent); GUIFrame frame = new GUIFrame(new Rectangle(0, 0, 0, 40), Color.Transparent, "ListBoxElement", parent);
frame.UserData = userData; frame.UserData = userData;
frame.Padding = new Vector4(5.0f, 5.0f, 5.0f, 5.0f);
frame.HoverColor = Color.LightGray * 0.5f;
frame.SelectedColor = Color.Gold * 0.5f;
// string name = character.Info.Name.Replace(' ', '\n');
GUITextBlock textBlock = new GUITextBlock( GUITextBlock textBlock = new GUITextBlock(
new Rectangle(40, 0, 0, 25), new Rectangle(40, 0, 0, 25),
text, text,
Color.Transparent, Color.White, null, null,
Alignment.Left, Alignment.Left, Alignment.Left, Alignment.Left,
null, frame, false); "", frame, false);
textBlock.Font = GUI.SmallFont; textBlock.Font = GUI.SmallFont;
textBlock.Padding = new Vector4(5.0f, 0.0f, 5.0f, 0.0f); textBlock.Padding = new Vector4(5.0f, 0.0f, 5.0f, 0.0f);
@@ -108,14 +108,14 @@ namespace Barotrauma
GUIFrame backFrame = new GUIFrame(Rectangle.Empty, Color.Black*0.5f); GUIFrame backFrame = new GUIFrame(Rectangle.Empty, Color.Black*0.5f);
GUIFrame frame = new GUIFrame(new Rectangle(GameMain.GraphicsWidth / 2 - width / 2, GameMain.GraphicsHeight / 2 - height / 2, width, height), GUI.Style, backFrame); GUIFrame frame = new GUIFrame(new Rectangle(GameMain.GraphicsWidth / 2 - width / 2, GameMain.GraphicsHeight / 2 - height / 2, width, height), "", backFrame);
frame.Padding = new Vector4(30.0f, 30.0f, 30.0f, 30.0f); frame.Padding = new Vector4(30.0f, 30.0f, 30.0f, 30.0f);
new GUITextBlock(new Rectangle(0,0,100,20), Name, GUI.Style, Alignment.TopLeft, Alignment.TopLeft, frame, false, GUI.LargeFont); new GUITextBlock(new Rectangle(0,0,100,20), Name, "", Alignment.TopLeft, Alignment.TopLeft, frame, false, GUI.LargeFont);
var descriptionBlock = new GUITextBlock(new Rectangle(0, 40, 0, 0), Description, GUI.Style, Alignment.TopLeft, Alignment.TopLeft, frame, true, GUI.SmallFont); var descriptionBlock = new GUITextBlock(new Rectangle(0, 40, 0, 0), Description, "", Alignment.TopLeft, Alignment.TopLeft, frame, true, GUI.SmallFont);
new GUITextBlock(new Rectangle(0, 40 + descriptionBlock.Rect.Height + 20, 100, 20), "Skills: ", GUI.Style, Alignment.TopLeft, Alignment.TopLeft, frame, false, GUI.LargeFont); new GUITextBlock(new Rectangle(0, 40 + descriptionBlock.Rect.Height + 20, 100, 20), "Skills: ", "", Alignment.TopLeft, Alignment.TopLeft, frame, false, GUI.LargeFont);
int y = 40 + descriptionBlock.Rect.Height + 50; int y = 40 + descriptionBlock.Rect.Height + 50;
foreach (SkillPrefab skill in Skills) foreach (SkillPrefab skill in Skills)
@@ -128,18 +128,18 @@ namespace Barotrauma
skillDescription += "/"+skillDescription2; skillDescription += "/"+skillDescription2;
} }
new GUITextBlock(new Rectangle(0, y, 100, 20), new GUITextBlock(new Rectangle(0, y, 100, 20),
" - " + skill.Name + ": " + skillDescription, GUI.Style, Alignment.TopLeft, Alignment.TopLeft, frame, false, GUI.SmallFont); " - " + skill.Name + ": " + skillDescription, "", Alignment.TopLeft, Alignment.TopLeft, frame, false, GUI.SmallFont);
y += 20; y += 20;
} }
new GUITextBlock(new Rectangle(250, 40 + descriptionBlock.Rect.Height + 20, 0, 20), "Items: ", GUI.Style, Alignment.TopLeft, Alignment.TopLeft, frame, false, GUI.LargeFont); new GUITextBlock(new Rectangle(250, 40 + descriptionBlock.Rect.Height + 20, 0, 20), "Items: ", "", Alignment.TopLeft, Alignment.TopLeft, frame, false, GUI.LargeFont);
y = 40 + descriptionBlock.Rect.Height + 50; y = 40 + descriptionBlock.Rect.Height + 50;
foreach (string itemName in ItemNames) foreach (string itemName in ItemNames)
{ {
new GUITextBlock(new Rectangle(250, y, 100, 20), new GUITextBlock(new Rectangle(250, y, 100, 20),
" - " + itemName, GUI.Style, Alignment.TopLeft, Alignment.TopLeft, frame, false, GUI.SmallFont); " - " + itemName, "", Alignment.TopLeft, Alignment.TopLeft, frame, false, GUI.SmallFont);
y += 20; y += 20;
} }
+6 -7
View File
@@ -55,15 +55,14 @@ namespace Barotrauma
int x = 20, y = 20; int x = 20, y = 20;
int width = 800, height = 500; int width = 800, height = 500;
frame = new GUIFrame(new Rectangle(x, y, width, height), new Color(0.4f, 0.4f, 0.4f, 0.5f)); frame = new GUIFrame(new Rectangle(x, y, width, height), new Color(0.4f, 0.4f, 0.4f, 0.8f));
frame.Color = Color.White * 0.4f;
frame.Padding = new Vector4(5.0f, 5.0f, 5.0f, 5.0f); frame.Padding = new Vector4(5.0f, 5.0f, 5.0f, 5.0f);
listBox = new GUIListBox(new Rectangle(0, 0, 0, frame.Rect.Height - 40), Color.Black, GUI.Style, frame); listBox = new GUIListBox(new Rectangle(0, 0, 0, frame.Rect.Height - 40), Color.Black, "", frame);
listBox.Color = Color.Black * 0.7f; //listBox.Color = Color.Black * 0.7f;
textBox = new GUITextBox(new Rectangle(0,0,0,20), Color.Black, Color.White, Alignment.BottomLeft, Alignment.Left, GUI.Style, frame); textBox = new GUITextBox(new Rectangle(0,0,0,20), Color.Black, Color.White, Alignment.BottomLeft, Alignment.Left, "", frame);
textBox.Color = Color.Black * 0.7f; //textBox.Color = Color.Black * 0.7f;
//messages already added before initialization -> add them to the listbox //messages already added before initialization -> add them to the listbox
List<ColoredText> unInitializedMessages = new List<ColoredText>(Messages); List<ColoredText> unInitializedMessages = new List<ColoredText>(Messages);
@@ -857,7 +856,7 @@ namespace Barotrauma
try try
{ {
var textBlock = new GUITextBlock(new Rectangle(0, 0, listBox.Rect.Width, 0), msg, GUI.Style, Alignment.TopLeft, Alignment.Left, null, true, GUI.SmallFont); var textBlock = new GUITextBlock(new Rectangle(0, 0, listBox.Rect.Width, 0), msg, "", Alignment.TopLeft, Alignment.Left, null, true, GUI.SmallFont);
textBlock.CanBeFocused = false; textBlock.CanBeFocused = false;
textBlock.TextColor = color; textBlock.TextColor = color;
+63 -3
View File
@@ -1,4 +1,5 @@
using Microsoft.Xna.Framework; using Microsoft.Xna.Framework;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Xml.Linq; using System.Xml.Linq;
@@ -18,6 +19,18 @@ namespace Barotrauma
private set; private set;
} }
public bool Slice
{
get;
set;
}
public Rectangle[] Slices
{
get;
set;
}
public bool MaintainAspectRatio public bool MaintainAspectRatio
{ {
get; get;
@@ -45,14 +58,21 @@ namespace Barotrauma
public readonly Color OutlineColor; public readonly Color OutlineColor;
public readonly List<UISprite> Sprites; public readonly Dictionary<GUIComponent.ComponentState, List<UISprite>> Sprites;
public readonly bool TileSprites; public readonly bool TileSprites;
public Dictionary<string, GUIComponentStyle> ChildStyles;
public GUIComponentStyle(XElement element) public GUIComponentStyle(XElement element)
{ {
Sprites = new List<UISprite>(); Sprites = new Dictionary<GUIComponent.ComponentState, List<UISprite>>();
foreach (GUIComponent.ComponentState state in Enum.GetValues(typeof(GUIComponent.ComponentState)))
{
Sprites[state] = new List<UISprite>();
}
ChildStyles = new Dictionary<string, GUIComponentStyle>();
Padding = ToolBox.GetAttributeVector4(element, "padding", Vector4.Zero); Padding = ToolBox.GetAttributeVector4(element, "padding", Vector4.Zero);
@@ -80,7 +100,47 @@ namespace Barotrauma
bool maintainAspect = ToolBox.GetAttributeBool(subElement, "maintainaspectratio",false); bool maintainAspect = ToolBox.GetAttributeBool(subElement, "maintainaspectratio",false);
bool tile = ToolBox.GetAttributeBool(subElement, "tile", true); bool tile = ToolBox.GetAttributeBool(subElement, "tile", true);
Sprites.Add(new UISprite(sprite, tile, maintainAspect)); string stateStr = ToolBox.GetAttributeString(subElement, "state", "None");
GUIComponent.ComponentState spriteState = GUIComponent.ComponentState.None;
Enum.TryParse(stateStr, out spriteState);
UISprite newSprite = new UISprite(sprite, tile, maintainAspect);
Vector4 sliceVec = ToolBox.GetAttributeVector4(subElement, "slice", Vector4.Zero);
if (sliceVec != Vector4.Zero)
{
Rectangle slice = new Rectangle((int)sliceVec.X, (int)sliceVec.Y, (int)(sliceVec.Z - sliceVec.X), (int)(sliceVec.W - sliceVec.Y));
newSprite.Slice = true;
newSprite.Slices = new Rectangle[9];
//top-left
newSprite.Slices[0] = new Rectangle(newSprite.Sprite.SourceRect.Location, slice.Location - newSprite.Sprite.SourceRect.Location);
//top-mid
newSprite.Slices[1] = new Rectangle(slice.Location.X, newSprite.Slices[0].Y, slice.Width, newSprite.Slices[0].Height);
//top-right
newSprite.Slices[2] = new Rectangle(slice.Right, newSprite.Slices[0].Y, newSprite.Sprite.SourceRect.Right - slice.Right, newSprite.Slices[0].Height);
//mid-left
newSprite.Slices[3] = new Rectangle(newSprite.Slices[0].X, slice.Y, newSprite.Slices[0].Width, slice.Height);
//center
newSprite.Slices[4] = slice;
//mid-right
newSprite.Slices[5] = new Rectangle(newSprite.Slices[2].X, slice.Y, newSprite.Slices[2].Width, slice.Height);
//bottom-left
newSprite.Slices[6] = new Rectangle(newSprite.Slices[0].X, slice.Bottom, newSprite.Slices[0].Width, newSprite.Sprite.SourceRect.Bottom - slice.Bottom);
//bottom-mid
newSprite.Slices[7] = new Rectangle(newSprite.Slices[1].X, slice.Bottom, newSprite.Slices[1].Width, newSprite.Sprite.SourceRect.Bottom - slice.Bottom);
//bottom-right
newSprite.Slices[8] = new Rectangle(newSprite.Slices[2].X, slice.Bottom, newSprite.Slices[2].Width, newSprite.Sprite.SourceRect.Bottom - slice.Bottom);
}
Sprites[spriteState].Add(newSprite);
break;
default:
ChildStyles.Add(subElement.Name.ToString().ToLowerInvariant(), new GUIComponentStyle(subElement));
break; break;
} }
} }
+14 -15
View File
@@ -1,7 +1,6 @@
using Microsoft.Xna.Framework; using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@@ -10,10 +9,10 @@ namespace Barotrauma
[Flags] [Flags]
public enum Alignment public enum Alignment
{ {
CenterX = 1, Left = 2, Right = 4, CenterY = 8, Top = 16, Bottom = 32 , CenterX = 1, Left = 2, Right = 4, CenterY = 8, Top = 16, Bottom = 32,
TopRight = (Top | Right), TopLeft = (Top | Left), TopCenter = (CenterX | Top), TopLeft = (Top | Left), TopCenter = (CenterX | Top), TopRight = (Top | Right),
Center = (CenterX | CenterY), CenterLeft = (Left | CenterY), Center = (CenterX | CenterY), CenterRight = (Right | CenterY),
BottomRight = (Bottom | Right), BottomLeft = (Bottom | Left), BottomCenter = (CenterX | Bottom) BottomLeft = (Bottom | Left), BottomCenter = (CenterX | Bottom), BottomRight = (Bottom | Right),
} }
public enum GUISoundType public enum GUISoundType
@@ -136,15 +135,15 @@ namespace Barotrauma
if (pauseMenuOpen) if (pauseMenuOpen)
{ {
pauseMenu = new GUIFrame(new Rectangle(0, 0, 200, 300), null, Alignment.Center, Style); pauseMenu = new GUIFrame(new Rectangle(0, 0, 200, 300), null, Alignment.Center, "");
int y = 0; int y = 0;
var button = new GUIButton(new Rectangle(0, y, 0, 30), "Resume", Alignment.CenterX, Style, pauseMenu); var button = new GUIButton(new Rectangle(0, y, 0, 30), "Resume", Alignment.CenterX, "", pauseMenu);
button.OnClicked = TogglePauseMenu; button.OnClicked = TogglePauseMenu;
y += 60; y += 60;
button = new GUIButton(new Rectangle(0, y, 0, 30), "Settings", Alignment.CenterX, Style, pauseMenu); button = new GUIButton(new Rectangle(0, y, 0, 30), "Settings", Alignment.CenterX, "", pauseMenu);
button.OnClicked = (btn, userData) => button.OnClicked = (btn, userData) =>
{ {
TogglePauseMenu(); TogglePauseMenu();
@@ -161,7 +160,7 @@ namespace Barotrauma
SinglePlayerMode spMode = GameMain.GameSession.gameMode as SinglePlayerMode; SinglePlayerMode spMode = GameMain.GameSession.gameMode as SinglePlayerMode;
if (spMode != null) if (spMode != null)
{ {
button = new GUIButton(new Rectangle(0, y, 0, 30), "Load previous", Alignment.CenterX, Style, pauseMenu); button = new GUIButton(new Rectangle(0, y, 0, 30), "Load previous", Alignment.CenterX, "", pauseMenu);
button.OnClicked += TogglePauseMenu; button.OnClicked += TogglePauseMenu;
button.OnClicked += GameMain.GameSession.LoadPrevious; button.OnClicked += GameMain.GameSession.LoadPrevious;
@@ -174,7 +173,7 @@ namespace Barotrauma
SinglePlayerMode spMode = GameMain.GameSession.gameMode as SinglePlayerMode; SinglePlayerMode spMode = GameMain.GameSession.gameMode as SinglePlayerMode;
if (spMode != null) if (spMode != null)
{ {
button = new GUIButton(new Rectangle(0, y, 0, 30), "Save & quit", Alignment.CenterX, Style, pauseMenu); button = new GUIButton(new Rectangle(0, y, 0, 30), "Save & quit", Alignment.CenterX, "", pauseMenu);
button.OnClicked += QuitClicked; button.OnClicked += QuitClicked;
button.OnClicked += TogglePauseMenu; button.OnClicked += TogglePauseMenu;
button.UserData = "save"; button.UserData = "save";
@@ -184,7 +183,7 @@ namespace Barotrauma
} }
button = new GUIButton(new Rectangle(0, y, 0, 30), "Quit", Alignment.CenterX, Style, pauseMenu); button = new GUIButton(new Rectangle(0, y, 0, 30), "Quit", Alignment.CenterX, "", pauseMenu);
button.OnClicked += QuitClicked; button.OnClicked += QuitClicked;
button.OnClicked += TogglePauseMenu; button.OnClicked += TogglePauseMenu;
} }
@@ -435,24 +434,24 @@ namespace Barotrauma
"FPS: " + (int)GameMain.FrameCounter.AverageFramesPerSecond, "FPS: " + (int)GameMain.FrameCounter.AverageFramesPerSecond,
Color.White, Color.Black * 0.5f, 0, SmallFont); Color.White, Color.Black * 0.5f, 0, SmallFont);
DrawString(spriteBatch, new Vector2(10, 20), DrawString(spriteBatch, new Vector2(10, 25),
"Physics: " + GameMain.World.UpdateTime, "Physics: " + GameMain.World.UpdateTime,
Color.White, Color.Black * 0.5f, 0, SmallFont); Color.White, Color.Black * 0.5f, 0, SmallFont);
DrawString(spriteBatch, new Vector2(10, 30), DrawString(spriteBatch, new Vector2(10, 40),
"Bodies: " + GameMain.World.BodyList.Count + " (" + GameMain.World.BodyList.FindAll(b => b.Awake && b.Enabled).Count + " awake)", "Bodies: " + GameMain.World.BodyList.Count + " (" + GameMain.World.BodyList.FindAll(b => b.Awake && b.Enabled).Count + " awake)",
Color.White, Color.Black * 0.5f, 0, SmallFont); Color.White, Color.Black * 0.5f, 0, SmallFont);
if (Screen.Selected.Cam != null) if (Screen.Selected.Cam != null)
{ {
DrawString(spriteBatch, new Vector2(10, 40), DrawString(spriteBatch, new Vector2(10, 55),
"Camera pos: " + Screen.Selected.Cam.Position.ToPoint(), "Camera pos: " + Screen.Selected.Cam.Position.ToPoint(),
Color.White, Color.Black * 0.5f, 0, SmallFont); Color.White, Color.Black * 0.5f, 0, SmallFont);
} }
if (Submarine.MainSub != null) if (Submarine.MainSub != null)
{ {
DrawString(spriteBatch, new Vector2(10, 50), DrawString(spriteBatch, new Vector2(10, 70),
"Sub pos: " + Submarine.MainSub.Position.ToPoint(), "Sub pos: " + Submarine.MainSub.Position.ToPoint(),
Color.White, Color.Black * 0.5f, 0, SmallFont); Color.White, Color.Black * 0.5f, 0, SmallFont);
} }
+21 -24
View File
@@ -133,63 +133,60 @@ namespace Barotrauma
public bool Selected { get; set; } public bool Selected { get; set; }
public GUIButton(Rectangle rect, string text, GUIStyle style, GUIComponent parent = null) public GUIButton(Rectangle rect, string text, string style, GUIComponent parent = null)
: this(rect, text, null, Alignment.Left, style, parent) : this(rect, text, null, Alignment.Left, style, parent)
{ {
} }
public GUIButton(Rectangle rect, string text, Alignment alignment, GUIStyle style, GUIComponent parent = null) public GUIButton(Rectangle rect, string text, Alignment alignment, string style, GUIComponent parent = null)
: this(rect, text, null, alignment, style, parent) : this(rect, text, null, alignment, style, parent)
{ {
} }
public GUIButton(Rectangle rect, string text, Color? color, GUIStyle style, GUIComponent parent = null) public GUIButton(Rectangle rect, string text, Color? color, string style, GUIComponent parent = null)
: this(rect, text, color, (Alignment.Left | Alignment.Top), style, parent) : this(rect, text, color, (Alignment.Left | Alignment.Top), style, parent)
{ {
} }
public GUIButton(Rectangle rect, string text, Color? color, Alignment alignment, GUIStyle style, GUIComponent parent = null) public GUIButton(Rectangle rect, string text, Color? color, Alignment alignment, string style = "", GUIComponent parent = null)
:this(rect, text, color, alignment, Alignment.Center, style, parent) : this(rect, text, color, alignment, Alignment.Center, style, parent)
{ {
} }
public GUIButton(Rectangle rect, string text, Color? color, Alignment alignment, Alignment textAlignment, GUIStyle style, GUIComponent parent = null) public GUIButton(Rectangle rect, string text, Color? color, Alignment alignment, Alignment textAlignment, string style = "", GUIComponent parent = null)
:base (style) : base(style)
{ {
this.rect = rect; this.rect = rect;
if (color!=null) this.color = (Color)color; if (color != null) this.color = (Color)color;
this.alignment = alignment; this.alignment = alignment;
if (parent != null) parent.AddChild(this); if (parent != null) parent.AddChild(this);
frame = new GUIFrame(Rectangle.Empty, style, this); frame = new GUIFrame(Rectangle.Empty, style, this);
if (style != null) style.Apply(frame, this); GUI.Style.Apply(frame, style == "" ? "GUIButton" : style);
textBlock = new GUITextBlock(Rectangle.Empty, text, textBlock = new GUITextBlock(Rectangle.Empty, text,
Color.Transparent, (this.style == null) ? Color.Black : this.style.textColor, Color.Transparent, (this.style == null) ? Color.Black : this.style.textColor,
textAlignment, style, this); textAlignment, null, this);
GUI.Style.Apply(textBlock, style, this);
Enabled = true; Enabled = true;
} }
public override void ApplyStyle(GUIComponentStyle style)
{
base.ApplyStyle(style);
if (frame != null) frame.ApplyStyle(style);
if (textBlock != null) textBlock.ApplyStyle(style);
}
public override void Draw(SpriteBatch spriteBatch) public override void Draw(SpriteBatch spriteBatch)
{ {
if (!Visible) return; if (!Visible) return;
//Color currColor = color;
//if (state == ComponentState.Hover) currColor = hoverColor;
//if (state == ComponentState.Selected) currColor = selectedColor;
//GUI.DrawRectangle(spriteBatch, rect, currColor * alpha, true);
////spriteBatch.DrawString(HUD.font, text, new Vector2(rect.X+rect.Width/2, rect.Y+rect.Height/2), Color.Black, 0.0f, new Vector2(0.5f,0.5f), 1.0f, SpriteEffects.None, 0.0f);
//GUI.DrawRectangle(spriteBatch, rect, Color.Black * alpha, false);
DrawChildren(spriteBatch); DrawChildren(spriteBatch);
//if (!Enabled) GUI.DrawRectangle(spriteBatch, rect, Color.Gray*0.5f, true);
} }
public override void Update(float deltaTime) public override void Update(float deltaTime)
@@ -203,7 +200,7 @@ namespace Barotrauma
{ {
if (OnPressed != null) if (OnPressed != null)
{ {
if (OnPressed()) state = ComponentState.Selected; if (OnPressed()) state = ComponentState.Pressed;
} }
} }
else if (PlayerInput.LeftButtonClicked()) else if (PlayerInput.LeftButtonClicked())
+52 -21
View File
@@ -73,7 +73,7 @@ namespace Barotrauma
protected static KeyboardDispatcher keyboardDispatcher; protected static KeyboardDispatcher keyboardDispatcher;
public enum ComponentState { None, Hover, Selected}; public enum ComponentState { None, Hover, Pressed, Selected };
protected Alignment alignment; protected Alignment alignment;
@@ -111,6 +111,11 @@ namespace Barotrauma
set; set;
} }
public GUIComponentStyle Style
{
get { return style; }
}
public bool Visible public bool Visible
{ {
get; get;
@@ -119,7 +124,7 @@ namespace Barotrauma
public bool TileSprites; public bool TileSprites;
private GUITextBlock toolTipBlock; private static GUITextBlock toolTipBlock;
//protected float alpha; //protected float alpha;
@@ -161,7 +166,7 @@ namespace Barotrauma
get { return CanBeFocused ? rect : Rectangle.Empty; } get { return CanBeFocused ? rect : Rectangle.Empty; }
} }
public List<UISprite> sprites; public Dictionary<GUIComponent.ComponentState, List<UISprite>> sprites;
//public Alignment SpriteAlignment { get; set; } //public Alignment SpriteAlignment { get; set; }
//public bool RepeatSpriteX, RepeatSpriteY; //public bool RepeatSpriteX, RepeatSpriteY;
@@ -213,7 +218,7 @@ namespace Barotrauma
get { return keyboardDispatcher; } get { return keyboardDispatcher; }
} }
protected GUIComponent(GUIStyle style) protected GUIComponent(string style)
{ {
Visible = true; Visible = true;
@@ -222,13 +227,13 @@ namespace Barotrauma
OutlineColor = Color.Transparent; OutlineColor = Color.Transparent;
Font = GUI.Font; Font = GUI.Font;
sprites = new List<UISprite>();
children = new List<GUIComponent>(); children = new List<GUIComponent>();
CanBeFocused = true; CanBeFocused = true;
if (style!=null) style.Apply(this); if (style != null)
GUI.Style.Apply(this, style);
} }
public static void Init(GameWindow window) public static void Init(GameWindow window)
@@ -285,20 +290,45 @@ namespace Barotrauma
if (state == ComponentState.Selected) currColor = selectedColor; if (state == ComponentState.Selected) currColor = selectedColor;
if (state == ComponentState.Hover) currColor = hoverColor; if (state == ComponentState.Hover) currColor = hoverColor;
if (flashTimer>0.0f) if (flashTimer > 0.0f)
{ {
GUI.DrawRectangle(spriteBatch, GUI.DrawRectangle(spriteBatch,
new Rectangle(rect.X-5,rect.Y-5,rect.Width+10,rect.Height+10), new Rectangle(rect.X - 5, rect.Y - 5, rect.Width + 10, rect.Height + 10),
flashColor * (flashTimer / FlashDuration), true); flashColor * (flashTimer / FlashDuration), true);
} }
if (currColor.A>0.0f && !sprites.Any()) GUI.DrawRectangle(spriteBatch, rect, currColor * (currColor.A / 255.0f), true); if (currColor.A > 0.0f && (sprites == null || !sprites.Any())) GUI.DrawRectangle(spriteBatch, rect, currColor * (currColor.A / 255.0f), true);
if (sprites != null) if (sprites != null && sprites[state] != null && currColor.A > 0.0f)
{ {
foreach (UISprite uiSprite in sprites) foreach (UISprite uiSprite in sprites[state])
{ {
if (uiSprite.Tile) if (uiSprite.Slice)
{
Vector2 pos = new Vector2(rect.X, rect.Y);
int centerWidth = Math.Max(rect.Width - uiSprite.Slices[0].Width - uiSprite.Slices[2].Width, 0);
int centerHeight = Math.Max(rect.Height - uiSprite.Slices[0].Height - uiSprite.Slices[8].Height, 0);
for (int x = 0; x < 3; x++)
{
int width = x == 1 ? centerWidth : uiSprite.Slices[x].Width;
for (int y = 0; y < 3; y++)
{
int height = y == 1 ? centerHeight : uiSprite.Slices[x + y * 3].Height;
spriteBatch.Draw(uiSprite.Sprite.Texture,
new Rectangle((int)pos.X, (int)pos.Y, width, height),
uiSprite.Slices[x + y * 3],
currColor * (currColor.A / 255.0f));
pos.Y += height;
}
pos.X += width;
pos.Y = rect.Y;
}
}
else if (uiSprite.Tile)
{ {
Vector2 startPos = new Vector2(rect.X, rect.Y); Vector2 startPos = new Vector2(rect.X, rect.Y);
Vector2 size = new Vector2(Math.Min(uiSprite.Sprite.SourceRect.Width, rect.Width), Math.Min(uiSprite.Sprite.SourceRect.Height, rect.Height)); Vector2 size = new Vector2(Math.Min(uiSprite.Sprite.SourceRect.Width, rect.Width), Math.Min(uiSprite.Sprite.SourceRect.Height, rect.Height));
@@ -336,18 +366,17 @@ namespace Barotrauma
//DrawChildren(spriteBatch); //DrawChildren(spriteBatch);
} }
public void DrawToolTip(SpriteBatch spriteBatch) public void DrawToolTip(SpriteBatch spriteBatch)
{ {
if (!Visible) return; if (!Visible) return;
int width = 400; int width = 400;
if (toolTipBlock==null || (string)toolTipBlock.userData != ToolTip) if (toolTipBlock == null || (string)toolTipBlock.userData != ToolTip)
{ {
toolTipBlock = new GUITextBlock(new Rectangle(0,0,width, 18), ToolTip, GUI.Style, Alignment.TopLeft, Alignment.TopLeft, null, true, GUI.SmallFont); toolTipBlock = new GUITextBlock(new Rectangle(0, 0, width, 18), ToolTip, "GUIToolTip", Alignment.TopLeft, Alignment.TopLeft, null, true, GUI.SmallFont);
toolTipBlock.padding = new Vector4(5.0f, 5.0f, 5.0f, 5.0f); toolTipBlock.padding = new Vector4(5.0f, 5.0f, 5.0f, 5.0f);
toolTipBlock.rect.Width = (int)(GUI.SmallFont.MeasureString(toolTipBlock.WrappedText).X + 20); toolTipBlock.rect.Width = (int)(GUI.SmallFont.MeasureString(toolTipBlock.WrappedText).X + 20);
toolTipBlock.rect.Height = toolTipBlock.WrappedText.Split('\n').Length * 18; toolTipBlock.rect.Height = toolTipBlock.WrappedText.Split('\n').Length * 18 + 7;
toolTipBlock.Color = Color.Black * 0.7f;
toolTipBlock.userData = ToolTip; toolTipBlock.userData = ToolTip;
} }
@@ -438,13 +467,15 @@ namespace Barotrauma
} }
public virtual void ApplyStyle(GUIComponentStyle style) public virtual void ApplyStyle(GUIComponentStyle style)
{ {
if (style == null) return;
color = style.Color; color = style.Color;
hoverColor = style.HoverColor; hoverColor = style.HoverColor;
selectedColor = style.SelectedColor; selectedColor = style.SelectedColor;
padding = style.Padding; padding = style.Padding;
sprites = new List<UISprite>(style.Sprites); sprites = style.Sprites;
OutlineColor = style.OutlineColor; OutlineColor = style.OutlineColor;
+5 -9
View File
@@ -74,24 +74,20 @@ namespace Barotrauma
} }
} }
public GUIDropDown(Rectangle rect, string text, GUIStyle style, GUIComponent parent = null) public GUIDropDown(Rectangle rect, string text, string style, GUIComponent parent = null)
: base(style) : base(style)
{ {
this.rect = rect; this.rect = rect;
if (parent != null) parent.AddChild(this); if (parent != null) parent.AddChild(this);
button = new GUIButton(this.rect, text, Color.White, Alignment.TopLeft, Alignment.TopLeft, null, null); button = new GUIButton(this.rect, text, Color.White, Alignment.TopLeft, Alignment.CenterLeft, "GUIDropDown", null);
GUI.Style.Apply(button, style, this);
button.TextColor = Color.White;
button.Color = Color.Black * 0.8f;
button.HoverColor = Color.DarkGray * 0.8f;
button.OutlineColor = Color.LightGray * 0.8f;
button.OnClicked = OnClicked; button.OnClicked = OnClicked;
listBox = new GUIListBox(new Rectangle(this.rect.X, this.rect.Bottom, this.rect.Width, 200), style, null); listBox = new GUIListBox(new Rectangle(this.rect.X, this.rect.Bottom, this.rect.Width, 200), style, null);
listBox.OnSelected = SelectItem; listBox.OnSelected = SelectItem;
//listBox.ScrollBarEnabled = false;
} }
public override void AddChild(GUIComponent child) public override void AddChild(GUIComponent child)
@@ -101,7 +97,7 @@ namespace Barotrauma
public void AddItem(string text, object userData = null) public void AddItem(string text, object userData = null)
{ {
GUITextBlock textBlock = new GUITextBlock(new Rectangle(0,0,0,20), text, GUI.Style, listBox); GUITextBlock textBlock = new GUITextBlock(new Rectangle(0,0,0,20), text, "ListBoxElement", Alignment.TopLeft, Alignment.CenterLeft, listBox);
textBlock.UserData = userData; textBlock.UserData = userData;
} }
+4 -4
View File
@@ -5,18 +5,18 @@ namespace Barotrauma
{ {
public class GUIFrame : GUIComponent public class GUIFrame : GUIComponent
{ {
public GUIFrame(Rectangle rect, GUIStyle style = null, GUIComponent parent = null) public GUIFrame(Rectangle rect, string style = "", GUIComponent parent = null)
: this(rect, null, (Alignment.Left | Alignment.Top), style, parent) : this(rect, null, (Alignment.Left | Alignment.Top), style, parent)
{ {
} }
public GUIFrame(Rectangle rect, Color color, GUIStyle style = null, GUIComponent parent = null) public GUIFrame(Rectangle rect, Color color, string style = "", GUIComponent parent = null)
: this(rect, color, (Alignment.Left | Alignment.Top), style, parent) : this(rect, color, (Alignment.Left | Alignment.Top), style, parent)
{ {
} }
public GUIFrame(Rectangle rect, Color? color, Alignment alignment, GUIStyle style = null, GUIComponent parent = null) public GUIFrame(Rectangle rect, Color? color, Alignment alignment, string style = "", GUIComponent parent = null)
: base(style) : base(style)
{ {
this.rect = rect; this.rect = rect;
@@ -45,7 +45,7 @@ namespace Barotrauma
if (state == ComponentState.Selected) currColor = selectedColor; if (state == ComponentState.Selected) currColor = selectedColor;
if (state == ComponentState.Hover) currColor = hoverColor; if (state == ComponentState.Hover) currColor = hoverColor;
if (!sprites.Any()) GUI.DrawRectangle(spriteBatch, rect, currColor * (currColor.A/255.0f), true); if (sprites == null || !sprites.Any()) GUI.DrawRectangle(spriteBatch, rect, currColor * (currColor.A/255.0f), true);
base.Draw(spriteBatch); base.Draw(spriteBatch);
if (OutlineColor != Color.Transparent) if (OutlineColor != Color.Transparent)
+8 -8
View File
@@ -107,22 +107,22 @@ namespace Barotrauma
} }
} }
public GUIListBox(Rectangle rect, GUIStyle style, GUIComponent parent = null) public GUIListBox(Rectangle rect, string style, GUIComponent parent = null)
: this(rect, style, Alignment.TopLeft, parent) : this(rect, style, Alignment.TopLeft, parent)
{ {
} }
public GUIListBox(Rectangle rect, GUIStyle style, Alignment alignment, GUIComponent parent = null) public GUIListBox(Rectangle rect, string style, Alignment alignment, GUIComponent parent = null)
: this(rect, null, alignment, style, parent, false) : this(rect, null, alignment, style, parent, false)
{ {
} }
public GUIListBox(Rectangle rect, Color? color, GUIStyle style = null, GUIComponent parent = null) public GUIListBox(Rectangle rect, Color? color, string style = null, GUIComponent parent = null)
: this(rect, color, (Alignment.Left | Alignment.Top), style, parent) : this(rect, color, (Alignment.Left | Alignment.Top), style, parent)
{ {
} }
public GUIListBox(Rectangle rect, Color? color, Alignment alignment, GUIStyle style = null, GUIComponent parent = null, bool isHorizontal = false) public GUIListBox(Rectangle rect, Color? color, Alignment alignment, string style = null, GUIComponent parent = null, bool isHorizontal = false)
: base(style) : base(style)
{ {
this.rect = rect; this.rect = rect;
@@ -140,18 +140,18 @@ namespace Barotrauma
if (isHorizontal) if (isHorizontal)
{ {
scrollBar = new GUIScrollBar( scrollBar = new GUIScrollBar(
new Rectangle(this.rect.X, this.rect.Bottom - 20, this.rect.Width, 20), null, 1.0f, GUI.Style); new Rectangle(this.rect.X, this.rect.Bottom - 20, this.rect.Width, 20), null, 1.0f, "");
} }
else else
{ {
scrollBar = new GUIScrollBar( scrollBar = new GUIScrollBar(
new Rectangle(this.rect.Right - 20, this.rect.Y, 20, this.rect.Height), null, 1.0f, GUI.Style); new Rectangle(this.rect.Right - 20, this.rect.Y, 20, this.rect.Height), null, 1.0f, "");
} }
scrollBar.IsHorizontal = isHorizontal; scrollBar.IsHorizontal = isHorizontal;
frame = new GUIFrame(Rectangle.Empty, style, this); frame = new GUIFrame(new Rectangle(0, 0, this.rect.Width, this.rect.Height), style, this);
if (style != null) style.Apply(frame, this); if (style != null) GUI.Style.Apply(frame, style, this);
UpdateScrollBarSize(); UpdateScrollBarSize();
+17 -13
View File
@@ -26,21 +26,21 @@ namespace Barotrauma
set { (children[0].children[1] as GUITextBlock).Text = value; } set { (children[0].children[1] as GUITextBlock).Text = value; }
} }
public GUIMessageBox(string header, string text) public GUIMessageBox(string headerText, string text)
: this(header, text, new string[] {"OK"}) : this(headerText, text, new string[] {"OK"})
{ {
this.Buttons[0].OnClicked = Close; this.Buttons[0].OnClicked = Close;
} }
public GUIMessageBox(string header, string text, int width, int height) public GUIMessageBox(string headerText, string text, int width, int height)
: this(header, text, new string[] { "OK" }, width, height) : this(headerText, text, new string[] { "OK" }, width, height)
{ {
this.Buttons[0].OnClicked = Close; this.Buttons[0].OnClicked = Close;
} }
public GUIMessageBox(string header, string text, string[] buttons, int width=DefaultWidth, int height=DefaultHeight, Alignment textAlignment = Alignment.TopLeft, GUIComponent parent = null) public GUIMessageBox(string headerText, string text, string[] buttons, int width = DefaultWidth, int height = DefaultHeight, Alignment textAlignment = Alignment.TopLeft, GUIComponent parent = null)
: base(new Rectangle(0,0, GameMain.GraphicsWidth, GameMain.GraphicsHeight), : base(new Rectangle(0, 0, GameMain.GraphicsWidth, GameMain.GraphicsHeight),
Color.Black*0.5f, Alignment.TopLeft, null, parent) Color.Black * 0.5f, Alignment.TopLeft, null, parent)
{ {
if (height == 0) if (height == 0)
{ {
@@ -53,20 +53,24 @@ namespace Barotrauma
height += 220; height += 220;
} }
var frame = new GUIFrame(new Rectangle(0,0,width,height), null, Alignment.Center, GUI.Style, this); var frame = new GUIFrame(new Rectangle(0, 0, width, height), null, Alignment.Center, "", this);
GUI.Style.Apply(frame, "", this);
var header = new GUITextBlock(new Rectangle(0, 0, 0, 30), headerText, null, null, textAlignment, "", frame, true);
GUI.Style.Apply(header, "", this);
new GUITextBlock(new Rectangle(0, 0, 0, 30), header, Color.Transparent, Color.White, textAlignment, GUI.Style, frame, true);
if (!string.IsNullOrWhiteSpace(text)) if (!string.IsNullOrWhiteSpace(text))
{ {
new GUITextBlock(new Rectangle(0, 30, 0, height - 70), text, var textBlock = new GUITextBlock(new Rectangle(0, 30, 0, height - 70), text,
Color.Transparent, Color.White, textAlignment, GUI.Style, frame, true); null, null, textAlignment, "", frame, true);
GUI.Style.Apply(textBlock, "", this);
} }
int x = 0; int x = 0;
this.Buttons = new GUIButton[buttons.Length]; this.Buttons = new GUIButton[buttons.Length];
for (int i = 0; i < buttons.Length; i++) for (int i = 0; i < buttons.Length; i++)
{ {
this.Buttons[i] = new GUIButton(new Rectangle(x, 0, 150, 30), buttons[i], Alignment.Left | Alignment.Bottom, GUI.Style, frame); this.Buttons[i] = new GUIButton(new Rectangle(x, 0, 150, 30), buttons[i], Alignment.Left | Alignment.Bottom, "", frame);
x += this.Buttons[i].Rect.Width + 20; x += this.Buttons[i].Rect.Width + 20;
} }
+43 -22
View File
@@ -7,11 +7,9 @@ namespace Barotrauma
{ {
private bool isHorizontal; private bool isHorizontal;
private GUIFrame frame; private GUIFrame frame, slider;
private float barSize; private float barSize;
private int margin;
public delegate float ProgressGetterHandler(); public delegate float ProgressGetterHandler();
public ProgressGetterHandler ProgressGetter; public ProgressGetterHandler ProgressGetter;
@@ -24,26 +22,26 @@ namespace Barotrauma
public float BarSize public float BarSize
{ {
get { return barSize; } get { return barSize; }
set set
{ {
float oldBarSize = barSize; float oldBarSize = barSize;
barSize = MathHelper.Clamp(value, 0.0f, 1.0f); barSize = MathHelper.Clamp(value, 0.0f, 1.0f);
if (barSize!=oldBarSize) UpdateRect(); if (barSize != oldBarSize) UpdateRect();
} }
} }
public GUIProgressBar(Rectangle rect, Color color, float barSize, GUIComponent parent = null) public GUIProgressBar(Rectangle rect, Color color, float barSize, GUIComponent parent = null)
: this(rect,color,barSize, (Alignment.Left | Alignment.Top), parent) : this(rect, color, barSize, (Alignment.Left | Alignment.Top), parent)
{ {
} }
public GUIProgressBar(Rectangle rect, Color color, float barSize, Alignment alignment, GUIComponent parent = null) public GUIProgressBar(Rectangle rect, Color color, float barSize, Alignment alignment, GUIComponent parent = null)
: this(rect,color,null, barSize,alignment, parent) : this(rect, color, null, barSize, alignment, parent)
{ {
} }
public GUIProgressBar(Rectangle rect, Color color, GUIStyle style, float barSize, Alignment alignment, GUIComponent parent = null) public GUIProgressBar(Rectangle rect, Color color, string style, float barSize, Alignment alignment, GUIComponent parent = null)
: base(style) : base(style)
{ {
this.rect = rect; this.rect = rect;
@@ -51,21 +49,21 @@ namespace Barotrauma
isHorizontal = (rect.Width > rect.Height); isHorizontal = (rect.Width > rect.Height);
this.alignment = alignment; this.alignment = alignment;
margin = 5;
if (parent != null) if (parent != null)
parent.AddChild(this); parent.AddChild(this);
frame = new GUIFrame(new Rectangle(0, 0, 0, 0), Color.Black, null, this); frame = new GUIFrame(new Rectangle(0, 0, 0, 0), null, this);
GUI.Style.Apply(frame, "", this);
slider = new GUIFrame(new Rectangle(0, 0, 0, 0), null);
GUI.Style.Apply(slider, "Slider", this);
this.barSize = barSize; this.barSize = barSize;
UpdateRect(); UpdateRect();
if (style != null) style.Apply(this);
} }
public override void ApplyStyle(GUIComponentStyle style) /*public override void ApplyStyle(GUIComponentStyle style)
{ {
if (frame == null) return; if (frame == null) return;
@@ -78,15 +76,15 @@ namespace Barotrauma
frame.OutlineColor = style.OutlineColor; frame.OutlineColor = style.OutlineColor;
this.style = style; this.style = style;
} }*/
private void UpdateRect() private void UpdateRect()
{ {
rect = new Rectangle( slider.Rect = new Rectangle(
(int)(frame.Rect.X + padding.X), (int)(frame.Rect.X + padding.X),
(int)(frame.Rect.Y + padding.Y), (int)(frame.Rect.Y + padding.Y),
isHorizontal ? (int)((frame.Rect.Width - padding.X - padding.Z) * barSize) : (frame.Rect.Width - margin * 2), isHorizontal ? (int)((frame.Rect.Width - padding.X - padding.Z) * barSize) : frame.Rect.Width,
isHorizontal ? (int)(frame.Rect.Height - padding.Y - padding.W) : (int)((frame.Rect.Height - margin * 2) * barSize)); isHorizontal ? (int)(frame.Rect.Height - padding.Y - padding.W) : (int)(frame.Rect.Height * barSize));
} }
public override void Draw(SpriteBatch spriteBatch) public override void Draw(SpriteBatch spriteBatch)
@@ -97,7 +95,30 @@ namespace Barotrauma
DrawChildren(spriteBatch); DrawChildren(spriteBatch);
GUI.DrawRectangle(spriteBatch, rect, color * (color.A / 255.0f), true); Color currColor = color;
if (state == ComponentState.Selected) currColor = selectedColor;
if (state == ComponentState.Hover) currColor = hoverColor;
if (slider.sprites != null && slider.sprites[state].Count > 0)
{
foreach (UISprite uiSprite in slider.sprites[state])
{
if (uiSprite.Tile)
{
uiSprite.Sprite.DrawTiled(spriteBatch, slider.Rect.Location.ToVector2(), slider.Rect.Size.ToVector2(), currColor);
}
else
{
spriteBatch.Draw(uiSprite.Sprite.Texture,
slider.Rect, new Rectangle(
uiSprite.Sprite.SourceRect.X,
uiSprite.Sprite.SourceRect.Y,
(int)(uiSprite.Sprite.SourceRect.Width * (isHorizontal ? barSize : 1.0f)),
(int)(uiSprite.Sprite.SourceRect.Height * (isHorizontal ? 1.0f : barSize))),
currColor);
}
}
}
} }
} }
+49 -31
View File
@@ -45,20 +45,21 @@ namespace Barotrauma
set set
{ {
barScroll = MathHelper.Clamp(value, 0.0f, 1.0f); barScroll = MathHelper.Clamp(value, 0.0f, 1.0f);
int newX = bar.Rect.X - frame.Rect.X, newY = bar.Rect.Y - frame.Rect.Y; int newX = bar.Rect.X - frame.Rect.X;
int newY = bar.Rect.Y - frame.Rect.Y;
float newScroll = step == 0.0f ? barScroll : MathUtils.RoundTowardsClosest(barScroll, step); float newScroll = step == 0.0f ? barScroll : MathUtils.RoundTowardsClosest(barScroll, step);
if (isHorizontal) if (isHorizontal)
{ {
newX = (int)(newScroll * (frame.Rect.Width - bar.Rect.Width)); newX = (int)(frame.Padding.X + newScroll * (frame.Rect.Width - bar.Rect.Width - frame.Padding.X - frame.Padding.Z));
newX = MathHelper.Clamp(newX, 0, frame.Rect.Width - bar.Rect.Width); newX = MathHelper.Clamp(newX, (int)frame.Padding.X, frame.Rect.Width - bar.Rect.Width - (int)frame.Padding.Z);
} }
else else
{ {
newY = (int)(newScroll * (frame.Rect.Height - bar.Rect.Height)); newY = (int)(frame.Padding.Y + newScroll * (frame.Rect.Height - bar.Rect.Height - frame.Padding.Y - frame.Padding.W));
newY = MathHelper.Clamp(newY, 0, frame.Rect.Height - bar.Rect.Height); newY = MathHelper.Clamp(newY, (int)frame.Padding.Y, frame.Rect.Height - bar.Rect.Height - (int)frame.Padding.W);
} }
bar.Rect = new Rectangle(newX + frame.Rect.X, newY + frame.Rect.Y, bar.Rect.Width, bar.Rect.Height); bar.Rect = new Rectangle(newX + frame.Rect.X, newY + frame.Rect.Y, bar.Rect.Width, bar.Rect.Height);
@@ -88,18 +89,18 @@ namespace Barotrauma
} }
} }
public GUIScrollBar(Rectangle rect, GUIStyle style, float barSize, GUIComponent parent = null) public GUIScrollBar(Rectangle rect, string style, float barSize, GUIComponent parent = null)
: this(rect, null, barSize, style, parent) : this(rect, null, barSize, style, parent)
{ {
} }
public GUIScrollBar(Rectangle rect, Color? color, float barSize, GUIStyle style = null, GUIComponent parent = null) public GUIScrollBar(Rectangle rect, Color? color, float barSize, string style = "", GUIComponent parent = null)
: this(rect, color, barSize, Alignment.TopLeft, style, parent) : this(rect, color, barSize, Alignment.TopLeft, style, parent)
{ {
} }
public GUIScrollBar(Rectangle rect, Color? color, float barSize, Alignment alignment, GUIStyle style = null, GUIComponent parent = null) public GUIScrollBar(Rectangle rect, Color? color, float barSize, Alignment alignment, string style = "", GUIComponent parent = null)
: base(style) : base(style)
{ {
this.rect = rect; this.rect = rect;
@@ -111,17 +112,15 @@ namespace Barotrauma
parent.AddChild(this); parent.AddChild(this);
isHorizontal = (rect.Width > rect.Height); isHorizontal = (rect.Width > rect.Height);
frame = new GUIFrame(new Rectangle(0,0,0,0), Color.Black*0.8f, style, this); frame = new GUIFrame(new Rectangle(0,0,0,0), style, this);
//AddChild(frame); GUI.Style.Apply(frame, isHorizontal ? "GUIFrameHorizontal" : "GUIFrameVertical", this);
//System.Diagnostics.Debug.WriteLine(frame.rect);
this.barSize = barSize; this.barSize = barSize;
bar = new GUIButton(new Rectangle(0, 0, 0, 0), "", color, style, this); bar = new GUIButton(new Rectangle(0, 0, 0, 0), "", color, "", this);
GUI.Style.Apply(bar, isHorizontal ? "GUIButtonHorizontal" : "GUIButtoneVertical", this);
bar.OnPressed = SelectBar; bar.OnPressed = SelectBar;
//AddChild(bar);
enabled = true; enabled = true;
@@ -130,12 +129,16 @@ namespace Barotrauma
private void UpdateRect() private void UpdateRect()
{ {
float width = frame.Rect.Width - frame.Padding.X - frame.Padding.Z;
float height = frame.Rect.Height - frame.Padding.Y - frame.Padding.W;
bar.Rect = new Rectangle( bar.Rect = new Rectangle(
bar.Rect.X, bar.Rect.X,
bar.Rect.Y, bar.Rect.Y,
isHorizontal ? (int)(frame.Rect.Width * barSize) : frame.Rect.Width, isHorizontal ? (int)(width * barSize) : (int)width,
isHorizontal ? frame.Rect.Height : (int)(frame.Rect.Height * barSize)); isHorizontal ? (int)height : (int)(height * barSize));
ClampRect();
foreach (GUIComponent child in bar.children) foreach (GUIComponent child in bar.children)
{ {
@@ -143,16 +146,36 @@ namespace Barotrauma
} }
} }
private void ClampRect()
{
bar.Rect = new Rectangle(
(int)MathHelper.Clamp(bar.Rect.X, frame.Rect.X + frame.Padding.X, frame.Rect.Right - bar.Rect.Width - frame.Padding.X - frame.Padding.Z),
(int)MathHelper.Clamp(bar.Rect.Y, frame.Rect.Y + frame.Padding.Y, frame.Rect.Bottom - bar.Rect.Height - frame.Padding.Y - frame.Padding.W),
bar.Rect.Width,
bar.Rect.Height);
}
public override void Update(float deltaTime) public override void Update(float deltaTime)
{ {
if (!Visible) return; if (!Visible) return;
base.Update(deltaTime); base.Update(deltaTime);
if (draggingBar != this) return; if (MouseOn == frame)
if (!PlayerInput.LeftButtonHeld()) draggingBar = null; {
if (PlayerInput.LeftButtonClicked())
{
MoveButton(new Vector2(
Math.Sign(PlayerInput.MousePosition.X - bar.Rect.Center.X) * bar.Rect.Width,
Math.Sign(PlayerInput.MousePosition.Y - bar.Rect.Center.Y) * bar.Rect.Height));
}
}
MoveButton(); if (draggingBar == this)
{
if (!PlayerInput.LeftButtonHeld()) draggingBar = null;
MoveButton(PlayerInput.MouseSpeed);
}
} }
public override void Draw(SpriteBatch spriteBatch) public override void Draw(SpriteBatch spriteBatch)
@@ -173,27 +196,22 @@ namespace Barotrauma
} }
private void MoveButton() private void MoveButton(Vector2 moveAmount)
{ {
float moveAmount;
if (isHorizontal) if (isHorizontal)
{ {
moveAmount = PlayerInput.MouseSpeed.X; moveAmount.Y = 0.0f;
barScroll += moveAmount / (frame.Rect.Width - bar.Rect.Width); barScroll += moveAmount.X / (frame.Rect.Width - bar.Rect.Width - frame.Padding.X - frame.Padding.Z);
} }
else else
{ {
moveAmount = PlayerInput.MouseSpeed.Y; moveAmount.X = 0.0f;
barScroll += moveAmount / (frame.Rect.Height - bar.Rect.Height); barScroll += moveAmount.Y / (frame.Rect.Height - bar.Rect.Height - frame.Padding.Y - frame.Padding.W);
} }
BarScroll = barScroll; BarScroll = barScroll;
if (moveAmount != 0 && OnMoved != null) OnMoved(this, BarScroll); if (moveAmount != Vector2.Zero && OnMoved != null) OnMoved(this, BarScroll);
//bar.Rect = new Rectangle(newX + frame.Rect.X, newY + frame.Rect.Y, bar.Rect.Width, bar.Rect.Height);
} }
} }
+33 -12
View File
@@ -10,7 +10,6 @@ namespace Barotrauma
public GUIStyle(string file) public GUIStyle(string file)
{ {
componentStyles = new Dictionary<string, GUIComponentStyle>(); componentStyles = new Dictionary<string, GUIComponentStyle>();
XDocument doc; XDocument doc;
@@ -32,21 +31,43 @@ namespace Barotrauma
} }
} }
public void Apply(GUIComponent targetComponent, GUIComponent parent = null) public void Apply(GUIComponent targetComponent, string styleName = "", GUIComponent parent = null)
{ {
GUIComponentStyle componentStyle = null; GUIComponentStyle componentStyle = null;
string name = (parent == null) ? targetComponent.GetType().Name.ToLowerInvariant() : parent.GetType().Name.ToLowerInvariant(); if (parent != null)
componentStyles.TryGetValue(name, out componentStyle);
if (componentStyle==null)
{ {
DebugConsole.ThrowError("Couldn't find a GUI style for "+targetComponent.GetType().Name);
return;
}
GUIComponentStyle parentStyle = parent.Style;
if (parent.Style == null)
{
string parentStyleName = parent.GetType().Name.ToLowerInvariant();
if (!componentStyles.TryGetValue(parentStyleName, out parentStyle))
{
DebugConsole.ThrowError("Couldn't find a GUI style \""+ parentStyleName + "\"");
return;
}
}
string childStyleName = string.IsNullOrEmpty(styleName) ? targetComponent.GetType().Name : styleName;
parentStyle.ChildStyles.TryGetValue(childStyleName.ToLowerInvariant(), out componentStyle);
}
else
{
if (string.IsNullOrEmpty(styleName))
{
styleName = targetComponent.GetType().Name;
}
if (!componentStyles.TryGetValue(styleName.ToLowerInvariant(), out componentStyle))
{
DebugConsole.ThrowError("Couldn't find a GUI style \""+ styleName+"\"");
return;
}
}
targetComponent.ApplyStyle(componentStyle); targetComponent.ApplyStyle(componentStyle);
} }
} }
} }
+10 -7
View File
@@ -125,18 +125,18 @@ namespace Barotrauma
get { return caretPos; } get { return caretPos; }
} }
public GUITextBlock(Rectangle rect, string text, GUIStyle style, GUIComponent parent, ScalableFont font) public GUITextBlock(Rectangle rect, string text, string style, GUIComponent parent, ScalableFont font)
: this(rect, text, style, Alignment.TopLeft, Alignment.TopLeft, parent, false, font) : this(rect, text, style, Alignment.TopLeft, Alignment.TopLeft, parent, false, font)
{ {
} }
public GUITextBlock(Rectangle rect, string text, GUIStyle style, GUIComponent parent = null, bool wrap = false) public GUITextBlock(Rectangle rect, string text, string style, GUIComponent parent = null, bool wrap = false)
: this(rect, text, style, Alignment.TopLeft, Alignment.TopLeft, parent, wrap) : this(rect, text, style, Alignment.TopLeft, Alignment.TopLeft, parent, wrap)
{ {
} }
public GUITextBlock(Rectangle rect, string text, Color? color, Color? textColor, Alignment textAlignment = Alignment.Left, GUIStyle style = null, GUIComponent parent = null, bool wrap = false) public GUITextBlock(Rectangle rect, string text, Color? color, Color? textColor, Alignment textAlignment = Alignment.Left, string style = null, GUIComponent parent = null, bool wrap = false)
: this(rect, text,color, textColor, Alignment.TopLeft, textAlignment, style, parent, wrap) : this(rect, text,color, textColor, Alignment.TopLeft, textAlignment, style, parent, wrap)
{ {
} }
@@ -150,21 +150,22 @@ namespace Barotrauma
public override void ApplyStyle(GUIComponentStyle style) public override void ApplyStyle(GUIComponentStyle style)
{ {
if (style == null) return;
base.ApplyStyle(style); base.ApplyStyle(style);
textColor = style.textColor; textColor = style.textColor;
} }
public GUITextBlock(Rectangle rect, string text, Color? color, Color? textColor, Alignment alignment, Alignment textAlignment = Alignment.Left, GUIStyle style = null, GUIComponent parent = null, bool wrap = false) public GUITextBlock(Rectangle rect, string text, Color? color, Color? textColor, Alignment alignment, Alignment textAlignment = Alignment.Left, string style = null, GUIComponent parent = null, bool wrap = false)
: this (rect, text, style, alignment, textAlignment, parent, wrap, null) : this (rect, text, style, alignment, textAlignment, parent, wrap, null)
{ {
if (color != null) this.color = (Color)color; if (color != null) this.color = (Color)color;
if (textColor != null) this.textColor = (Color)textColor; if (textColor != null) this.textColor = (Color)textColor;
} }
public GUITextBlock(Rectangle rect, string text, GUIStyle style, Alignment alignment = Alignment.TopLeft, Alignment textAlignment = Alignment.TopLeft, GUIComponent parent = null, bool wrap = false, ScalableFont font = null) public GUITextBlock(Rectangle rect, string text, string style, Alignment alignment = Alignment.TopLeft, Alignment textAlignment = Alignment.TopLeft, GUIComponent parent = null, bool wrap = false, ScalableFont font = null)
:base (style) : base(style)
{ {
this.Font = font == null ? GUI.Font : font; this.Font = font == null ? GUI.Font : font;
@@ -174,6 +175,8 @@ namespace Barotrauma
this.alignment = alignment; this.alignment = alignment;
this.padding = new Vector4(5.0f, 5.0f, 5.0f, 5.0f);
this.textAlignment = textAlignment; this.textAlignment = textAlignment;
if (parent != null) if (parent != null)
@@ -278,7 +281,7 @@ namespace Barotrauma
Rectangle drawRect = rect; Rectangle drawRect = rect;
if (offset != Vector2.Zero) drawRect.Location += offset.ToPoint(); if (offset != Vector2.Zero) drawRect.Location += offset.ToPoint();
if (currColor.A * currColor.A > 0.0f) GUI.DrawRectangle(spriteBatch, rect, currColor * (currColor.A / 255.0f), true); //if (currColor.A * currColor.A > 0.0f) GUI.DrawRectangle(spriteBatch, rect, currColor * (currColor.A / 255.0f), true);
base.Draw(spriteBatch); base.Draw(spriteBatch);
+7 -11
View File
@@ -152,19 +152,19 @@ namespace Barotrauma
} }
} }
public GUITextBox(Rectangle rect, GUIStyle style = null, GUIComponent parent = null) public GUITextBox(Rectangle rect, string style = null, GUIComponent parent = null)
: this(rect, null, null, Alignment.Left, Alignment.Left, style, parent) : this(rect, null, null, Alignment.Left, Alignment.Left, style, parent)
{ {
} }
public GUITextBox(Rectangle rect, Alignment alignment = Alignment.Left, GUIStyle style = null, GUIComponent parent = null) public GUITextBox(Rectangle rect, Alignment alignment = Alignment.Left, string style = null, GUIComponent parent = null)
: this(rect, null, null, alignment, Alignment.Left, style, parent) : this(rect, null, null, alignment, Alignment.Left, style, parent)
{ {
} }
public GUITextBox(Rectangle rect, Color? color, Color? textColor, Alignment alignment, Alignment textAlignment = Alignment.Left, GUIStyle style = null, GUIComponent parent = null) public GUITextBox(Rectangle rect, Color? color, Color? textColor, Alignment alignment, Alignment textAlignment = Alignment.CenterLeft, string style = null, GUIComponent parent = null)
: base(style) : base(style)
{ {
Enabled = true; Enabled = true;
@@ -174,8 +174,6 @@ namespace Barotrauma
if (color != null) this.color = (Color)color; if (color != null) this.color = (Color)color;
this.alignment = alignment; this.alignment = alignment;
//this.textAlignment = textAlignment;
if (parent != null) if (parent != null)
parent.AddChild(this); parent.AddChild(this);
@@ -184,13 +182,10 @@ namespace Barotrauma
Font = GUI.Font; Font = GUI.Font;
if (style != null) style.Apply(textBlock, this); GUI.Style.Apply(textBlock, style == "" ? "GUITextBox" : style);
textBlock.Padding = new Vector4(3.0f, 0.0f, 3.0f, 0.0f); textBlock.Padding = new Vector4(3.0f, 0.0f, 3.0f, 0.0f);
//previousMouse = PlayerInput.GetMouseState;
CaretEnabled = true; CaretEnabled = true;
//SetTextPos();
} }
public void Select() public void Select()
@@ -235,7 +230,6 @@ namespace Barotrauma
state = ComponentState.None; state = ComponentState.None;
} }
textBlock.State = state;
if (CaretEnabled) if (CaretEnabled)
{ {
@@ -245,6 +239,7 @@ namespace Barotrauma
if (keyboardDispatcher.Subscriber == this) if (keyboardDispatcher.Subscriber == this)
{ {
state = ComponentState.Selected;
Character.DisableControls = true; Character.DisableControls = true;
if (OnEnterPressed != null && PlayerInput.KeyHit(Keys.Enter)) if (OnEnterPressed != null && PlayerInput.KeyHit(Keys.Enter))
{ {
@@ -261,6 +256,7 @@ namespace Barotrauma
} }
textBlock.State = state;
textBlock.Update(deltaTime); textBlock.Update(deltaTime);
} }
+13 -25
View File
@@ -36,7 +36,6 @@ namespace Barotrauma
set set
{ {
enabled = value; enabled = value;
text.TextColor = enabled ? Color.White : Color.White * 0.5f;
} }
} }
@@ -71,13 +70,16 @@ namespace Barotrauma
if (parent != null) if (parent != null)
parent.AddChild(this); parent.AddChild(this);
box = new GUIFrame(rect, Color.DarkGray, null, this); box = new GUIFrame(rect, Color.DarkGray, "", this);
box.HoverColor = Color.Gray; box.HoverColor = Color.Gray;
box.SelectedColor = Color.DarkGray; box.SelectedColor = Color.DarkGray;
box.CanBeFocused = false; box.CanBeFocused = false;
text = new GUITextBlock(new Rectangle(rect.Right + 10, rect.Y+2, 20, rect.Height), label, GUI.Style, this, font);
GUI.Style.Apply(box, "GUITickBox");
text = new GUITextBlock(new Rectangle(rect.Right, rect.Y, 20, rect.Height), label, "", Alignment.TopLeft, Alignment.Left | Alignment.CenterY, this, false, font);
GUI.Style.Apply(text, "GUIButtonHorizontal", this);
this.rect = new Rectangle(box.Rect.X, box.Rect.Y, 240, rect.Height); this.rect = new Rectangle(box.Rect.X, box.Rect.Y, 240, rect.Height);
Enabled = true; Enabled = true;
@@ -87,15 +89,8 @@ namespace Barotrauma
{ {
if (!Visible || !Enabled) return; if (!Visible || !Enabled) return;
//if (MouseOn != null && MouseOn != this && !MouseOn.IsParentOf(this)) return; if (MouseOn == this)
//if (text.Rect.Contains(PlayerInput.MousePosition)) MouseOn = this;
if (MouseOn==this)//box.Rect.Contains(PlayerInput.MousePosition))
{ {
//ToolTip = this.ToolTip;
//MouseOn = this;
box.State = ComponentState.Hover; box.State = ComponentState.Hover;
if (PlayerInput.LeftButtonHeld()) if (PlayerInput.LeftButtonHeld())
@@ -103,7 +98,6 @@ namespace Barotrauma
box.State = ComponentState.Selected; box.State = ComponentState.Selected;
} }
if (PlayerInput.LeftButtonClicked()) if (PlayerInput.LeftButtonClicked())
{ {
Selected = !Selected; Selected = !Selected;
@@ -114,24 +108,18 @@ namespace Barotrauma
{ {
box.State = ComponentState.None; box.State = ComponentState.None;
} }
if (selected)
{
box.State = ComponentState.Selected;
}
} }
public override void Draw(SpriteBatch spriteBatch) public override void Draw(SpriteBatch spriteBatch)
{ {
if (!Visible) return; if (!Visible) return;
DrawChildren(spriteBatch); DrawChildren(spriteBatch);
float alpha = enabled ? 1.0f : 0.8f;
GUI.DrawRectangle(spriteBatch, new Rectangle(box.Rect.X + 1, box.Rect.Y + 1, box.Rect.Width - 2, box.Rect.Height - 2),
(box.State == ComponentState.Hover ? new Color(50, 50, 50, 255) : Color.Black) * alpha, true);
if (!selected) return;
GUI.DrawRectangle(spriteBatch, new Rectangle(box.Rect.X + 5, box.Rect.Y + 5, box.Rect.Width - 10, box.Rect.Height - 10),
Color.Green * 0.8f * alpha, true);
} }
} }
} }
+24 -35
View File
@@ -19,12 +19,13 @@ namespace Barotrauma
private GUIFrame guiFrame; private GUIFrame guiFrame;
private GUIListBox listBox, orderListBox; private GUIListBox listBox, orderListBox;
private bool crewFrameOpen;
//private GUIButton crewButton;
protected GUIFrame crewFrame;
private CrewCommander commander; private CrewCommander commander;
public CrewCommander CrewCommander
{
get { return commander; }
}
public int Money public int Money
{ {
@@ -38,6 +39,7 @@ namespace Barotrauma
characterInfos = new List<CharacterInfo>(); characterInfos = new List<CharacterInfo>();
guiFrame = new GUIFrame(new Rectangle(0, 50, 150, 450), Color.Transparent); guiFrame = new GUIFrame(new Rectangle(0, 50, 150, 450), Color.Transparent);
guiFrame.Padding = Vector4.One * 5.0f;
listBox = new GUIListBox(new Rectangle(45, 30, 150, 0), Color.Transparent, null, guiFrame); listBox = new GUIListBox(new Rectangle(45, 30, 150, 0), Color.Transparent, null, guiFrame);
listBox.ScrollBarEnabled = false; listBox.ScrollBarEnabled = false;
@@ -131,11 +133,8 @@ namespace Barotrauma
character.Info.CreateCharacterFrame(listBox, character.Info.Name.Replace(' ', '\n'), character); character.Info.CreateCharacterFrame(listBox, character.Info.Name.Replace(' ', '\n'), character);
GUIFrame frame = new GUIFrame(new Rectangle(0, 0, 40, 40), Color.Transparent, null, orderListBox); GUIFrame orderFrame = new GUIFrame(new Rectangle(0, 0, 40, 40), Color.Transparent, "ListBoxElement", orderListBox);
frame.UserData = character; orderFrame.UserData = character;
//frame.Padding = new Vector4(5.0f, 5.0f, 5.0f, 5.0f);
frame.HoverColor = Color.LightGray * 0.5f;
frame.SelectedColor = Color.Gold * 0.5f;
var ai = character.AIController as HumanAIController; var ai = character.AIController as HumanAIController;
if (ai == null) if (ai == null)
@@ -150,7 +149,6 @@ namespace Barotrauma
{ {
guiFrame.AddToGUIUpdateList(); guiFrame.AddToGUIUpdateList();
if (commander.Frame != null) commander.Frame.AddToGUIUpdateList(); if (commander.Frame != null) commander.Frame.AddToGUIUpdateList();
if (crewFrameOpen) crewFrame.AddToGUIUpdateList();
} }
public void Update(float deltaTime) public void Update(float deltaTime)
@@ -174,7 +172,6 @@ namespace Barotrauma
} }
if (commander.Frame != null) commander.Frame.Update(deltaTime); if (commander.Frame != null) commander.Frame.Update(deltaTime);
if (crewFrameOpen) crewFrame.Update(deltaTime);
} }
public void ReviveCharacter(Character revivedCharacter) public void ReviveCharacter(Character revivedCharacter)
@@ -216,28 +213,30 @@ namespace Barotrauma
{ {
if (teamIDs.Count > 1) if (teamIDs.Count > 1)
{ {
new GUITextBlock(new Rectangle(0, y - 20, 100, 20), CombatMission.GetTeamName(teamIDs[i]), GUI.Style, crewFrame); new GUITextBlock(new Rectangle(0, y - 20, 100, 20), CombatMission.GetTeamName(teamIDs[i]), "", crewFrame);
} }
GUIListBox crewList = new GUIListBox(new Rectangle(0, y, 280, listBoxHeight), Color.White * 0.7f, GUI.Style, 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;
frame.HoverColor = Color.LightGray * 0.5f;
frame.SelectedColor = Color.Gold * 0.5f;
GUITextBlock textBlock = new GUITextBlock( GUITextBlock textBlock = new GUITextBlock(
new Rectangle(40, 0, 0, 25), new Rectangle(40, 0, 0, 25),
ToolBox.LimitString(character.Info.Name + " (" + character.Info.Job.Name + ")", GUI.Font, frame.Rect.Width-20), ToolBox.LimitString(character.Info.Name + " (" + character.Info.Job.Name + ")", GUI.Font, frame.Rect.Width-20),
Color.Transparent, Color.White, null,null,
Alignment.Left, Alignment.Left, Alignment.Left, Alignment.Left,
null, frame); "", frame);
textBlock.Padding = new Vector4(5.0f, 0.0f, 5.0f, 0.0f); textBlock.Padding = new Vector4(5.0f, 0.0f, 5.0f, 0.0f);
new GUIImage(new Rectangle(-10, 0, 0, 0), character.AnimController.Limbs[0].sprite, Alignment.Left, frame); new GUIImage(new Rectangle(-10, 0, 0, 0), character.AnimController.Limbs[0].sprite, Alignment.Left, frame);
@@ -249,29 +248,20 @@ namespace Barotrauma
} }
protected virtual bool SelectCrewCharacter(GUIComponent component, object obj) protected virtual bool SelectCrewCharacter(Character character, GUIComponent crewList)
{ {
Character character = obj as Character; GUIComponent existingFrame = crewList.Parent.FindChild("selectedcharacter");
if (character == null) return false; if (existingFrame != null) crewList.Parent.RemoveChild(existingFrame);
var crewFrame = component.Parent;
while (crewFrame.Parent!=null)
{
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, GUI.Style, 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;
} }
@@ -347,7 +337,6 @@ namespace Barotrauma
else else
{ {
guiFrame.Draw(spriteBatch); guiFrame.Draw(spriteBatch);
if (crewFrameOpen) crewFrame.Draw(spriteBatch);
} }
} }
@@ -56,7 +56,7 @@ namespace Barotrauma
CargoManager = new CargoManager(); CargoManager = new CargoManager();
endShiftButton = new GUIButton(new Rectangle(GameMain.GraphicsWidth - 220, 20, 200, 25), "End shift", Alignment.TopLeft, GUI.Style); endShiftButton = new GUIButton(new Rectangle(GameMain.GraphicsWidth - 220, 20, 200, 25), "End shift", null, Alignment.TopLeft, Alignment.Center, "");
endShiftButton.Font = GUI.SmallFont; endShiftButton.Font = GUI.SmallFont;
endShiftButton.OnClicked = TryEndShift; endShiftButton.OnClicked = TryEndShift;
@@ -301,11 +301,11 @@ namespace Barotrauma
summaryScreen = summaryScreen.children[0]; summaryScreen = summaryScreen.children[0];
summaryScreen.RemoveChild(summaryScreen.children.Find(c => c is GUIButton)); summaryScreen.RemoveChild(summaryScreen.children.Find(c => c is GUIButton));
var okButton = new GUIButton(new Rectangle(-120, 0, 100, 30), "Load game", Alignment.BottomRight, GUI.Style, summaryScreen); var okButton = new GUIButton(new Rectangle(-120, 0, 100, 30), "Load game", Alignment.BottomRight, "", summaryScreen);
okButton.OnClicked += GameMain.GameSession.LoadPrevious; okButton.OnClicked += GameMain.GameSession.LoadPrevious;
okButton.OnClicked += (GUIButton button, object obj) => { GUIMessageBox.MessageBoxes.Remove(GUIMessageBox.VisibleBox); return true; }; okButton.OnClicked += (GUIButton button, object obj) => { GUIMessageBox.MessageBoxes.Remove(GUIMessageBox.VisibleBox); return true; };
var quitButton = new GUIButton(new Rectangle(0, 0, 100, 30), "Quit", Alignment.BottomRight, GUI.Style, summaryScreen); var quitButton = new GUIButton(new Rectangle(0, 0, 100, 30), "Quit", Alignment.BottomRight, "", summaryScreen);
quitButton.OnClicked += GameMain.LobbyScreen.QuitToMainMenu; quitButton.OnClicked += GameMain.LobbyScreen.QuitToMainMenu;
quitButton.OnClicked += (GUIButton button, object obj) => { GUIMessageBox.MessageBoxes.Remove(GUIMessageBox.VisibleBox); return true; }; quitButton.OnClicked += (GUIButton button, object obj) => { GUIMessageBox.MessageBoxes.Remove(GUIMessageBox.VisibleBox); return true; };
} }
@@ -151,16 +151,16 @@ namespace Barotrauma.Tutorials
height += wrappedText.Split('\n').Length * 25; height += wrappedText.Split('\n').Length * 25;
var infoBlock = new GUIFrame(new Rectangle(-20, 20, width, height), null, Alignment.TopRight, GUI.Style); var infoBlock = new GUIFrame(new Rectangle(-20, 20, width, height), null, Alignment.TopRight, "");
//infoBlock.Color = infoBlock.Color * 0.8f; //infoBlock.Color = infoBlock.Color * 0.8f;
infoBlock.Padding = new Vector4(10.0f, 10.0f, 10.0f, 10.0f); infoBlock.Padding = new Vector4(10.0f, 10.0f, 10.0f, 10.0f);
infoBlock.Flash(Color.Green); infoBlock.Flash(Color.Green);
var textBlock = new GUITextBlock(new Rectangle(10, 10, width - 40, height), text, GUI.Style, infoBlock, true); var textBlock = new GUITextBlock(new Rectangle(10, 10, width - 40, height), text, "", infoBlock, true);
if (hasButton) if (hasButton)
{ {
var okButton = new GUIButton(new Rectangle(0, -40, 80, 25), "OK", Alignment.BottomCenter, GUI.Style, textBlock); var okButton = new GUIButton(new Rectangle(0, -40, 80, 25), "OK", Alignment.BottomCenter, "", textBlock);
okButton.OnClicked = CloseInfoFrame; okButton.OnClicked = CloseInfoFrame;
} }
+36 -21
View File
@@ -112,7 +112,7 @@ namespace Barotrauma
this.saveFile = saveFile; this.saveFile = saveFile;
infoButton = new GUIButton(new Rectangle(10, 10, 100, 20), "Info", GUI.Style, null); infoButton = new GUIButton(new Rectangle(10, 10, 100, 20), "Info", "", null);
infoButton.OnClicked = ToggleInfoFrame; infoButton.OnClicked = ToggleInfoFrame;
if (gameModePreset != null) gameMode = gameModePreset.Instantiate(missionType); if (gameModePreset != null) gameMode = gameModePreset.Instantiate(missionType);
@@ -242,7 +242,7 @@ namespace Barotrauma
{ {
GUIFrame summaryFrame = shiftSummary.CreateSummaryFrame(endMessage); GUIFrame summaryFrame = shiftSummary.CreateSummaryFrame(endMessage);
GUIMessageBox.MessageBoxes.Add(summaryFrame); GUIMessageBox.MessageBoxes.Add(summaryFrame);
var okButton = new GUIButton(new Rectangle(0, 0, 100, 30), "Ok", Alignment.BottomRight, GUI.Style, summaryFrame.children[0]); var okButton = new GUIButton(new Rectangle(0, 0, 100, 30), "Ok", Alignment.BottomRight, "", summaryFrame.children[0]);
okButton.OnClicked = (GUIButton button, object obj) => { GUIMessageBox.MessageBoxes.Remove(summaryFrame); return true; }; okButton.OnClicked = (GUIButton button, object obj) => { GUIMessageBox.MessageBoxes.Remove(summaryFrame); return true; };
} }
@@ -279,6 +279,11 @@ namespace Barotrauma
{ {
if (infoFrame == null) if (infoFrame == null)
{ {
if (CrewManager != null && CrewManager.CrewCommander!= null && CrewManager.CrewCommander.IsOpen)
{
CrewManager.CrewCommander.ToggleGUIFrame();
}
CreateInfoFrame(); CreateInfoFrame();
SelectInfoFrameTab(null, selectedTab); SelectInfoFrameTab(null, selectedTab);
} }
@@ -294,27 +299,31 @@ namespace Barotrauma
{ {
int width = 600, height = 400; int width = 600, height = 400;
infoFrame = new GUIFrame( infoFrame = new GUIFrame(
new Rectangle(GameMain.GraphicsWidth / 2 - width / 2, GameMain.GraphicsHeight / 2 - height / 2, width, height), GUI.Style); Rectangle.Empty, Color.Black * 0.8f, null);
var innerFrame = new GUIFrame(
new Rectangle(GameMain.GraphicsWidth / 2 - width / 2, GameMain.GraphicsHeight / 2 - height / 2, width, height), "", infoFrame);
infoFrame.Padding = new Vector4(10.0f, 10.0f, 10.0f, 10.0f); innerFrame.Padding = new Vector4(10.0f, 10.0f, 10.0f, 10.0f);
var crewButton = new GUIButton(new Rectangle(0, -30, 100, 20), "Crew", GUI.Style, infoFrame); var crewButton = new GUIButton(new Rectangle(0, -30, 100, 20), "Crew", "", innerFrame);
crewButton.UserData = InfoFrameTab.Crew; crewButton.UserData = InfoFrameTab.Crew;
crewButton.OnClicked = SelectInfoFrameTab; crewButton.OnClicked = SelectInfoFrameTab;
var missionButton = new GUIButton(new Rectangle(100, -30, 100, 20), "Mission", GUI.Style, infoFrame); var missionButton = new GUIButton(new Rectangle(100, -30, 100, 20), "Mission", "", innerFrame);
missionButton.UserData = InfoFrameTab.Mission; missionButton.UserData = InfoFrameTab.Mission;
missionButton.OnClicked = SelectInfoFrameTab; missionButton.OnClicked = SelectInfoFrameTab;
if (GameMain.Server != null) if (GameMain.Server != null)
{ {
var manageButton = new GUIButton(new Rectangle(200, -30, 130, 20), "Manage players", GUI.Style, infoFrame); var manageButton = new GUIButton(new Rectangle(200, -30, 130, 20), "Manage players", "", innerFrame);
manageButton.UserData = InfoFrameTab.ManagePlayers; manageButton.UserData = InfoFrameTab.ManagePlayers;
manageButton.OnClicked = SelectInfoFrameTab; manageButton.OnClicked = SelectInfoFrameTab;
} }
var closeButton = new GUIButton(new Rectangle(0, 0, 80, 20), "Close", Alignment.BottomCenter, GUI.Style, infoFrame); var closeButton = new GUIButton(new Rectangle(0, 0, 80, 20), "Close", Alignment.BottomCenter, "", innerFrame);
closeButton.OnClicked = ToggleInfoFrame; closeButton.OnClicked = ToggleInfoFrame;
} }
@@ -328,13 +337,13 @@ namespace Barotrauma
switch (selectedTab) switch (selectedTab)
{ {
case InfoFrameTab.Crew: case InfoFrameTab.Crew:
CrewManager.CreateCrewFrame(CrewManager.characters, infoFrame); CrewManager.CreateCrewFrame(CrewManager.characters, infoFrame.children[0] as GUIFrame);
break; break;
case InfoFrameTab.Mission: case InfoFrameTab.Mission:
CreateMissionInfo(infoFrame); CreateMissionInfo(infoFrame.children[0] as GUIFrame);
break; break;
case InfoFrameTab.ManagePlayers: case InfoFrameTab.ManagePlayers:
GameMain.Server.ManagePlayersFrame(infoFrame); GameMain.Server.ManagePlayersFrame(infoFrame.children[0] as GUIFrame);
break; break;
} }
@@ -345,26 +354,24 @@ namespace Barotrauma
{ {
if (Mission == null) if (Mission == null)
{ {
new GUITextBlock(new Rectangle(0,0,0,50), "No mission", GUI.Style, infoFrame, true); new GUITextBlock(new Rectangle(0,0,0,50), "No mission", "", infoFrame, true);
return; return;
} }
new GUITextBlock(new Rectangle(0, 0, 0, 40), Mission.Name, GUI.Style, infoFrame, GUI.LargeFont); new GUITextBlock(new Rectangle(0, 0, 0, 40), Mission.Name, "", infoFrame, GUI.LargeFont);
new GUITextBlock(new Rectangle(0, 50, 0, 20), "Reward: "+Mission.Reward, GUI.Style, infoFrame, true); new GUITextBlock(new Rectangle(0, 50, 0, 20), "Reward: "+Mission.Reward, "", infoFrame, true);
new GUITextBlock(new Rectangle(0, 70, 0, 50), Mission.Description, GUI.Style, infoFrame, true); new GUITextBlock(new Rectangle(0, 70, 0, 50), Mission.Description, "", infoFrame, true);
} }
public void AddToGUIUpdateList() public void AddToGUIUpdateList()
{ {
if (CrewManager != null) CrewManager.AddToGUIUpdateList();
if (gameMode != null) gameMode.AddToGUIUpdateList();
infoButton.AddToGUIUpdateList(); infoButton.AddToGUIUpdateList();
if (gameMode != null) gameMode.AddToGUIUpdateList();
if (infoFrame != null) infoFrame.AddToGUIUpdateList(); if (infoFrame != null) infoFrame.AddToGUIUpdateList();
} }
@@ -379,7 +386,15 @@ namespace Barotrauma
if (gameMode != null) gameMode.Update(deltaTime); if (gameMode != null) gameMode.Update(deltaTime);
if (Mission != null) Mission.Update(deltaTime); if (Mission != null) Mission.Update(deltaTime);
if (infoFrame != null) infoFrame.Update(deltaTime); if (infoFrame != null)
{
infoFrame.Update(deltaTime);
if (CrewManager != null && CrewManager.CrewCommander != null && CrewManager.CrewCommander.IsOpen)
{
infoFrame = null;
}
}
} }
public void Draw(SpriteBatch spriteBatch) public void Draw(SpriteBatch spriteBatch)
+10 -10
View File
@@ -37,7 +37,7 @@ namespace Barotrauma
GUIFrame frame = new GUIFrame(new Rectangle(0, 0, GameMain.GraphicsWidth, GameMain.GraphicsHeight), Color.Black * 0.8f); GUIFrame frame = new GUIFrame(new Rectangle(0, 0, GameMain.GraphicsWidth, GameMain.GraphicsHeight), Color.Black * 0.8f);
int width = 760, height = 400; int width = 760, height = 400;
GUIFrame innerFrame = new GUIFrame(new Rectangle(0, 0, width, height), null, Alignment.Center, GUI.Style, frame); GUIFrame innerFrame = new GUIFrame(new Rectangle(0, 0, width, height), null, Alignment.Center, "", frame);
int y = 0; int y = 0;
@@ -46,22 +46,22 @@ namespace Barotrauma
string summaryText = InfoTextManager.GetInfoText(gameOver ? "gameover" : string summaryText = InfoTextManager.GetInfoText(gameOver ? "gameover" :
(progress ? "progress" : "return")); (progress ? "progress" : "return"));
var infoText = new GUITextBlock(new Rectangle(0, y, 0, 50), summaryText, GUI.Style, innerFrame, true); var infoText = new GUITextBlock(new Rectangle(0, y, 0, 50), summaryText, "", innerFrame, true);
y += infoText.Rect.Height; y += infoText.Rect.Height;
} }
if (!string.IsNullOrWhiteSpace(endMessage)) if (!string.IsNullOrWhiteSpace(endMessage))
{ {
var endText = new GUITextBlock(new Rectangle(0, y, 0, 30), endMessage, GUI.Style, innerFrame, true); var endText = new GUITextBlock(new Rectangle(0, y, 0, 30), endMessage, "", innerFrame, true);
y += 30 + endText.Text.Split('\n').Length * 20; y += 30 + endText.Text.Split('\n').Length * 20;
} }
new GUITextBlock(new Rectangle(0, y, 0, 20), "Crew status:", GUI.Style, innerFrame, GUI.LargeFont); new GUITextBlock(new Rectangle(0, y, 0, 20), "Crew status:", "", innerFrame, GUI.LargeFont);
y += 30; y += 30;
GUIListBox listBox = new GUIListBox(new Rectangle(0,y,0,90), null, Alignment.TopLeft, GUI.Style, innerFrame, true); GUIListBox listBox = new GUIListBox(new Rectangle(0,y,0,90), null, Alignment.TopLeft, "", innerFrame, true);
int x = 0; int x = 0;
foreach (Character character in gameSession.CrewManager.characters) foreach (Character character in gameSession.CrewManager.characters)
@@ -72,7 +72,7 @@ namespace Barotrauma
continue; continue;
} }
var characterFrame = new GUIFrame(new Rectangle(x, y, 170, 70), Color.Transparent, GUI.Style, listBox); var characterFrame = new GUIFrame(new Rectangle(x, y, 170, 70), Color.Transparent, "", listBox);
characterFrame.OutlineColor = Color.Transparent; characterFrame.OutlineColor = Color.Transparent;
characterFrame.Padding = new Vector4(5.0f, 5.0f, 5.0f, 5.0f); characterFrame.Padding = new Vector4(5.0f, 5.0f, 5.0f, 5.0f);
characterFrame.CanBeFocused = false; characterFrame.CanBeFocused = false;
@@ -105,7 +105,7 @@ namespace Barotrauma
} }
new GUITextBlock(new Rectangle(0, 0, 0, 20), statusText, new GUITextBlock(new Rectangle(0, 0, 0, 20), statusText,
GUI.Style, Alignment.BottomLeft, Alignment.TopCenter, characterFrame, true, GUI.SmallFont).Color = statusColor * 0.7f; "", Alignment.BottomLeft, Alignment.TopCenter, characterFrame, true, GUI.SmallFont).Color = statusColor * 0.7f;
x += characterFrame.Rect.Width + 10; x += characterFrame.Rect.Width + 10;
} }
@@ -114,17 +114,17 @@ namespace Barotrauma
if (GameMain.GameSession.Mission != null) if (GameMain.GameSession.Mission != null)
{ {
new GUITextBlock(new Rectangle(0, y, 0, 20), "Mission: " + GameMain.GameSession.Mission.Name, GUI.Style, innerFrame, GUI.LargeFont); new GUITextBlock(new Rectangle(0, y, 0, 20), "Mission: " + GameMain.GameSession.Mission.Name, "", innerFrame, GUI.LargeFont);
y += 30; y += 30;
new GUITextBlock(new Rectangle(0, y, innerFrame.Rect.Width - 170, 0), new GUITextBlock(new Rectangle(0, y, innerFrame.Rect.Width - 170, 0),
(GameMain.GameSession.Mission.Completed) ? GameMain.GameSession.Mission.SuccessMessage : GameMain.GameSession.Mission.FailureMessage, (GameMain.GameSession.Mission.Completed) ? GameMain.GameSession.Mission.SuccessMessage : GameMain.GameSession.Mission.FailureMessage,
GUI.Style, innerFrame, true); "", innerFrame, true);
//y += 50; //y += 50;
if (GameMain.GameSession.Mission.Completed && singleplayer) if (GameMain.GameSession.Mission.Completed && singleplayer)
{ {
new GUITextBlock(new Rectangle(0, 0, 0, 30), "Reward: " + GameMain.GameSession.Mission.Reward, GUI.Style, Alignment.BottomLeft, Alignment.BottomLeft, innerFrame); new GUITextBlock(new Rectangle(0, 0, 0, 30), "Reward: " + GameMain.GameSession.Mission.Reward, "", Alignment.BottomLeft, Alignment.BottomLeft, innerFrame);
//y += 30; //y += 30;
} }
} }
+17 -17
View File
@@ -317,14 +317,14 @@ namespace Barotrauma
private void CreateSettingsFrame() private void CreateSettingsFrame()
{ {
settingsFrame = new GUIFrame(new Rectangle(0, 0, 500, 500), null, Alignment.Center, GUI.Style); settingsFrame = new GUIFrame(new Rectangle(0, 0, 500, 500), null, Alignment.Center, "");
new GUITextBlock(new Rectangle(0,-30,0,30), "Settings",GUI.Style,Alignment.TopCenter, Alignment.TopCenter, settingsFrame, false, GUI.LargeFont); new GUITextBlock(new Rectangle(0, -30, 0, 30), "Settings", "", Alignment.TopCenter, Alignment.TopCenter, settingsFrame, false, GUI.LargeFont);
int x=0, y = 10; int x = 0, y = 10;
new GUITextBlock(new Rectangle(0, y, 20, 20), "Resolution", GUI.Style, Alignment.TopLeft, Alignment.TopLeft, settingsFrame); new GUITextBlock(new Rectangle(0, y, 20, 20), "Resolution", "", Alignment.TopLeft, Alignment.TopLeft, settingsFrame);
var resolutionDD = new GUIDropDown(new Rectangle(0, y + 20, 180, 20), "", GUI.Style, settingsFrame); var resolutionDD = new GUIDropDown(new Rectangle(0, y + 20, 180, 20), "", "", settingsFrame);
resolutionDD.OnSelected = SelectResolution; resolutionDD.OnSelected = SelectResolution;
var supportedModes = new List<DisplayMode>(); var supportedModes = new List<DisplayMode>();
@@ -349,8 +349,8 @@ namespace Barotrauma
//fullScreenTick.OnSelected = ToggleFullScreen; //fullScreenTick.OnSelected = ToggleFullScreen;
//fullScreenTick.Selected = FullScreenEnabled; //fullScreenTick.Selected = FullScreenEnabled;
new GUITextBlock(new Rectangle(x, y, 20, 20), "Display mode", GUI.Style, Alignment.TopLeft, Alignment.TopLeft, settingsFrame); new GUITextBlock(new Rectangle(x, y, 20, 20), "Display mode", "", Alignment.TopLeft, Alignment.TopLeft, settingsFrame);
var displayModeDD = new GUIDropDown(new Rectangle(x, y + 20, 180, 20), "", GUI.Style, settingsFrame); var displayModeDD = new GUIDropDown(new Rectangle(x, y + 20, 180, 20), "", "", settingsFrame);
displayModeDD.AddItem("Fullscreen", WindowMode.Fullscreen); displayModeDD.AddItem("Fullscreen", WindowMode.Fullscreen);
displayModeDD.AddItem("Windowed", WindowMode.Windowed); displayModeDD.AddItem("Windowed", WindowMode.Windowed);
displayModeDD.AddItem("Borderless windowed", WindowMode.BorderlessWindowed); displayModeDD.AddItem("Borderless windowed", WindowMode.BorderlessWindowed);
@@ -375,14 +375,14 @@ namespace Barotrauma
y += 70; y += 70;
new GUITextBlock(new Rectangle(0, y, 100, 20), "Sound volume:", GUI.Style, settingsFrame); new GUITextBlock(new Rectangle(0, y, 100, 20), "Sound volume:", "", settingsFrame);
GUIScrollBar soundScrollBar = new GUIScrollBar(new Rectangle(0, y + 20, 150, 20), GUI.Style, 0.1f, settingsFrame); GUIScrollBar soundScrollBar = new GUIScrollBar(new Rectangle(0, y + 20, 150, 20), "", 0.1f, settingsFrame);
soundScrollBar.BarScroll = SoundVolume; soundScrollBar.BarScroll = SoundVolume;
soundScrollBar.OnMoved = ChangeSoundVolume; soundScrollBar.OnMoved = ChangeSoundVolume;
soundScrollBar.Step = 0.05f; soundScrollBar.Step = 0.05f;
new GUITextBlock(new Rectangle(0, y + 40, 100, 20), "Music volume:", GUI.Style, settingsFrame); new GUITextBlock(new Rectangle(0, y + 40, 100, 20), "Music volume:", "", settingsFrame);
GUIScrollBar musicScrollBar = new GUIScrollBar(new Rectangle(0, y + 60, 150, 20), GUI.Style, 0.1f, settingsFrame); GUIScrollBar musicScrollBar = new GUIScrollBar(new Rectangle(0, y + 60, 150, 20), "", 0.1f, settingsFrame);
musicScrollBar.BarScroll = MusicVolume; musicScrollBar.BarScroll = MusicVolume;
musicScrollBar.OnMoved = ChangeMusicVolume; musicScrollBar.OnMoved = ChangeMusicVolume;
musicScrollBar.Step = 0.05f; musicScrollBar.Step = 0.05f;
@@ -390,8 +390,8 @@ namespace Barotrauma
x = 200; x = 200;
y = 10; y = 10;
new GUITextBlock(new Rectangle(x, y, 20, 20), "Content package", GUI.Style, Alignment.TopLeft, Alignment.TopLeft, settingsFrame); new GUITextBlock(new Rectangle(x, y, 20, 20), "Content package", "", Alignment.TopLeft, Alignment.TopLeft, settingsFrame);
var contentPackageDD = new GUIDropDown(new Rectangle(x, y + 20, 200, 20), "", GUI.Style, settingsFrame); var contentPackageDD = new GUIDropDown(new Rectangle(x, y + 20, 200, 20), "", "", settingsFrame);
foreach (ContentPackage contentPackage in ContentPackage.list) foreach (ContentPackage contentPackage in ContentPackage.list)
{ {
@@ -401,13 +401,13 @@ namespace Barotrauma
} }
y += 50; y += 50;
new GUITextBlock(new Rectangle(x, y, 100, 20), "Controls:", GUI.Style, settingsFrame); new GUITextBlock(new Rectangle(x, y, 100, 20), "Controls:", "", settingsFrame);
y += 30; y += 30;
var inputNames = Enum.GetNames(typeof(InputType)); var inputNames = Enum.GetNames(typeof(InputType));
for (int i = 0; i< inputNames.Length; i++) for (int i = 0; i< inputNames.Length; i++)
{ {
new GUITextBlock(new Rectangle(x, y, 100, 20), inputNames[i]+": ", GUI.Style, settingsFrame); new GUITextBlock(new Rectangle(x, y, 100, 18), inputNames[i]+": ", "", Alignment.TopLeft, Alignment.CenterLeft, settingsFrame);
var keyBox = new GUITextBox(new Rectangle(x + 100, y, 120, 15), GUI.Style, settingsFrame); var keyBox = new GUITextBox(new Rectangle(x + 100, y, 120, 18), null,null, Alignment.TopLeft, Alignment.CenterLeft, "", settingsFrame);
keyBox.Text = keyMapping[i].ToString(); keyBox.Text = keyMapping[i].ToString();
keyBox.UserData = i; keyBox.UserData = i;
@@ -417,7 +417,7 @@ namespace Barotrauma
y += 20; y += 20;
} }
applyButton = new GUIButton(new Rectangle(0, 0, 100, 20), "Apply", Alignment.BottomRight, GUI.Style, settingsFrame); applyButton = new GUIButton(new Rectangle(0, 0, 100, 20), "Apply", Alignment.BottomRight, "", settingsFrame);
applyButton.OnClicked = ApplyClicked; applyButton.OnClicked = ApplyClicked;
} }
@@ -65,7 +65,7 @@ namespace Barotrauma
useOnSelfButton[i - 3] = new GUIButton( useOnSelfButton[i - 3] = new GUIButton(
new Rectangle((int) SlotPositions[i].X, (int) (SlotPositions[i].Y - spacing - rectHeight), new Rectangle((int) SlotPositions[i].X, (int) (SlotPositions[i].Y - spacing - rectHeight),
rectWidth, rectHeight), "Use", GUI.Style) rectWidth, rectHeight), "Use", "")
{ {
UserData = i, UserData = i,
OnClicked = UseItemOnSelf OnClicked = UseItemOnSelf
@@ -8,7 +8,6 @@ using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Graphics;
using Barotrauma.Networking; using Barotrauma.Networking;
using System.IO; using System.IO;
using System.Globalization;
namespace Barotrauma.Items.Components namespace Barotrauma.Items.Components
{ {
@@ -286,6 +285,8 @@ namespace Barotrauma.Items.Components
if (components[1].Contains(".")) rect.Y *= GameMain.GraphicsHeight; if (components[1].Contains(".")) rect.Y *= GameMain.GraphicsHeight;
if (components[2].Contains(".")) rect.Z *= GameMain.GraphicsWidth; if (components[2].Contains(".")) rect.Z *= GameMain.GraphicsWidth;
if (components[3].Contains(".")) rect.W *= GameMain.GraphicsHeight; if (components[3].Contains(".")) rect.W *= GameMain.GraphicsHeight;
string style = ToolBox.GetAttributeString(subElement, "style", "");
Vector4 color = ToolBox.GetAttributeVector4(subElement, "color", Vector4.One); Vector4 color = ToolBox.GetAttributeVector4(subElement, "color", Vector4.One);
@@ -301,9 +302,9 @@ namespace Barotrauma.Items.Components
} }
guiFrame = new GUIFrame( guiFrame = new GUIFrame(
new Rectangle((int)rect.X, (int)rect.Y, (int)rect.Z, (int)rect.W), new Rectangle((int)rect.X, (int)rect.Y, (int)rect.Z, (int)rect.W),
new Color(color.X, color.Y, color.Z) * color.W, alignment, GUI.Style); new Color(color.X, color.Y, color.Z) * color.W,
//guiFrame.Alpha = color.W; alignment, style);
break; break;
case "sound": case "sound":
@@ -22,9 +22,9 @@ namespace Barotrauma.Items.Components
public Deconstructor(Item item, XElement element) public Deconstructor(Item item, XElement element)
: base(item, element) : base(item, element)
{ {
progressBar = new GUIProgressBar(new Rectangle(0,0,200,20), Color.Green, GUI.Style, 0.0f, Alignment.BottomCenter, GuiFrame); progressBar = new GUIProgressBar(new Rectangle(0,0,200,20), Color.Green, "", 0.0f, Alignment.BottomCenter, GuiFrame);
activateButton = new GUIButton(new Rectangle(0, 0, 200, 20), "Deconstruct", Alignment.TopCenter, GUI.Style, GuiFrame); activateButton = new GUIButton(new Rectangle(0, 0, 200, 20), "Deconstruct", Alignment.TopCenter, "", GuiFrame);
activateButton.OnClicked = ToggleActive; activateButton.OnClicked = ToggleActive;
} }
@@ -49,7 +49,7 @@ namespace Barotrauma.Items.Components
{ {
IsActive = true; IsActive = true;
var button = new GUIButton(new Rectangle(160, 50, 30, 30), "-", GUI.Style, GuiFrame); var button = new GUIButton(new Rectangle(160, 50, 30, 30), "-", "", GuiFrame);
button.OnClicked = (GUIButton btn, object obj) => button.OnClicked = (GUIButton btn, object obj) =>
{ {
targetForce -= 1.0f; targetForce -= 1.0f;
@@ -57,7 +57,7 @@ namespace Barotrauma.Items.Components
return true; return true;
}; };
button = new GUIButton(new Rectangle(200, 50, 30, 30), "+", GUI.Style, GuiFrame); button = new GUIButton(new Rectangle(200, 50, 30, 30), "+", "", GuiFrame);
button.OnClicked = (GUIButton btn, object obj) => button.OnClicked = (GUIButton btn, object obj) =>
{ {
targetForce += 1.0f; targetForce += 1.0f;
@@ -112,7 +112,7 @@ namespace Barotrauma.Items.Components
GuiFrame.Padding = new Vector4(20.0f, 20.0f, 20.0f, 20.0f); GuiFrame.Padding = new Vector4(20.0f, 20.0f, 20.0f, 20.0f);
itemList = new GUIListBox(new Rectangle(0,0,GuiFrame.Rect.Width/2-20,0), GUI.Style, GuiFrame); itemList = new GUIListBox(new Rectangle(0,0,GuiFrame.Rect.Width/2-20,0), "", GuiFrame);
itemList.OnSelected = SelectItem; itemList.OnSelected = SelectItem;
foreach (FabricableItem fi in fabricableItems) foreach (FabricableItem fi in fabricableItems)
@@ -158,7 +158,7 @@ namespace Barotrauma.Items.Components
selectedItemFrame.Padding = new Vector4(10.0f, 10.0f, 10.0f, 10.0f); selectedItemFrame.Padding = new Vector4(10.0f, 10.0f, 10.0f, 10.0f);
progressBar = new GUIProgressBar(new Rectangle(0, 0, 0, 20), Color.Green, GUI.Style, 0.0f, Alignment.BottomCenter, selectedItemFrame); progressBar = new GUIProgressBar(new Rectangle(0, 0, 0, 20), Color.Green, "", 0.0f, Alignment.BottomCenter, selectedItemFrame);
progressBar.IsHorizontal = true; progressBar.IsHorizontal = true;
if (targetItem.TargetItem.sprite != null) if (targetItem.TargetItem.sprite != null)
@@ -184,7 +184,7 @@ namespace Barotrauma.Items.Components
var description = new GUITextBlock( var description = new GUITextBlock(
new Rectangle(0, y, 0, 0), new Rectangle(0, y, 0, 0),
targetItem.TargetItem.Description, targetItem.TargetItem.Description,
GUI.Style, Alignment.TopLeft, Alignment.TopLeft, "", Alignment.TopLeft, Alignment.TopLeft,
selectedItemFrame, true, GUI.SmallFont); selectedItemFrame, true, GUI.SmallFont);
y += description.Rect.Height + 10; y += description.Rect.Height + 10;
@@ -228,7 +228,7 @@ namespace Barotrauma.Items.Components
Alignment.TopLeft, null, Alignment.TopLeft, null,
selectedItemFrame); selectedItemFrame);
activateButton = new GUIButton(new Rectangle(0, -30, 100, 20), "Create", Color.White, Alignment.CenterX | Alignment.Bottom, GUI.Style, selectedItemFrame); activateButton = new GUIButton(new Rectangle(0, -30, 100, 20), "Create", Color.White, Alignment.CenterX | Alignment.Bottom, "", selectedItemFrame);
activateButton.OnClicked = StartButtonClicked; activateButton.OnClicked = StartButtonClicked;
activateButton.UserData = targetItem; activateButton.UserData = targetItem;
activateButton.Enabled = false; activateButton.Enabled = false;
@@ -87,7 +87,7 @@ namespace Barotrauma.Items.Components
return true; return true;
}; };
var button = new GUIButton(new Rectangle(160, 40, 35, 30), "OUT", GUI.Style, GuiFrame); var button = new GUIButton(new Rectangle(160, 40, 35, 30), "OUT", "", GuiFrame);
button.OnClicked = (GUIButton btn, object obj) => button.OnClicked = (GUIButton btn, object obj) =>
{ {
FlowPercentage -= 10.0f; FlowPercentage -= 10.0f;
@@ -105,7 +105,7 @@ namespace Barotrauma.Items.Components
return true; return true;
}; };
button = new GUIButton(new Rectangle(210, 40, 35, 30), "IN", GUI.Style, GuiFrame); button = new GUIButton(new Rectangle(210, 40, 35, 30), "IN", "", GuiFrame);
button.OnClicked = (GUIButton btn, object obj) => button.OnClicked = (GUIButton btn, object obj) =>
{ {
FlowPercentage += 10.0f; FlowPercentage += 10.0f;
@@ -123,7 +123,7 @@ namespace Barotrauma.Items.Components
public override void DrawHUD(SpriteBatch spriteBatch, Character character) public override void DrawHUD(SpriteBatch spriteBatch, Character character)
{ {
GuiFrame.Draw(spriteBatch); GuiFrame.Draw(spriteBatch);
if (voltage < minVoltage && powerConsumption > 0.0f) return; if (voltage < minVoltage && powerConsumption > 0.0f) return;
int radius = GuiFrame.Rect.Height / 2 - 30; int radius = GuiFrame.Rect.Height / 2 - 30;
@@ -159,7 +159,7 @@ namespace Barotrauma.Items.Components
IsActive = true; IsActive = true;
var button = new GUIButton(new Rectangle(410, 70, 40, 40), "-", GUI.Style, GuiFrame); var button = new GUIButton(new Rectangle(410, 70, 40, 40), "-", "", GuiFrame);
button.OnPressed = () => button.OnPressed = () =>
{ {
unsentChanges = true; unsentChanges = true;
@@ -168,7 +168,7 @@ namespace Barotrauma.Items.Components
return false; return false;
}; };
button = new GUIButton(new Rectangle(460, 70, 40,40), "+", GUI.Style, GuiFrame); button = new GUIButton(new Rectangle(460, 70, 40,40), "+", "", GuiFrame);
button.OnPressed = () => button.OnPressed = () =>
{ {
unsentChanges = true; unsentChanges = true;
@@ -180,7 +180,7 @@ namespace Barotrauma.Items.Components
autoTempTickBox = new GUITickBox(new Rectangle(410, 170, 20, 20), "Automatic temperature control", Alignment.TopLeft, GuiFrame); autoTempTickBox = new GUITickBox(new Rectangle(410, 170, 20, 20), "Automatic temperature control", Alignment.TopLeft, GuiFrame);
autoTempTickBox.OnSelected = ToggleAutoTemp; autoTempTickBox.OnSelected = ToggleAutoTemp;
button = new GUIButton(new Rectangle(210, 290, 40, 40), "+", GUI.Style, GuiFrame); button = new GUIButton(new Rectangle(210, 290, 40, 40), "+", "", GuiFrame);
button.OnPressed = () => button.OnPressed = () =>
{ {
unsentChanges = true; unsentChanges = true;
@@ -189,7 +189,7 @@ namespace Barotrauma.Items.Components
return false; return false;
}; };
button = new GUIButton(new Rectangle(210, 340, 40, 40), "-", GUI.Style, GuiFrame); button = new GUIButton(new Rectangle(210, 340, 40, 40), "-", "", GuiFrame);
button.OnPressed = () => button.OnPressed = () =>
{ {
unsentChanges = true; unsentChanges = true;
@@ -198,7 +198,7 @@ namespace Barotrauma.Items.Components
return false; return false;
}; };
button = new GUIButton(new Rectangle(500, 290, 40, 40), "+", GUI.Style, GuiFrame); button = new GUIButton(new Rectangle(500, 290, 40, 40), "+", "", GuiFrame);
button.OnPressed = () => button.OnPressed = () =>
{ {
unsentChanges = true; unsentChanges = true;
@@ -207,7 +207,7 @@ namespace Barotrauma.Items.Components
return false; return false;
}; };
button = new GUIButton(new Rectangle(500, 340, 40, 40), "-", GUI.Style, GuiFrame); button = new GUIButton(new Rectangle(500, 340, 40, 40), "-", "", GuiFrame);
button.OnPressed = () => button.OnPressed = () =>
{ {
unsentChanges = true; unsentChanges = true;
@@ -94,7 +94,7 @@ namespace Barotrauma.Items.Components
if (canBeSelected) if (canBeSelected)
{ {
var button = new GUIButton(new Rectangle(160, 50, 30,30), "-", GUI.Style, GuiFrame); var button = new GUIButton(new Rectangle(160, 50, 30,30), "-", "", GuiFrame);
button.OnClicked = (GUIButton btn, object obj) => button.OnClicked = (GUIButton btn, object obj) =>
{ {
RechargeSpeed = rechargeSpeed - maxRechargeSpeed * 0.1f; RechargeSpeed = rechargeSpeed - maxRechargeSpeed * 0.1f;
@@ -112,7 +112,7 @@ namespace Barotrauma.Items.Components
return true; return true;
}; };
button = new GUIButton(new Rectangle(200, 50, 30, 30), "+", GUI.Style, GuiFrame); button = new GUIButton(new Rectangle(200, 50, 30, 30), "+", "", GuiFrame);
button.OnClicked = (GUIButton btn, object obj) => button.OnClicked = (GUIButton btn, object obj) =>
{ {
RechargeSpeed = rechargeSpeed + maxRechargeSpeed * 0.1f; RechargeSpeed = rechargeSpeed + maxRechargeSpeed * 0.1f;
+5 -5
View File
@@ -89,11 +89,11 @@ namespace Barotrauma
int width = 400, height = 500; int width = 400, height = 500;
int y = 0; int y = 0;
frame = new GUIFrame(new Rectangle(0, 0, width, height), null, Alignment.Center, GUI.Style); frame = new GUIFrame(new Rectangle(0, 0, width, height), null, Alignment.Center, "");
frame.Padding = new Vector4(20.0f, 20.0f, 20.0f, 20.0f); frame.Padding = new Vector4(20.0f, 20.0f, 20.0f, 20.0f);
frame.UserData = item; frame.UserData = item;
new GUITextBlock(new Rectangle(0,0,200,20), "Attempting to fix " + item.Name, GUI.Style, frame); new GUITextBlock(new Rectangle(0,0,200,20), "Attempting to fix " + item.Name, "", frame);
y = y + 40; y = y + 40;
foreach (FixRequirement requirement in item.FixRequirements) foreach (FixRequirement requirement in item.FixRequirements)
@@ -104,7 +104,7 @@ namespace Barotrauma
reqFrame.UserData = requirement; reqFrame.UserData = requirement;
var fixButton = new GUIButton(new Rectangle(0, 0, 50, 20), "Fix", GUI.Style, reqFrame); var fixButton = new GUIButton(new Rectangle(0, 0, 50, 20), "Fix", "", reqFrame);
fixButton.OnClicked = FixButtonPressed; fixButton.OnClicked = FixButtonPressed;
fixButton.UserData = requirement; fixButton.UserData = requirement;
@@ -114,7 +114,7 @@ namespace Barotrauma
int y2 = 20; int y2 = 20;
foreach (string itemName in requirement.requiredItems) foreach (string itemName in requirement.requiredItems)
{ {
var itemBlock = new GUITextBlock(new Rectangle(30, y2, 200, 15), itemName, GUI.Style, reqFrame); var itemBlock = new GUITextBlock(new Rectangle(30, y2, 200, 15), itemName, "", reqFrame);
itemBlock.Font = GUI.SmallFont; itemBlock.Font = GUI.SmallFont;
itemBlock.UserData = itemName; itemBlock.UserData = itemName;
@@ -124,7 +124,7 @@ namespace Barotrauma
y2 = 20; y2 = 20;
foreach (Skill skill in requirement.requiredSkills) foreach (Skill skill in requirement.requiredSkills)
{ {
var skillBlock = new GUITextBlock(new Rectangle(0, y2, 200, 15), skill.Name + " - " + skill.Level, GUI.Style, Alignment.Right, Alignment.TopLeft, reqFrame); var skillBlock = new GUITextBlock(new Rectangle(0, y2, 200, 15), skill.Name + " - " + skill.Level, "", Alignment.Right, Alignment.TopLeft, reqFrame);
skillBlock.Font = GUI.SmallFont; skillBlock.Font = GUI.SmallFont;
skillBlock.UserData = skill; skillBlock.UserData = skill;
+7 -7
View File
@@ -1060,11 +1060,11 @@ namespace Barotrauma
} }
} }
editingHUD = new GUIFrame(new Rectangle(x, y, width, 70 + (editableProperties.Count() + requiredItemCount) * 30), GUI.Style); editingHUD = new GUIFrame(new Rectangle(x, y, width, 70 + (editableProperties.Count() + requiredItemCount) * 30), "");
editingHUD.Padding = new Vector4(10, 10, 0, 0); editingHUD.Padding = new Vector4(10, 10, 0, 0);
editingHUD.UserData = this; editingHUD.UserData = this;
new GUITextBlock(new Rectangle(0, 0, 100, 20), prefab.Name, GUI.Style, new GUITextBlock(new Rectangle(0, 0, 100, 20), prefab.Name, "",
Alignment.TopLeft, Alignment.TopLeft, editingHUD, false, GUI.LargeFont); Alignment.TopLeft, Alignment.TopLeft, editingHUD, false, GUI.LargeFont);
y += 20; y += 20;
@@ -1074,15 +1074,15 @@ namespace Barotrauma
if (prefab.IsLinkable) if (prefab.IsLinkable)
{ {
new GUITextBlock(new Rectangle(0, 0, 0, 20), "Hold space to link to another item", new GUITextBlock(new Rectangle(0, 0, 0, 20), "Hold space to link to another item",
GUI.Style, Alignment.TopRight, Alignment.TopRight, editingHUD).Font = GUI.SmallFont; "", Alignment.TopRight, Alignment.TopRight, editingHUD).Font = GUI.SmallFont;
y += 25; y += 25;
} }
foreach (ItemComponent ic in components) foreach (ItemComponent ic in components)
{ {
foreach (RelatedItem relatedItem in ic.requiredItems) foreach (RelatedItem relatedItem in ic.requiredItems)
{ {
new GUITextBlock(new Rectangle(0, y, 100, 20), ic.Name + ": " + relatedItem.Type.ToString() + " required", GUI.Style, editingHUD); new GUITextBlock(new Rectangle(0, y, 100, 20), ic.Name + ": " + relatedItem.Type.ToString() + " required", "", editingHUD);
GUITextBox namesBox = new GUITextBox(new Rectangle(-10, y, 160, 20), Alignment.Right, GUI.Style, editingHUD); GUITextBox namesBox = new GUITextBox(new Rectangle(-10, y, 160, 20), Alignment.Right, "", editingHUD);
PropertyDescriptorCollection properties = TypeDescriptor.GetProperties (relatedItem); PropertyDescriptorCollection properties = TypeDescriptor.GetProperties (relatedItem);
PropertyDescriptor property = properties.Find("JoinedNames", false); PropertyDescriptor property = properties.Find("JoinedNames", false);
@@ -1119,9 +1119,9 @@ namespace Barotrauma
else else
{ {
new GUITextBlock(new Rectangle(0, y, 100, 20), objectProperty.Name, Color.Transparent, Color.White, Alignment.Left, GUI.Style, editingHUD); new GUITextBlock(new Rectangle(0, y, 100, 20), objectProperty.Name, Color.Transparent, Color.White, Alignment.Left, "", editingHUD);
GUITextBox propertyBox = new GUITextBox(new Rectangle(180, y, 250, height), GUI.Style, editingHUD); GUITextBox propertyBox = new GUITextBox(new Rectangle(180, y, 250, height), "", editingHUD);
if (height > 20) propertyBox.Wrap = true; if (height > 20) propertyBox.Wrap = true;
if (value != null) if (value != null)
+5 -5
View File
@@ -187,18 +187,18 @@ namespace Barotrauma
int width = 450; int width = 450;
int x = GameMain.GraphicsWidth / 2 - width / 2, y = 10; int x = GameMain.GraphicsWidth / 2 - width / 2, y = 10;
editingHUD = new GUIFrame(new Rectangle(x, y, width, 100), GUI.Style); editingHUD = new GUIFrame(new Rectangle(x, y, width, 100), "");
editingHUD.Padding = new Vector4(10, 10, 0, 0); editingHUD.Padding = new Vector4(10, 10, 0, 0);
editingHUD.UserData = this; editingHUD.UserData = this;
new GUITextBlock(new Rectangle(0, 0, 100, 20), "Linked submarine", GUI.Style, new GUITextBlock(new Rectangle(0, 0, 100, 20), "Linked submarine", "",
Alignment.TopLeft, Alignment.TopLeft, editingHUD, false, GUI.LargeFont); Alignment.TopLeft, Alignment.TopLeft, editingHUD, false, GUI.LargeFont);
var pathBox = new GUITextBox(new Rectangle(10,30,300,20), GUI.Style, editingHUD); var pathBox = new GUITextBox(new Rectangle(10,30,300,20), "", editingHUD);
pathBox.Font = GUI.SmallFont; pathBox.Font = GUI.SmallFont;
pathBox.Text = filePath; pathBox.Text = filePath;
var reloadButton = new GUIButton(new Rectangle(320,30,80,20), "Refresh", GUI.Style, editingHUD); var reloadButton = new GUIButton(new Rectangle(320,30,80,20), "Refresh", "", editingHUD);
reloadButton.OnClicked = Reload; reloadButton.OnClicked = Reload;
reloadButton.UserData = pathBox; reloadButton.UserData = pathBox;
@@ -209,7 +209,7 @@ namespace Barotrauma
if (!inGame) if (!inGame)
{ {
new GUITextBlock(new Rectangle(0, 0, 0, 20), "Hold space to link to a docking port", new GUITextBlock(new Rectangle(0, 0, 0, 20), "Hold space to link to a docking port",
GUI.Style, Alignment.TopRight, Alignment.TopRight, editingHUD, false, GUI.SmallFont); "", Alignment.TopRight, Alignment.TopRight, editingHUD, false, GUI.SmallFont);
y += 25; y += 25;
} }
+5 -7
View File
@@ -655,16 +655,14 @@ namespace Barotrauma
highlightedList = highlightedEntities; highlightedList = highlightedEntities;
highlightedListBox = new GUIListBox( highlightedListBox = new GUIListBox(
new Rectangle((int)PlayerInput.MousePosition.X+15, (int)PlayerInput.MousePosition.Y+15, 150, highlightedEntities.Count * 15), new Rectangle((int)PlayerInput.MousePosition.X+15, (int)PlayerInput.MousePosition.Y+15, 150, highlightedEntities.Count * 18 + 5),
null, Alignment.TopLeft, GUI.Style, null, false); null, Alignment.TopLeft, "GUIToolTip", null, false);
highlightedListBox.Color = Color.Black * 0.6f;
foreach (MapEntity entity in highlightedEntities) foreach (MapEntity entity in highlightedEntities)
{ {
var textBlock = new GUITextBlock( var textBlock = new GUITextBlock(
new Rectangle(0,0,0,15), new Rectangle(0, 0, highlightedListBox.Rect.Width, 18),
ToolBox.LimitString(entity.Name, GUI.SmallFont, 140), GUI.Style, highlightedListBox, GUI.SmallFont); ToolBox.LimitString(entity.Name, GUI.SmallFont, 140), "", Alignment.TopLeft, Alignment.CenterLeft, highlightedListBox, false, GUI.SmallFont);
textBlock.UserData = entity; textBlock.UserData = entity;
} }
+8 -4
View File
@@ -465,14 +465,18 @@ namespace Barotrauma
GameMain.World.RemoveBody(b); GameMain.World.RemoveBody(b);
} }
foreach (WallSection s in sections) if (sections != null)
{ {
if (s.gap != null) foreach (WallSection s in sections)
{ {
s.gap.Remove(); if (s.gap != null)
s.gap = null; {
s.gap.Remove();
s.gap = null;
}
} }
} }
if (convexHulls != null) convexHulls.ForEach(x => x.Remove()); if (convexHulls != null) convexHulls.ForEach(x => x.Remove());
} }
+8 -9
View File
@@ -152,11 +152,8 @@ namespace Barotrauma
public override void UpdatePlacing(Camera cam) public override void UpdatePlacing(Camera cam)
{ {
Vector2 position = Submarine.MouseToWorldGrid(cam, Submarine.MainSub); Vector2 position = Submarine.MouseToWorldGrid(cam, Submarine.MainSub);
//Vector2 placeSize = size;
Rectangle newRect = new Rectangle((int)position.X, (int)position.Y, (int)size.X, (int)size.Y); Rectangle newRect = new Rectangle((int)position.X, (int)position.Y, (int)size.X, (int)size.Y);
if (placePosition == Vector2.Zero) if (placePosition == Vector2.Zero)
{ {
if (PlayerInput.LeftButtonHeld()) if (PlayerInput.LeftButtonHeld())
@@ -164,8 +161,6 @@ namespace Barotrauma
newRect.X = (int)position.X; newRect.X = (int)position.X;
newRect.Y = (int)position.Y; newRect.Y = (int)position.Y;
//sprite.Draw(spriteBatch, new Vector2(position.X, -position.Y), placeSize, Color.White);
} }
else else
{ {
@@ -177,10 +172,14 @@ namespace Barotrauma
if (PlayerInput.LeftButtonReleased()) if (PlayerInput.LeftButtonReleased())
{ {
newRect.Location -= Submarine.MainSub.Position.ToPoint(); //don't allow resizing width/height to zero
if ((!resizeHorizontal || placeSize.X != 0.0f) && (!resizeVertical || placeSize.Y != 0.0f))
{
newRect.Location -= Submarine.MainSub.Position.ToPoint();
var structure = new Structure(newRect, this, Submarine.MainSub); var structure = new Structure(newRect, this, Submarine.MainSub);
structure.Submarine = Submarine.MainSub; structure.Submarine = Submarine.MainSub;
}
selected = null; selected = null;
return; return;
+9 -9
View File
@@ -272,28 +272,28 @@ namespace Barotrauma
if (spawnType == SpawnType.Path) if (spawnType == SpawnType.Path)
{ {
new GUITextBlock(new Rectangle(0, 0, 100, 20), "Editing waypoint", GUI.Style, editingHUD); new GUITextBlock(new Rectangle(0, 0, 100, 20), "Editing waypoint", "", editingHUD);
new GUITextBlock(new Rectangle(0, 20, 100, 20), "Hold space to link to another waypoint", GUI.Style, editingHUD); new GUITextBlock(new Rectangle(0, 20, 100, 20), "Hold space to link to another waypoint", "", editingHUD);
} }
else else
{ {
new GUITextBlock(new Rectangle(0, 0, 100, 20), "Editing spawnpoint", GUI.Style, editingHUD); new GUITextBlock(new Rectangle(0, 0, 100, 20), "Editing spawnpoint", "", editingHUD);
new GUITextBlock(new Rectangle(0, 25, 100, 20), "Spawn type: ", GUI.Style, editingHUD); new GUITextBlock(new Rectangle(0, 25, 100, 20), "Spawn type: ", "", editingHUD);
var spawnTypeText = new GUITextBlock(new Rectangle(0, 25, 200, 20), spawnType.ToString(), GUI.Style, Alignment.Right, Alignment.TopLeft, editingHUD); var spawnTypeText = new GUITextBlock(new Rectangle(0, 25, 200, 20), spawnType.ToString(), "", Alignment.Right, Alignment.TopLeft, editingHUD);
var button = new GUIButton(new Rectangle(-30,0,20,20), "-", Alignment.Right, GUI.Style, spawnTypeText); var button = new GUIButton(new Rectangle(-30,0,20,20), "-", Alignment.Right, "", spawnTypeText);
button.UserData = -1; button.UserData = -1;
button.OnClicked = ChangeSpawnType; button.OnClicked = ChangeSpawnType;
button = new GUIButton(new Rectangle(0, 0, 20, 20), "+", Alignment.Right, GUI.Style, spawnTypeText); button = new GUIButton(new Rectangle(0, 0, 20, 20), "+", Alignment.Right, "", spawnTypeText);
button.UserData = 1; button.UserData = 1;
button.OnClicked = ChangeSpawnType; button.OnClicked = ChangeSpawnType;
y = 40 + 20; y = 40 + 20;
new GUITextBlock(new Rectangle(0, y, 100, 20), "ID Card tags:", Color.Transparent, Color.White, Alignment.TopLeft, null, editingHUD); new GUITextBlock(new Rectangle(0, y, 100, 20), "ID Card tags:", Color.Transparent, Color.White, Alignment.TopLeft, null, editingHUD);
GUITextBox propertyBox = new GUITextBox(new Rectangle(100, y, 200, 20), GUI.Style, editingHUD); GUITextBox propertyBox = new GUITextBox(new Rectangle(100, y, 200, 20), "", editingHUD);
propertyBox.Text = string.Join(", ", idCardTags); propertyBox.Text = string.Join(", ", idCardTags);
propertyBox.OnEnterPressed = EnterIDCardTags; propertyBox.OnEnterPressed = EnterIDCardTags;
propertyBox.OnTextChanged = TextBoxChanged; propertyBox.OnTextChanged = TextBoxChanged;
@@ -302,7 +302,7 @@ namespace Barotrauma
y = y + 30; y = y + 30;
new GUITextBlock(new Rectangle(0, y, 100, 20), "Assigned job:", Color.Transparent, Color.White, Alignment.TopLeft, null, editingHUD); new GUITextBlock(new Rectangle(0, y, 100, 20), "Assigned job:", Color.Transparent, Color.White, Alignment.TopLeft, null, editingHUD);
propertyBox = new GUITextBox(new Rectangle(100, y, 200, 20), GUI.Style, editingHUD); propertyBox = new GUITextBox(new Rectangle(100, y, 200, 20), "", editingHUD);
propertyBox.Text = (assignedJob == null) ? "None" : assignedJob.Name; propertyBox.Text = (assignedJob == null) ? "None" : assignedJob.Name;
propertyBox.OnEnterPressed = EnterAssignedJob; propertyBox.OnEnterPressed = EnterAssignedJob;
propertyBox.OnTextChanged = TextBoxChanged; propertyBox.OnTextChanged = TextBoxChanged;
+4 -4
View File
@@ -93,24 +93,24 @@ namespace Barotrauma.Networking
public GUIComponent CreateBanFrame(GUIComponent parent) public GUIComponent CreateBanFrame(GUIComponent parent)
{ {
banFrame = new GUIListBox(new Rectangle(0, 0, 0, 0), GUI.Style, parent); banFrame = new GUIListBox(new Rectangle(0, 0, 0, 0), "", parent);
foreach (BannedPlayer bannedPlayer in bannedPlayers) foreach (BannedPlayer bannedPlayer in bannedPlayers)
{ {
GUITextBlock textBlock = new GUITextBlock( GUITextBlock textBlock = new GUITextBlock(
new Rectangle(0, 0, 0, 25), new Rectangle(0, 0, 0, 25),
bannedPlayer.IP + " (" + bannedPlayer.Name + ")", bannedPlayer.IP + " (" + bannedPlayer.Name + ")",
GUI.Style, "",
Alignment.Left, Alignment.Left, banFrame); Alignment.Left, Alignment.Left, banFrame);
textBlock.Padding = new Vector4(10.0f, 10.0f, 0.0f, 0.0f); textBlock.Padding = new Vector4(10.0f, 10.0f, 0.0f, 0.0f);
textBlock.UserData = banFrame; textBlock.UserData = banFrame;
var removeButton = new GUIButton(new Rectangle(0, 0, 100, 20), "Remove", Alignment.Right | Alignment.CenterY, GUI.Style, textBlock); var removeButton = new GUIButton(new Rectangle(0, 0, 100, 20), "Remove", Alignment.Right | Alignment.CenterY, "", textBlock);
removeButton.UserData = bannedPlayer; removeButton.UserData = bannedPlayer;
removeButton.OnClicked = RemoveBan; removeButton.OnClicked = RemoveBan;
if (bannedPlayer.IP.IndexOf(".x") <= -1) if (bannedPlayer.IP.IndexOf(".x") <= -1)
{ {
var rangeBanButton = new GUIButton(new Rectangle(-100, 0, 100, 20), "Ban range", Alignment.Right | Alignment.CenterY, GUI.Style, textBlock); var rangeBanButton = new GUIButton(new Rectangle(-100, 0, 100, 20), "Ban range", Alignment.Right | Alignment.CenterY, "", textBlock);
rangeBanButton.UserData = bannedPlayer; rangeBanButton.UserData = bannedPlayer;
rangeBanButton.OnClicked = RangeBan; rangeBanButton.OnClicked = RangeBan;
} }
+8 -9
View File
@@ -67,7 +67,7 @@ namespace Barotrauma.Networking
endVoteTickBox.OnSelected = ToggleEndRoundVote; endVoteTickBox.OnSelected = ToggleEndRoundVote;
endVoteTickBox.Visible = false; endVoteTickBox.Visible = false;
endRoundButton = new GUIButton(new Rectangle(GameMain.GraphicsWidth - 170 - 170, 20, 150, 20), "End round", Alignment.TopLeft, GUI.Style, inGameHUD); endRoundButton = new GUIButton(new Rectangle(GameMain.GraphicsWidth - 170 - 170, 20, 150, 20), "End round", Alignment.TopLeft, "", inGameHUD);
endRoundButton.OnClicked = (btn, userdata) => endRoundButton.OnClicked = (btn, userdata) =>
{ {
if (!permissions.HasFlag(ClientPermissions.EndRound)) return false; if (!permissions.HasFlag(ClientPermissions.EndRound)) return false;
@@ -348,7 +348,7 @@ namespace Barotrauma.Networking
} }
var msgBox = new GUIMessageBox(pwMsg, "", new string[] { "OK", "Cancel" }); var msgBox = new GUIMessageBox(pwMsg, "", new string[] { "OK", "Cancel" });
var passwordBox = new GUITextBox(new Rectangle(0, 40, 150, 25), Alignment.TopLeft, GUI.Style, msgBox.children[0]); var passwordBox = new GUITextBox(new Rectangle(0, 40, 150, 25), Alignment.TopLeft, "", msgBox.children[0]);
passwordBox.UserData = "password"; passwordBox.UserData = "password";
var okButton = msgBox.Buttons[0]; var okButton = msgBox.Buttons[0];
@@ -1164,13 +1164,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);
@@ -1178,19 +1177,19 @@ namespace Barotrauma.Networking
if (HasPermission(ClientPermissions.Ban)) if (HasPermission(ClientPermissions.Ban))
{ {
var banButton = new GUIButton(new Rectangle(0, 0, 100, 20), "Ban", Alignment.BottomRight, GUI.Style, characterFrame); var banButton = new GUIButton(new Rectangle(0, 0, 100, 20), "Ban", Alignment.BottomRight, "", characterFrame);
banButton.UserData = character.Name; banButton.UserData = character.Name;
banButton.OnClicked += GameMain.NetLobbyScreen.BanPlayer; banButton.OnClicked += GameMain.NetLobbyScreen.BanPlayer;
} }
if (HasPermission(ClientPermissions.Kick)) if (HasPermission(ClientPermissions.Kick))
{ {
var kickButton = new GUIButton(new Rectangle(0, 0, 100, 20), "Kick", Alignment.BottomLeft, GUI.Style, characterFrame); var kickButton = new GUIButton(new Rectangle(0, 0, 100, 20), "Kick", Alignment.BottomLeft, "", characterFrame);
kickButton.UserData = character.Name; kickButton.UserData = character.Name;
kickButton.OnClicked += GameMain.NetLobbyScreen.KickPlayer; kickButton.OnClicked += GameMain.NetLobbyScreen.KickPlayer;
} }
else if (Voting.AllowVoteKick) else if (Voting.AllowVoteKick)
{ {
var kickVoteButton = new GUIButton(new Rectangle(0, 0, 120, 20), "Vote to Kick", Alignment.BottomLeft, GUI.Style, characterFrame); var kickVoteButton = new GUIButton(new Rectangle(0, 0, 120, 20), "Vote to Kick", Alignment.BottomLeft, "", characterFrame);
if (GameMain.NetworkMember.ConnectedClients != null) if (GameMain.NetworkMember.ConnectedClients != null)
{ {
+12 -16
View File
@@ -118,11 +118,11 @@ namespace Barotrauma.Networking
//---------------------------------------- //----------------------------------------
var endRoundButton = new GUIButton(new Rectangle(GameMain.GraphicsWidth - 170, 20, 150, 20), "End round", Alignment.TopLeft, GUI.Style, inGameHUD); var endRoundButton = new GUIButton(new Rectangle(GameMain.GraphicsWidth - 170, 20, 150, 20), "End round", Alignment.TopLeft, "", inGameHUD);
endRoundButton.OnClicked = (btn, userdata) => { EndGame(); return true; }; endRoundButton.OnClicked = (btn, userdata) => { EndGame(); return true; };
log = new ServerLog(name); log = new ServerLog(name);
showLogButton = new GUIButton(new Rectangle(GameMain.GraphicsWidth - 170 - 170, 20, 150, 20), "Server Log", Alignment.TopLeft, GUI.Style, inGameHUD); showLogButton = new GUIButton(new Rectangle(GameMain.GraphicsWidth - 170 - 170, 20, 150, 20), "Server Log", Alignment.TopLeft, "", inGameHUD);
showLogButton.OnClicked = (GUIButton button, object userData) => showLogButton.OnClicked = (GUIButton button, object userData) =>
{ {
if (log.LogFrame == null) if (log.LogFrame == null)
@@ -137,7 +137,7 @@ namespace Barotrauma.Networking
return true; return true;
}; };
GUIButton settingsButton = new GUIButton(new Rectangle(GameMain.GraphicsWidth - 170 - 170 - 170, 20, 150, 20), "Settings", Alignment.TopLeft, GUI.Style, inGameHUD); GUIButton settingsButton = new GUIButton(new Rectangle(GameMain.GraphicsWidth - 170 - 170 - 170, 20, 150, 20), "Settings", Alignment.TopLeft, "", inGameHUD);
settingsButton.OnClicked = ToggleSettingsFrame; settingsButton.OnClicked = ToggleSettingsFrame;
settingsButton.UserData = "settingsButton"; settingsButton.UserData = "settingsButton";
@@ -1669,7 +1669,7 @@ namespace Barotrauma.Networking
if (clientListScrollBar == null) if (clientListScrollBar == null)
{ {
clientListScrollBar = new GUIScrollBar(new Rectangle(x + width - 10, y, 10, height), GUI.Style, 1.0f); clientListScrollBar = new GUIScrollBar(new Rectangle(x + width - 10, y, 10, height), "", 1.0f);
} }
@@ -1756,15 +1756,15 @@ namespace Barotrauma.Networking
clientInfo.ClearChildren(); clientInfo.ClearChildren();
var progressBar = new GUIProgressBar(new Rectangle(0, 4, 160, clientInfo.Rect.Height - 8), Color.Green, GUI.Style, 0.0f, Alignment.Left, clientInfo); var progressBar = new GUIProgressBar(new Rectangle(0, 4, 160, clientInfo.Rect.Height - 8), Color.Green, "", 0.0f, Alignment.Left, clientInfo);
progressBar.IsHorizontal = true; progressBar.IsHorizontal = true;
progressBar.ProgressGetter = () => { return transfers.Sum(t => t.Progress) / transfers.Count; }; progressBar.ProgressGetter = () => { return transfers.Sum(t => t.Progress) / transfers.Count; };
var textBlock = new GUITextBlock(new Rectangle(0, 2, 160, 0), "", GUI.Style, Alignment.TopLeft, Alignment.Left | Alignment.CenterY, clientInfo, true, GUI.SmallFont); var textBlock = new GUITextBlock(new Rectangle(0, 2, 160, 0), "", "", Alignment.TopLeft, Alignment.Left | Alignment.CenterY, clientInfo, true, GUI.SmallFont);
textBlock.TextGetter = () => textBlock.TextGetter = () =>
{ return MathUtils.GetBytesReadable(transfers.Sum(t => t.SentOffset)) + " / " + MathUtils.GetBytesReadable(transfers.Sum(t => t.Data.Length)); }; { return MathUtils.GetBytesReadable(transfers.Sum(t => t.SentOffset)) + " / " + MathUtils.GetBytesReadable(transfers.Sum(t => t.Data.Length)); };
var cancelButton = new GUIButton(new Rectangle(-5, 0, 14, 0), "X", Alignment.Right, GUI.Style, clientInfo); var cancelButton = new GUIButton(new Rectangle(-5, 0, 14, 0), "X", Alignment.Right, "", clientInfo);
cancelButton.OnClicked = (GUIButton button, object userdata) => cancelButton.OnClicked = (GUIButton button, object userdata) =>
{ {
transfers.ForEach(t => fileSender.CancelTransfer(t)); transfers.ForEach(t => fileSender.CancelTransfer(t));
@@ -1823,26 +1823,22 @@ 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, GUI.Style, characterFrame); var banButton = new GUIButton(new Rectangle(0, 0, 100, 20), "Ban", Alignment.BottomRight, "", characterFrame);
banButton.UserData = character.Name; banButton.UserData = character.Name;
banButton.OnClicked += GameMain.NetLobbyScreen.BanPlayer; banButton.OnClicked += GameMain.NetLobbyScreen.BanPlayer;
var rangebanButton = new GUIButton(new Rectangle(0, -25, 100, 20), "Ban range", Alignment.BottomRight, GUI.Style, characterFrame); var rangebanButton = new GUIButton(new Rectangle(0, -25, 100, 20), "Ban range", Alignment.BottomRight, "", characterFrame);
rangebanButton.UserData = character.Name; rangebanButton.UserData = character.Name;
rangebanButton.OnClicked += GameMain.NetLobbyScreen.BanPlayerRange; rangebanButton.OnClicked += GameMain.NetLobbyScreen.BanPlayerRange;
var kickButton = new GUIButton(new Rectangle(0, 0, 100, 20), "Kick", Alignment.BottomLeft, GUI.Style, characterFrame); var kickButton = new GUIButton(new Rectangle(0, 0, 100, 20), "Kick", Alignment.BottomLeft, "", characterFrame);
kickButton.UserData = character.Name; kickButton.UserData = character.Name;
kickButton.OnClicked += GameMain.NetLobbyScreen.KickPlayer; kickButton.OnClicked += GameMain.NetLobbyScreen.KickPlayer;
} }
@@ -300,21 +300,21 @@ namespace Barotrauma.Networking
private void CreateSettingsFrame() private void CreateSettingsFrame()
{ {
settingsFrame = new GUIFrame(new Rectangle(0, 0, GameMain.GraphicsWidth, GameMain.GraphicsHeight), Color.Black * 0.5f); settingsFrame = new GUIFrame(new Rectangle(0, 0, GameMain.GraphicsWidth, GameMain.GraphicsHeight), Color.Black * 0.5f, null);
GUIFrame innerFrame = new GUIFrame(new Rectangle(0, 0, 400, 430), null, Alignment.Center, GUI.Style, settingsFrame); GUIFrame innerFrame = new GUIFrame(new Rectangle(0, 0, 400, 430), null, Alignment.Center, "", settingsFrame);
innerFrame.Padding = new Vector4(20.0f, 20.0f, 20.0f, 20.0f); innerFrame.Padding = new Vector4(20.0f, 20.0f, 20.0f, 20.0f);
new GUITextBlock(new Rectangle(0, -5, 0, 20), "Settings", GUI.Style, innerFrame, GUI.LargeFont); new GUITextBlock(new Rectangle(0, -5, 0, 20), "Settings", "", innerFrame, GUI.LargeFont);
string[] tabNames = { "Rounds", "Server", "Banlist", "Whitelist" }; string[] tabNames = { "Rounds", "Server", "Banlist", "Whitelist" };
settingsTabs = new GUIFrame[tabNames.Length]; settingsTabs = new GUIFrame[tabNames.Length];
for (int i = 0; i < tabNames.Length; i++) for (int i = 0; i < tabNames.Length; i++)
{ {
settingsTabs[i] = new GUIFrame(new Rectangle(0, 15, 0, innerFrame.Rect.Height - 120), null, Alignment.Center, GUI.Style, innerFrame); settingsTabs[i] = new GUIFrame(new Rectangle(0, 15, 0, innerFrame.Rect.Height - 120), null, Alignment.Center, "InnerFrame", innerFrame);
settingsTabs[i].Padding = new Vector4(40.0f, 20.0f, 40.0f, 40.0f); settingsTabs[i].Padding = new Vector4(40.0f, 20.0f, 40.0f, 40.0f);
var tabButton = new GUIButton(new Rectangle(85 * i, 35, 80, 20), tabNames[i], GUI.Style, innerFrame); var tabButton = new GUIButton(new Rectangle(85 * i, 35, 80, 20), tabNames[i], "", innerFrame);
tabButton.UserData = i; tabButton.UserData = i;
tabButton.OnClicked = SelectSettingsTab; tabButton.OnClicked = SelectSettingsTab;
} }
@@ -323,7 +323,7 @@ namespace Barotrauma.Networking
SelectSettingsTab(null, 0); SelectSettingsTab(null, 0);
var closeButton = new GUIButton(new Rectangle(10, 10, 100, 20), "Close", Alignment.BottomRight, GUI.Style, innerFrame); var closeButton = new GUIButton(new Rectangle(10, 0, 100, 20), "Close", Alignment.BottomRight, "", innerFrame);
closeButton.OnClicked = ToggleSettingsFrame; closeButton.OnClicked = ToggleSettingsFrame;
//-------------------------------------------------------------------------------- //--------------------------------------------------------------------------------
@@ -334,7 +334,7 @@ namespace Barotrauma.Networking
settingsTabs[0].Padding = new Vector4(40.0f, 5.0f, 40.0f, 40.0f); settingsTabs[0].Padding = new Vector4(40.0f, 5.0f, 40.0f, 40.0f);
new GUITextBlock(new Rectangle(0, y, 100, 20), "Submarine selection:", GUI.Style, settingsTabs[0]); new GUITextBlock(new Rectangle(0, y, 100, 20), "Submarine selection:", "", settingsTabs[0]);
var selectionFrame = new GUIFrame(new Rectangle(0, y + 20, 300, 20), null, settingsTabs[0]); var selectionFrame = new GUIFrame(new Rectangle(0, y + 20, 300, 20), null, settingsTabs[0]);
for (int i = 0; i < 3; i++) for (int i = 0; i < 3; i++)
{ {
@@ -346,7 +346,7 @@ namespace Barotrauma.Networking
y += 45; y += 45;
new GUITextBlock(new Rectangle(0, y, 100, 20), "Mode selection:", GUI.Style, settingsTabs[0]); new GUITextBlock(new Rectangle(0, y, 100, 20), "Mode selection:", "", settingsTabs[0]);
selectionFrame = new GUIFrame(new Rectangle(0, y + 20, 300, 20), null, settingsTabs[0]); selectionFrame = new GUIFrame(new Rectangle(0, y + 20, 300, 20), null, settingsTabs[0]);
for (int i = 0; i < 3; i++) for (int i = 0; i < 3; i++)
{ {
@@ -374,9 +374,9 @@ namespace Barotrauma.Networking
}; };
var votesRequiredText = new GUITextBlock(new Rectangle(20, y + 20, 20, 20), "Votes required: 50 %", GUI.Style, settingsTabs[0], GUI.SmallFont); var votesRequiredText = new GUITextBlock(new Rectangle(20, y + 15, 20, 20), "Votes required: 50 %", "", settingsTabs[0], GUI.SmallFont);
var votesRequiredSlider = new GUIScrollBar(new Rectangle(150, y + 22, 100, 10), GUI.Style, 0.1f, settingsTabs[0]); var votesRequiredSlider = new GUIScrollBar(new Rectangle(150, y + 22, 100, 15), "", 0.1f, settingsTabs[0]);
votesRequiredSlider.UserData = votesRequiredText; votesRequiredSlider.UserData = votesRequiredText;
votesRequiredSlider.Step = 0.2f; votesRequiredSlider.Step = 0.2f;
votesRequiredSlider.BarScroll = (EndVoteRequiredRatio - 0.5f) * 2.0f; votesRequiredSlider.BarScroll = (EndVoteRequiredRatio - 0.5f) * 2.0f;
@@ -401,9 +401,9 @@ namespace Barotrauma.Networking
}; };
var respawnIntervalText = new GUITextBlock(new Rectangle(20, y + 18, 20, 20), "Respawn interval", GUI.Style, settingsTabs[0], GUI.SmallFont); var respawnIntervalText = new GUITextBlock(new Rectangle(20, y + 13, 20, 20), "Respawn interval", "", settingsTabs[0], GUI.SmallFont);
var respawnIntervalSlider = new GUIScrollBar(new Rectangle(150, y + 20, 100, 10), GUI.Style, 0.1f, settingsTabs[0]); var respawnIntervalSlider = new GUIScrollBar(new Rectangle(150, y + 20, 100, 15), "", 0.1f, settingsTabs[0]);
respawnIntervalSlider.UserData = respawnIntervalText; respawnIntervalSlider.UserData = respawnIntervalText;
respawnIntervalSlider.Step = 0.05f; respawnIntervalSlider.Step = 0.05f;
respawnIntervalSlider.BarScroll = RespawnInterval / 600.0f; respawnIntervalSlider.BarScroll = RespawnInterval / 600.0f;
@@ -419,10 +419,10 @@ namespace Barotrauma.Networking
y += 35; y += 35;
var minRespawnText = new GUITextBlock(new Rectangle(0, y, 200, 20), "Minimum players to respawn", GUI.Style, settingsTabs[0]); var minRespawnText = new GUITextBlock(new Rectangle(0, y, 200, 20), "Minimum players to respawn", "", settingsTabs[0]);
minRespawnText.ToolTip = "What percentage of players has to be dead/spectating until a respawn shuttle is dispatched"; minRespawnText.ToolTip = "What percentage of players has to be dead/spectating until a respawn shuttle is dispatched";
var minRespawnSlider = new GUIScrollBar(new Rectangle(150, y + 20, 100, 10), GUI.Style, 0.1f, settingsTabs[0]); var minRespawnSlider = new GUIScrollBar(new Rectangle(150, y + 20, 100, 15), "", 0.1f, settingsTabs[0]);
minRespawnSlider.ToolTip = minRespawnText.ToolTip; minRespawnSlider.ToolTip = minRespawnText.ToolTip;
minRespawnSlider.UserData = minRespawnText; minRespawnSlider.UserData = minRespawnText;
minRespawnSlider.Step = 0.1f; minRespawnSlider.Step = 0.1f;
@@ -439,11 +439,11 @@ namespace Barotrauma.Networking
y += 30; y += 30;
var respawnDurationText = new GUITextBlock(new Rectangle(0, y, 200, 20), "Duration of respawn transport", GUI.Style, settingsTabs[0]); var respawnDurationText = new GUITextBlock(new Rectangle(0, y, 200, 20), "Duration of respawn transport", "", settingsTabs[0]);
respawnDurationText.ToolTip = "The amount of time respawned players have to navigate the respawn shuttle to the main submarine. " + respawnDurationText.ToolTip = "The amount of time respawned players have to navigate the respawn shuttle to the main submarine. " +
"After the duration expires, the shuttle will automatically head back out of the level."; "After the duration expires, the shuttle will automatically head back out of the level.";
var respawnDurationSlider = new GUIScrollBar(new Rectangle(150, y + 20, 100, 10), GUI.Style, 0.1f, settingsTabs[0]); var respawnDurationSlider = new GUIScrollBar(new Rectangle(150, y + 20, 100, 15), "", 0.1f, settingsTabs[0]);
respawnDurationSlider.ToolTip = minRespawnText.ToolTip; respawnDurationSlider.ToolTip = minRespawnText.ToolTip;
respawnDurationSlider.UserData = respawnDurationText; respawnDurationSlider.UserData = respawnDurationText;
respawnDurationSlider.Step = 0.1f; respawnDurationSlider.Step = 0.1f;
@@ -469,9 +469,9 @@ namespace Barotrauma.Networking
y += 35; y += 35;
var monsterButton = new GUIButton(new Rectangle(0, y, 130, 20), "Monster Spawns", GUI.Style, settingsTabs[0]); var monsterButton = new GUIButton(new Rectangle(0, y, 130, 20), "Monster Spawns", "", settingsTabs[0]);
monsterButton.Enabled = !GameStarted; monsterButton.Enabled = !GameStarted;
var monsterFrame = new GUIListBox(new Rectangle(-290, 60, 280, 250), GUI.Style, settingsTabs[0]); var monsterFrame = new GUIListBox(new Rectangle(-290, 60, 280, 250), "", settingsTabs[0]);
monsterFrame.Visible = false; monsterFrame.Visible = false;
monsterButton.UserData = monsterFrame; monsterButton.UserData = monsterFrame;
monsterButton.OnClicked = (button, obj) => monsterButton.OnClicked = (button, obj) =>
@@ -491,7 +491,7 @@ namespace Barotrauma.Networking
GUITextBlock textBlock = new GUITextBlock( GUITextBlock textBlock = new GUITextBlock(
new Rectangle(0, 0, 260, 25), new Rectangle(0, 0, 260, 25),
s, s,
GUI.Style, "",
Alignment.Left, Alignment.Left, monsterFrame); Alignment.Left, Alignment.Left, monsterFrame);
textBlock.Padding = new Vector4(35.0f, 3.0f, 0.0f, 0.0f); textBlock.Padding = new Vector4(35.0f, 3.0f, 0.0f, 0.0f);
textBlock.UserData = monsterFrame; textBlock.UserData = monsterFrame;
@@ -512,10 +512,10 @@ namespace Barotrauma.Networking
}; };
} }
var cargoButton = new GUIButton(new Rectangle(160, y, 130, 20), "Additional Cargo", GUI.Style, settingsTabs[0]); var cargoButton = new GUIButton(new Rectangle(160, y, 130, 20), "Additional Cargo", "", settingsTabs[0]);
cargoButton.Enabled = !GameStarted; cargoButton.Enabled = !GameStarted;
var cargoFrame = new GUIListBox(new Rectangle(300, 60, 280, 250), GUI.Style, settingsTabs[0]); var cargoFrame = new GUIListBox(new Rectangle(300, 60, 280, 250), "", settingsTabs[0]);
cargoFrame.Visible = false; cargoFrame.Visible = false;
cargoButton.UserData = cargoFrame; cargoButton.UserData = cargoFrame;
cargoButton.OnClicked = (button, obj) => cargoButton.OnClicked = (button, obj) =>
@@ -537,17 +537,16 @@ namespace Barotrauma.Networking
GUITextBlock textBlock = new GUITextBlock( GUITextBlock textBlock = new GUITextBlock(
new Rectangle(0, 0, 260, 25), new Rectangle(0, 0, 260, 25),
pf.Name, pf.Name, "",
GUI.Style, Alignment.Left, Alignment.CenterLeft, cargoFrame, false, GUI.SmallFont);
Alignment.Left, Alignment.Left, cargoFrame); textBlock.Padding = new Vector4(40.0f, 3.0f, 0.0f, 0.0f);
textBlock.Padding = new Vector4(30.0f, 3.0f, 0.0f, 0.0f);
textBlock.UserData = cargoFrame; textBlock.UserData = cargoFrame;
textBlock.CanBeFocused = false; textBlock.CanBeFocused = false;
if (pf.sprite != null) if (pf.sprite != null)
{ {
float scale = Math.Min(Math.Min(30.0f / pf.sprite.SourceRect.Width, 30.0f / pf.sprite.SourceRect.Height), 1.0f); float scale = Math.Min(Math.Min(30.0f / pf.sprite.SourceRect.Width, 30.0f / pf.sprite.SourceRect.Height), 1.0f);
GUIImage img = new GUIImage(new Rectangle(-15-(int)(pf.sprite.SourceRect.Width*scale*0.5f), 12-(int)(pf.sprite.SourceRect.Height*scale*0.5f), 40, 40), pf.sprite, Alignment.Left, textBlock); GUIImage img = new GUIImage(new Rectangle(-20-(int)(pf.sprite.SourceRect.Width*scale*0.5f), 12-(int)(pf.sprite.SourceRect.Height*scale*0.5f), 40, 40), pf.sprite, Alignment.Left, textBlock);
img.Color = pf.SpriteColor; img.Color = pf.SpriteColor;
img.Scale = scale; img.Scale = scale;
} }
@@ -555,12 +554,12 @@ namespace Barotrauma.Networking
int cargoVal = 0; int cargoVal = 0;
extraCargo.TryGetValue(pf.Name, out cargoVal); extraCargo.TryGetValue(pf.Name, out cargoVal);
var countText = new GUITextBlock( var countText = new GUITextBlock(
new Rectangle(180, 0, 50, 25), new Rectangle(160, 0, 55, 25),
cargoVal.ToString(), cargoVal.ToString(),
GUI.Style, "",
Alignment.Left, Alignment.Center, textBlock); Alignment.Left, Alignment.Center, textBlock);
var incButton = new GUIButton(new Rectangle(220, 5, 10, 15), ">", GUI.Style, textBlock); var incButton = new GUIButton(new Rectangle(200, 5, 15, 15), ">", "", textBlock);
incButton.UserData = countText; incButton.UserData = countText;
incButton.OnClicked = (button, obj) => incButton.OnClicked = (button, obj) =>
{ {
@@ -578,7 +577,7 @@ namespace Barotrauma.Networking
return true; return true;
}; };
var decButton = new GUIButton(new Rectangle(180, 5, 10, 15), "<", GUI.Style, textBlock); var decButton = new GUIButton(new Rectangle(160, 5, 15, 15), "<", "", textBlock);
decButton.UserData = countText; decButton.UserData = countText;
decButton.OnClicked = (button, obj) => decButton.OnClicked = (button, obj) =>
{ {
@@ -608,8 +607,8 @@ namespace Barotrauma.Networking
y = 0; y = 0;
var startIntervalText = new GUITextBlock(new Rectangle(-10, y, 100, 20), "Autorestart delay", GUI.Style, settingsTabs[1]); var startIntervalText = new GUITextBlock(new Rectangle(-10, y, 100, 20), "Autorestart delay", "", settingsTabs[1]);
var startIntervalSlider = new GUIScrollBar(new Rectangle(10, y + 22, 100, 10), GUI.Style, 0.1f, settingsTabs[1]); var startIntervalSlider = new GUIScrollBar(new Rectangle(10, y + 22, 100, 15), "", 0.1f, settingsTabs[1]);
startIntervalSlider.UserData = startIntervalText; startIntervalSlider.UserData = startIntervalText;
startIntervalSlider.Step = 0.05f; startIntervalSlider.Step = 0.05f;
startIntervalSlider.BarScroll = AutoRestartInterval / 300.0f; startIntervalSlider.BarScroll = AutoRestartInterval / 300.0f;
@@ -645,9 +644,9 @@ namespace Barotrauma.Networking
return true; return true;
}; };
var kickVotesRequiredText = new GUITextBlock(new Rectangle(20, y + 20, 20, 20), "Votes required: 50 %", GUI.Style, settingsTabs[1], GUI.SmallFont); var kickVotesRequiredText = new GUITextBlock(new Rectangle(20, y + 20, 20, 20), "Votes required: 50 %", "", settingsTabs[1], GUI.SmallFont);
var kickVoteSlider = new GUIScrollBar(new Rectangle(150, y + 22, 100, 10), GUI.Style, 0.1f, settingsTabs[1]); var kickVoteSlider = new GUIScrollBar(new Rectangle(150, y + 22, 100, 15), "", 0.1f, settingsTabs[1]);
kickVoteSlider.UserData = kickVotesRequiredText; kickVoteSlider.UserData = kickVotesRequiredText;
kickVoteSlider.Step = 0.2f; kickVoteSlider.Step = 0.2f;
kickVoteSlider.BarScroll = (KickVoteRequiredRatio - 0.5f) * 2.0f; kickVoteSlider.BarScroll = (KickVoteRequiredRatio - 0.5f) * 2.0f;
@@ -831,7 +830,7 @@ namespace Barotrauma.Networking
public void ManagePlayersFrame(GUIFrame infoFrame) public void ManagePlayersFrame(GUIFrame infoFrame)
{ {
GUIListBox cList = new GUIListBox(new Rectangle(0, 0, 0, 300), Color.White * 0.7f, GUI.Style, infoFrame); GUIListBox cList = new GUIListBox(new Rectangle(0, 0, 0, 300), Color.White * 0.7f, "", infoFrame);
cList.Padding = new Vector4(10.0f, 10.0f, 10.0f, 10.0f); cList.Padding = new Vector4(10.0f, 10.0f, 10.0f, 10.0f);
//crewList.OnSelected = SelectCrewCharacter; //crewList.OnSelected = SelectCrewCharacter;
@@ -850,15 +849,15 @@ namespace Barotrauma.Networking
Alignment.Left, Alignment.Left, Alignment.Left, Alignment.Left,
null, frame); null, frame);
var banButton = new GUIButton(new Rectangle(-110, 0, 100, 20), "Ban", Alignment.Right | Alignment.CenterY, GUI.Style, frame); var banButton = new GUIButton(new Rectangle(-110, 0, 100, 20), "Ban", Alignment.Right | Alignment.CenterY, "", frame);
banButton.UserData = c.name; banButton.UserData = c.name;
banButton.OnClicked = GameMain.NetLobbyScreen.BanPlayer; banButton.OnClicked = GameMain.NetLobbyScreen.BanPlayer;
var rangebanButton = new GUIButton(new Rectangle(-220, 0, 100, 20), "Ban range", Alignment.Right | Alignment.CenterY, GUI.Style, frame); var rangebanButton = new GUIButton(new Rectangle(-220, 0, 100, 20), "Ban range", Alignment.Right | Alignment.CenterY, "", frame);
rangebanButton.UserData = c.name; rangebanButton.UserData = c.name;
rangebanButton.OnClicked = GameMain.NetLobbyScreen.BanPlayerRange; rangebanButton.OnClicked = GameMain.NetLobbyScreen.BanPlayerRange;
var kickButton = new GUIButton(new Rectangle(0, 0, 100, 20), "Kick", Alignment.Right | Alignment.CenterY, GUI.Style, frame); var kickButton = new GUIButton(new Rectangle(0, 0, 100, 20), "Kick", Alignment.Right | Alignment.CenterY, "", frame);
kickButton.UserData = c.name; kickButton.UserData = c.name;
kickButton.OnClicked = GameMain.NetLobbyScreen.KickPlayer; kickButton.OnClicked = GameMain.NetLobbyScreen.KickPlayer;
@@ -151,12 +151,12 @@ namespace Barotrauma.Networking
GameMain.GraphicsWidth - 20 - width, GameMain.GraphicsWidth - 20 - width,
GameMain.GraphicsHeight - 40 - 25 - height, GameMain.GraphicsHeight - 40 - 25 - height,
width, height), width, height),
Color.White * 0.5f, GUI.Style, inGameHUD); Color.White * 0.5f, "", inGameHUD);
chatBox.Padding = Vector4.Zero; chatBox.Padding = Vector4.Zero;
chatMsgBox = new GUITextBox( chatMsgBox = new GUITextBox(
new Rectangle(chatBox.Rect.X, chatBox.Rect.Y + chatBox.Rect.Height + 20, chatBox.Rect.Width, 25), new Rectangle(chatBox.Rect.X, chatBox.Rect.Y + chatBox.Rect.Height + 20, chatBox.Rect.Width, 25),
Color.White * 0.5f, Color.Black, Alignment.TopLeft, Alignment.Left, GUI.Style, inGameHUD); Color.White * 0.5f, Color.Black, Alignment.TopLeft, Alignment.Left, "", inGameHUD);
chatMsgBox.Font = GUI.SmallFont; chatMsgBox.Font = GUI.SmallFont;
chatMsgBox.Padding = Vector4.Zero; chatMsgBox.Padding = Vector4.Zero;
chatMsgBox.OnEnterPressed = EnterChatMessage; chatMsgBox.OnEnterPressed = EnterChatMessage;
@@ -363,7 +363,7 @@ namespace Barotrauma.Networking
} }
} }
public virtual bool SelectCrewCharacter(GUIComponent component, object obj) public virtual bool SelectCrewCharacter(Character character, GUIComponent crewFrame)
{ {
return false; return false;
} }
+7 -7
View File
@@ -59,21 +59,21 @@ namespace Barotrauma.Networking
{ {
LogFrame = new GUIFrame(new Rectangle(0, 0, GameMain.GraphicsWidth, GameMain.GraphicsHeight), Color.Black * 0.5f); LogFrame = new GUIFrame(new Rectangle(0, 0, GameMain.GraphicsWidth, GameMain.GraphicsHeight), Color.Black * 0.5f);
GUIFrame innerFrame = new GUIFrame(new Rectangle(0,0,400, 400), null, Alignment.Center, GUI.Style, LogFrame); GUIFrame innerFrame = new GUIFrame(new Rectangle(0,0,400, 400), null, Alignment.Center, "", LogFrame);
innerFrame.Padding = new Vector4(10.0f, 10.0f, 10.0f, 10.0f); innerFrame.Padding = new Vector4(10.0f, 10.0f, 10.0f, 10.0f);
new GUITextBlock(new Rectangle(-200,0,100,15), "Filter", GUI.Style, Alignment.TopRight, Alignment.TopRight, innerFrame, false, GUI.SmallFont); new GUITextBlock(new Rectangle(-200,0,100,15), "Filter", "", Alignment.TopRight, Alignment.TopRight, innerFrame, false, GUI.SmallFont);
GUITextBox searchBox = new GUITextBox(new Rectangle(-20,0,180,15), Alignment.TopRight, GUI.Style, innerFrame); GUITextBox searchBox = new GUITextBox(new Rectangle(-20,0,180,15), Alignment.TopRight, "", innerFrame);
searchBox.Font = GUI.SmallFont; searchBox.Font = GUI.SmallFont;
searchBox.OnTextChanged = FilterMessages; searchBox.OnTextChanged = FilterMessages;
GUIComponent.KeyboardDispatcher.Subscriber = searchBox; GUIComponent.KeyboardDispatcher.Subscriber = searchBox;
var clearButton = new GUIButton(new Rectangle(0,0,15,15), "x", Alignment.TopRight, GUI.Style, innerFrame); var clearButton = new GUIButton(new Rectangle(0,0,15,15), "x", Alignment.TopRight, "", innerFrame);
clearButton.OnClicked = ClearFilter; clearButton.OnClicked = ClearFilter;
clearButton.UserData = searchBox; clearButton.UserData = searchBox;
listBox = new GUIListBox(new Rectangle(0,20,0,335), GUI.Style, innerFrame); listBox = new GUIListBox(new Rectangle(0,20,0,335), "", innerFrame);
var currLines = lines.ToList(); var currLines = lines.ToList();
@@ -86,7 +86,7 @@ namespace Barotrauma.Networking
if (listBox.BarScroll==0.0f || listBox.BarScroll==1.0f) listBox.BarScroll = 1.0f; if (listBox.BarScroll==0.0f || listBox.BarScroll==1.0f) listBox.BarScroll = 1.0f;
GUIButton closeButton = new GUIButton(new Rectangle(0,0,100, 15), "Close", Alignment.BottomRight, GUI.Style, innerFrame); GUIButton closeButton = new GUIButton(new Rectangle(0,0,100, 15), "Close", Alignment.BottomRight, "", innerFrame);
closeButton.OnClicked = (GUIButton button, object userData) => closeButton.OnClicked = (GUIButton button, object userData) =>
{ {
LogFrame = null; LogFrame = null;
@@ -98,7 +98,7 @@ namespace Barotrauma.Networking
{ {
float prevSize = listBox.BarSize; float prevSize = listBox.BarSize;
var textBlock = new GUITextBlock(new Rectangle(0, 0, 0, 0), line.Text, GUI.Style, Alignment.TopLeft, Alignment.TopLeft, listBox, true, GUI.SmallFont); var textBlock = new GUITextBlock(new Rectangle(0, 0, 0, 0), line.Text, "", Alignment.TopLeft, Alignment.TopLeft, listBox, true, GUI.SmallFont);
textBlock.Rect = new Rectangle(textBlock.Rect.X, textBlock.Rect.Y, textBlock.Rect.Width, Math.Max(13, textBlock.Rect.Height)); textBlock.Rect = new Rectangle(textBlock.Rect.X, textBlock.Rect.Y, textBlock.Rect.Width, Math.Max(13, textBlock.Rect.Height));
//listBox.AddChild(textBlock); //listBox.AddChild(textBlock);
+1 -1
View File
@@ -85,7 +85,7 @@ namespace Barotrauma
GUITextBlock voteText = comp.FindChild("votes") as GUITextBlock; GUITextBlock voteText = comp.FindChild("votes") as GUITextBlock;
if (voteText == null) if (voteText == null)
{ {
voteText = new GUITextBlock(new Rectangle(0, 0, 30, 0), "", GUI.Style, Alignment.Right, Alignment.Right, comp); voteText = new GUITextBlock(new Rectangle(0, 0, 30, 0), "", "", Alignment.Right, Alignment.Right, comp);
voteText.UserData = "votes"; voteText.UserData = "votes";
} }
+8 -8
View File
@@ -154,18 +154,18 @@ namespace Barotrauma.Networking
return true; return true;
}; };
new GUITextBlock(new Rectangle(0, -25, 90, 20), "Name:", GUI.Style, Alignment.BottomLeft, Alignment.TopLeft, parent, false, GUI.Font); new GUITextBlock(new Rectangle(0, -35, 90, 20), "Name:", "", Alignment.BottomLeft, Alignment.CenterLeft, parent, false, GUI.Font);
nameBox = new GUITextBox(new Rectangle(100, -25, 170, 20), Alignment.BottomLeft, GUI.Style, parent); nameBox = new GUITextBox(new Rectangle(100, -35, 170, 20), Alignment.BottomLeft, "", parent);
nameBox.Font = GUI.Font; nameBox.Font = GUI.Font;
new GUITextBlock(new Rectangle(0, 5, 90, 20), "IP Address:", GUI.Style, Alignment.BottomLeft, Alignment.TopLeft, parent, false, GUI.Font); new GUITextBlock(new Rectangle(0, 0, 90, 20), "IP Address:", "", Alignment.BottomLeft, Alignment.CenterLeft, parent, false, GUI.Font);
ipBox = new GUITextBox(new Rectangle(100, 5, 170, 20), Alignment.BottomLeft, GUI.Style, parent); ipBox = new GUITextBox(new Rectangle(100, 0, 170, 20), Alignment.BottomLeft, "", parent);
ipBox.Font = GUI.Font; ipBox.Font = GUI.Font;
var addnewButton = new GUIButton(new Rectangle(0, 45, 150, 20), "Add to whitelist", Alignment.BottomLeft, GUI.Style, parent); var addnewButton = new GUIButton(new Rectangle(0, 35, 150, 20), "Add to whitelist", Alignment.BottomLeft, "", parent);
addnewButton.OnClicked = AddToWhiteList; addnewButton.OnClicked = AddToWhiteList;
whitelistFrame = new GUIListBox(new Rectangle(0, 30, 0, parent.Rect.Height-100), GUI.Style, parent); whitelistFrame = new GUIListBox(new Rectangle(0, 30, 0, parent.Rect.Height-110), "", parent);
foreach (WhiteListedPlayer wlp in whitelistedPlayers) foreach (WhiteListedPlayer wlp in whitelistedPlayers)
{ {
@@ -174,12 +174,12 @@ namespace Barotrauma.Networking
GUITextBlock textBlock = new GUITextBlock( GUITextBlock textBlock = new GUITextBlock(
new Rectangle(0, 0, 0, 25), new Rectangle(0, 0, 0, 25),
blockText, blockText,
GUI.Style, "",
Alignment.Left, Alignment.Left, whitelistFrame); Alignment.Left, Alignment.Left, whitelistFrame);
textBlock.Padding = new Vector4(10.0f, 10.0f, 0.0f, 0.0f); textBlock.Padding = new Vector4(10.0f, 10.0f, 0.0f, 0.0f);
textBlock.UserData = wlp; textBlock.UserData = wlp;
var removeButton = new GUIButton(new Rectangle(0, 0, 100, 20), "Remove", Alignment.Right | Alignment.CenterY, GUI.Style, textBlock); var removeButton = new GUIButton(new Rectangle(0, 0, 100, 20), "Remove", Alignment.Right | Alignment.CenterY, "", textBlock);
removeButton.UserData = wlp; removeButton.UserData = wlp;
removeButton.OnClicked = RemoveFromWhiteList; removeButton.OnClicked = RemoveFromWhiteList;
} }
@@ -43,18 +43,18 @@ namespace Barotrauma
cam = new Camera(); cam = new Camera();
GUIpanel = new GUIFrame(new Rectangle(0, 0, 300, GameMain.GraphicsHeight), GUI.Style); GUIpanel = new GUIFrame(new Rectangle(0, 0, 300, GameMain.GraphicsHeight), "");
GUIpanel.Padding = new Vector4(10.0f, 10.0f, 10.0f, 10.0f); GUIpanel.Padding = new Vector4(10.0f, 10.0f, 10.0f, 10.0f);
physicsButton = new GUIButton(new Rectangle(0, 50, 200, 25), "Physics", Alignment.Left, GUI.Style, GUIpanel); physicsButton = new GUIButton(new Rectangle(0, 50, 200, 25), "Physics", Alignment.Left, "", GUIpanel);
physicsButton.OnClicked += TogglePhysics; physicsButton.OnClicked += TogglePhysics;
new GUITextBlock(new Rectangle(0, 80, 0, 25), "Limbs:", GUI.Style, GUIpanel); new GUITextBlock(new Rectangle(0, 80, 0, 25), "Limbs:", "", GUIpanel);
limbList = new GUIListBox(new Rectangle(0, 110, 0, 250), Color.White * 0.7f, GUI.Style, GUIpanel); limbList = new GUIListBox(new Rectangle(0, 110, 0, 250), Color.White * 0.7f, "", GUIpanel);
limbList.OnSelected = SelectLimb; limbList.OnSelected = SelectLimb;
new GUITextBlock(new Rectangle(0, 360, 0, 25), "Joints:", GUI.Style, GUIpanel); new GUITextBlock(new Rectangle(0, 360, 0, 25), "Joints:", "", GUIpanel);
jointList = new GUIListBox(new Rectangle(0, 390, 0, 250), Color.White * 0.7f, GUI.Style, GUIpanel); jointList = new GUIListBox(new Rectangle(0, 390, 0, 250), Color.White * 0.7f, "", GUIpanel);
while (Character.CharacterList.Count > 1) while (Character.CharacterList.Count > 1)
{ {
+82 -75
View File
@@ -31,7 +31,7 @@ namespace Barotrauma
const int PreviouslyUsedCount = 10; const int PreviouslyUsedCount = 10;
private GUIListBox previouslyUsedList; private GUIListBox previouslyUsedList;
GUIDropDown linkedSubBox; private GUIDropDown linkedSubBox;
//a Character used for picking up and manipulating items //a Character used for picking up and manipulating items
private Character dummyCharacter; private Character dummyCharacter;
@@ -126,37 +126,46 @@ namespace Barotrauma
selectedTab = -1; selectedTab = -1;
topPanel = new GUIFrame(new Rectangle(0, 0, 0, 31), GUI.Style); topPanel = new GUIFrame(new Rectangle(0, 0, 0, 35), "GUIFrameTop");
topPanel.Padding = new Vector4(5.0f, 5.0f, 5.0f, 5.0f); topPanel.Padding = new Vector4(5.0f, 5.0f, 5.0f, 5.0f);
hullVolumeFrame = new GUIFrame(new Rectangle(145, 26, 280, 70), GUI.Style, topPanel); hullVolumeFrame = new GUIFrame(new Rectangle(145, 26, 280, 70), "", topPanel);
hullVolumeFrame.Visible = false; hullVolumeFrame.Visible = false;
hullVolumeFrame.Padding = new Vector4(3.0f, 3.0f, 3.0f, 3.0f); hullVolumeFrame.Padding = new Vector4(3.0f, 3.0f, 3.0f, 3.0f);
GUITextBlock totalHullVolume = new GUITextBlock(new Rectangle(0, 0, 0, 20), "", GUI.Style, hullVolumeFrame, GUI.SmallFont); GUITextBlock totalHullVolume = new GUITextBlock(new Rectangle(0, 0, 0, 20), "", "", hullVolumeFrame, GUI.SmallFont);
totalHullVolume.TextGetter = GetTotalHullVolume; totalHullVolume.TextGetter = GetTotalHullVolume;
GUITextBlock selectedHullVolume = new GUITextBlock(new Rectangle(0, 30, 0, 20), "", GUI.Style, hullVolumeFrame, GUI.SmallFont); GUITextBlock selectedHullVolume = new GUITextBlock(new Rectangle(0, 30, 0, 20), "", "", hullVolumeFrame, GUI.SmallFont);
selectedHullVolume.TextGetter = GetSelectedHullVolume; selectedHullVolume.TextGetter = GetSelectedHullVolume;
var button = new GUIButton(new Rectangle(0, 0, 70, 20), "Open...", GUI.Style, topPanel); var button = new GUIButton(new Rectangle(0, 0, 70, 20), "Open...", "", topPanel);
button.OnClicked = CreateLoadScreen;
button = new GUIButton(new Rectangle(80,0,70,20), "Save", GUI.Style, topPanel);
button.OnClicked = (GUIButton btn, object data) => button.OnClicked = (GUIButton btn, object data) =>
{ {
saveFrame = null;
selectedTab = -1;
CreateLoadScreen();
return true;
};
button = new GUIButton(new Rectangle(80,0,70,20), "Save", "", topPanel);
button.OnClicked = (GUIButton btn, object data) =>
{
loadFrame = null;
selectedTab = -1;
CreateSaveScreen(); CreateSaveScreen();
return true; return true;
}; };
var nameLabel = new GUITextBlock(new Rectangle(170, -4, 150, 20), "", GUI.Style, topPanel, GUI.LargeFont); var nameLabel = new GUITextBlock(new Rectangle(170, 0, 150, 20), "", "", Alignment.TopLeft, Alignment.CenterLeft, topPanel, false, GUI.LargeFont);
nameLabel.TextGetter = GetSubName; nameLabel.TextGetter = GetSubName;
linkedSubBox = new GUIDropDown(new Rectangle(750,0,200,20), "Add submarine", GUI.Style, topPanel); linkedSubBox = new GUIDropDown(new Rectangle(750, 0, 200, 20), "Add submarine", "", topPanel);
linkedSubBox.ToolTip = linkedSubBox.ToolTip =
"Places another submarine into the current submarine file. "+ "Places another submarine into the current submarine file. " +
"Can be used for adding things such as smaller vessels, "+ "Can be used for adding things such as smaller vessels, " +
"escape pods or detachable sections into the main submarine."; "escape pods or detachable sections into the main submarine.";
foreach (Submarine sub in Submarine.SavedSubmarines) foreach (Submarine sub in Submarine.SavedSubmarines)
@@ -164,64 +173,58 @@ namespace Barotrauma
linkedSubBox.AddItem(sub.Name, sub); linkedSubBox.AddItem(sub.Name, sub);
} }
linkedSubBox.OnSelected += SelectLinkedSub; linkedSubBox.OnSelected += SelectLinkedSub;
leftPanel = new GUIFrame(new Rectangle(0, 30, 150, GameMain.GraphicsHeight-30), GUI.Style); leftPanel = new GUIFrame(new Rectangle(0, 0, 150, GameMain.GraphicsHeight), "GUIFrameLeft");
leftPanel.Padding = new Vector4(10.0f, 10.0f, 10.0f, 10.0f); leftPanel.Padding = new Vector4(10.0f, 10.0f, 10.0f, 10.0f);
GUITextBlock itemCount = new GUITextBlock(new Rectangle(0, 30, 0, 20), "", GUI.Style, leftPanel); GUITextBlock itemCount = new GUITextBlock(new Rectangle(0, 30, 0, 20), "", "", leftPanel);
itemCount.TextGetter = GetItemCount; itemCount.TextGetter = GetItemCount;
GUITextBlock structureCount = new GUITextBlock(new Rectangle(0, 50, 0, 20), "", GUI.Style, leftPanel); GUITextBlock structureCount = new GUITextBlock(new Rectangle(0, 50, 0, 20), "", "", leftPanel);
structureCount.TextGetter = GetStructureCount; structureCount.TextGetter = GetStructureCount;
GUItabs = new GUIComponent[Enum.GetValues(typeof(MapEntityCategory)).Length]; GUItabs = new GUIComponent[Enum.GetValues(typeof(MapEntityCategory)).Length];
int width = 400, height = 400; int width = 400, height = 400;
int y = 90; int y = 90;
int i = 0; int i = 0;
foreach (MapEntityCategory category in Enum.GetValues(typeof(MapEntityCategory))) foreach (MapEntityCategory category in Enum.GetValues(typeof(MapEntityCategory)))
{ {
var catButton = new GUIButton(new Rectangle(0, y, 0, 20), category.ToString(), Alignment.Left, GUI.Style, leftPanel); var catButton = new GUIButton(new Rectangle(0, y, 0, 20), category.ToString(), Alignment.Left, "", leftPanel);
catButton.UserData = i; catButton.UserData = i;
catButton.OnClicked = SelectTab; catButton.OnClicked = SelectTab;
y+=25; y+=25;
GUItabs[i] = new GUIFrame(new Rectangle(GameMain.GraphicsWidth / 2 - width / 2, GameMain.GraphicsHeight / 2 - height / 2, width, height), GUI.Style); GUItabs[i] = new GUIFrame(new Rectangle(GameMain.GraphicsWidth / 2 - width / 2, GameMain.GraphicsHeight / 2 - height / 2, width, height), "");
GUItabs[i].Padding = new Vector4(10.0f, 10.0f, 10.0f, 10.0f); GUItabs[i].Padding = new Vector4(10.0f, 30.0f, 10.0f, 10.0f);
new GUITextBlock(new Rectangle(-200, 0, 100, 15), "Filter", GUI.Style, Alignment.TopRight, Alignment.TopRight, GUItabs[i], false, GUI.SmallFont); new GUITextBlock(new Rectangle(-200, 0, 100, 15), "Filter", "", Alignment.TopRight, Alignment.CenterRight, GUItabs[i], false, GUI.SmallFont);
GUITextBox searchBox = new GUITextBox(new Rectangle(-20, 0, 180, 15), Alignment.TopRight, GUI.Style, GUItabs[i]); GUITextBox searchBox = new GUITextBox(new Rectangle(-20, 0, 180, 15), null,null, Alignment.TopRight, Alignment.CenterLeft, "", GUItabs[i]);
searchBox.Font = GUI.SmallFont; searchBox.Font = GUI.SmallFont;
searchBox.OnTextChanged = FilterMessages; searchBox.OnTextChanged = FilterMessages;
var clearButton = new GUIButton(new Rectangle(0, 0, 15, 15), "x", Alignment.TopRight, GUI.Style, GUItabs[i]); var clearButton = new GUIButton(new Rectangle(0, 0, 15, 15), "x", Alignment.TopRight, "", GUItabs[i]);
clearButton.OnClicked = ClearFilter; clearButton.OnClicked = ClearFilter;
clearButton.UserData = searchBox; clearButton.UserData = searchBox;
GUIListBox itemList = new GUIListBox(new Rectangle(0, 20, 0, 0), Color.White * 0.7f, GUI.Style, GUItabs[i]); GUIListBox itemList = new GUIListBox(new Rectangle(0, 20, 0, 0), Color.White * 0.7f, "", GUItabs[i]);
itemList.OnSelected = SelectPrefab; itemList.OnSelected = SelectPrefab;
itemList.CheckSelected = MapEntityPrefab.GetSelected; itemList.CheckSelected = MapEntityPrefab.GetSelected;
foreach (MapEntityPrefab ep in MapEntityPrefab.list) foreach (MapEntityPrefab ep in MapEntityPrefab.list)
{ {
if (!ep.Category.HasFlag(category)) continue; if (!ep.Category.HasFlag(category)) continue;
Color color = ((itemList.CountChildren % 2) == 0) ? Color.Transparent : Color.White * 0.1f; GUIFrame frame = new GUIFrame(new Rectangle(0, 0, 0, 50), Color.Transparent, "ListBoxElement", itemList);
GUIFrame frame = new GUIFrame(new Rectangle(0, 0, 0, 50), Color.Transparent, null, itemList);
frame.UserData = ep; frame.UserData = ep;
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 = color;
frame.HoverColor = Color.Gold * 0.2f;
frame.SelectedColor = Color.Gold * 0.5f;
GUITextBlock textBlock = new GUITextBlock( GUITextBlock textBlock = new GUITextBlock(
new Rectangle(40, 0, 0, 25), new Rectangle(40, 0, 0, 25),
ep.Name, ep.Name, "",
Color.Transparent, Color.White, Alignment.Top, Alignment.CenterLeft,
Alignment.Left, Alignment.Left, frame);
null, frame);
textBlock.Padding = new Vector4(5.0f, 0.0f, 5.0f, 0.0f); textBlock.Padding = new Vector4(5.0f, 0.0f, 5.0f, 0.0f);
if (!string.IsNullOrWhiteSpace(ep.Description)) if (!string.IsNullOrWhiteSpace(ep.Description))
@@ -231,7 +234,7 @@ namespace Barotrauma
if (ep.sprite != null) if (ep.sprite != null)
{ {
GUIImage img = new GUIImage(new Rectangle(0, 0, 40, 40), ep.sprite, Alignment.Left, frame); GUIImage img = new GUIImage(new Rectangle(0, 0, 40, 40), ep.sprite, Alignment.CenterLeft, frame);
img.Scale = Math.Min(Math.Min(40.0f / img.SourceRect.Width, 40.0f / img.SourceRect.Height), 1.0f); img.Scale = Math.Min(Math.Min(40.0f / img.SourceRect.Width, 40.0f / img.SourceRect.Height), 1.0f);
img.Color = ep.SpriteColor; img.Color = ep.SpriteColor;
} }
@@ -242,24 +245,24 @@ namespace Barotrauma
i++; i++;
} }
y+=50; y += 10;
button = new GUIButton(new Rectangle(0, y, 0, 20), "Character mode", Alignment.Left, GUI.Style, leftPanel); button = new GUIButton(new Rectangle(0, y, 0, 20), "Character mode", Alignment.Left, "", leftPanel);
button.ToolTip = "Allows you to pick up and use items. Useful for things such as placing items inside closets, turning devices on/off and doing the wiring."; button.ToolTip = "Allows you to pick up and use items. Useful for things such as placing items inside closets, turning devices on/off and doing the wiring.";
button.OnClicked = ToggleCharacterMode; button.OnClicked = ToggleCharacterMode;
y += 35; y += 25;
button = new GUIButton(new Rectangle(0, y, 0, 20), "Wiring mode", Alignment.Left, GUI.Style, leftPanel); button = new GUIButton(new Rectangle(0, y, 0, 20), "Wiring mode", Alignment.Left, "", leftPanel);
//button.ToolTip = "Allows you to pick up and use items. Useful for things such as placing items inside closets, turning devices on/off and doing the wiring."; //button.ToolTip = "Allows you to pick up and use items. Useful for things such as placing items inside closets, turning devices on/off and doing the wiring.";
button.OnClicked = ToggleWiringMode; button.OnClicked = ToggleWiringMode;
y+=50; y += 35;
button = new GUIButton(new Rectangle(0, y, 0, 20), "Generate waypoints", Alignment.Left, GUI.Style, leftPanel); button = new GUIButton(new Rectangle(0, y, 0, 20), "Generate waypoints", Alignment.Left, "", leftPanel);
button.ToolTip = "AI controlled crew members require waypoints to navigate around the sub."; button.ToolTip = "AI controlled crew members require waypoints to navigate around the sub.";
button.OnClicked = GenerateWaypoints; button.OnClicked = GenerateWaypoints;
y+=50;
new GUITextBlock(new Rectangle(0, y, 0, 20), "Show:", GUI.Style, leftPanel); y += 30;
new GUITextBlock(new Rectangle(0, y, 0, 20), "Show:", "", leftPanel);
var tickBox = new GUITickBox(new Rectangle(0,y+20,20,20), "Waypoints", Alignment.TopLeft, leftPanel); var tickBox = new GUITickBox(new Rectangle(0,y+20,20,20), "Waypoints", Alignment.TopLeft, leftPanel);
tickBox.OnSelected = (GUITickBox obj) => { WayPoint.ShowWayPoints = !WayPoint.ShowWayPoints; return true; }; tickBox.OnSelected = (GUITickBox obj) => { WayPoint.ShowWayPoints = !WayPoint.ShowWayPoints; return true; };
@@ -281,9 +284,9 @@ namespace Barotrauma
if (y < GameMain.GraphicsHeight - 100) if (y < GameMain.GraphicsHeight - 100)
{ {
new GUITextBlock(new Rectangle(0, y, 0, 15), "Previously used:", GUI.Style, leftPanel); new GUITextBlock(new Rectangle(0, y, 0, 15), "Previously used:", "", leftPanel);
previouslyUsedList = new GUIListBox(new Rectangle(0, y + 15, 0, Math.Min(GameMain.GraphicsHeight - y - 40, 150)), GUI.Style, leftPanel); previouslyUsedList = new GUIListBox(new Rectangle(0, y + 20, 0, Math.Min(GameMain.GraphicsHeight - y - 80, 150)), "", leftPanel);
previouslyUsedList.OnSelected = SelectPrefab; previouslyUsedList.OnSelected = SelectPrefab;
} }
@@ -425,33 +428,33 @@ namespace Barotrauma
int y = 0; int y = 0;
saveFrame = new GUIFrame(new Rectangle(GameMain.GraphicsWidth / 2 - width / 2, GameMain.GraphicsHeight / 2 - height / 2, width, height), GUI.Style, null); saveFrame = new GUIFrame(new Rectangle(GameMain.GraphicsWidth / 2 - width / 2, GameMain.GraphicsHeight / 2 - height / 2, width, height), "", null);
saveFrame.Padding = new Vector4(10.0f, 10.0f, 10.0f, 10.0f); saveFrame.Padding = new Vector4(10.0f, 10.0f, 10.0f, 10.0f);
new GUITextBlock(new Rectangle(0,0,200,30), "Save submarine", GUI.Style, saveFrame, GUI.LargeFont); new GUITextBlock(new Rectangle(0,0,200,30), "Save submarine", "", saveFrame, GUI.LargeFont);
y += 30; y += 30;
new GUITextBlock(new Rectangle(0,y,150,20), "Name:", GUI.Style, saveFrame); new GUITextBlock(new Rectangle(0,y,150,20), "Name:", "", saveFrame);
y += 20; y += 20;
nameBox = new GUITextBox(new Rectangle(5, y, 250, 20), GUI.Style, saveFrame); nameBox = new GUITextBox(new Rectangle(5, y, 250, 20), "", saveFrame);
nameBox.OnEnterPressed = ChangeSubName; nameBox.OnEnterPressed = ChangeSubName;
nameBox.Text = GetSubName(); nameBox.Text = GetSubName();
y += 30; y += 30;
new GUITextBlock(new Rectangle(0, y, 150, 20), "Description:", GUI.Style, saveFrame); new GUITextBlock(new Rectangle(0, y, 150, 20), "Description:", "", saveFrame);
y += 20; y += 20;
var descriptionBox = new GUITextBox(new Rectangle(5, y, 0, 100), null, null, Alignment.TopLeft, var descriptionBox = new GUITextBox(new Rectangle(5, y, 0, 100), null, null, Alignment.TopLeft,
Alignment.TopLeft, GUI.Style, saveFrame); Alignment.TopLeft, "", saveFrame);
descriptionBox.Wrap = true; descriptionBox.Wrap = true;
descriptionBox.Text = Submarine.MainSub == null ? "" : Submarine.MainSub.Description; descriptionBox.Text = Submarine.MainSub == null ? "" : Submarine.MainSub.Description;
descriptionBox.OnTextChanged = ChangeSubDescription; descriptionBox.OnTextChanged = ChangeSubDescription;
y += descriptionBox.Rect.Height + 15; y += descriptionBox.Rect.Height + 15;
new GUITextBlock(new Rectangle(0, y, 150, 20), "Settings:", GUI.Style, saveFrame); new GUITextBlock(new Rectangle(0, y, 150, 20), "Settings:", "", saveFrame);
y += 20; y += 20;
@@ -491,10 +494,10 @@ namespace Barotrauma
} }
} }
var saveButton = new GUIButton(new Rectangle(-90, 0, 80, 20), "Save", Alignment.Right | Alignment.Bottom, GUI.Style, saveFrame); var saveButton = new GUIButton(new Rectangle(-90, 0, 80, 20), "Save", Alignment.Right | Alignment.Bottom, "", saveFrame);
saveButton.OnClicked = SaveSub; saveButton.OnClicked = SaveSub;
var cancelButton = new GUIButton(new Rectangle(0, 0, 80, 20), "Cancel", Alignment.Right | Alignment.Bottom, GUI.Style, saveFrame); var cancelButton = new GUIButton(new Rectangle(0, 0, 80, 20), "Cancel", Alignment.Right | Alignment.Bottom, "", saveFrame);
cancelButton.OnClicked = (GUIButton btn, object userdata) => cancelButton.OnClicked = (GUIButton btn, object userdata) =>
{ {
saveFrame = null; saveFrame = null;
@@ -503,7 +506,7 @@ namespace Barotrauma
} }
private bool CreateLoadScreen(GUIButton button, object obj) private bool CreateLoadScreen()
{ {
if (characterMode) ToggleCharacterMode(); if (characterMode) ToggleCharacterMode();
if (wiringMode) ToggleWiringMode(); if (wiringMode) ToggleWiringMode();
@@ -511,10 +514,10 @@ namespace Barotrauma
Submarine.RefreshSavedSubs(); Submarine.RefreshSavedSubs();
int width = 300, height = 400; int width = 300, height = 400;
loadFrame = new GUIFrame(new Rectangle(GameMain.GraphicsWidth / 2 - width / 2, GameMain.GraphicsHeight / 2 - height / 2, width, height), GUI.Style, null); loadFrame = new GUIFrame(new Rectangle(GameMain.GraphicsWidth / 2 - width / 2, GameMain.GraphicsHeight / 2 - height / 2, width, height), "", null);
loadFrame.Padding = new Vector4(10.0f, 10.0f, 10.0f, 10.0f); loadFrame.Padding = new Vector4(10.0f, 10.0f, 10.0f, 10.0f);
var subList = new GUIListBox(new Rectangle(0, 0, 0, height - 50), Color.White, GUI.Style, loadFrame); var subList = new GUIListBox(new Rectangle(0, 0, 0, height - 50), Color.White, "", loadFrame);
subList.OnSelected = (GUIComponent selected, object userData) => subList.OnSelected = (GUIComponent selected, object userData) =>
{ {
var deleteBtn = loadFrame.FindChild("delete") as GUIButton; var deleteBtn = loadFrame.FindChild("delete") as GUIButton;
@@ -528,7 +531,7 @@ namespace Barotrauma
GUITextBlock textBlock = new GUITextBlock( GUITextBlock textBlock = new GUITextBlock(
new Rectangle(0, 0, 0, 25), new Rectangle(0, 0, 0, 25),
ToolBox.LimitString(sub.Name, GUI.Font, subList.Rect.Width - 80), ToolBox.LimitString(sub.Name, GUI.Font, subList.Rect.Width - 80),
GUI.Style, "",
Alignment.Left, Alignment.CenterY | Alignment.Left, subList); Alignment.Left, Alignment.CenterY | Alignment.Left, subList);
textBlock.Padding = new Vector4(10.0f, 0.0f, 0.0f, 0.0f); textBlock.Padding = new Vector4(10.0f, 0.0f, 0.0f, 0.0f);
textBlock.UserData = sub; textBlock.UserData = sub;
@@ -536,13 +539,13 @@ namespace Barotrauma
if (sub.HasTag(SubmarineTag.Shuttle)) if (sub.HasTag(SubmarineTag.Shuttle))
{ {
var shuttleText = new GUITextBlock(new Rectangle(0, 0, 0, 25), "Shuttle", GUI.Style, Alignment.Left, Alignment.CenterY | Alignment.Right, textBlock, false, GUI.SmallFont); var shuttleText = new GUITextBlock(new Rectangle(0, 0, 0, 25), "Shuttle", "", Alignment.Left, Alignment.CenterY | Alignment.Right, textBlock, false, GUI.SmallFont);
shuttleText.TextColor = textBlock.TextColor * 0.8f; shuttleText.TextColor = textBlock.TextColor * 0.8f;
shuttleText.ToolTip = textBlock.ToolTip; shuttleText.ToolTip = textBlock.ToolTip;
} }
} }
var deleteButton = new GUIButton(new Rectangle(0, 0, 70, 20), "Delete", Alignment.BottomLeft, GUI.Style, loadFrame); var deleteButton = new GUIButton(new Rectangle(0, 0, 70, 20), "Delete", Alignment.BottomLeft, "", loadFrame);
deleteButton.Enabled = false; deleteButton.Enabled = false;
deleteButton.UserData = "delete"; deleteButton.UserData = "delete";
deleteButton.OnClicked = (btn, userdata) => deleteButton.OnClicked = (btn, userdata) =>
@@ -562,15 +565,15 @@ namespace Barotrauma
deleteButton.Enabled = false; deleteButton.Enabled = false;
CreateLoadScreen(null, null); CreateLoadScreen();
return true; return true;
}; };
var loadButton = new GUIButton(new Rectangle(-90, 0, 80, 20), "Load", Alignment.Right | Alignment.Bottom, GUI.Style, loadFrame); var loadButton = new GUIButton(new Rectangle(-90, 0, 80, 20), "Load", Alignment.Right | Alignment.Bottom, "", loadFrame);
loadButton.OnClicked = LoadSub; loadButton.OnClicked = LoadSub;
var cancelButton = new GUIButton(new Rectangle(0, 0, 80, 20), "Cancel", Alignment.Right | Alignment.Bottom, GUI.Style, loadFrame); var cancelButton = new GUIButton(new Rectangle(0, 0, 80, 20), "Cancel", Alignment.Right | Alignment.Bottom, "", loadFrame);
cancelButton.OnClicked = (GUIButton btn, object userdata) => cancelButton.OnClicked = (GUIButton btn, object userdata) =>
{ {
loadFrame = null; loadFrame = null;
@@ -605,6 +608,9 @@ namespace Barotrauma
if (characterMode) ToggleCharacterMode(); if (characterMode) ToggleCharacterMode();
if (wiringMode) ToggleWiringMode(); if (wiringMode) ToggleWiringMode();
saveFrame = null;
loadFrame = null;
selectedTab = (int)obj; selectedTab = (int)obj;
var searchBox = GUItabs[selectedTab].GetChild<GUITextBox>(); var searchBox = GUItabs[selectedTab].GetChild<GUITextBox>();
@@ -738,10 +744,10 @@ namespace Barotrauma
private GUIFrame CreateWiringPanel() private GUIFrame CreateWiringPanel()
{ {
GUIFrame frame = new GUIFrame(new Rectangle(0,0,65,300), null, Alignment.Right | Alignment.CenterY, GUI.Style); GUIFrame frame = new GUIFrame(new Rectangle(0, 0, 65, 300), null, Alignment.Right | Alignment.CenterY, "GUIFrameRight");
frame.Padding = new Vector4(5.0f, 5.0f, 5.0f, 5.0f); frame.Padding = new Vector4(5.0f, 5.0f, 5.0f, 5.0f);
GUIListBox listBox = new GUIListBox(Rectangle.Empty, GUI.Style, frame); GUIListBox listBox = new GUIListBox(Rectangle.Empty, "", frame);
listBox.OnSelected = SelectWire; listBox.OnSelected = SelectWire;
foreach (MapEntityPrefab ep in MapEntityPrefab.list) foreach (MapEntityPrefab ep in MapEntityPrefab.list)
@@ -878,9 +884,10 @@ namespace Barotrauma
string name = ToolBox.LimitString(mapEntityPrefab.Name,15); string name = ToolBox.LimitString(mapEntityPrefab.Name,15);
var textBlock = new GUITextBlock( var textBlock = new GUITextBlock(
new Rectangle(0,0,0,10), new Rectangle(0,0,0,15),
ToolBox.LimitString(name, GUI.SmallFont, previouslyUsedList.Rect.Width), ToolBox.LimitString(name, GUI.SmallFont, previouslyUsedList.Rect.Width),
GUI.Style, previouslyUsedList, GUI.SmallFont); "", Alignment.TopLeft, Alignment.CenterLeft,
previouslyUsedList, false, GUI.SmallFont);
textBlock.UserData = mapEntityPrefab; textBlock.UserData = mapEntityPrefab;
+33 -38
View File
@@ -65,23 +65,23 @@ namespace Barotrauma
GameMain.GraphicsWidth - 80, GameMain.GraphicsWidth - 80,
100); 100);
topPanel = new GUIFrame(panelRect, GUI.Style); topPanel = new GUIFrame(panelRect, "");
topPanel.Padding = new Vector4(20.0f, 20.0f, 20.0f, 20.0f); topPanel.Padding = new Vector4(20.0f, 20.0f, 20.0f, 20.0f);
GUITextBlock moneyText = new GUITextBlock(new Rectangle(0, 0, 0, 25), "", GUI.Style, GUITextBlock moneyText = new GUITextBlock(new Rectangle(0, 0, 0, 25), "", "",
Alignment.BottomLeft, Alignment.BottomLeft, topPanel); Alignment.BottomLeft, Alignment.BottomLeft, topPanel);
moneyText.TextGetter = GetMoney; moneyText.TextGetter = GetMoney;
GUIButton button = new GUIButton(new Rectangle(-240, 0, 100, 30), "Map", null, Alignment.BottomRight, GUI.Style, topPanel); GUIButton button = new GUIButton(new Rectangle(-240, 0, 100, 30), "Map", null, Alignment.BottomRight, "", topPanel);
button.UserData = PanelTab.Map; button.UserData = PanelTab.Map;
button.OnClicked = SelectRightPanel; button.OnClicked = SelectRightPanel;
SelectRightPanel(button, button.UserData); SelectRightPanel(button, button.UserData);
button = new GUIButton(new Rectangle(-120, 0, 100, 30), "Crew", null, Alignment.BottomRight, GUI.Style, topPanel); button = new GUIButton(new Rectangle(-120, 0, 100, 30), "Crew", null, Alignment.BottomRight, "", topPanel);
button.UserData = PanelTab.Crew; button.UserData = PanelTab.Crew;
button.OnClicked = SelectRightPanel; button.OnClicked = SelectRightPanel;
button = new GUIButton(new Rectangle(0, 0, 100, 30), "Store", null, Alignment.BottomRight, GUI.Style, topPanel); button = new GUIButton(new Rectangle(0, 0, 100, 30), "Store", null, Alignment.BottomRight, "", topPanel);
button.UserData = PanelTab.Store; button.UserData = PanelTab.Store;
button.OnClicked = SelectRightPanel; button.OnClicked = SelectRightPanel;
@@ -96,44 +96,44 @@ namespace Barotrauma
bottomPanel = new GUIFrame[4]; bottomPanel = new GUIFrame[4];
bottomPanel[(int)PanelTab.Crew] = new GUIFrame(panelRect, GUI.Style); bottomPanel[(int)PanelTab.Crew] = new GUIFrame(panelRect, "");
bottomPanel[(int)PanelTab.Crew].Padding = new Vector4(20.0f, 20.0f, 20.0f, 20.0f); bottomPanel[(int)PanelTab.Crew].Padding = new Vector4(20.0f, 20.0f, 20.0f, 20.0f);
//new GUITextBlock(new Rectangle(0, 0, 200, 25), "Crew:", Color.Transparent, Color.White, Alignment.Left, GUI.Style, bottomPanel[(int)PanelTab.Crew]); //new GUITextBlock(new Rectangle(0, 0, 200, 25), "Crew:", Color.Transparent, Color.White, Alignment.Left, "", bottomPanel[(int)PanelTab.Crew]);
int crewColumnWidth = Math.Min(300, (panelRect.Width - 40) / 2); int crewColumnWidth = Math.Min(300, (panelRect.Width - 40) / 2);
new GUITextBlock(new Rectangle(0, 0, 100, 20), "Crew:", GUI.Style, bottomPanel[(int)PanelTab.Crew], GUI.LargeFont); new GUITextBlock(new Rectangle(0, 0, 100, 20), "Crew:", "", bottomPanel[(int)PanelTab.Crew], GUI.LargeFont);
characterList = new GUIListBox(new Rectangle(0, 40, crewColumnWidth, 0), GUI.Style, bottomPanel[(int)PanelTab.Crew]); characterList = new GUIListBox(new Rectangle(0, 40, crewColumnWidth, 0), "", bottomPanel[(int)PanelTab.Crew]);
characterList.OnSelected = SelectCharacter; characterList.OnSelected = SelectCharacter;
//--------------------------------------- //---------------------------------------
bottomPanel[(int)PanelTab.Map] = new GUIFrame(panelRect, GUI.Style); bottomPanel[(int)PanelTab.Map] = new GUIFrame(panelRect, "");
bottomPanel[(int)PanelTab.Map].Padding = new Vector4(20.0f, 20.0f, 20.0f, 20.0f); bottomPanel[(int)PanelTab.Map].Padding = new Vector4(20.0f, 20.0f, 20.0f, 20.0f);
startButton = new GUIButton(new Rectangle(0, 0, 100, 30), "Start", startButton = new GUIButton(new Rectangle(0, 0, 100, 30), "Start",
Alignment.BottomRight, GUI.Style, bottomPanel[(int)PanelTab.Map]); Alignment.BottomRight, "", bottomPanel[(int)PanelTab.Map]);
startButton.OnClicked = StartShift; startButton.OnClicked = StartShift;
startButton.Enabled = false; startButton.Enabled = false;
//--------------------------------------- //---------------------------------------
bottomPanel[(int)PanelTab.Store] = new GUIFrame(panelRect, GUI.Style); bottomPanel[(int)PanelTab.Store] = new GUIFrame(panelRect, "");
bottomPanel[(int)PanelTab.Store].Padding = new Vector4(20.0f, 20.0f, 20.0f, 20.0f); bottomPanel[(int)PanelTab.Store].Padding = new Vector4(20.0f, 20.0f, 20.0f, 20.0f);
int sellColumnWidth = (panelRect.Width - 40) / 2 - 20; int sellColumnWidth = (panelRect.Width - 40) / 2 - 20;
selectedItemList = new GUIListBox(new Rectangle(0, 30, sellColumnWidth, 400), Color.White * 0.7f, GUI.Style, bottomPanel[(int)PanelTab.Store]); selectedItemList = new GUIListBox(new Rectangle(0, 30, sellColumnWidth, 400), Color.White * 0.7f, "", bottomPanel[(int)PanelTab.Store]);
selectedItemList.OnSelected = DeselectItem; selectedItemList.OnSelected = DeselectItem;
var costText = new GUITextBlock(new Rectangle(0, 0, 100, 25), "Cost: ", GUI.Style, Alignment.BottomLeft, Alignment.TopLeft, bottomPanel[(int)PanelTab.Store]); var costText = new GUITextBlock(new Rectangle(0, 0, 100, 25), "Cost: ", "", Alignment.BottomLeft, Alignment.TopLeft, bottomPanel[(int)PanelTab.Store]);
costText.TextGetter = CostTextGetter; costText.TextGetter = CostTextGetter;
buyButton = new GUIButton(new Rectangle(selectedItemList.Rect.Width - 100, 0, 100, 25), "Buy", Alignment.Bottom, GUI.Style, bottomPanel[(int)PanelTab.Store]); buyButton = new GUIButton(new Rectangle(selectedItemList.Rect.Width - 100, 0, 100, 25), "Buy", Alignment.Bottom, "", bottomPanel[(int)PanelTab.Store]);
buyButton.OnClicked = BuyItems; buyButton.OnClicked = BuyItems;
storeItemList = new GUIListBox(new Rectangle(0, 30, sellColumnWidth, 400), Color.White * 0.7f, Alignment.TopRight, GUI.Style, bottomPanel[(int)PanelTab.Store]); storeItemList = new GUIListBox(new Rectangle(0, 30, sellColumnWidth, 400), Color.White * 0.7f, Alignment.TopRight, "", bottomPanel[(int)PanelTab.Store]);
storeItemList.OnSelected = SelectItem; storeItemList.OnSelected = SelectItem;
int x = selectedItemList.Rect.Width + 40; int x = selectedItemList.Rect.Width + 40;
@@ -142,7 +142,7 @@ namespace Barotrauma
var items = MapEntityPrefab.list.FindAll(ep => ep.Price>0.0f && ep.Category.HasFlag(category)); var items = MapEntityPrefab.list.FindAll(ep => ep.Price>0.0f && ep.Category.HasFlag(category));
if (!items.Any()) continue; if (!items.Any()) continue;
var categoryButton = new GUIButton(new Rectangle(x, 0, 100, 20), category.ToString(), GUI.Style, bottomPanel[(int)PanelTab.Store]); var categoryButton = new GUIButton(new Rectangle(x, 0, 100, 20), category.ToString(), "", bottomPanel[(int)PanelTab.Store]);
categoryButton.UserData = category; categoryButton.UserData = category;
categoryButton.OnClicked = SelectItemCategory; categoryButton.OnClicked = SelectItemCategory;
@@ -169,15 +169,15 @@ namespace Barotrauma
topPanel.UserData = location; topPanel.UserData = location;
var locationTitle = new GUITextBlock(new Rectangle(0, 0, 200, 25), var locationTitle = new GUITextBlock(new Rectangle(0, 0, 200, 25),
"Location: "+location.Name, Color.Transparent, Color.White, Alignment.TopLeft, GUI.Style, topPanel); "Location: "+location.Name, Color.Transparent, Color.White, Alignment.TopLeft, "", topPanel);
locationTitle.UserData = "locationtitle"; locationTitle.UserData = "locationtitle";
locationTitle.Font = GUI.LargeFont; locationTitle.Font = GUI.LargeFont;
if (hireList == null) if (hireList == null)
{ {
hireList = new GUIListBox(new Rectangle(0, 40, 300, 0), GUI.Style, Alignment.Right, bottomPanel[(int)PanelTab.Crew]); hireList = new GUIListBox(new Rectangle(0, 40, 300, 0), "", Alignment.Right, bottomPanel[(int)PanelTab.Crew]);
new GUITextBlock(new Rectangle(0, 0, 300, 20), "Hire:", GUI.Style, Alignment.Right, Alignment.Left, bottomPanel[(int)PanelTab.Crew], false, GUI.LargeFont); new GUITextBlock(new Rectangle(0, 0, 300, 20), "Hire:", "", Alignment.Right, Alignment.Left, bottomPanel[(int)PanelTab.Crew], false, GUI.LargeFont);
hireList.OnSelected = SelectCharacter; hireList.OnSelected = SelectCharacter;
} }
@@ -187,7 +187,7 @@ namespace Barotrauma
hireList.ClearChildren(); hireList.ClearChildren();
hireList.Enabled = false; hireList.Enabled = false;
new GUITextBlock(new Rectangle(0, 0, 0, 0), "No-one available for hire", Color.Transparent, Color.LightGray, Alignment.Center, Alignment.Center, GUI.Style, hireList); new GUITextBlock(new Rectangle(0, 0, 0, 0), "No-one available for hire", Color.Transparent, Color.LightGray, Alignment.Center, Alignment.Center, "", hireList);
return; return;
} }
@@ -202,7 +202,7 @@ namespace Barotrauma
new Rectangle(0, 0, 0, 25), new Rectangle(0, 0, 0, 25),
c.Salary.ToString(), c.Salary.ToString(),
null, null, null, null,
Alignment.TopRight, GUI.Style, frame); Alignment.TopRight, "", frame);
} }
} }
@@ -226,17 +226,17 @@ namespace Barotrauma
if (location == null) return; if (location == null) return;
new GUITextBlock(new Rectangle(0, 0, 250, 0), location.Name, GUI.Style, Alignment.TopLeft, Alignment.TopCenter, locationPanel, true, GUI.LargeFont); new GUITextBlock(new Rectangle(0, 0, 250, 0), location.Name, "", Alignment.TopLeft, Alignment.TopCenter, locationPanel, true, GUI.LargeFont);
if (GameMain.GameSession.Map.SelectedConnection != null && GameMain.GameSession.Map.SelectedConnection.Mission != null) if (GameMain.GameSession.Map.SelectedConnection != null && GameMain.GameSession.Map.SelectedConnection.Mission != null)
{ {
var mission = GameMain.GameSession.Map.SelectedConnection.Mission; var mission = GameMain.GameSession.Map.SelectedConnection.Mission;
new GUITextBlock(new Rectangle(0, 80, 0, 20), "Mission: "+mission.Name, Color.Black*0.8f, Color.White, Alignment.TopLeft, null, locationPanel); new GUITextBlock(new Rectangle(0, 80, 0, 20), "Mission: "+mission.Name, "", locationPanel);
new GUITextBlock(new Rectangle(0, 100, 0, 20), "Reward: " + mission.Reward+" credits", Color.Black * 0.8f, Color.White, Alignment.TopLeft, null, locationPanel); new GUITextBlock(new Rectangle(0, 100, 0, 20), "Reward: " + mission.Reward+" credits", "", locationPanel);
new GUITextBlock(new Rectangle(0, 120, 0, 0), mission.Description, Color.Black * 0.8f, Color.White, Alignment.TopLeft, null, locationPanel, true); new GUITextBlock(new Rectangle(0, 130, 0, 0), mission.Description, "", locationPanel, true);
} }
@@ -256,14 +256,9 @@ namespace Barotrauma
private void CreateItemFrame(MapEntityPrefab ep, GUIListBox listBox, int width) private void CreateItemFrame(MapEntityPrefab ep, GUIListBox listBox, int width)
{ {
Color color = ((listBox.CountChildren % 2) == 0) ? Color.Transparent : Color.White * 0.1f; GUIFrame frame = new GUIFrame(new Rectangle(0, 0, 0, 50), "ListBoxElement", listBox);
GUIFrame frame = new GUIFrame(new Rectangle(0, 0, 0, 50), Color.Transparent, null, listBox);
frame.UserData = ep; frame.UserData = ep;
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 = color;
frame.HoverColor = Color.Gold * 0.2f;
frame.SelectedColor = Color.Gold * 0.5f;
frame.ToolTip = ep.Description; frame.ToolTip = ep.Description;
@@ -272,16 +267,16 @@ namespace Barotrauma
GUITextBlock textBlock = new GUITextBlock( GUITextBlock textBlock = new GUITextBlock(
new Rectangle(50, 0, 0, 25), new Rectangle(50, 0, 0, 25),
ep.Name, ep.Name,
Color.Transparent, Color.White, null,null,
Alignment.Left, Alignment.CenterX | Alignment.Left, Alignment.Left, Alignment.CenterX | Alignment.Left,
null, frame); "", frame);
textBlock.Font = font; textBlock.Font = font;
textBlock.Padding = new Vector4(5.0f, 0.0f, 5.0f, 0.0f); textBlock.Padding = new Vector4(5.0f, 0.0f, 5.0f, 0.0f);
textBlock.ToolTip = ep.Description; textBlock.ToolTip = ep.Description;
if (ep.sprite != null) if (ep.sprite != null)
{ {
GUIImage img = new GUIImage(new Rectangle(0, 0, 40, 40), ep.sprite, Alignment.Left, frame); GUIImage img = new GUIImage(new Rectangle(0, 0, 40, 40), ep.sprite, Alignment.CenterLeft, frame);
img.Color = ep.SpriteColor; img.Color = ep.SpriteColor;
img.Scale = Math.Min(Math.Min(40.0f / img.SourceRect.Width, 40.0f / img.SourceRect.Height), 1.0f); img.Scale = Math.Min(Math.Min(40.0f / img.SourceRect.Width, 40.0f / img.SourceRect.Height), 1.0f);
} }
@@ -290,7 +285,7 @@ namespace Barotrauma
new Rectangle(width - 80, 0, 80, 25), new Rectangle(width - 80, 0, 80, 25),
ep.Price.ToString(), ep.Price.ToString(),
null, null, Alignment.TopLeft, null, null, Alignment.TopLeft,
Alignment.TopLeft, GUI.Style, frame); Alignment.TopLeft, "", frame);
textBlock.Font = font; textBlock.Font = font;
textBlock.ToolTip = ep.Description; textBlock.ToolTip = ep.Description;
@@ -493,7 +488,7 @@ namespace Barotrauma
previewFrame = new GUIFrame(new Rectangle(0, 60, width, 300), previewFrame = new GUIFrame(new Rectangle(0, 60, width, 300),
new Color(0.0f, 0.0f, 0.0f, 0.8f), new Color(0.0f, 0.0f, 0.0f, 0.8f),
Alignment.TopCenter, GUI.Style, bottomPanel[selectedRightPanel]); Alignment.TopCenter, "", bottomPanel[selectedRightPanel]);
previewFrame.Padding = new Vector4(20.0f, 20.0f, 20.0f, 20.0f); previewFrame.Padding = new Vector4(20.0f, 20.0f, 20.0f, 20.0f);
previewFrame.UserData = characterInfo; previewFrame.UserData = characterInfo;
@@ -502,7 +497,7 @@ namespace Barotrauma
if (component.Parent == hireList) if (component.Parent == hireList)
{ {
GUIButton hireButton = new GUIButton(new Rectangle(0,0, 100, 20), "Hire", Alignment.BottomCenter, GUI.Style, previewFrame); GUIButton hireButton = new GUIButton(new Rectangle(0,0, 100, 20), "Hire", Alignment.BottomCenter, "", previewFrame);
hireButton.UserData = characterInfo; hireButton.UserData = characterInfo;
hireButton.OnClicked = HireCharacter; hireButton.OnClicked = HireCharacter;
} }
+63 -70
View File
@@ -26,7 +26,7 @@ namespace Barotrauma
private GameMain game; private GameMain game;
int selectedTab; private Tab selectedTab;
public MainMenuScreen(GameMain game) public MainMenuScreen(GameMain game)
{ {
@@ -42,41 +42,42 @@ namespace Barotrauma
Rectangle panelRect = new Rectangle( Rectangle panelRect = new Rectangle(
290, y, 290, y,
500, 360); 500, 360);
GUIButton button = new GUIButton(new Rectangle(50, y, 200, 30), "Tutorial", null, Alignment.TopLeft, Alignment.Left, GUI.Style, buttonsTab); GUIButton button = new GUIButton(new Rectangle(50, y, 200, 30), "Tutorial", null, Alignment.TopLeft, Alignment.Left, "", buttonsTab);
button.Color = button.Color * 0.8f; button.Color = button.Color * 0.8f;
button.OnClicked = TutorialButtonClicked; button.OnClicked = TutorialButtonClicked;
button = new GUIButton(new Rectangle(50, y + 60, 200, 30), "New Game", null, Alignment.TopLeft, Alignment.Left, GUI.Style, buttonsTab); button = new GUIButton(new Rectangle(50, y + 60, 200, 30), "New Game", null, Alignment.TopLeft, Alignment.Left, "", buttonsTab);
button.Color = button.Color * 0.8f; button.Color = button.Color * 0.8f;
button.UserData = Tab.NewGame; button.UserData = Tab.NewGame;
button.OnClicked = SelectTab; button.OnClicked = SelectTab;
button = new GUIButton(new Rectangle(50, y + 100, 200, 30), "Load Game", null, Alignment.TopLeft, Alignment.Left, GUI.Style, buttonsTab); button = new GUIButton(new Rectangle(50, y + 100, 200, 30), "Load Game", null, Alignment.TopLeft, Alignment.Left, "", buttonsTab);
button.Color = button.Color * 0.8f; button.Color = button.Color * 0.8f;
button.UserData = Tab.LoadGame; button.UserData = Tab.LoadGame;
button.OnClicked = SelectTab; button.OnClicked = SelectTab;
button = new GUIButton(new Rectangle(50, y + 160, 200, 30), "Join Server", null, Alignment.TopLeft, Alignment.Left, GUI.Style, buttonsTab); button = new GUIButton(new Rectangle(50, y + 160, 200, 30), "Join Server", null, Alignment.TopLeft, Alignment.Left, "", buttonsTab);
button.Color = button.Color * 0.8f; button.Color = button.Color * 0.8f;
//button.UserData = (int)Tabs.JoinServer; //button.UserData = (int)Tabs.JoinServer;
button.OnClicked = JoinServerClicked; button.OnClicked = JoinServerClicked;
button = new GUIButton(new Rectangle(50, y + 200, 200, 30), "Host Server", null, Alignment.TopLeft, Alignment.Left, GUI.Style, buttonsTab); button = new GUIButton(new Rectangle(50, y + 200, 200, 30), "Host Server", null, Alignment.TopLeft, Alignment.Left, "", buttonsTab);
button.Color = button.Color * 0.8f; button.Color = button.Color * 0.8f;
button.UserData = Tab.HostServer; button.UserData = Tab.HostServer;
button.OnClicked = SelectTab; button.OnClicked = SelectTab;
button = new GUIButton(new Rectangle(50, y + 260, 200, 30), "Submarine Editor", null, Alignment.TopLeft, Alignment.Left, GUI.Style, buttonsTab); button = new GUIButton(new Rectangle(50, y + 260, 200, 30), "Submarine Editor", null, Alignment.TopLeft, Alignment.Left, "", buttonsTab);
button.Color = button.Color * 0.8f; button.Color = button.Color * 0.8f;
button.OnClicked = (GUIButton btn, object userdata) => { GameMain.EditMapScreen.Select(); return true; }; button.OnClicked = (GUIButton btn, object userdata) => { GameMain.EditMapScreen.Select(); return true; };
button = new GUIButton(new Rectangle(50, y + 320, 200, 30), "Settings", null, Alignment.TopLeft, Alignment.Left, GUI.Style, buttonsTab); button = new GUIButton(new Rectangle(50, y + 320, 200, 30), "Settings", null, Alignment.TopLeft, Alignment.Left, "", buttonsTab);
button.Color = button.Color * 0.8f; button.Color = button.Color * 0.8f;
button.UserData = Tab.Settings; button.UserData = Tab.Settings;
button.OnClicked = SelectTab; button.OnClicked = SelectTab;
button = new GUIButton(new Rectangle(0, 0, 150, 30), "Quit", Alignment.BottomRight, GUI.Style, buttonsTab); button = new GUIButton(new Rectangle(0, 0, 150, 30), "Quit", Alignment.BottomRight, "", buttonsTab);
button.Color = button.Color * 0.8f; button.Color = button.Color * 0.8f;
button.OnClicked = QuitClicked; button.OnClicked = QuitClicked;
@@ -84,31 +85,31 @@ namespace Barotrauma
//---------------------------------------------------------------------- //----------------------------------------------------------------------
menuTabs[(int)Tab.NewGame] = new GUIFrame(panelRect, GUI.Style); menuTabs[(int)Tab.NewGame] = new GUIFrame(panelRect, "");
menuTabs[(int)Tab.NewGame].Padding = new Vector4(20.0f,20.0f,20.0f,20.0f); menuTabs[(int)Tab.NewGame].Padding = new Vector4(20.0f,20.0f,20.0f,20.0f);
//new GUITextBlock(new Rectangle(0, -20, 0, 30), "New Game", null, null, Alignment.CenterX, GUI.style, menuTabs[(int)Tabs.NewGame]); //new GUITextBlock(new Rectangle(0, -20, 0, 30), "New Game", null, null, Alignment.CenterX, "", menuTabs[(int)Tabs.NewGame]);
new GUITextBlock(new Rectangle(0, 0, 0, 30), "Selected submarine:", null, null, Alignment.Left, GUI.Style, menuTabs[(int)Tab.NewGame]); new GUITextBlock(new Rectangle(0, 0, 0, 30), "Selected submarine:", null, null, Alignment.Left, "", menuTabs[(int)Tab.NewGame]);
subList = new GUIListBox(new Rectangle(0, 30, 230, panelRect.Height-100), GUI.Style, menuTabs[(int)Tab.NewGame]); subList = new GUIListBox(new Rectangle(0, 30, 230, panelRect.Height-100), "", menuTabs[(int)Tab.NewGame]);
UpdateSubList(); UpdateSubList();
new GUITextBlock(new Rectangle((int)(subList.Rect.Width + 20), 0, 100, 20), new GUITextBlock(new Rectangle((int)(subList.Rect.Width + 20), 0, 100, 20),
"Save name: ", GUI.Style, Alignment.Left, Alignment.Left, menuTabs[(int)Tab.NewGame]); "Save name: ", "", Alignment.Left, Alignment.Left, menuTabs[(int)Tab.NewGame]);
saveNameBox = new GUITextBox(new Rectangle((int)(subList.Rect.Width + 30), 30, 180, 20), saveNameBox = new GUITextBox(new Rectangle((int)(subList.Rect.Width + 30), 30, 180, 20),
Alignment.TopLeft, GUI.Style, menuTabs[(int)Tab.NewGame]); Alignment.TopLeft, "", menuTabs[(int)Tab.NewGame]);
new GUITextBlock(new Rectangle((int)(subList.Rect.Width + 20), 60, 100, 20), new GUITextBlock(new Rectangle((int)(subList.Rect.Width + 20), 60, 100, 20),
"Map Seed: ", GUI.Style, Alignment.Left, Alignment.Left, menuTabs[(int)Tab.NewGame]); "Map Seed: ", "", Alignment.Left, Alignment.Left, menuTabs[(int)Tab.NewGame]);
seedBox = new GUITextBox(new Rectangle((int)(subList.Rect.Width + 30), 90, 180, 20), seedBox = new GUITextBox(new Rectangle((int)(subList.Rect.Width + 30), 90, 180, 20),
Alignment.TopLeft, GUI.Style, menuTabs[(int)Tab.NewGame]); Alignment.TopLeft, "", menuTabs[(int)Tab.NewGame]);
seedBox.Text = ToolBox.RandomSeed(8); seedBox.Text = ToolBox.RandomSeed(8);
button = new GUIButton(new Rectangle(0, 0, 100, 30), "Start", Alignment.BottomRight, GUI.Style, menuTabs[(int)Tab.NewGame]); button = new GUIButton(new Rectangle(0, 0, 100, 30), "Start", Alignment.BottomRight, "", menuTabs[(int)Tab.NewGame]);
button.OnClicked = (GUIButton btn, object userData) => button.OnClicked = (GUIButton btn, object userData) =>
{ {
Submarine selectedSub = subList.SelectedData as Submarine; Submarine selectedSub = subList.SelectedData as Submarine;
@@ -130,43 +131,41 @@ namespace Barotrauma
return true; return true;
}; };
// Submarine selectedSub = subList.SelectedData as Submarine;
//---------------------------------------------------------------------- //----------------------------------------------------------------------
menuTabs[(int)Tab.LoadGame] = new GUIFrame(panelRect, GUI.Style); menuTabs[(int)Tab.LoadGame] = new GUIFrame(panelRect, "");
//menuTabs[(int)Tabs.LoadGame].Padding = GUI.style.smallPadding; //menuTabs[(int)Tabs.LoadGame].Padding = GUI.style.smallPadding;
menuTabs[(int)Tab.HostServer] = new GUIFrame(panelRect, GUI.Style); menuTabs[(int)Tab.HostServer] = new GUIFrame(panelRect, "");
//menuTabs[(int)Tabs.JoinServer].Padding = GUI.style.smallPadding; //menuTabs[(int)Tabs.JoinServer].Padding = GUI.style.smallPadding;
//new GUITextBlock(new Rectangle(0, -25, 0, 30), "Host Server", GUI.style, Alignment.CenterX, Alignment.CenterX, menuTabs[(int)Tabs.HostServer], false, GUI.LargeFont); //new GUITextBlock(new Rectangle(0, -25, 0, 30), "Host Server", "", Alignment.CenterX, Alignment.CenterX, menuTabs[(int)Tabs.HostServer], false, GUI.LargeFont);
new GUITextBlock(new Rectangle(0, 0, 100, 30), "Server Name:", GUI.Style, Alignment.TopLeft, Alignment.Left, menuTabs[(int)Tab.HostServer]); new GUITextBlock(new Rectangle(0, 0, 100, 30), "Server Name:", "", Alignment.TopLeft, Alignment.Left, menuTabs[(int)Tab.HostServer]);
serverNameBox = new GUITextBox(new Rectangle(160, 0, 200, 30), null, null, Alignment.TopLeft, Alignment.Left, GUI.Style, menuTabs[(int)Tab.HostServer]); serverNameBox = new GUITextBox(new Rectangle(160, 0, 200, 30), null, null, Alignment.TopLeft, Alignment.Left, "", menuTabs[(int)Tab.HostServer]);
new GUITextBlock(new Rectangle(0, 50, 100, 30), "Server port:", GUI.Style, Alignment.TopLeft, Alignment.Left, menuTabs[(int)Tab.HostServer]); new GUITextBlock(new Rectangle(0, 50, 100, 30), "Server port:", "", Alignment.TopLeft, Alignment.Left, menuTabs[(int)Tab.HostServer]);
portBox = new GUITextBox(new Rectangle(160, 50, 200, 30), null, null, Alignment.TopLeft, Alignment.Left, GUI.Style, menuTabs[(int)Tab.HostServer]); portBox = new GUITextBox(new Rectangle(160, 50, 200, 30), null, null, Alignment.TopLeft, Alignment.Left, "", menuTabs[(int)Tab.HostServer]);
portBox.Text = NetConfig.DefaultPort.ToString(); portBox.Text = NetConfig.DefaultPort.ToString();
portBox.ToolTip = "Server port"; portBox.ToolTip = "Server port";
new GUITextBlock(new Rectangle(0, 100, 100, 30), "Max players:", GUI.Style, Alignment.TopLeft, Alignment.Left, menuTabs[(int)Tab.HostServer]); new GUITextBlock(new Rectangle(0, 100, 100, 30), "Max players:", "", Alignment.TopLeft, Alignment.Left, menuTabs[(int)Tab.HostServer]);
maxPlayersBox = new GUITextBox(new Rectangle(195, 100, 30, 30), null, null, Alignment.TopLeft, Alignment.Center, GUI.Style, menuTabs[(int)Tab.HostServer]); maxPlayersBox = new GUITextBox(new Rectangle(195, 100, 30, 30), null, null, Alignment.TopLeft, Alignment.Center, "", menuTabs[(int)Tab.HostServer]);
maxPlayersBox.Text = "8"; maxPlayersBox.Text = "8";
maxPlayersBox.Enabled = false; maxPlayersBox.Enabled = false;
var minusPlayersBox = new GUIButton(new Rectangle(160, 100, 30, 30), "-", GUI.Style, menuTabs[(int)Tab.HostServer]); var minusPlayersBox = new GUIButton(new Rectangle(160, 100, 30, 30), "-", "", menuTabs[(int)Tab.HostServer]);
minusPlayersBox.UserData = -1; minusPlayersBox.UserData = -1;
minusPlayersBox.OnClicked = ChangeMaxPlayers; minusPlayersBox.OnClicked = ChangeMaxPlayers;
var plusPlayersBox = new GUIButton(new Rectangle(230, 100, 30, 30), "+", GUI.Style, menuTabs[(int)Tab.HostServer]); var plusPlayersBox = new GUIButton(new Rectangle(230, 100, 30, 30), "+", "", menuTabs[(int)Tab.HostServer]);
plusPlayersBox.UserData = 1; plusPlayersBox.UserData = 1;
plusPlayersBox.OnClicked = ChangeMaxPlayers; plusPlayersBox.OnClicked = ChangeMaxPlayers;
new GUITextBlock(new Rectangle(0, 150, 100, 30), "Password (optional):", GUI.Style, Alignment.TopLeft, Alignment.Left, menuTabs[(int)Tab.HostServer]); new GUITextBlock(new Rectangle(0, 150, 100, 30), "Password (optional):", "", Alignment.TopLeft, Alignment.Left, menuTabs[(int)Tab.HostServer]);
passwordBox = new GUITextBox(new Rectangle(160, 150, 200, 30), null, null, Alignment.TopLeft, Alignment.Left, GUI.Style, menuTabs[(int)Tab.HostServer]); passwordBox = new GUITextBox(new Rectangle(160, 150, 200, 30), null, null, Alignment.TopLeft, Alignment.Left, "", menuTabs[(int)Tab.HostServer]);
isPublicBox = new GUITickBox(new Rectangle(10, 200, 20, 20), "Public server", Alignment.TopLeft, menuTabs[(int)Tab.HostServer]); isPublicBox = new GUITickBox(new Rectangle(10, 200, 20, 20), "Public server", Alignment.TopLeft, menuTabs[(int)Tab.HostServer]);
isPublicBox.ToolTip = "Public servers are shown in the list of available servers in the \"Join Server\" -tab"; isPublicBox.ToolTip = "Public servers are shown in the list of available servers in the \"Join Server\" -tab";
@@ -177,7 +176,7 @@ namespace Barotrauma
+ " However, UPnP isn't supported by all routers, so you may need to setup port forwards manually" + " However, UPnP isn't supported by all routers, so you may need to setup port forwards manually"
+" if players are unable to join the server (see the readme for instructions)."; +" if players are unable to join the server (see the readme for instructions).";
GUIButton hostButton = new GUIButton(new Rectangle(0, 0, 100, 30), "Start", Alignment.BottomRight, GUI.Style, menuTabs[(int)Tab.HostServer]); GUIButton hostButton = new GUIButton(new Rectangle(0, 0, 100, 30), "Start", Alignment.BottomRight, "", menuTabs[(int)Tab.HostServer]);
hostButton.OnClicked = HostServerClicked; hostButton.OnClicked = HostServerClicked;
this.game = game; this.game = game;
@@ -198,7 +197,6 @@ namespace Barotrauma
UpdateSubList(); UpdateSubList();
SelectTab(null, 0); SelectTab(null, 0);
//selectedTab = 0;
} }
private void UpdateSubList() private void UpdateSubList()
@@ -211,7 +209,7 @@ namespace Barotrauma
{ {
var textBlock = new GUITextBlock( var textBlock = new GUITextBlock(
new Rectangle(0, 0, 0, 25), new Rectangle(0, 0, 0, 25),
ToolBox.LimitString(sub.Name, GUI.Font, subList.Rect.Width - 65), GUI.Style, ToolBox.LimitString(sub.Name, GUI.Font, subList.Rect.Width - 65), "ListBoxElement",
Alignment.Left, Alignment.Left, subList) Alignment.Left, Alignment.Left, subList)
{ {
Padding = new Vector4(10.0f, 0.0f, 0.0f, 0.0f), Padding = new Vector4(10.0f, 0.0f, 0.0f, 0.0f),
@@ -223,7 +221,7 @@ namespace Barotrauma
{ {
textBlock.TextColor = textBlock.TextColor * 0.85f; textBlock.TextColor = textBlock.TextColor * 0.85f;
var shuttleText = new GUITextBlock(new Rectangle(0, 0, 0, 25), "Shuttle", GUI.Style, Alignment.Left, Alignment.CenterY | Alignment.Right, textBlock, false, GUI.SmallFont); var shuttleText = new GUITextBlock(new Rectangle(0, 0, 0, 25), "Shuttle", "", Alignment.Left, Alignment.CenterY | Alignment.Right, textBlock, false, GUI.SmallFont);
shuttleText.TextColor = textBlock.TextColor * 0.8f; shuttleText.TextColor = textBlock.TextColor * 0.8f;
shuttleText.ToolTip = textBlock.ToolTip; shuttleText.ToolTip = textBlock.ToolTip;
} }
@@ -273,42 +271,41 @@ namespace Barotrauma
return; return;
} }
selectedTab = (int)tab; selectedTab = tab;
switch (selectedTab) switch (selectedTab)
{ {
case (int)Tab.NewGame: case Tab.NewGame:
saveNameBox.Text = SaveUtil.CreateSavePath(); saveNameBox.Text = SaveUtil.CreateSavePath();
break; break;
case (int)Tab.LoadGame: case Tab.LoadGame:
UpdateLoadScreen(); UpdateLoadScreen();
break; break;
case (int)Tab.Settings: case Tab.Settings:
GameMain.Config.ResetSettingsFrame(); GameMain.Config.ResetSettingsFrame();
menuTabs[(int)Tab.Settings] = GameMain.Config.SettingsFrame; menuTabs[(int)Tab.Settings] = GameMain.Config.SettingsFrame;
break; break;
} }
} }
private bool ApplySettings(GUIButton button, object obj) private bool ApplySettings(GUIButton button, object userData)
{ {
GameMain.Config.Save("config.xml"); GameMain.Config.Save("config.xml");
selectedTab = 0;
if (userData is Tab) SelectTab((Tab)userData);
if (GameMain.GraphicsWidth != GameMain.Config.GraphicsWidth || GameMain.GraphicsHeight != GameMain.Config.GraphicsHeight) if (GameMain.GraphicsWidth != GameMain.Config.GraphicsWidth || GameMain.GraphicsHeight != GameMain.Config.GraphicsHeight)
{ {
new GUIMessageBox("Restart required", "You need to restart the game for the resolution changes to take effect."); new GUIMessageBox("Restart required", "You need to restart the game for the resolution changes to take effect.");
} }
return true; return true;
} }
private bool DiscardSettings(GUIButton button, object obj) private bool DiscardSettings(GUIButton button, object userData)
{ {
GameMain.Config.Load("config.xml"); GameMain.Config.Load("config.xml");
selectedTab = (int)obj; if (userData is Tab) SelectTab((Tab)userData);
return true; return true;
} }
@@ -388,7 +385,7 @@ namespace Barotrauma
string[] saveFiles = SaveUtil.GetSaveFiles(); string[] saveFiles = SaveUtil.GetSaveFiles();
saveList = new GUIListBox(new Rectangle(0, 0, 200, menuTabs[(int)Tab.LoadGame].Rect.Height - 80), Color.White, GUI.Style, menuTabs[(int)Tab.LoadGame]); saveList = new GUIListBox(new Rectangle(0, 0, 200, menuTabs[(int)Tab.LoadGame].Rect.Height - 80), Color.White, "", menuTabs[(int)Tab.LoadGame]);
saveList.OnSelected = SelectSaveFile; saveList.OnSelected = SelectSaveFile;
foreach (string saveFile in saveFiles) foreach (string saveFile in saveFiles)
@@ -396,7 +393,7 @@ namespace Barotrauma
GUITextBlock textBlock = new GUITextBlock( GUITextBlock textBlock = new GUITextBlock(
new Rectangle(0, 0, 0, 25), new Rectangle(0, 0, 0, 25),
saveFile, saveFile,
GUI.Style, "ListBoxElement",
Alignment.Left, Alignment.Left,
Alignment.Left, Alignment.Left,
saveList); saveList);
@@ -404,7 +401,7 @@ namespace Barotrauma
textBlock.UserData = saveFile; textBlock.UserData = saveFile;
} }
var button = new GUIButton(new Rectangle(0, 0, 100, 30), "Start", Alignment.Right | Alignment.Bottom, GUI.Style, menuTabs[(int)Tab.LoadGame]); var button = new GUIButton(new Rectangle(0, 0, 100, 30), "Start", Alignment.Right | Alignment.Bottom, "", menuTabs[(int)Tab.LoadGame]);
button.OnClicked = LoadGame; button.OnClicked = LoadGame;
} }
@@ -428,22 +425,22 @@ namespace Barotrauma
string mapseed = ToolBox.GetAttributeString(doc.Root, "mapseed", "unknown"); string mapseed = ToolBox.GetAttributeString(doc.Root, "mapseed", "unknown");
GUIFrame saveFileFrame = new GUIFrame(new Rectangle((int)(saveList.Rect.Width + 20), 0, 200, 230), Color.Black*0.4f, GUI.Style, menuTabs[(int)Tab.LoadGame]); GUIFrame saveFileFrame = new GUIFrame(new Rectangle((int)(saveList.Rect.Width + 20), 0, 200, 230), Color.Black*0.4f, "", menuTabs[(int)Tab.LoadGame]);
saveFileFrame.UserData = "savefileframe"; saveFileFrame.UserData = "savefileframe";
saveFileFrame.Padding = new Vector4(20.0f, 20.0f, 20.0f, 20.0f); saveFileFrame.Padding = new Vector4(20.0f, 20.0f, 20.0f, 20.0f);
new GUITextBlock(new Rectangle(0,0,0,20), fileName, GUI.Style, Alignment.TopLeft, Alignment.TopLeft, saveFileFrame, false, GUI.LargeFont); new GUITextBlock(new Rectangle(0,0,0,20), fileName, "", Alignment.TopLeft, Alignment.TopLeft, saveFileFrame, false, GUI.LargeFont);
new GUITextBlock(new Rectangle(0, 35, 0, 20), "Submarine: ", GUI.Style, saveFileFrame).Font = GUI.SmallFont; new GUITextBlock(new Rectangle(0, 35, 0, 20), "Submarine: ", "", saveFileFrame).Font = GUI.SmallFont;
new GUITextBlock(new Rectangle(15, 52, 0, 20), subName, GUI.Style, saveFileFrame).Font = GUI.SmallFont; new GUITextBlock(new Rectangle(15, 52, 0, 20), subName, "", saveFileFrame).Font = GUI.SmallFont;
new GUITextBlock(new Rectangle(0, 70, 0, 20), "Last saved: ", GUI.Style, saveFileFrame).Font = GUI.SmallFont; new GUITextBlock(new Rectangle(0, 70, 0, 20), "Last saved: ", "", saveFileFrame).Font = GUI.SmallFont;
new GUITextBlock(new Rectangle(15, 85, 0, 20), saveTime, GUI.Style, saveFileFrame).Font = GUI.SmallFont; new GUITextBlock(new Rectangle(15, 85, 0, 20), saveTime, "", saveFileFrame).Font = GUI.SmallFont;
new GUITextBlock(new Rectangle(0, 105, 0, 20), "Map seed: ", GUI.Style, saveFileFrame).Font = GUI.SmallFont; new GUITextBlock(new Rectangle(0, 105, 0, 20), "Map seed: ", "", saveFileFrame).Font = GUI.SmallFont;
new GUITextBlock(new Rectangle(15, 120, 0, 20), mapseed, GUI.Style, saveFileFrame).Font = GUI.SmallFont; new GUITextBlock(new Rectangle(15, 120, 0, 20), mapseed, "", saveFileFrame).Font = GUI.SmallFont;
var deleteSaveButton = new GUIButton(new Rectangle(0, 0, 100, 20), "Delete", Alignment.BottomCenter, GUI.Style, saveFileFrame); var deleteSaveButton = new GUIButton(new Rectangle(0, 0, 100, 20), "Delete", Alignment.BottomCenter, "", saveFileFrame);
deleteSaveButton.UserData = fileName; deleteSaveButton.UserData = fileName;
deleteSaveButton.OnClicked = DeleteSave; deleteSaveButton.OnClicked = DeleteSave;
@@ -479,24 +476,20 @@ namespace Barotrauma
public override void AddToGUIUpdateList() public override void AddToGUIUpdateList()
{ {
buttonsTab.AddToGUIUpdateList(); buttonsTab.AddToGUIUpdateList();
if (selectedTab > 0) menuTabs[selectedTab].AddToGUIUpdateList(); if (selectedTab > 0) menuTabs[(int)selectedTab].AddToGUIUpdateList();
} }
public override void Update(double deltaTime) public override void Update(double deltaTime)
{ {
//GameMain.TitleScreen.Update();
buttonsTab.Update((float)deltaTime); buttonsTab.Update((float)deltaTime);
if (selectedTab > 0)
{ if (selectedTab>0) menuTabs[(int)selectedTab].Update((float)deltaTime);
menuTabs[selectedTab].Update((float)deltaTime);
}
GameMain.TitleScreen.TitlePosition = GameMain.TitleScreen.TitlePosition =
Vector2.Lerp(GameMain.TitleScreen.TitlePosition, new Vector2( Vector2.Lerp(GameMain.TitleScreen.TitlePosition, new Vector2(
GameMain.TitleScreen.TitleSize.X / 2.0f * GameMain.TitleScreen.Scale + 30.0f, GameMain.TitleScreen.TitleSize.X / 2.0f * GameMain.TitleScreen.Scale + 30.0f,
GameMain.TitleScreen.TitleSize.Y / 2.0f * GameMain.TitleScreen.Scale + 30.0f), GameMain.TitleScreen.TitleSize.Y / 2.0f * GameMain.TitleScreen.Scale + 30.0f),
0.1f); 0.1f);
} }
public override void Draw(double deltaTime, GraphicsDevice graphics, SpriteBatch spriteBatch) public override void Draw(double deltaTime, GraphicsDevice graphics, SpriteBatch spriteBatch)
@@ -511,7 +504,7 @@ namespace Barotrauma
spriteBatch.Begin(0, BlendState.AlphaBlend); spriteBatch.Begin(0, BlendState.AlphaBlend);
buttonsTab.Draw(spriteBatch); buttonsTab.Draw(spriteBatch);
if (selectedTab>0) menuTabs[selectedTab].Draw(spriteBatch); if (selectedTab>0) menuTabs[(int)selectedTab].Draw(spriteBatch);
GUI.Draw((float)deltaTime, spriteBatch, null); GUI.Draw((float)deltaTime, spriteBatch, null);
+66 -66
View File
@@ -180,12 +180,12 @@ namespace Barotrauma
Rectangle panelRect = new Rectangle(0,0,width,height); Rectangle panelRect = new Rectangle(0,0,width,height);
menu = new GUIFrame(panelRect, Color.Transparent, Alignment.Center); menu = new GUIFrame(panelRect, Color.Transparent, Alignment.Center, null);
//menu.Padding = GUI.style.smallPadding; //menu.Padding = GUI.style.smallPadding;
//server info panel ------------------------------------------------------------ //server info panel ------------------------------------------------------------
infoFrame = new GUIFrame(new Rectangle(0, 0, (int)(panelRect.Width * 0.7f), (int)(panelRect.Height * 0.6f)), GUI.Style, menu); infoFrame = new GUIFrame(new Rectangle(0, 0, (int)(panelRect.Width * 0.7f), (int)(panelRect.Height * 0.6f)), "", menu);
infoFrame.Padding = new Vector4(20.0f, 20.0f, 20.0f, 20.0f); infoFrame.Padding = new Vector4(20.0f, 20.0f, 20.0f, 20.0f);
//chatbox ---------------------------------------------------------------------- //chatbox ----------------------------------------------------------------------
@@ -193,11 +193,11 @@ namespace Barotrauma
new Rectangle(0, (int)(panelRect.Height * 0.6f + 20), new Rectangle(0, (int)(panelRect.Height * 0.6f + 20),
(int)(panelRect.Width * 0.7f), (int)(panelRect.Width * 0.7f),
(int)(panelRect.Height * 0.4f - 20)), (int)(panelRect.Height * 0.4f - 20)),
GUI.Style, menu); "", menu);
chatFrame.Padding = new Vector4(20.0f, 20.0f, 20.0f, 40.0f); chatFrame.Padding = new Vector4(20.0f, 20.0f, 20.0f, 40.0f);
chatBox = new GUIListBox(new Rectangle(0,0,0,chatFrame.Rect.Height-80), Color.White, GUI.Style, chatFrame); chatBox = new GUIListBox(new Rectangle(0,0,0,chatFrame.Rect.Height-80), Color.White, "", chatFrame);
textBox = new GUITextBox(new Rectangle(0, 25, 0, 25), Alignment.Bottom, GUI.Style, chatFrame); textBox = new GUITextBox(new Rectangle(0, 25, 0, 25), Alignment.Bottom, "", chatFrame);
textBox.Font = GUI.SmallFont; textBox.Font = GUI.SmallFont;
//player info panel ------------------------------------------------------------ //player info panel ------------------------------------------------------------
@@ -205,7 +205,7 @@ namespace Barotrauma
myPlayerFrame = new GUIFrame( myPlayerFrame = new GUIFrame(
new Rectangle((int)(panelRect.Width * 0.7f + 20), 0, new Rectangle((int)(panelRect.Width * 0.7f + 20), 0,
(int)(panelRect.Width * 0.3f - 20), (int)(panelRect.Height * 0.6f)), (int)(panelRect.Width * 0.3f - 20), (int)(panelRect.Height * 0.6f)),
GUI.Style, menu); "", menu);
myPlayerFrame.Padding = new Vector4(20.0f, 20.0f, 20.0f, 20.0f); myPlayerFrame.Padding = new Vector4(20.0f, 20.0f, 20.0f, 20.0f);
//player list ------------------------------------------------------------------ //player list ------------------------------------------------------------------
@@ -213,11 +213,11 @@ namespace Barotrauma
GUIFrame playerListFrame = new GUIFrame( GUIFrame playerListFrame = new GUIFrame(
new Rectangle((int)(panelRect.Width * 0.7f + 20), (int)(panelRect.Height * 0.6f + 20), new Rectangle((int)(panelRect.Width * 0.7f + 20), (int)(panelRect.Height * 0.6f + 20),
(int)(panelRect.Width * 0.3f - 20), (int)(panelRect.Height * 0.4f - 20)), (int)(panelRect.Width * 0.3f - 20), (int)(panelRect.Height * 0.4f - 20)),
GUI.Style, menu); "", menu);
playerListFrame.Padding = new Vector4(20.0f, 20.0f, 20.0f, 40.0f); playerListFrame.Padding = new Vector4(20.0f, 20.0f, 20.0f, 40.0f);
playerList = new GUIListBox(new Rectangle(0,0,0,0), null, GUI.Style, playerListFrame); playerList = new GUIListBox(new Rectangle(0,0,0,0), null, "", playerListFrame);
playerList.OnSelected = SelectPlayer; playerList.OnSelected = SelectPlayer;
//submarine list ------------------------------------------------------------------ //submarine list ------------------------------------------------------------------
@@ -225,11 +225,11 @@ namespace Barotrauma
int columnWidth = infoFrame.Rect.Width / 3 - 5; int columnWidth = infoFrame.Rect.Width / 3 - 5;
int columnX = 0; int columnX = 0;
new GUITextBlock(new Rectangle(columnX, 120, columnWidth, 30), "Submarine:", GUI.Style, infoFrame); new GUITextBlock(new Rectangle(columnX, 120, columnWidth, 30), "Submarine:", "", infoFrame);
subList = new GUIListBox(new Rectangle(columnX, 150, columnWidth, infoFrame.Rect.Height - 150 - 80), Color.White, GUI.Style, infoFrame); subList = new GUIListBox(new Rectangle(columnX, 150, columnWidth, infoFrame.Rect.Height - 150 - 80), Color.White, "", infoFrame);
subList.OnSelected = VotableClicked; subList.OnSelected = VotableClicked;
var voteText = new GUITextBlock(new Rectangle(columnX, 120, columnWidth, 30), "Votes: ", GUI.Style, Alignment.TopLeft, Alignment.TopRight, infoFrame); var voteText = new GUITextBlock(new Rectangle(columnX, 120, columnWidth, 30), "Votes: ", "", Alignment.TopLeft, Alignment.TopRight, infoFrame);
voteText.UserData = "subvotes"; voteText.UserData = "subvotes";
voteText.Visible = false; voteText.Visible = false;
@@ -240,17 +240,17 @@ namespace Barotrauma
//respawn shuttle ------------------------------------------------------------------ //respawn shuttle ------------------------------------------------------------------
new GUITextBlock(new Rectangle(columnX, 120, 20, 20), "Respawn shuttle:", GUI.Style, infoFrame); new GUITextBlock(new Rectangle(columnX, 120, 20, 20), "Respawn shuttle:", "", infoFrame);
shuttleList = new GUIDropDown(new Rectangle(columnX, 150, 200, 20), "", GUI.Style, infoFrame); shuttleList = new GUIDropDown(new Rectangle(columnX, 150, 200, 20), "", "", infoFrame);
//gamemode ------------------------------------------------------------------ //gamemode ------------------------------------------------------------------
new GUITextBlock(new Rectangle(columnX, 180, 0, 30), "Game mode: ", GUI.Style, infoFrame); new GUITextBlock(new Rectangle(columnX, 180, 0, 30), "Game mode: ", "", infoFrame);
modeList = new GUIListBox(new Rectangle(columnX, 200, columnWidth, infoFrame.Rect.Height - 300), GUI.Style, infoFrame); modeList = new GUIListBox(new Rectangle(columnX, 200, columnWidth, infoFrame.Rect.Height - 300), "", infoFrame);
modeList.OnSelected = VotableClicked; modeList.OnSelected = VotableClicked;
voteText = new GUITextBlock(new Rectangle(columnX, 120, columnWidth, 30), "Votes: ", GUI.Style, Alignment.TopLeft, Alignment.TopRight, infoFrame); voteText = new GUITextBlock(new Rectangle(columnX, 120, columnWidth, 30), "Votes: ", "", Alignment.TopLeft, Alignment.TopRight, infoFrame);
voteText.UserData = "modevotes"; voteText.UserData = "modevotes";
voteText.Visible = false; voteText.Visible = false;
@@ -260,8 +260,8 @@ namespace Barotrauma
GUITextBlock textBlock = new GUITextBlock( GUITextBlock textBlock = new GUITextBlock(
new Rectangle(0, 0, 0, 25), new Rectangle(0, 0, 0, 25),
mode.Name, GUI.Style, mode.Name, "ListBoxElement",
Alignment.Left, Alignment.Left, Alignment.TopLeft, Alignment.CenterLeft,
modeList); modeList);
textBlock.ToolTip = mode.Description; textBlock.ToolTip = mode.Description;
textBlock.Padding = new Vector4(10.0f, 0.0f, 0.0f, 0.0f); textBlock.Padding = new Vector4(10.0f, 0.0f, 0.0f, 0.0f);
@@ -270,17 +270,17 @@ namespace Barotrauma
//mission type ------------------------------------------------------------------ //mission type ------------------------------------------------------------------
missionTypeBlock = new GUITextBlock(new Rectangle(columnX, 0, 300, 20), "Mission type:", GUI.Style, Alignment.BottomLeft, Alignment.TopLeft, infoFrame); missionTypeBlock = new GUITextBlock(new Rectangle(columnX, 0, 300, 20), "Mission type:", "", Alignment.BottomLeft, Alignment.TopLeft, infoFrame);
missionTypeBlock.UserData = 0; missionTypeBlock.UserData = 0;
missionTypeButtons = new GUIButton[2]; missionTypeButtons = new GUIButton[2];
missionTypeButtons[0] = new GUIButton(new Rectangle(100, 0, 20, 20), "<", Alignment.BottomLeft, GUI.Style, missionTypeBlock); missionTypeButtons[0] = new GUIButton(new Rectangle(100, 0, 20, 20), "<", Alignment.BottomLeft, "", missionTypeBlock);
missionTypeButtons[0].UserData = -1; missionTypeButtons[0].UserData = -1;
new GUITextBlock(new Rectangle(120, 0, 80, 20), "Random", GUI.Style, Alignment.BottomLeft, Alignment.TopCenter, missionTypeBlock).UserData = 0; new GUITextBlock(new Rectangle(120, 0, 80, 20), "Random", "", Alignment.BottomLeft, Alignment.TopCenter, missionTypeBlock).UserData = 0;
missionTypeButtons[1] = new GUIButton(new Rectangle(200, 0, 20, 20), ">", Alignment.BottomLeft, GUI.Style, missionTypeBlock); missionTypeButtons[1] = new GUIButton(new Rectangle(200, 0, 20, 20), ">", Alignment.BottomLeft, "", missionTypeBlock);
missionTypeButtons[1].UserData = 1; missionTypeButtons[1].UserData = 1;
missionTypeBlock.Visible = false; missionTypeBlock.Visible = false;
@@ -291,7 +291,7 @@ namespace Barotrauma
//var modeDescription = new GUITextBlock( //var modeDescription = new GUITextBlock(
// new Rectangle(columnX, 150, (int)(columnWidth * 1.2f), infoFrame.Rect.Height - 150 - 80), // new Rectangle(columnX, 150, (int)(columnWidth * 1.2f), infoFrame.Rect.Height - 150 - 80),
// "", GUI.Style, Alignment.TopLeft, Alignment.TopLeft, infoFrame, true, GUI.SmallFont); // "", "", Alignment.TopLeft, Alignment.TopLeft, infoFrame, true, GUI.SmallFont);
//modeDescription.Color = Color.Black * 0.3f; //modeDescription.Color = Color.Black * 0.3f;
//modeList.UserData = modeDescription; //modeList.UserData = modeDescription;
@@ -301,25 +301,25 @@ namespace Barotrauma
//seed ------------------------------------------------------------------ //seed ------------------------------------------------------------------
new GUITextBlock(new Rectangle(columnX, 120, 180, 20), new GUITextBlock(new Rectangle(columnX, 120, 180, 20),
"Level Seed: ", GUI.Style, Alignment.Left, Alignment.TopLeft, infoFrame); "Level Seed: ", "", Alignment.Left, Alignment.TopLeft, infoFrame);
seedBox = new GUITextBox(new Rectangle(columnX, 150, columnWidth/2, 20), seedBox = new GUITextBox(new Rectangle(columnX, 150, columnWidth/2, 20),
Alignment.TopLeft, GUI.Style, infoFrame); Alignment.TopLeft, "", infoFrame);
seedBox.OnTextChanged = SelectSeed; seedBox.OnTextChanged = SelectSeed;
LevelSeed = ToolBox.RandomSeed(8); LevelSeed = ToolBox.RandomSeed(8);
//traitor probability ------------------------------------------------------------------ //traitor probability ------------------------------------------------------------------
new GUITextBlock(new Rectangle(columnX, 180, 20, 20), "Traitors:", GUI.Style, infoFrame); new GUITextBlock(new Rectangle(columnX, 180, 20, 20), "Traitors:", "", infoFrame);
traitorProbabilityButtons = new GUIButton[2]; traitorProbabilityButtons = new GUIButton[2];
traitorProbabilityButtons[0] = new GUIButton(new Rectangle(columnX, 205, 20, 20), "<", GUI.Style, infoFrame); traitorProbabilityButtons[0] = new GUIButton(new Rectangle(columnX, 205, 20, 20), "<", "", infoFrame);
traitorProbabilityButtons[0].UserData = -1; traitorProbabilityButtons[0].UserData = -1;
traitorProbabilityText = new GUITextBlock(new Rectangle(columnX+20, 205, 80, 20), "No", null,null, Alignment.TopCenter, GUI.Style, infoFrame); traitorProbabilityText = new GUITextBlock(new Rectangle(columnX+20, 205, 80, 20), "No", null,null, Alignment.Center, "", infoFrame);
traitorProbabilityButtons[1] = new GUIButton(new Rectangle(columnX + 100, 205, 20, 20), ">", GUI.Style, infoFrame); traitorProbabilityButtons[1] = new GUIButton(new Rectangle(columnX + 100, 205, 20, 20), ">", "", infoFrame);
traitorProbabilityButtons[1].UserData = 1; traitorProbabilityButtons[1].UserData = 1;
@@ -328,18 +328,18 @@ namespace Barotrauma
autoRestartBox = new GUITickBox(new Rectangle(columnX, 240, 20, 20), "Automatic restart", Alignment.TopLeft, infoFrame); autoRestartBox = new GUITickBox(new Rectangle(columnX, 240, 20, 20), "Automatic restart", Alignment.TopLeft, infoFrame);
autoRestartBox.OnSelected = ToggleAutoRestart; autoRestartBox.OnSelected = ToggleAutoRestart;
var restartText = new GUITextBlock(new Rectangle(columnX, 265, 20, 20), "", GUI.Style, infoFrame); var restartText = new GUITextBlock(new Rectangle(columnX, 265, 20, 20), "", "", infoFrame);
restartText.Font = GUI.SmallFont; restartText.Font = GUI.SmallFont;
restartText.TextGetter = AutoRestartText; restartText.TextGetter = AutoRestartText;
//server info ------------------------------------------------------------------ //server info ------------------------------------------------------------------
var serverName = new GUITextBox(new Rectangle(0, 0, 200, 20), null, null, Alignment.TopLeft, Alignment.TopLeft, GUI.Style, infoFrame); var serverName = new GUITextBox(new Rectangle(0, 0, 200, 20), null, null, Alignment.TopLeft, Alignment.TopLeft, "", infoFrame);
serverName.TextGetter = GetServerName; serverName.TextGetter = GetServerName;
serverName.Enabled = GameMain.Server != null; serverName.Enabled = GameMain.Server != null;
serverName.OnTextChanged = ChangeServerName; serverName.OnTextChanged = ChangeServerName;
serverMessage = new GUITextBox(new Rectangle(0, 30, 360, 70), null, null, Alignment.TopLeft, Alignment.TopLeft, GUI.Style, infoFrame); serverMessage = new GUITextBox(new Rectangle(0, 30, 360, 70), null, null, Alignment.TopLeft, Alignment.TopLeft, "", infoFrame);
serverMessage.Wrap = true; serverMessage.Wrap = true;
serverMessage.OnTextChanged = UpdateServerMessage; serverMessage.OnTextChanged = UpdateServerMessage;
@@ -407,10 +407,10 @@ namespace Barotrauma
missionTypeButtons[0].OnClicked = ToggleMissionType; missionTypeButtons[0].OnClicked = ToggleMissionType;
missionTypeButtons[1].OnClicked = ToggleMissionType; missionTypeButtons[1].OnClicked = ToggleMissionType;
StartButton = new GUIButton(new Rectangle(0, 0, 80, 30), "Start", Alignment.BottomRight, GUI.Style, infoFrame); StartButton = new GUIButton(new Rectangle(0, 0, 80, 30), "Start", Alignment.BottomRight, "", infoFrame);
StartButton.OnClicked = GameMain.Server.StartGameClicked; StartButton.OnClicked = GameMain.Server.StartGameClicked;
GUIButton settingsButton = new GUIButton(new Rectangle(-100, 0, 80, 30), "Settings", Alignment.BottomRight, GUI.Style, infoFrame); GUIButton settingsButton = new GUIButton(new Rectangle(-100, 0, 80, 30), "Settings", Alignment.BottomRight, "", infoFrame);
settingsButton.OnClicked = GameMain.Server.ToggleSettingsFrame; settingsButton.OnClicked = GameMain.Server.ToggleSettingsFrame;
settingsButton.UserData = "settingsButton"; settingsButton.UserData = "settingsButton";
@@ -432,7 +432,7 @@ namespace Barotrauma
if (myPlayerFrame.children.Find(c => c.UserData as string == "playyourself") == null) if (myPlayerFrame.children.Find(c => c.UserData as string == "playyourself") == null)
{ {
var playYourself = new GUITickBox(new Rectangle(0, -10, 20, 20), "Play yourself", Alignment.TopLeft, myPlayerFrame); var playYourself = new GUITickBox(new Rectangle(0, 0, 20, 20), "Play yourself", Alignment.TopLeft, myPlayerFrame);
playYourself.Selected = GameMain.Server.CharacterInfo != null; playYourself.Selected = GameMain.Server.CharacterInfo != null;
playYourself.OnSelected = TogglePlayYourself; playYourself.OnSelected = TogglePlayYourself;
playYourself.UserData = "playyourself"; playYourself.UserData = "playyourself";
@@ -452,7 +452,7 @@ namespace Barotrauma
{ {
if (GameMain.Client.GameStarted) if (GameMain.Client.GameStarted)
{ {
GUIButton spectateButton = new GUIButton(new Rectangle(0, 0, 80, 30), "Spectate", Alignment.BottomRight, GUI.Style, infoFrame); GUIButton spectateButton = new GUIButton(new Rectangle(0, 0, 80, 30), "Spectate", Alignment.BottomRight, "", infoFrame);
spectateButton.OnClicked = GameMain.Client.SpectateClicked; spectateButton.OnClicked = GameMain.Client.SpectateClicked;
spectateButton.UserData = "spectateButton"; spectateButton.UserData = "spectateButton";
} }
@@ -473,7 +473,7 @@ namespace Barotrauma
if (GameMain.Client == null) return; if (GameMain.Client == null) return;
infoFrame.RemoveChild(infoFrame.children.Find(c => c.UserData as string == "spectateButton")); infoFrame.RemoveChild(infoFrame.children.Find(c => c.UserData as string == "spectateButton"));
GUIButton spectateButton = new GUIButton(new Rectangle(0, 0, 80, 30), "Spectate", Alignment.BottomRight, GUI.Style, infoFrame); GUIButton spectateButton = new GUIButton(new Rectangle(0, 0, 80, 30), "Spectate", Alignment.BottomRight, "", infoFrame);
spectateButton.OnClicked = GameMain.Client.SpectateClicked; spectateButton.OnClicked = GameMain.Client.SpectateClicked;
spectateButton.UserData = "spectateButton"; spectateButton.UserData = "spectateButton";
} }
@@ -486,40 +486,40 @@ namespace Barotrauma
if (IsServer && GameMain.Server != null) if (IsServer && GameMain.Server != null)
{ {
var playYourself = new GUITickBox(new Rectangle(0, -10, 20, 20), "Play yourself", Alignment.TopLeft, myPlayerFrame); var playYourself = new GUITickBox(new Rectangle(0, 0, 20, 20), "Play yourself", Alignment.TopLeft, myPlayerFrame);
playYourself.Selected = GameMain.Server.CharacterInfo != null; playYourself.Selected = GameMain.Server.CharacterInfo != null;
playYourself.OnSelected = TogglePlayYourself; playYourself.OnSelected = TogglePlayYourself;
playYourself.UserData = "playyourself"; playYourself.UserData = "playyourself";
} }
//new GUITextBlock(new Rectangle(100, 30, 200, 30), "Name: ", GUI.Style, myPlayerFrame); //new GUITextBlock(new Rectangle(100, 30, 200, 30), "Name: ", "", myPlayerFrame);
//GUITextBox playerName = new GUITextBox(new Rectangle(100, 55, 0, 20), Alignment.TopLeft, GUI.Style, myPlayerFrame); //GUITextBox playerName = new GUITextBox(new Rectangle(100, 55, 0, 20), Alignment.TopLeft, "", myPlayerFrame);
//playerName.Text = characterInfo.Name; //playerName.Text = characterInfo.Name;
//playerName.OnEnterPressed += ChangeCharacterName; //playerName.OnEnterPressed += ChangeCharacterName;
GUIButton toggleHead = new GUIButton(new Rectangle(0, 50, 15, 15), "<", GUI.Style, myPlayerFrame); GUIButton toggleHead = new GUIButton(new Rectangle(0, 50, 15, 15), "<", "", myPlayerFrame);
toggleHead.UserData = -1; toggleHead.UserData = -1;
toggleHead.OnClicked = ToggleHead; toggleHead.OnClicked = ToggleHead;
toggleHead = new GUIButton(new Rectangle(60, 50, 15, 15), ">", GUI.Style, myPlayerFrame); toggleHead = new GUIButton(new Rectangle(60, 50, 15, 15), ">", "", myPlayerFrame);
toggleHead.UserData = 1; toggleHead.UserData = 1;
toggleHead.OnClicked = ToggleHead; toggleHead.OnClicked = ToggleHead;
new GUITextBlock(new Rectangle(100, 30, 200, 30), "Gender: ", GUI.Style, myPlayerFrame); new GUITextBlock(new Rectangle(100, 30, 200, 30), "Gender: ", "", myPlayerFrame);
GUIButton maleButton = new GUIButton(new Rectangle(100, 50, 60, 20), "Male", GUIButton maleButton = new GUIButton(new Rectangle(100, 50, 60, 20), "Male",
Alignment.TopLeft, GUI.Style, myPlayerFrame); Alignment.TopLeft, "", myPlayerFrame);
maleButton.UserData = Gender.Male; maleButton.UserData = Gender.Male;
maleButton.OnClicked += SwitchGender; maleButton.OnClicked += SwitchGender;
GUIButton femaleButton = new GUIButton(new Rectangle(170, 50, 60, 20), "Female", GUIButton femaleButton = new GUIButton(new Rectangle(170, 50, 60, 20), "Female",
Alignment.TopLeft, GUI.Style, myPlayerFrame); Alignment.TopLeft, "", myPlayerFrame);
femaleButton.UserData = Gender.Female; femaleButton.UserData = Gender.Female;
femaleButton.OnClicked += SwitchGender; femaleButton.OnClicked += SwitchGender;
new GUITextBlock(new Rectangle(0, 120, 20, 30), "Job preferences:", GUI.Style, myPlayerFrame); new GUITextBlock(new Rectangle(0, 120, 20, 30), "Job preferences:", "", myPlayerFrame);
jobList = new GUIListBox(new Rectangle(0, 150, 0, 0), GUI.Style, myPlayerFrame); jobList = new GUIListBox(new Rectangle(0, 150, 0, 0), "", myPlayerFrame);
jobList.Enabled = false; jobList.Enabled = false;
@@ -527,22 +527,22 @@ namespace Barotrauma
foreach (JobPrefab job in JobPrefab.List) foreach (JobPrefab job in JobPrefab.List)
{ {
GUITextBlock jobText = new GUITextBlock(new Rectangle(0, 0, 0, 20), i + ". " + job.Name+" ", GUITextBlock jobText = new GUITextBlock(new Rectangle(0, 0, 0, 20), i + ". " + job.Name+" ",
GUI.Style,Alignment.Left, Alignment.Right, jobList, false, "",Alignment.Left, Alignment.Right, jobList, false,
GameMain.GraphicsWidth<1000 ? GUI.SmallFont : GUI.Font); GameMain.GraphicsWidth<1000 ? GUI.SmallFont : GUI.Font);
jobText.UserData = job; jobText.UserData = job;
GUIButton infoButton = new GUIButton(new Rectangle(0, 2, 15, 15), "?", GUI.Style, jobText); GUIButton infoButton = new GUIButton(new Rectangle(0, 2, 15, 15), "?", "", jobText);
infoButton.UserData = -1; infoButton.UserData = -1;
infoButton.OnClicked += ViewJobInfo; infoButton.OnClicked += ViewJobInfo;
GUIButton upButton = new GUIButton(new Rectangle(30, 2, 15, 15), "", GUI.Style, jobText); GUIButton upButton = new GUIButton(new Rectangle(30, 2, 15, 15), "", "", jobText);
//TODO: make GUIImages align correctly when scaled/rotated //TODO: make GUIImages align correctly when scaled/rotated
//so there's no need to do this ↓ //so there's no need to do this ↓
new GUIImage(new Rectangle(3,2,0,0), GUI.Arrow, Alignment.Center, upButton).Scale = 0.6f; new GUIImage(new Rectangle(3,2,0,0), GUI.Arrow, Alignment.Center, upButton).Scale = 0.6f;
upButton.UserData = -1; upButton.UserData = -1;
upButton.OnClicked += ChangeJobPreference; upButton.OnClicked += ChangeJobPreference;
GUIButton downButton = new GUIButton(new Rectangle(50, 2, 15, 15), "", GUI.Style, jobText); GUIButton downButton = new GUIButton(new Rectangle(50, 2, 15, 15), "", "", jobText);
var downArrow = new GUIImage(new Rectangle(13,14,0,0), GUI.Arrow, Alignment.Center, downButton); var downArrow = new GUIImage(new Rectangle(13,14,0,0), GUI.Arrow, Alignment.Center, downButton);
downArrow.Rotation = MathHelper.Pi; downArrow.Rotation = MathHelper.Pi;
downArrow.Scale = 0.6f; downArrow.Scale = 0.6f;
@@ -702,8 +702,8 @@ namespace Barotrauma
public void AddSubmarine(GUIComponent subList, Submarine sub) public void AddSubmarine(GUIComponent subList, Submarine sub)
{ {
var subTextBlock = new GUITextBlock( var subTextBlock = new GUITextBlock(
new Rectangle(0, 0, 0, 25), ToolBox.LimitString(sub.Name, GUI.Font, subList.Rect.Width - 65), GUI.Style, new Rectangle(0, 0, 0, 25), ToolBox.LimitString(sub.Name, GUI.Font, subList.Rect.Width - 65), "ListBoxElement",
Alignment.Left, Alignment.CenterY | Alignment.Left, subList) Alignment.TopLeft, Alignment.CenterLeft, subList)
{ {
Padding = new Vector4(10.0f, 0.0f, 0.0f, 0.0f), Padding = new Vector4(10.0f, 0.0f, 0.0f, 0.0f),
ToolTip = sub.Description, ToolTip = sub.Description,
@@ -734,7 +734,7 @@ namespace Barotrauma
if (sub.HasTag(SubmarineTag.Shuttle)) if (sub.HasTag(SubmarineTag.Shuttle))
{ {
var shuttleText = new GUITextBlock(new Rectangle(0, 0, 0, 25), "Shuttle", GUI.Style, Alignment.Left, Alignment.CenterY | Alignment.Right, subTextBlock, false, GUI.SmallFont); var shuttleText = new GUITextBlock(new Rectangle(0, 0, 0, 25), "Shuttle", "", Alignment.Left, Alignment.CenterY | Alignment.Right, subTextBlock, false, GUI.SmallFont);
shuttleText.TextColor = subTextBlock.TextColor * 0.8f; shuttleText.TextColor = subTextBlock.TextColor * 0.8f;
shuttleText.ToolTip = subTextBlock.ToolTip; shuttleText.ToolTip = subTextBlock.ToolTip;
} }
@@ -788,7 +788,7 @@ namespace Barotrauma
{ {
GUITextBlock textBlock = new GUITextBlock( GUITextBlock textBlock = new GUITextBlock(
new Rectangle(0, 0, playerList.Rect.Width-20, 25), name, new Rectangle(0, 0, playerList.Rect.Width-20, 25), name,
GUI.Style, Alignment.Left, Alignment.Left, "", Alignment.Left, Alignment.Left,
playerList); playerList);
textBlock.Padding = new Vector4(10.0f, 0.0f, 0.0f, 0.0f); textBlock.Padding = new Vector4(10.0f, 0.0f, 0.0f, 0.0f);
@@ -819,24 +819,24 @@ namespace Barotrauma
playerFrame = new GUIFrame(new Rectangle(0, 0, 0, 0), Color.Black * 0.6f); playerFrame = new GUIFrame(new Rectangle(0, 0, 0, 0), Color.Black * 0.6f);
var playerFrameInner = new GUIFrame(new Rectangle(0, 0, 300, 280), null, Alignment.Center, GUI.Style, playerFrame); var playerFrameInner = new GUIFrame(new Rectangle(0, 0, 300, 280), null, Alignment.Center, "", playerFrame);
playerFrameInner.Padding = new Vector4(20.0f, 20.0f, 20.0f, 20.0f); playerFrameInner.Padding = new Vector4(20.0f, 20.0f, 20.0f, 20.0f);
new GUITextBlock(new Rectangle(0, 0, 200, 20), component.UserData.ToString(), new GUITextBlock(new Rectangle(0, 0, 200, 20), component.UserData.ToString(),
GUI.Style, Alignment.TopLeft, Alignment.TopLeft, "", Alignment.TopLeft, Alignment.TopLeft,
playerFrameInner, false, GUI.LargeFont); playerFrameInner, false, GUI.LargeFont);
if (GameMain.Server != null) if (GameMain.Server != null)
{ {
var selectedClient = GameMain.Server.ConnectedClients.Find(c => c.name == component.UserData.ToString()); var selectedClient = GameMain.Server.ConnectedClients.Find(c => c.name == component.UserData.ToString());
new GUITextBlock(new Rectangle(0, 25, 150, 15), selectedClient.Connection.RemoteEndPoint.Address.ToString(), GUI.Style, playerFrameInner); new GUITextBlock(new Rectangle(0, 25, 150, 15), selectedClient.Connection.RemoteEndPoint.Address.ToString(), "", playerFrameInner);
var permissionsBox = new GUIFrame(new Rectangle(0, 60, 0, 90), GUI.Style, playerFrameInner); var permissionsBox = new GUIFrame(new Rectangle(0, 60, 0, 90), "", playerFrameInner);
permissionsBox.Padding = new Vector4(5.0f, 5.0f, 5.0f, 5.0f); permissionsBox.Padding = new Vector4(5.0f, 5.0f, 5.0f, 5.0f);
permissionsBox.UserData = selectedClient; permissionsBox.UserData = selectedClient;
new GUITextBlock(new Rectangle(0, 0, 0, 15), "Permissions:", GUI.Style, permissionsBox); new GUITextBlock(new Rectangle(0, 0, 0, 15), "Permissions:", "", permissionsBox);
int x = 0, y = 0; int x = 0, y = 0;
foreach (ClientPermissions permission in Enum.GetValues(typeof(ClientPermissions))) foreach (ClientPermissions permission in Enum.GetValues(typeof(ClientPermissions)))
{ {
@@ -880,7 +880,7 @@ namespace Barotrauma
if (GameMain.Server != null || GameMain.Client.HasPermission(ClientPermissions.Kick)) if (GameMain.Server != null || GameMain.Client.HasPermission(ClientPermissions.Kick))
{ {
var kickButton = new GUIButton(new Rectangle(0, -50, 100, 20), "Kick", Alignment.BottomLeft, GUI.Style, playerFrameInner); var kickButton = new GUIButton(new Rectangle(0, -50, 100, 20), "Kick", Alignment.BottomLeft, "", playerFrameInner);
kickButton.UserData = obj; kickButton.UserData = obj;
kickButton.OnClicked += KickPlayer; kickButton.OnClicked += KickPlayer;
kickButton.OnClicked += ClosePlayerFrame; kickButton.OnClicked += ClosePlayerFrame;
@@ -888,18 +888,18 @@ namespace Barotrauma
if (GameMain.Server != null || GameMain.Client.HasPermission(ClientPermissions.Ban)) if (GameMain.Server != null || GameMain.Client.HasPermission(ClientPermissions.Ban))
{ {
var banButton = new GUIButton(new Rectangle(0, 0, 100, 20), "Ban", Alignment.BottomLeft, GUI.Style, playerFrameInner); var banButton = new GUIButton(new Rectangle(0, 0, 100, 20), "Ban", Alignment.BottomLeft, "", playerFrameInner);
banButton.UserData = obj; banButton.UserData = obj;
banButton.OnClicked += BanPlayer; banButton.OnClicked += BanPlayer;
banButton.OnClicked += ClosePlayerFrame; banButton.OnClicked += ClosePlayerFrame;
var rangebanButton = new GUIButton(new Rectangle(0, -25, 100, 20), "Ban range", Alignment.BottomLeft, GUI.Style, playerFrameInner); var rangebanButton = new GUIButton(new Rectangle(0, -25, 100, 20), "Ban range", Alignment.BottomLeft, "", playerFrameInner);
rangebanButton.UserData = obj; rangebanButton.UserData = obj;
rangebanButton.OnClicked += BanPlayerRange; rangebanButton.OnClicked += BanPlayerRange;
rangebanButton.OnClicked += ClosePlayerFrame; rangebanButton.OnClicked += ClosePlayerFrame;
} }
var closeButton = new GUIButton(new Rectangle(0, 0, 100, 20), "Close", Alignment.BottomRight, GUI.Style, playerFrameInner); var closeButton = new GUIButton(new Rectangle(0, 0, 100, 20), "Close", Alignment.BottomRight, "", playerFrameInner);
closeButton.OnClicked = ClosePlayerFrame; closeButton.OnClicked = ClosePlayerFrame;
return false; return false;
@@ -1046,7 +1046,7 @@ namespace Barotrauma
GUITextBlock msg = new GUITextBlock(new Rectangle(0, 0, chatBox.Rect.Width, 0), GUITextBlock msg = new GUITextBlock(new Rectangle(0, 0, chatBox.Rect.Width, 0),
message.TextWithSender, message.TextWithSender,
((chatBox.CountChildren % 2) == 0) ? Color.Transparent : Color.Black*0.1f, message.Color, ((chatBox.CountChildren % 2) == 0) ? Color.Transparent : Color.Black*0.1f, message.Color,
Alignment.Left, GUI.Style, null, true); Alignment.Left, "", null, true);
msg.Font = GUI.SmallFont; msg.Font = GUI.SmallFont;
msg.UserData = message; msg.UserData = message;
msg.CanBeFocused = false; msg.CanBeFocused = false;
@@ -1153,7 +1153,7 @@ namespace Barotrauma
if (jobPrefab == null) return false; if (jobPrefab == null) return false;
jobInfoFrame = jobPrefab.CreateInfoFrame(); jobInfoFrame = jobPrefab.CreateInfoFrame();
GUIButton closeButton = new GUIButton(new Rectangle(0,0,100,20), "Close", Alignment.BottomRight, GUI.Style, jobInfoFrame.children[0]); GUIButton closeButton = new GUIButton(new Rectangle(0,0,100,20), "Close", Alignment.BottomRight, "", jobInfoFrame.children[0]);
closeButton.OnClicked = CloseJobInfo; closeButton.OnClicked = CloseJobInfo;
return true; return true;
} }
+23 -27
View File
@@ -37,23 +37,23 @@ namespace Barotrauma
Rectangle panelRect = new Rectangle(0, 0, width, height); Rectangle panelRect = new Rectangle(0, 0, width, height);
menu = new GUIFrame(panelRect, null, Alignment.Center, GUI.Style); menu = new GUIFrame(panelRect, null, Alignment.Center, "");
menu.Padding = new Vector4(40.0f, 40.0f, 40.0f, 20.0f); menu.Padding = new Vector4(40.0f, 40.0f, 40.0f, 20.0f);
new GUITextBlock(new Rectangle(0, -25, 0, 30), "Join Server", GUI.Style, Alignment.CenterX, Alignment.CenterX, menu, false, GUI.LargeFont); new GUITextBlock(new Rectangle(0, -25, 0, 30), "Join Server", "", Alignment.CenterX, Alignment.CenterX, menu, false, GUI.LargeFont);
new GUITextBlock(new Rectangle(0, 30, 0, 30), "Your Name:", GUI.Style, menu); new GUITextBlock(new Rectangle(0, 30, 0, 30), "Your Name:", "", menu);
clientNameBox = new GUITextBox(new Rectangle(0, 60, 200, 30), GUI.Style, menu); clientNameBox = new GUITextBox(new Rectangle(0, 60, 200, 30), "", menu);
new GUITextBlock(new Rectangle(0, 100, 0, 30), "Server IP:", GUI.Style, menu); new GUITextBlock(new Rectangle(0, 100, 0, 30), "Server IP:", "", menu);
ipBox = new GUITextBox(new Rectangle(0, 130, 200, 30), GUI.Style, menu); ipBox = new GUITextBox(new Rectangle(0, 130, 200, 30), "", menu);
int middleX = (int)(width * 0.4f); int middleX = (int)(width * 0.4f);
serverList = new GUIListBox(new Rectangle(middleX,60,0,height-160), GUI.Style, menu); serverList = new GUIListBox(new Rectangle(middleX,60,0,height-160), "", menu);
serverList.OnSelected = SelectServer; serverList.OnSelected = SelectServer;
float[] columnRelativeX = new float[] { 0.15f, 0.55f, 0.15f, 0.15f }; float[] columnRelativeX = new float[] { 0.15f, 0.5f, 0.15f, 0.2f };
columnX = new int[columnRelativeX.Length]; columnX = new int[columnRelativeX.Length];
for (int n = 0; n < columnX.Length; n++) for (int n = 0; n < columnX.Length; n++)
{ {
@@ -63,19 +63,19 @@ namespace Barotrauma
ScalableFont font = GUI.SmallFont; // serverList.Rect.Width < 400 ? GUI.SmallFont : GUI.Font; ScalableFont font = GUI.SmallFont; // serverList.Rect.Width < 400 ? GUI.SmallFont : GUI.Font;
new GUITextBlock(new Rectangle(middleX, 30, 0, 30), "Password", GUI.Style, menu).Font = font; new GUITextBlock(new Rectangle(middleX, 30, 0, 30), "Password", "", menu).Font = font;
new GUITextBlock(new Rectangle(middleX + columnX[0], 30, 0, 30), "Name", GUI.Style, menu).Font = font; new GUITextBlock(new Rectangle(middleX + columnX[0], 30, 0, 30), "Name", "", menu).Font = font;
new GUITextBlock(new Rectangle(middleX + columnX[1], 30, 0, 30), "Players", GUI.Style, menu).Font = font; new GUITextBlock(new Rectangle(middleX + columnX[1], 30, 0, 30), "Players", "", menu).Font = font;
new GUITextBlock(new Rectangle(middleX + columnX[2], 30, 0, 30), "Round started", GUI.Style, menu).Font = font; new GUITextBlock(new Rectangle(middleX + columnX[2], 30, 0, 30), "Round started", "", menu).Font = font;
joinButton = new GUIButton(new Rectangle(-170, 0, 150, 30), "Refresh", Alignment.BottomRight, GUI.Style, menu); joinButton = new GUIButton(new Rectangle(-170, 0, 150, 30), "Refresh", Alignment.BottomRight, "", menu);
joinButton.OnClicked = RefreshServers; joinButton.OnClicked = RefreshServers;
joinButton = new GUIButton(new Rectangle(0,0,150,30), "Join", Alignment.BottomRight, GUI.Style, menu); joinButton = new GUIButton(new Rectangle(0,0,150,30), "Join", Alignment.BottomRight, "", menu);
joinButton.OnClicked = JoinServer; joinButton.OnClicked = JoinServer;
GUIButton button = new GUIButton(new Rectangle(-20, -20, 100, 30), "Back", Alignment.TopLeft, GUI.Style, menu); GUIButton button = new GUIButton(new Rectangle(-20, -20, 100, 30), "Back", Alignment.TopLeft, "", menu);
button.OnClicked = GameMain.MainMenuScreen.SelectTab; button.OnClicked = GameMain.MainMenuScreen.SelectTab;
button.SelectedColor = button.Color; button.SelectedColor = button.Color;
@@ -105,7 +105,7 @@ namespace Barotrauma
if (waitingForRefresh) return false; if (waitingForRefresh) return false;
serverList.ClearChildren(); serverList.ClearChildren();
new GUITextBlock(new Rectangle(0, 0, 0, 20), "Refreshing server list...", GUI.Style, serverList); new GUITextBlock(new Rectangle(0, 0, 0, 20), "Refreshing server list...", "", serverList);
CoroutineManager.StartCoroutine(WaitForRefresh()); CoroutineManager.StartCoroutine(WaitForRefresh());
@@ -138,7 +138,7 @@ namespace Barotrauma
if (string.IsNullOrWhiteSpace(masterServerData)) if (string.IsNullOrWhiteSpace(masterServerData))
{ {
new GUITextBlock(new Rectangle(0, 0, 0, 20), "Couldn't find any servers", GUI.Style, serverList); new GUITextBlock(new Rectangle(0, 0, 0, 20), "Couldn't find any servers", "", serverList);
return; return;
} }
@@ -167,25 +167,23 @@ namespace Barotrauma
string hasPassWordStr = (arguments.Length > 6) ? arguments[6] : ""; string hasPassWordStr = (arguments.Length > 6) ? arguments[6] : "";
var serverFrame = new GUIFrame(new Rectangle(0, 0, 0, 20), (i % 2 == 0) ? Color.Transparent : Color.White * 0.2f, null, serverList); var serverFrame = new GUIFrame(new Rectangle(0, 0, 0, 30), (i % 2 == 0) ? Color.Transparent : Color.White * 0.2f, "ListBoxElement", serverList);
serverFrame.UserData = IP + ":" + port; serverFrame.UserData = IP + ":" + port;
serverFrame.HoverColor = Color.Gold * 0.2f;
serverFrame.SelectedColor = Color.Gold * 0.5f;
var passwordBox = new GUITickBox(new Rectangle(columnX[0] / 2, 0, 20, 20), "", Alignment.TopLeft, serverFrame); var passwordBox = new GUITickBox(new Rectangle(columnX[0] / 2, 0, 20, 20), "", Alignment.CenterLeft, serverFrame);
passwordBox.Selected = hasPassWordStr == "1"; passwordBox.Selected = hasPassWordStr == "1";
passwordBox.Enabled = false; passwordBox.Enabled = false;
passwordBox.UserData = "password"; passwordBox.UserData = "password";
new GUITextBlock(new Rectangle(columnX[0], 0, 0, 0), serverName, GUI.Style, serverFrame); new GUITextBlock(new Rectangle(columnX[0], 0, 0, 0), serverName, "", Alignment.TopLeft, Alignment.CenterLeft, serverFrame);
int playerCount = 0, maxPlayers = 1; int playerCount = 0, maxPlayers = 1;
int.TryParse(currPlayersStr, out playerCount); int.TryParse(currPlayersStr, out playerCount);
int.TryParse(maxPlayersStr, out maxPlayers); int.TryParse(maxPlayersStr, out maxPlayers);
new GUITextBlock(new Rectangle(columnX[1], 0, 0, 0), playerCount + "/" + maxPlayers, GUI.Style, serverFrame); new GUITextBlock(new Rectangle(columnX[1], 0, 0, 0), playerCount + "/" + maxPlayers, "", Alignment.TopLeft, Alignment.CenterLeft, serverFrame);
var gameStartedBox = new GUITickBox(new Rectangle(columnX[2] + (columnX[3] - columnX[2])/ 2, 0, 20, 20), "", Alignment.TopLeft, serverFrame); var gameStartedBox = new GUITickBox(new Rectangle(columnX[2] + (columnX[3] - columnX[2])/ 2, 0, 20, 20), "", Alignment.CenterRight, serverFrame);
gameStartedBox.Selected = gameStarted == "1"; gameStartedBox.Selected = gameStarted == "1";
gameStartedBox.Enabled = false; gameStartedBox.Enabled = false;
@@ -327,9 +325,7 @@ namespace Barotrauma
spriteBatch.Begin(); spriteBatch.Begin();
menu.Draw(spriteBatch); menu.Draw(spriteBatch);
//if (previewPlayer!=null) previewPlayer.Draw(spriteBatch);
GUI.Draw((float)deltaTime, spriteBatch, null); GUI.Draw((float)deltaTime, spriteBatch, null);
spriteBatch.End(); spriteBatch.End();
+5
View File
@@ -300,6 +300,11 @@ namespace Barotrauma
} }
public void DrawTiled(SpriteBatch spriteBatch, Vector2 pos, Vector2 targetSize, Vector2 startOffset, Color color) public void DrawTiled(SpriteBatch spriteBatch, Vector2 pos, Vector2 targetSize, Vector2 startOffset, Color color)
{
DrawTiled(spriteBatch, pos, targetSize, startOffset, sourceRect, color);
}
public void DrawTiled(SpriteBatch spriteBatch, Vector2 pos, Vector2 targetSize, Vector2 startOffset, Rectangle sourceRect, Color color)
{ {
//pos.X = (int)pos.X; //pos.X = (int)pos.X;
//pos.Y = (int)pos.Y; //pos.Y = (int)pos.Y;