public virtual void HandleCargo(IEnumerable <IMySlimBlock> cargoBlockList) { foreach (IMySlimBlock block in cargoBlockList) { IMyTerminalBlock cargoBlock = block.FatBlock as IMyTerminalBlock; if (cargoBlock == null) { continue; } string name = cargoBlock.CustomName ?? cargoBlock.CustomNameWithFaction; string customData = cargoBlock.CustomData; if (customData == null || !name.ToLower().StartsWith("trade")) { continue; } Match match = CargoBlockRegex.Match(customData); if (!match.Success) { continue; } var action = match.Groups[1].Value; var item = match.Groups[2].Value; if (action.Equals("buy")) { foreach (var tradeItem in Goods.Where(g => g.IsPurchasing)) { HandlePurchaseSequenceOnCargo(cargoBlock, tradeItem); } } else if (action.Equals("sell")) { try { var itemDefinition = ItemDefinitionFactory.DefinitionFromString(item); foreach (Item tradeItem in Goods.Where(g => g.IsSelling)) { if (tradeItem.Definition != itemDefinition) { continue; } HandleSellSequenceOnCargo(cargoBlock, tradeItem); } } catch (UnknownItemException exception) { MyAPIGateway.Utilities.ShowNotification("Error: Wrong item: " + exception.Message); } } } }
private void ParseDefinition(string itemType) { try { _definition = ItemDefinitionFactory.DefinitionFromString(itemType); } catch (UnknownItemException exception) { MyAPIGateway.Utilities.ShowNotification("Error: Creating item: " + exception.Message); } }
public override string ToString() { return(ItemDefinitionFactory.DefinitionToString(Definition)); }