Gen7ScriptsRs/pkmn_lib_interface/src/app_interface/dynamic_data/party.rs

28 lines
643 B
Rust

use crate::app_interface::Pokemon;
use crate::{ExternRef, ExternalReferenceType};
#[derive(Clone)]
pub struct Party {
reference: ExternRef<Party>,
}
impl Party {
pub fn new(reference: ExternRef<Party>) -> Self {
Self { reference }
}
pub fn get_pokemon(&self, index: usize) -> Option<Pokemon> {
unsafe { party_get_pokemon(self.reference, index).get_value() }
}
}
impl ExternalReferenceType for Party {
fn from_extern_value(reference: ExternRef<Self>) -> Self {
Self::new(reference)
}
}
extern "wasm" {
fn party_get_pokemon(r: ExternRef<Party>, index: usize) -> ExternRef<Pokemon>;
}