use crate::script_implementations::wasm::export_registry::register; use crate::script_implementations::wasm::export_registry::FunctionEnvMut; use crate::script_implementations::wasm::extern_ref::ExternRef; use crate::script_implementations::wasm::script_resolver::WebAssemblyEnv; use crate::static_data::TypeLibrary; use crate::StringKey; register! { fn type_library_get_type_by_name( env: FunctionEnvMut, lib: ExternRef, name: ExternRef ) -> u8 { let lib = lib.value_func_arc(&env).unwrap(); let name = name.value_func(&env).unwrap(); let type_id = lib.get_type_id(name); if let Some(type_id) = type_id { type_id.into() } else { 0 } } fn type_library_get_single_effectiveness( env: FunctionEnvMut, lib: ExternRef, attacking: u8, defending: u8 ) -> f32 { let lib = lib.value_func_arc(&env).unwrap(); lib.get_single_effectiveness(attacking.into(), defending.into()) } }