Implement coevent.

This commit is contained in:
2023-01-09 16:28:36 +08:00
parent 0a1e512f41
commit 4e851d9b73
3 changed files with 59 additions and 23 deletions

View File

@@ -119,9 +119,16 @@ namespace Cryville.Crtr.Event {
var batch = events[EventId];
for (var i = 0; i < batch.Count; i++) {
var ev = batch[i];
if (ev.Container != null) {
EnsureActivity(ev.Container);
states[ev.Container].Handle(ev);
if (ev.Coevents == null) {
if (ev.Container != null) {
EnsureActivity(ev.Container);
states[ev.Container].Handle(ev);
}
}
else foreach (var cev in ev.Coevents) {
if (cev.Container == null) continue;
EnsureActivity(cev.Container);
states[cev.Container].Handle(cev);
}
if (ev.Unstamped is EventContainer) {
if (ev.Container != null) EnsureActivity((EventContainer)ev.Unstamped);