chore: tidied up client configuration reading
This commit is contained in:
parent
64ee9a0789
commit
20c2682e61
@ -22,19 +22,7 @@ logger = new LoggerWrapper(logger, new ConsoleLogger());
|
|||||||
universe.InstantiateUniverseObject().SetUniverseObject("Logger").BehaviourController.AddBehaviour<LoggerContainer>().Logger = logger;
|
universe.InstantiateUniverseObject().SetUniverseObject("Logger").BehaviourController.AddBehaviour<LoggerContainer>().Logger = logger;
|
||||||
|
|
||||||
string settingsPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "settings.yaml");
|
string settingsPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "settings.yaml");
|
||||||
ClientConfiguration clientConfiguration;
|
ClientConfiguration clientConfiguration = GetOrCreateConfiguration(serializer, logger, settingsPath);
|
||||||
try
|
|
||||||
{
|
|
||||||
clientConfiguration = serializer.Deserialize<ClientConfiguration>(File.ReadAllText(settingsPath));
|
|
||||||
logger.Log(clientConfiguration, $"{settingsPath} read");
|
|
||||||
}
|
|
||||||
catch (Exception exception)
|
|
||||||
{
|
|
||||||
clientConfiguration = new();
|
|
||||||
logger.LogError(serializer, $"Error loading {settingsPath}. Creating new settings file");
|
|
||||||
logger.LogException(serializer, exception);
|
|
||||||
File.WriteAllText(settingsPath, serializer.Serialize(clientConfiguration));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (clientConfiguration.Host)
|
if (clientConfiguration.Host)
|
||||||
Pong.PongUniverse.ApplyPongServer(universe, clientConfiguration.HostPort);
|
Pong.PongUniverse.ApplyPongServer(universe, clientConfiguration.HostPort);
|
||||||
@ -57,3 +45,30 @@ universe.FindBehaviour<Syntriax.Engine.Network.INetworkCommunicatorClient>()?
|
|||||||
);
|
);
|
||||||
|
|
||||||
monoGameWindow.Run();
|
monoGameWindow.Run();
|
||||||
|
|
||||||
|
static ClientConfiguration GetOrCreateConfiguration(ISerializer serializer, ILogger logger, string settingsPath)
|
||||||
|
{
|
||||||
|
ClientConfiguration clientConfiguration;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
clientConfiguration = serializer.Deserialize<ClientConfiguration>(File.ReadAllText(settingsPath));
|
||||||
|
logger.Log(clientConfiguration, $"Configuration is successfully read");
|
||||||
|
}
|
||||||
|
catch (FileNotFoundException _)
|
||||||
|
{
|
||||||
|
clientConfiguration = new();
|
||||||
|
logger.Log(clientConfiguration, $"Configuration does not exist");
|
||||||
|
File.WriteAllText(settingsPath, serializer.Serialize(clientConfiguration));
|
||||||
|
}
|
||||||
|
catch (Exception exception)
|
||||||
|
{
|
||||||
|
clientConfiguration = new();
|
||||||
|
logger.LogError(clientConfiguration, $"Error loading configuration");
|
||||||
|
logger.LogException(clientConfiguration, exception);
|
||||||
|
File.WriteAllText(settingsPath, serializer.Serialize(clientConfiguration));
|
||||||
|
}
|
||||||
|
|
||||||
|
logger.Log(clientConfiguration, $"Creating new configuration file at {settingsPath}");
|
||||||
|
return clientConfiguration;
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user