import net.mograsim.logic.core.LogicObservable;
import net.mograsim.logic.core.LogicObserver;
import net.mograsim.logic.core.timeline.Timeline;
+import net.mograsim.logic.core.timeline.TimelineEventHandler;
/**
* A basic component that recomputes all outputs (with a delay), when it is updated.
}
@Override
- public void update(LogicObservable initiator)
+ public final void update(LogicObservable initiator)
{
- timeline.addEvent(e -> compute(), processTime);
+ TimelineEventHandler delayedUpdates = compute();
+ if (delayedUpdates != null)
+ timeline.addEvent(delayedUpdates, processTime);
}
- protected abstract void compute();
+ protected abstract TimelineEventHandler compute();
}