Ejemplo n.º 1
0
        public override bool Add(MyInventoryItem item, NewItemParams parameters = NewItemParams.None)
        {
            if ((parameters & NewItemParams.AsNewStack) != 0)
            {
                _items.Add(item);
                return(true);
            }

            var stackSize = item.GetDefinition().MaxStackAmount;

            for (var i = 0; i < _items.Count; i++)
            {
                var other = _items[i];
                if (!other.CanStack(item))
                {
                    continue;
                }
                var add = Math.Min(item.Amount, stackSize - other.Amount);
                _items[i] = other.Clone(other.Amount + add);
                item      = item.Clone(item.Amount - add);
                if (item.Amount == 0)
                {
                    break;
                }
            }

            if (item.Amount > 0)
            {
                _items.Add(item);
            }
            return(true);
        }
Ejemplo n.º 2
0
        public override bool AddItems(MyDefinitionId id, int amount, NewItemParams parameters = NewItemParams.None)
        {
            if (amount == 0)
            {
                return(false);
            }
            var item = MyInventoryItem.Create(id, amount);

            return(item != null && Add(item, parameters));
        }
 private Reference AddFromActiveX(NewItemParams p, string comGuid)
 {
     string toolName = GetToolName(p.Wrapper);
     return _references.AddActiveX(comGuid, p.MajorVersion, p.MinorVersion, p.LocaleID, toolName);
 }
Ejemplo n.º 4
0
        private Reference AddFromActiveX(NewItemParams p, string comGuid)
        {
            string toolName = GetToolName(p.Wrapper);

            return(_references.AddActiveX(comGuid, p.MajorVersion, p.MinorVersion, p.LocaleID, toolName));
        }