Пример #1
0
        private void Update()
        {
            //if (GameStatus.Paused) return;
            if (CaravanServer != null && World != null)
            {
                try
                {
                    if (!WaitingServerResponse && (lastPingDateTimeUtc.AddSeconds(1) < DateTime.UtcNow || CommandsToSend.Any()))
                    {
                        WaitingServerResponse = true;

                        var request = new ProcessWorldRequestClientSideEntity
                        {
                            WorldGuid      = World?.Guid,
                            Player         = Player,
                            ClientCommands = CommandsToSend.ToArray()
                        };

                        StartCoroutine(CaravanServer.ProcessWorld(request, ProcessServerResponse));
                        lastPingDateTimeUtc = DateTime.UtcNow;
                    }

                    ProcessMovePlayer();
                }
                catch (Exception e)
                {
                    CaravanServer = null;
                    Debug.LogError($"Error while WorldController.Update(): {e}");
                }
            }
        }
Пример #2
0
        public static IProcessWorldRequest Map(ProcessWorldRequest c)
        {
            var result = new ProcessWorldRequestClientSideEntity();

            result.WorldGuid                  = c.WorldGuid;
            result.Player                     = Map(c.Player);
            result.ClientCommands             = Map(c.ClientCommands);
            result.LastServerCommandProcessed = c.LastServerCommandProcessed;
            return(result);
        }