Beispiel #1
0
        public virtual void DamageItemInHand(ItemDamageReason reason, Entity target, Block block)
        {
            if (Player.GameMode != GameMode.Survival)
            {
                return;
            }

            var itemInHand = GetItemInHand();

            var unbreakingLevel = itemInHand.GetEnchantingLevel(EnchantingType.Unbreaking);

            if (unbreakingLevel > 0)
            {
                if (new Random().Next(1 + unbreakingLevel) != 0)
                {
                    return;
                }
            }


            if (itemInHand.DamageItem(Player, reason, target, block))
            {
                Slots[InHandSlot] = new ItemAir();

                var sound = McpeLevelSoundEventOld.CreateObject();
                sound.soundId    = 5;
                sound.blockId    = -1;
                sound.entityType = 1;
                sound.position   = Player.KnownPosition;
                Player.Level.RelayBroadcast(sound);
            }

            SendSetSlot(InHandSlot);
        }
Beispiel #2
0
        public override bool DamageItem(Player player, ItemDamageReason reason, Entity target, Block block)
        {
            switch (reason)
            {
            case ItemDamageReason.BlockBreak:
            {
                Metadata++;
                return(Metadata >= GetMaxUses() - 1);
            }

            case ItemDamageReason.BlockInteract:
            {
                if (block is Grass)
                {
                    Metadata++;
                    return(Metadata >= GetMaxUses() - 1);
                }
                return(false);
            }

            case ItemDamageReason.EntityAttack:
            {
                Metadata += 2;
                return(Metadata >= GetMaxUses() - 1);
            }

            default:
                return(false);
            }
        }
Beispiel #3
0
        public override bool DamageItem(Player player, ItemDamageReason reason, Entity target, Block block)
        {
            switch (reason)
            {
            case ItemDamageReason.BlockBreak:
            {
                if (block is Web || block is Leaves || block is Leaves2 || block is Wool || block is Vine)
                {
                    Metadata++;
                    return(Metadata >= GetMaxUses() - 1);
                }
                return(false);
            }

            case ItemDamageReason.EntityInteract:
            {
                if (target is Sheep)
                {
                    Metadata++;
                    return(Metadata >= GetMaxUses() - 1);
                }
                return(false);
            }

            default:
                return(false);
            }
        }
Beispiel #4
0
        public override bool DamageItem(Player player, ItemDamageReason reason, Entity target, Block block)
        {
            switch (reason)
            {
            case ItemDamageReason.ItemUse:
            {
                Metadata++;
                return(Metadata >= GetMaxUses());
            }

            default:
                return(false);
            }
        }
Beispiel #5
0
 public virtual bool DamageItem(Player player, ItemDamageReason reason, Entity target, Block block)
 {
     return(false);
 }