Local resources don't create if already present (#745)
Local<T> will no longer insert the inner resource if it already exists.
This commit is contained in:
parent
dea05e9af5
commit
b6004e44cf
@ -295,9 +295,13 @@ impl<'a, T: Resource + FromResources> ResourceQuery for Local<'a, T> {
|
|||||||
type Fetch = FetchResourceLocalMut<T>;
|
type Fetch = FetchResourceLocalMut<T>;
|
||||||
|
|
||||||
fn initialize(resources: &mut Resources, id: Option<SystemId>) {
|
fn initialize(resources: &mut Resources, id: Option<SystemId>) {
|
||||||
let value = T::from_resources(resources);
|
|
||||||
let id = id.expect("Local<T> resources can only be used by systems");
|
let id = id.expect("Local<T> resources can only be used by systems");
|
||||||
resources.insert_local(id, value);
|
|
||||||
|
// Only add the local resource if it doesn't already exist for this system
|
||||||
|
if resources.get_local::<T>(id).is_none() {
|
||||||
|
let value = T::from_resources(resources);
|
||||||
|
resources.insert_local(id, value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user