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;
|
||||
|
||||
string settingsPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "settings.yaml");
|
||||
ClientConfiguration clientConfiguration;
|
||||
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));
|
||||
}
|
||||
ClientConfiguration clientConfiguration = GetOrCreateConfiguration(serializer, logger, settingsPath);
|
||||
|
||||
if (clientConfiguration.Host)
|
||||
Pong.PongUniverse.ApplyPongServer(universe, clientConfiguration.HostPort);
|
||||
@ -57,3 +45,30 @@ universe.FindBehaviour<Syntriax.Engine.Network.INetworkCommunicatorClient>()?
|
||||
);
|
||||
|
||||
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