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(); }
public void QueueTeleport(CargoProductPrototype product) { _teleportQueue.Add(product); TeleportLoop(); }