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>;
 | 
			
		||||
 | 
			
		||||
    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");
 | 
			
		||||
        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