Initial work on wasm scripting backend
This commit is contained in:
@@ -1,5 +1,3 @@
|
||||
use std::lazy::SyncLazy;
|
||||
|
||||
use hashbrown::{HashMap, HashSet};
|
||||
|
||||
use crate::static_data::Form;
|
||||
@@ -28,7 +26,11 @@ pub struct Species {
|
||||
}
|
||||
|
||||
/// A cached String Key to get the default form.
|
||||
static DEFAULT_KEY: SyncLazy<StringKey> = SyncLazy::new(|| StringKey::new("default"));
|
||||
static DEFAULT_KEY: conquer_once::OnceCell<StringKey> = conquer_once::OnceCell::uninit();
|
||||
|
||||
fn get_default_key() -> StringKey {
|
||||
DEFAULT_KEY.get_or_init(|| StringKey::new("default")).clone()
|
||||
}
|
||||
|
||||
impl Species {
|
||||
/// Creates a new species.
|
||||
@@ -42,7 +44,7 @@ impl Species {
|
||||
flags: HashSet<StringKey>,
|
||||
) -> Species {
|
||||
let mut forms = HashMap::with_capacity(1);
|
||||
forms.insert_unique_unchecked(DEFAULT_KEY.clone(), default_form);
|
||||
forms.insert_unique_unchecked(get_default_key(), default_form);
|
||||
Species {
|
||||
id,
|
||||
name: name.clone(),
|
||||
@@ -96,7 +98,7 @@ impl Species {
|
||||
|
||||
/// Gets the form the Pokemon will have by default, if no other form is specified.
|
||||
pub fn get_default_form(&self) -> &Form {
|
||||
self.forms.get(&DEFAULT_KEY).unwrap()
|
||||
self.forms.get(&get_default_key()).unwrap()
|
||||
}
|
||||
|
||||
/// Gets a random gender.
|
||||
|
||||
Reference in New Issue
Block a user