public override IEnumerable <ProductionItem> AllQueued() { // Pretend to have items queued, to allow direct placement. return(BuildableItems().Select(buildableItem => { // Cost == 0 to not consume money at this point. var item = new ProductionItem(this, buildableItem.Name, 0, null, null); // Required for GetBuildTime, else the production wont be ready after below Tick(). expectFakeProductionItemRequest = true; // Tick once, so the item is done. item.Tick(playerResources); return item; }).ToList()); }