Exemplo n.º 1
0
        protected override void Open()
        {
            base.Open();

            if (!Owner.Owner.TryGetComponent(out GalacticMarketComponent market) ||
                !Owner.Owner.TryGetComponent(out CargoOrderDatabaseComponent orders))
            {
                return;
            }

            Market = market;
            Orders = orders;

            _menu      = new CargoConsoleMenu(this);
            _orderMenu = new CargoConsoleOrderMenu();

            _menu.OnClose += Close;

            _menu.Populate();

            Market.OnDatabaseUpdated += _menu.PopulateProducts;
            Market.OnDatabaseUpdated += _menu.PopulateCategories;
            Orders.OnDatabaseUpdated += _menu.PopulateOrders;

            _menu.CallShuttleButton.OnPressed += (args) =>
            {
                SendMessage(new SharedCargoConsoleComponent.CargoConsoleShuttleMessage());
            };
            _menu.OnItemSelected += (args) =>
            {
                if (!(args.Button.Parent is CargoProductRow row))
                {
                    return;
                }
                _product = row.Product;
                _orderMenu.Requester.Text = null;
                _orderMenu.Reason.Text    = null;
                _orderMenu.Amount.Value   = 1;
                _orderMenu.OpenCenteredMinSize();
            };
            _menu.OnOrderApproved             += ApproveOrder;
            _menu.OnOrderCanceled             += RemoveOrder;
            _orderMenu.SubmitButton.OnPressed += (args) =>
            {
                AddOrder();
                _orderMenu.Close();
            };

            _menu.OpenCentered();
        }
Exemplo n.º 2
0
 public void QueueTeleport(CargoProductPrototype product)
 {
     _teleportQueue.Add(product);
     TeleportLoop();
 }