PkmnLib_rs/src/script_implementations/wasm/export_registry/static_data/nature.rs

34 lines
1.0 KiB
Rust

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::Nature;
use std::mem::transmute;
use wasmer::FunctionEnvMut;
register! {
fn nature_get_increase_stat(
env: FunctionEnvMut<WebAssemblyEnv>,
nature: ExternRef<dyn Nature>
) -> u8 {
unsafe { transmute(nature.value_func_box(&env).unwrap().increased_stat()) }
}
fn nature_get_decrease_stat(
env: FunctionEnvMut<WebAssemblyEnv>,
nature: ExternRef<dyn Nature>
) -> u8 {
unsafe { transmute(nature.value_func_box(&env).unwrap().decreased_stat()) }
}
fn nature_get_increase_modifier(
env: FunctionEnvMut<WebAssemblyEnv>,
nature: ExternRef<dyn Nature>
) -> f32 {
nature.value_func_box(&env).unwrap().increased_modifier()
}
fn nature_get_decrease_modifier(
env: FunctionEnvMut<WebAssemblyEnv>,
nature: ExternRef<dyn Nature>
) -> f32 {
nature.value_func_box(&env).unwrap().decreased_modifier()
}
}