34 lines
1.0 KiB
Rust
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()
|
|
}
|
|
}
|