Improve change logic
This commit is contained in:
parent
5815d2f8f3
commit
c7a7225c95
1 changed files with 8 additions and 4 deletions
|
@ -341,7 +341,7 @@ impl World {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn commit_entity_changes(&mut self) -> Result<bool> {
|
pub fn commit_entity_changes(&mut self) -> Result<()> {
|
||||||
#[cfg(debug_assertions)]
|
#[cfg(debug_assertions)]
|
||||||
{
|
{
|
||||||
if !self.entities_to_remove.is_empty() {
|
if !self.entities_to_remove.is_empty() {
|
||||||
|
@ -361,7 +361,7 @@ impl World {
|
||||||
&& self.entities_to_add.is_empty()
|
&& self.entities_to_add.is_empty()
|
||||||
&& self.entities_updates.is_empty()
|
&& self.entities_updates.is_empty()
|
||||||
{
|
{
|
||||||
return Ok(false);
|
return Ok(());
|
||||||
}
|
}
|
||||||
|
|
||||||
for entity in core::mem::take(&mut self.entities_to_remove) {
|
for entity in core::mem::take(&mut self.entities_to_remove) {
|
||||||
|
@ -409,7 +409,8 @@ impl World {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(true)
|
self.had_entity_changes = true;
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -431,13 +432,16 @@ impl World {
|
||||||
self.updates.update(w)?;
|
self.updates.update(w)?;
|
||||||
}
|
}
|
||||||
|
|
||||||
self.had_entity_changes = self.commit_entity_changes()?;
|
self.commit_entity_changes()?;
|
||||||
|
|
||||||
for system in systems.iter() {
|
for system in systems.iter() {
|
||||||
if !system(self)? {
|
if !system(self)? {
|
||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// reset flag
|
||||||
|
self.had_entity_changes = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue