private static void Main(string[] args) { //List<int> tl = new List<int> { 1, 2, 4, 5, 6, 7 }; //tl.ForEach(Test) ; var queue = new TradeQueue(); string tradeLoaderString = ConfigReader.GetConfig("Plugins").TradeLoader; string tradeConsumerString = ConfigReader.GetConfig("Plugins").TradeConsumer; var loader = DiLoader.GetType <ILoader>(tradeLoaderString); var consumers = new List <IConsumer>(); for (var i = 0; i < 5; i++) { consumers.Add(DiLoader.GetType <IConsumer>(tradeConsumerString)); } var processor = new MultiTradeProcessor(queue, consumers); processor.Start(); var readKey = ' '; Task.Factory.StartNew(() => Run(queue, loader)); while (readKey != 'm') { readKey = Console.ReadKey().KeyChar; } _flag = false; processor.Stop(); }
public void removeTrade(XElement trade) { if (TradeQueue.Contains(trade)) { TradeQueue.Remove(trade); trade.Remove(); } }
private static void Run(TradeQueue queue, ILoader loader) { var i = 0; while (_flag) { i++; Console.WriteLine("Reading ... " + i); queue.Queue(loader.GetNext()); } }
public Ship(XElement ship) : base(ship) { this._crew = new ObservableCollection <CMember>(); this._tradeQueue = new ObservableCollection <XElement>(); this._constructionWares = new ObservableCollection <XElement>(); this._drones = new ObservableCollection <XElement>(); if (ship.Attribute("name") == null) { EntityValueConverter conv = new EntityValueConverter(); XAttribute name = new XAttribute("name", conv.Convert(ship.Attribute("macro").Value, null, null, null)); ship.Add(name); } IEnumerable <XElement> crewquery = from crew in this.Data.Descendants().Elements("component") where (string)crew.Attribute("class") == "npc" select crew; foreach (XElement person in crewquery) { Crew.Add(new CMember(person)); } foreach (XElement trade in this.Data.Elements("trade").Elements("shopping").Elements("trade")) { TradeQueue.Add(trade); } IEnumerable <XElement> buildmodulesQuery = from buildmodules in this.Data.Descendants().Elements("connection") where (string)buildmodules.Attribute("macro") == "connection_buildmodule01" select buildmodules; IEnumerable <XElement> constructionWaresQuery = from wares in buildmodulesQuery.Descendants <XElement>().Elements("resources").Elements("ware") select wares; foreach (XElement ware in constructionWaresQuery) { ConstructionWares.Add(ware); } foreach (XElement drone in this.Data.Elements("ammunition").Elements("available").Elements("item")) { Drones.Add(drone); } IEnumerable <XElement> cargoList = from cargo in this.Data.Descendants().Elements("component") where (string)cargo.Attribute("class") == "storage" & (string)cargo.Attribute("macro") != "unit_player_ship_storage_macro" select cargo; foreach (XElement cargoType in cargoList) { string cargoTypeName = cargoType.Attribute("macro").Value; switch (cargoTypeName) { case "storage_ship_l_bulk_01_macro": case "storage_ship_m_bulk_01_macro": case "storage_ship_l_bulk_02_macro": case "storage_ship_l_bulk_03_macro": case "storage_ship_l_bulk_04_macro": case "storage_ship_xl_bulk_01_macro": BulkCargo = cargoType; break; case "storage_ship_l_container_01_macro": case "storage_ship_l_container_02_macro": case "storage_ship_m_container_01_macro": case "storage_ship_xl_container_01_macro": ContainerCargo = cargoType; break; case "storage_ship_l_energy_01_macro": case "storage_ship_l_energy_02_macro": case "storage_ship_xl_energy_01_macro": case "storage_ship_m_energy_01_macro": EnergyCargo = cargoType; break; case "storage_ship_l_fuel_01_macro": case "storage_ship_xl_fuel_01_macro": FuelCargo = cargoType; break; case "storage_ship_l_liquid_01_macro": case "storage_ship_l_liquid_02_macro": case "storage_ship_l_liquid_03_macro": case "storage_ship_xl_liquid_01_macro": case "storage_ship_m_liquid_01_macro": LiquidCargo = cargoType; break; case "storage_ship_xl_universal_01_macro": case "storage_ship_xs_universal_01_macro": case "storage_temp_huge_macro": UniversalCargo = cargoType; break; } } Gravidar = this.Data.Element("gravidar"); LoadDetails(); }
private async Task <bool> Run() { TradeQueue.Clear(); BattleCharacter target = GameObjectManager.Target as BattleCharacter; if (target == null) { Log("No target found to trade to."); return(false); } if (target.IsMe) { Log("We can't trade with ourselves."); return(false); } if (target.Type != GameObjectType.Pc) { Log("We can't trade with an NPC."); return(false); } if (!target.IsWithinInteractRange) { Log("Target is too far away to interact with."); return(false); } Log($"Starting to trade with {target.Name}."); await QueueTradeItems(AutoTradeSettings.ItemsToTrade); await TradeItems(TradeQueue, target); if (FailedTradeCount >= 5) { LogCritical("Too many failed trades, exiting."); } else if (!TradeQueue.Any()) { LogSuccess("Done trading!"); } else { LogCritical("We're done trading, but didn't trip FailedTradeCount and have items still in the queue?"); } if (InputNumeric.IsOpen) { InputNumeric.Close(); await Coroutine.Wait(5000, () => !InputNumeric.IsOpen); } if (Trade.IsOpen) { Trade.Close(); await Coroutine.Wait(5000, () => !Trade.IsOpen); } TradeQueue.TrimExcess(); TreeRoot.Stop("Finished trading."); return(true); }
private void AggregateTradesHandler(AggregateTradeMessage message) { TradeQueue.Enqueue(message); }