Skip to main content

ItemBehavior

Trait ItemBehavior 

Source
pub trait ItemBehavior: Send + Sync {
Show 18 methods // Provided methods fn type_name(&self) -> &'static str { ... } fn get_name<'a>(&self, stack: &'a ItemStack) -> Cow<'a, TextComponent> { ... } fn use_on(&self, _context: &mut UseOnContext<'_>) -> InteractionResult { ... } fn use_item(&self, context: &mut UseItemContext<'_>) -> InteractionResult { ... } fn get_use_animation(&self, stack: &ItemStack) -> ItemUseAnimation { ... } fn get_use_duration( &self, stack: &ItemStack, _user: &dyn LivingEntity, ) -> i32 { ... } fn on_use_tick( &self, _world: &Arc<World>, user: &dyn LivingEntity, stack: &mut ItemStack, ticks_remaining: i32, ) { ... } fn release_using( &self, _stack: &mut ItemStack, _world: &Arc<World>, _user: &dyn LivingEntity, _time_left: i32, ) -> bool { ... } fn use_on_release(&self, _stack: &ItemStack) -> bool { ... } fn finish_using( &self, stack: &mut ItemStack, world: &Arc<World>, user: &dyn LivingEntity, ) -> ItemStack { ... } fn interact_living_entity( &self, _stack: &mut ItemStack, _player: &Player, _target: &dyn LivingEntity, _hand: InteractionHand, ) -> InteractionResult { ... } fn get_item_damage_source( &self, _attacker: &dyn LivingEntity, ) -> Option<DamageSource> { ... } fn get_attack_damage_bonus( &self, _attacker: &dyn LivingEntity, _victim: &dyn Entity, _base_damage: f32, _damage_source: &DamageSource, ) -> f32 { ... } fn hurt_enemy( &self, _stack: &mut ItemStack, _target: &dyn LivingEntity, _attacker: &dyn LivingEntity, ) { ... } fn post_hurt_enemy( &self, _stack: &mut ItemStack, _target: &dyn LivingEntity, _attacker: &dyn LivingEntity, ) { ... } fn item_damage_per_attack(&self, stack: &ItemStack) -> Option<i32> { ... } fn can_fit_inside_container_items(&self) -> bool { ... } fn as_spawn_egg(&self) -> Option<&SpawnEggItem> { ... }
}
Expand description

Trait defining the behavior of an item.

This trait handles dynamic/functional aspects of items:

  • Use on blocks (placing, interacting)
  • Use in air
  • etc.

Provided Methods§

Source

fn type_name(&self) -> &'static str

Returns the Rust type name of the concrete behavior implementation.

Source

fn get_name<'a>(&self, stack: &'a ItemStack) -> Cow<'a, TextComponent>

Returns vanilla Item.getName(stack).

Source

