mirror of
https://github.com/DCFApixels/DragonECS.git
synced 2025-09-18 18:14:37 +08:00
priority of base subject constraints
This commit is contained in:
parent
11acff9bac
commit
17680cc295
@ -113,22 +113,35 @@ namespace DCFApixels.DragonECS
|
|||||||
|
|
||||||
private void End(out EcsMask mask)
|
private void End(out EcsMask mask)
|
||||||
{
|
{
|
||||||
if(_subjects.Count > 0)
|
HashSet<int> maskInc;
|
||||||
|
HashSet<int> maskExc;
|
||||||
|
if (_subjects.Count > 0)
|
||||||
{
|
{
|
||||||
|
maskInc = new HashSet<int>();
|
||||||
|
maskExc = new HashSet<int>();
|
||||||
_subjects.Sort((a, b) => a.order - b.order);
|
_subjects.Sort((a, b) => a.order - b.order);
|
||||||
foreach (var item in _subjects)
|
foreach (var item in _subjects)
|
||||||
{
|
{
|
||||||
EcsMask submask = item.subject.mask;
|
EcsMask submask = item.subject.mask;
|
||||||
_inc.ExceptWith(submask._exc);//удаляю конфликтующие ограничения
|
maskInc.ExceptWith(submask._exc);//удаляю конфликтующие ограничения
|
||||||
_exc.ExceptWith(submask._inc);//удаляю конфликтующие ограничения
|
maskExc.ExceptWith(submask._inc);//удаляю конфликтующие ограничения
|
||||||
_inc.UnionWith(submask._inc);
|
maskInc.UnionWith(submask._inc);
|
||||||
_exc.UnionWith(submask._exc);
|
maskExc.UnionWith(submask._exc);
|
||||||
}
|
}
|
||||||
|
maskInc.ExceptWith(_exc);//удаляю конфликтующие ограничения
|
||||||
|
maskExc.ExceptWith(_inc);//удаляю конфликтующие ограничения
|
||||||
|
maskInc.UnionWith(_inc);
|
||||||
|
maskExc.UnionWith(_exc);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
maskInc = _inc;
|
||||||
|
maskExc = _exc;
|
||||||
}
|
}
|
||||||
|
|
||||||
var inc = _inc.ToArray();
|
var inc = maskInc.ToArray();
|
||||||
Array.Sort(inc);
|
Array.Sort(inc);
|
||||||
var exc = _exc.ToArray();
|
var exc = maskExc.ToArray();
|
||||||
Array.Sort(exc);
|
Array.Sort(exc);
|
||||||
|
|
||||||
mask = new EcsMask(_world.Archetype, inc, exc);
|
mask = new EcsMask(_world.Archetype, inc, exc);
|
||||||
|
Loading…
Reference in New Issue
Block a user