internal virtual void issueOrder(Order newOrder)
 {
     if (orderQueue.Count == 0)
     {
         executeOrder(newOrder);
     }
     else
     {
         orderQueue.Enqueue(newOrder);
     }
 }
 private void executeOrder(Order newOrder)
 {
     currentOrder = newOrder;
     newOrder.owner = this;
     newOrder.execute();
 }
 public void addOrder(Order issuedOrder)
 {
     orderList.Add(issuedOrder);
 }
 private void sendOrderToObject(dwObject2D obj, Order issuedOrder)
 {
     obj.issueOrder(issuedOrder);
 }
 protected void issueOrder(dwObject2D obj, Order issuedOrder)
 {
     sendOrderToObject(obj, issuedOrder);
 }
        //Order handling
        public virtual void issueInputOrder(dwObject2D obj, Order issuedOrder)
        {
            issuedOrder.owner = obj;

            currentFrameInput.addOrder(issuedOrder);
        }