public IEnumerator GetNewWorld(IGetNewWorldRequest request, Action <IGetNewWorldRequest, IProcessWorldResponse> callback) { var response = CaravanServer.GetNewWorld(request); yield return(null); callback(request, response); }
public static GetNewWorldRequest Map(IGetNewWorldRequest c) { var result = new GetNewWorldRequest(); result.UserGuid = c.UserGuid; return(result); }
public IProcessWorldResponse GetNewWorld(IGetNewWorldRequest request) { if (request == null) { throw new ArgumentNullException(nameof(request)); } if (string.IsNullOrWhiteSpace(request.UserGuid)) { throw new Exception("UserGuid is empty"); } var generated = NewWorldGenerator.GenerateWorld(request.UserGuid); var result = new ProcessWorldResponseClientSideEntity(); result.Player = generated.Item2; result.World = generated.Item1; return(result); }
public async Task <ProcessWorldResponse> Get([FromBody] GetNewWorldRequest request) { try { IGetNewWorldRequest mapped = ToClientSideMapper.Map(request); var result = await CaravanServer.GetNewWorldAsync(mapped); var response = ToDtoMapper.Map(result); return(response); } catch (Exception e) { var result = new ProcessWorldResponse { Status = new ResponseStatus { Code = (int)ResponseStatusEnum.InernalError, ErrorMessage = e.Message } }; _logger.LogError(e, $"Error InternalServerError {GetType().Name} with request='{request.ToLog()}', response='{result.ToLog()}'"); return(result); } }
public async Task <IProcessWorldResponse> GetNewWorldAsync(IGetNewWorldRequest request) { if (request == null) { throw new ArgumentNullException(nameof(request)); } if (string.IsNullOrWhiteSpace(request.UserGuid)) { throw new Exception("UserGuid is empty"); } using var context = ContextFactory.GetContext(); using var instances = new Instances(context, NewInstanceFactory); var generated = instances.NewWorldGenerator.GenerateWorld(request.UserGuid); await context.SaveAsync(); return(new ProcessWorldResponseEntity { Player = generated.Item2, World = generated.Item1 }); }
public IEnumerator GetNewWorld(IGetNewWorldRequest request, Action <IGetNewWorldRequest, IProcessWorldResponse> callback) { var requestBody = ToDtoMapper.Map(request); var requestString = JsonConvert.SerializeObject(requestBody); var unityWebRequest = new UnityWebRequest("http://localhost:8066/GetNewWorld", "POST"); var bodyRaw = Encoding.UTF8.GetBytes(requestString); unityWebRequest.uploadHandler = new UploadHandlerRaw(bodyRaw); unityWebRequest.downloadHandler = new DownloadHandlerBuffer(); unityWebRequest.SetRequestHeader("Content-Type", "application/json"); yield return(unityWebRequest.SendWebRequest()); if (unityWebRequest.isNetworkError || unityWebRequest.isHttpError) { Debug.LogError($"Ping error. isNetworkError='{unityWebRequest.isNetworkError}', isHttpError='{unityWebRequest.isHttpError}', error:'{unityWebRequest.error}'"); callback(request, null); } else { var responseStr = unityWebRequest.downloadHandler.text; var response = JsonConvert.DeserializeObject <ProcessWorldResponse>(responseStr); if (response.Status == null || response.Status.Code != (int)ResponseStatusEnum.Success) { Debug.LogError($"Ping error. response code='{response.Status?.Code}', error='{response.Status?.ErrorMessage}'"); } else { Debug.Log("Ping ok'"); var result = ToClientSideMapper.Map(response); callback(request, result); } } }
public void ProcessServerResponse(IGetNewWorldRequest request, IProcessWorldResponse response) { WaitingServerResponse = false; lastPingDateTimeUtc = DateTime.UtcNow; if (response != null) { CommandsToSend = new List <IClientCommand>(); foreach (var obj in AllObjects) { obj.Value.Updated = false; } foreach (var city in response.World.Cities.Collection) { MapCity(city, response.Player); } MapPayer(response.Player, true); DestroyNotMappedWorldObjects(); World = response.World; Player = response.Player; // ReSharper disable once ConvertIfStatementToConditionalTernaryExpression if (Player.IsMoving) { MovePlayer = new MovePlayer(new Vector3(Player.X, Player.Y), new Vector3(Player.MoveToX, Player.MoveToY)); } else { MovePlayer = null; } } }
public IProcessWorldResponse GetNewWorld(IGetNewWorldRequest request) { throw new NotImplementedException(); }
public Task <IProcessWorldResponse> GetNewWorldAsync(IGetNewWorldRequest request) { return(Task.FromResult(GetNewWorld(request))); }