use crate::script_implementations::wasm::export_registry::register; use crate::script_implementations::wasm::extern_ref::ExternRef; use crate::script_implementations::wasm::script_resolver::WebAssemblyEnv; use crate::static_data::Item; use crate::StringKey; use std::mem::transmute; use wasmer::FunctionEnvMut; register! { fn item_get_price( env: FunctionEnvMut, item: ExternRef, ) -> i32 { item.value_func(&env).unwrap().price() } fn item_get_name( env: FunctionEnvMut, item: ExternRef, ) -> ExternRef { ExternRef::func_new(&env, item.value_func(&env).unwrap().name()) } fn item_get_category( env: FunctionEnvMut, item: ExternRef, ) -> u8 { unsafe { transmute(item.value_func(&env).unwrap().category()) } } fn item_get_battle_category( env: FunctionEnvMut, item: ExternRef, ) -> u8 { unsafe { transmute(item.value_func(&env).unwrap().battle_category()) } } }