public void SetParam(string key, string value) {
Sync(() => {
switch (key) {
case "REMOTE/REQUESTED_CAR":
_model.CarId = value;
break;
case "CAR_0/SKIN":
_model.CarSkinId = value;
break;
case "REMOTE/SERVER_IP":
if (value != _model.Server?.Ip) {
_model.Server = new ServerInformation(value, _model.Server?.Port, _model.Server?.PortHttp, _model.Server?.Password,
_model.Server?.DisplayName);
}
break;
case "REMOTE/SERVER_PORT":
var port = FlexibleParser.TryParseInt(value);
if (port != _model.Server?.Port) {
_model.Server = new ServerInformation(_model.Server?.Ip, port, _model.Server?.PortHttp, _model.Server?.Password,
_model.Server?.DisplayName);
}
break;
case "REMOTE/SERVER_HTTP_PORT":
var portHttp = FlexibleParser.TryParseInt(value);
if (portHttp != _model.Server?.PortHttp) {
_model.Server = new ServerInformation(_model.Server?.Ip, _model.Server?.Port, portHttp,
_model.Server?.Password, _model.Server?.DisplayName);
}
break;
case "REMOTE/PASSWORD":
if (value != _model.Server?.Password) {
_model.Server = new ServerInformation(_model.Server?.Ip, _model.Server?.Port, _model.Server?.PortHttp, value,
_model.Server?.DisplayName);
}
break;
case "REMOTE/SERVER_NAME":
if (value != _model.Server?.DisplayName) {
_model.Server = new ServerInformation(_model.Server?.Ip, _model.Server?.Port, _model.Server?.PortHttp, _model.Server?.Password,
value);
}
break;
case "REMOTE/NAME":
Logging.Debug(value);
if (value != _model.Player?.DisplayName) {
_model.Player = new PlayerInformation(value, _model.Player?.Team, _model.Player?.Nationality);
}
break;
case "REMOTE/TEAM":
if (value != _model.Player?.Team) {
_model.Player = new PlayerInformation(_model.Player?.DisplayName, value, _model.Player?.Nationality);
}
break;
case "CAR_0/NATIONALITY":
if (value != _model.Player?.Nationality) {
_model.Player = new PlayerInformation(_model.Player?.DisplayName, _model.Player?.Team, value);
}
break;
}
});
}