예제 #1
0
 public void HandleOrder(EntityCommand entityCommand) //public because it's an interface.
 {
     if (entityCommand.IsValidCommand(Game))
     {
         if (FactionConnections.ContainsKey(entityCommand.RequestingFactionGuid))
         {
             foreach (var item in FactionConnections[entityCommand.RequestingFactionGuid])
             {
                 SendEntityCommandAck(item, entityCommand.CmdID, true);
             }
         }
         var orderableDB = entityCommand.EntityCommanding.GetDataBlob <OrderableDB>();
         orderableDB.AddCommandToList(entityCommand);
         orderableDB.ProcessOrderList(entityCommand.EntityCommanding.StarSysDateTime);
     }
 }
예제 #2
0
파일: Server.cs 프로젝트: mqrause/Pulsar4x
        public void HandleOrder(EntityCommand entityCommand) //public because it's an interface.
        {
            if (entityCommand.IsValidCommand(Game))
            {
                if (FactionConnections.ContainsKey(entityCommand.RequestingFactionGuid))
                {
                    foreach (var item in FactionConnections[entityCommand.RequestingFactionGuid])
                    {
                        SendEntityCommandAck(item, entityCommand.CmdID, true);
                    }
                }

                entityCommand.EntityCommanding.GetDataBlob <OrderableDB>().ActionList.Add(entityCommand);
                var commandList = entityCommand.EntityCommanding.GetDataBlob <OrderableDB>().ActionList;
                OrderableProcessor.ProcessOrderList(Game, commandList);
            }
        }
예제 #3
0
        void HandleEntityCommandAproval(NetIncomingMessage message)
        {
            Guid cmdID   = new Guid(message.ReadBytes(16));
            bool isValid = message.ReadBoolean();

            Messages.Add("Rx " + isValid + " ID " + cmdID);
            EntityCommand cmd = CommandsAwaitingServerAproval[cmdID];

            if (isValid && cmd.IsValidCommand(Game))
            {
                cmd.EntityCommanding.GetDataBlob <OrderableDB>().ActionList.Add(cmd);
                var commandList = cmd.EntityCommanding.GetDataBlob <OrderableDB>().ActionList;
                OrderableProcessor.ProcessOrderList(Game, commandList);
            }
            else
            {
                Messages.Add("Command not validated by server"); //TODO: maybe add messages from server saying why.
            }
            CommandsAwaitingServerAproval.Remove(cmdID);
        }