示例#1
0
        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);
                    }
                }
            }
        }
示例#2
0
 private void ParseDefinition(string itemType)
 {
     try
     {
         _definition = ItemDefinitionFactory.DefinitionFromString(itemType);
     }
     catch (UnknownItemException exception)
     {
         MyAPIGateway.Utilities.ShowNotification("Error: Creating item: " + exception.Message);
     }
 }
示例#3
0
 public override string ToString()
 {
     return(ItemDefinitionFactory.DefinitionToString(Definition));
 }