Added config file to client

This commit is contained in:
Daniel Brunner
2016-11-01 22:31:04 +01:00
parent fda1ea2e4e
commit af1fdf5a25
6 changed files with 63 additions and 8 deletions

View File

@@ -0,0 +1,23 @@
using System;
namespace FluckyGame.Client
{
internal class ClientSettings
{
public Resolution resolution;
public Server server;
public struct Resolution
{
public int width;
public int height;
public bool fullscreen;
}
public struct Server
{
public string hostname;
public int port;
}
}
}

View File

@@ -64,6 +64,10 @@
<Reference Include="Microsoft.Xna.Framework.Graphics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=842cf8be1de50553, processorArchitecture=x86" />
<Reference Include="Microsoft.Xna.Framework.GamerServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=842cf8be1de50553, processorArchitecture=x86" />
<Reference Include="mscorlib" />
<Reference Include="Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
@@ -73,6 +77,7 @@
</ItemGroup>
<ItemGroup>
<Compile Include="Bone.cs" />
<Compile Include="ClientSettings.cs" />
<Compile Include="Entities\BouncingEntity.cs" />
<Compile Include="Entities\Entity.cs" />
<Compile Include="Entities\TerrainEntity.cs" />
@@ -119,6 +124,12 @@
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<None Include="client.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\Microsoft.Xna.GameStudio.targets" />
<!--

View File

@@ -14,7 +14,7 @@ using FluckyGame.Library;
namespace FluckyGame.Client
{
public class Game1 : Microsoft.Xna.Framework.Game
internal class Game1 : Microsoft.Xna.Framework.Game
{
public static Game1 currentInstance;
public static Random random;
@@ -47,7 +47,7 @@ namespace FluckyGame.Client
random = new Random();
}
public Game1(TcpClient tcpClient)
public Game1(TcpClient tcpClient, ClientSettings clientSettings)
{
this.tcpClient = tcpClient;
@@ -55,8 +55,9 @@ namespace FluckyGame.Client
graphicsDeviceManager = new GraphicsDeviceManager(this)
{
PreferredBackBufferWidth = 1920 / 2,
PreferredBackBufferHeight = 1080 / 2
PreferredBackBufferWidth = clientSettings.resolution.width,
PreferredBackBufferHeight = clientSettings.resolution.height,
IsFullScreen = clientSettings.resolution.fullscreen
};
Content.RootDirectory = "Content";

View File

@@ -1,18 +1,23 @@
using System;
using System.Net.Sockets;
using System.Windows.Forms;
using Newtonsoft.Json;
using System.IO;
namespace FluckyGame.Client
{
static class Program
internal static class Program
{
static void Main(string[] args)
private static void Main(string[] args)
{
//TODO: error handling !!!
var settings = JsonConvert.DeserializeObject<ClientSettings>(File.ReadAllText("client.json"));
TcpClient tcpClient;
try
{
tcpClient = new TcpClient("home.brunner.ninja", 8001);
tcpClient = new TcpClient(settings.server.hostname, settings.server.port);
}
catch (Exception ex)
{
@@ -20,7 +25,7 @@ namespace FluckyGame.Client
return;
}
using (Game1 game = new Game1(tcpClient))
using (Game1 game = new Game1(tcpClient, settings))
game.Run();
}
}

View File

@@ -0,0 +1,11 @@
{
"resolution": {
"width": 3840,
"height": 2160,
"fullscreen": true
},
"server": {
"hostname": "localhost",
"port": 8001
}
}

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
</packages>