|
|
|
@ -2,27 +2,32 @@ import { Entity } from "../DatabaseServices/Entity/Entity";
|
|
|
|
|
|
|
|
|
|
export function EntityUpdateWrap(ent: Entity, exec: Function)
|
|
|
|
|
{
|
|
|
|
|
let bak = ent.AutoUpdate;
|
|
|
|
|
let oldAutoUpdate = ent.AutoUpdate;
|
|
|
|
|
ent.AutoUpdate = false;
|
|
|
|
|
exec();
|
|
|
|
|
ent.DeferUpdate();
|
|
|
|
|
ent.AutoUpdate = bak;
|
|
|
|
|
if (oldAutoUpdate)//如果原先是自动更新的,那么我们更新它,否则还是不更新(避免层层嵌套导致的性能优化丢失)
|
|
|
|
|
ent.DeferUpdate();
|
|
|
|
|
ent.AutoUpdate = oldAutoUpdate;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function EntitysUpdateWrap(ens: Entity[], exec: Function)
|
|
|
|
|
{
|
|
|
|
|
let baks = ens.map(e =>
|
|
|
|
|
{
|
|
|
|
|
let oldAutoUpdate = e.AutoUpdate;
|
|
|
|
|
e.AutoUpdate = false;
|
|
|
|
|
return e.AutoUpdate;
|
|
|
|
|
return oldAutoUpdate;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
exec();
|
|
|
|
|
|
|
|
|
|
for (let i = 0; i < ens.length; i++)
|
|
|
|
|
{
|
|
|
|
|
let en = ens[i];
|
|
|
|
|
en.DeferUpdate();
|
|
|
|
|
en.AutoUpdate = baks[i];
|
|
|
|
|
if (baks[i])
|
|
|
|
|
{
|
|
|
|
|
let en = ens[i];
|
|
|
|
|
en.DeferUpdate();
|
|
|
|
|
en.AutoUpdate = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|