From c9a5640436bea9e1edf2442d5f3600e440ee93a0 Mon Sep 17 00:00:00 2001 From: ErrorNoInternet Date: Wed, 19 Mar 2025 18:05:41 -0400 Subject: [PATCH] feat(item_stack): add custom consumable component --- src/lua/container/item_stack.rs | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/lua/container/item_stack.rs b/src/lua/container/item_stack.rs index 936403e..bb9f47b 100644 --- a/src/lua/container/item_stack.rs +++ b/src/lua/container/item_stack.rs @@ -1,6 +1,6 @@ use azalea::inventory::{ self, - components::{CustomName, Damage, Food, MaxDamage}, + components::{Consumable, CustomName, Damage, Food, MaxDamage}, }; use mlua::{UserData, UserDataFields, UserDataMethods}; @@ -32,6 +32,24 @@ impl UserData for ItemStack { .map(|data| data.components.get::().map(|d| d.amount))) }); + f.add_field_method_get("consumable", |lua, this| { + Ok( + if let Some(consumable) = this + .0 + .as_present() + .and_then(|data| data.components.get::()) + { + let table = lua.create_table()?; + table.set("animation", consumable.animation as u8)?; + table.set("consume_seconds", consumable.consume_seconds)?; + table.set("has_consume_particles", consumable.has_consume_particles)?; + Some(table) + } else { + None + }, + ) + }); + f.add_field_method_get("food", |lua, this| { Ok( if let Some(food) = this