fn use_on(&self, _context: &mut UseOnContext<'_>) -> InteractionResult

Called when this item is used on a block.

Source

fn use_item(&self, context: &mut UseItemContext<'_>) -> InteractionResult

Called when this item is used (e.g. right click in air).

Source

fn get_use_animation(&self, stack: &ItemStack) -> ItemUseAnimation

Returns vanilla Item.getUseAnimation.

Source

fn get_use_duration(&self, stack: &ItemStack, _user: &dyn LivingEntity) -> i32

Returns vanilla Item.getUseDuration.

Source

fn on_use_tick( &self, _world: &Arc<World>, user: &dyn LivingEntity, stack: &mut ItemStack, ticks_remaining: i32, )

Called every tick while a living entity is actively using this item.

Source

fn release_using( &self, _stack: &mut ItemStack, _world: &Arc<World>, _user: &dyn LivingEntity, _time_left: i32, ) -> bool

Called when active use is released before completion.

Returns whether vanilla should apply the stack’s after-use component side effects.

Source

fn use_on_release(&self, _stack: &ItemStack) -> bool

Returns whether the item acts when the use key is released, rather than the use timer expiring

Source

fn finish_using( &self, stack: &mut ItemStack, world: &Arc<World>, user: &dyn LivingEntity, ) -> ItemStack

Called when active use reaches its full duration.

Source

fn interact_living_entity( &self, _stack: &mut ItemStack, _player: &Player, _target: &dyn LivingEntity, _hand: InteractionHand, ) -> InteractionResult

Called by vanilla ItemStack.interactLivingEntity.

Source

fn get_item_damage_source( &self, _attacker: &dyn LivingEntity, ) -> Option<DamageSource>

Returns vanilla Item.getItemDamageSource.

Source

fn get_attack_damage_bonus( &self, _attacker: &dyn LivingEntity, _victim: &dyn Entity, _base_damage: f32, _damage_source: &DamageSource, ) -> f32

Returns item-specific attack damage added by Item.getAttackDamageBonus.

Source

fn hurt_enemy( &self, _stack: &mut ItemStack, _target: &dyn LivingEntity, _attacker: &dyn LivingEntity, )

Called by vanilla Item.hurtEnemy.

Source

fn post_hurt_enemy( &self, _stack: &mut ItemStack, _target: &dyn LivingEntity, _attacker: &dyn LivingEntity, )

Called by vanilla Item.postHurtEnemy.

Source

fn item_damage_per_attack(&self, stack: &ItemStack) -> Option<i32>

Returns how much durability this weapon consumes after a successful entity hit.

Source

fn can_fit_inside_container_items(&self) -> bool

Whether this item may be stored inside container items such as shulker boxes and bundles, which vanilla uses to stop them nesting.

Source

fn as_spawn_egg(&self) -> Option<&SpawnEggItem>

Returns this item behavior as a SpawnEggItem.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl ItemBehavior for AirItem

Source§

impl ItemBehavior for AxeItem

Source§

impl ItemBehavior for BedItem

Source§

impl ItemBehavior for BlockItem

Source§

impl ItemBehavior for BoneMealItem

Source§

impl ItemBehavior for BottleItem

Source§

impl ItemBehavior for BrushItem

Source§

impl ItemBehavior for BucketItem

Source§

impl ItemBehavior for CompassItem

Source§

impl ItemBehavior for DefaultItemBehavior

Source§

impl ItemBehavior for DoubleHighBlockItem

Source§

impl ItemBehavior for DyeItem

Source§

impl ItemBehavior for EggItem

Source§

impl ItemBehavior for EnderEyeItem

Source§

impl ItemBehavior for EnderPearlItem

Source§

impl ItemBehavior for FireChargeItem

Source§

impl ItemBehavior for FireworkRocketItem

Source§

impl ItemBehavior for FishingRodItem

Source§

impl ItemBehavior for FlintAndSteelItem

Source§

impl ItemBehavior for FoodOnAStickItem

Source§

impl ItemBehavior for GlowInkSacItem

Source§

impl ItemBehavior for HangingSignItem

Source§

impl ItemBehavior for HoeItem

Source§

impl ItemBehavior for HoneycombItem

Source§

impl ItemBehavior for InkSacItem

Source§

impl ItemBehavior for LeadItem

Source§

impl ItemBehavior for LingeringPotionItem

Source§

impl ItemBehavior for MaceItem

Source§

impl ItemBehavior for NameTagItem

Source§

impl ItemBehavior for PlaceOnWaterBlockItem

Source§

impl ItemBehavior for PlayerHeadItem

Source§

impl ItemBehavior for PotionItem

Source§

impl ItemBehavior for ScaffoldingBlockItem

Source§

impl ItemBehavior for ShearsItem

Source§

impl ItemBehavior for ShieldItem

Source§

impl ItemBehavior for ShovelItem

Source§

impl ItemBehavior for SignItem

Source§

impl ItemBehavior for SnowballItem

Source§

impl ItemBehavior for SolidBucketItem

Source§

impl ItemBehavior for SpawnEggItem

Source§

impl ItemBehavior for SplashPotionItem

Source§

impl ItemBehavior for SpyglassItem

Source§

impl ItemBehavior for StandingAndWallBlockItem

Source§

impl ItemBehavior for TippedArrowItem