示例#1
0
        private void RefillSlotIfEmpty(IItemSlot slot, IEntityAgent byEntity)
        {
            if (!slot.Empty)
            {
                return;
            }

            byEntity.WalkInventory((invslot) =>
            {
                if (invslot is ItemSlotCreative)
                {
                    return(true);
                }

                if (invslot.Itemstack != null && invslot.Itemstack.Collectible is ItemSpear)
                {
                    invslot.TryPutInto(byEntity.World, slot);
                    invslot.Inventory.PerformNotifySlot(invslot.Inventory.GetSlotId(invslot));
                    slot.Inventory.PerformNotifySlot(slot.Inventory.GetSlotId(slot));

                    return(false);
                }

                return(true);
            });
        }
示例#2
0
        IItemSlot Gethammer(IEntityAgent byEntity)
        {
            IItemSlot slot = null;

            byEntity.WalkInventory((invslot) =>
            {
                //if (invslot is CreativeSlot) return true;

                if (invslot.Itemstack != null && invslot.Itemstack.Collectible.Code.FirstPathPart(0) == "hammer")
                {
                    slot = invslot;
                    return(false);
                }

                return(true);
            });

            return(slot);
        }
示例#3
0
        IItemSlot GetNextArrow(IEntityAgent byEntity)
        {
            IItemSlot slot = null;

            byEntity.WalkInventory((invslot) =>
            {
                if (invslot is ItemSlotCreative)
                {
                    return(true);
                }

                if (invslot.Itemstack != null && invslot.Itemstack.Collectible.Code.Path.StartsWith("arrow-"))
                {
                    slot = invslot;
                    return(false);
                }

                return(true);
            });

            return(slot);
        }