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)
|
||||
{
|
||||
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);
|
||||
foreach (var item in _subjects)
|
||||
{
|
||||
EcsMask submask = item.subject.mask;
|
||||
_inc.ExceptWith(submask._exc);//удаляю конфликтующие ограничения
|
||||
_exc.ExceptWith(submask._inc);//удаляю конфликтующие ограничения
|
||||
_inc.UnionWith(submask._inc);
|
||||
_exc.UnionWith(submask._exc);
|
||||
maskInc.ExceptWith(submask._exc);//удаляю конфликтующие ограничения
|
||||
maskExc.ExceptWith(submask._inc);//удаляю конфликтующие ограничения
|
||||
maskInc.UnionWith(submask._inc);
|
||||
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);
|
||||
var exc = _exc.ToArray();
|
||||
var exc = maskExc.ToArray();
|
||||
Array.Sort(exc);
|
||||
|
||||
mask = new EcsMask(_world.Archetype, inc, exc);
|
||||
|
Loading…
Reference in New Issue
Block a user