1 package era.mi.logic.components;
3 import era.mi.logic.Simulation;
4 import era.mi.logic.wires.WireArray;
5 import era.mi.logic.wires.WireArrayObserver;
7 public abstract class BasicComponent implements WireArrayObserver
9 private int processTime;
13 * @param processTime Amount of time this component takes to update its outputs. Must be more than 0, otherwise 1 is assumed.
15 * @author Fabian Stemmler
17 public BasicComponent(int processTime)
19 this.processTime = processTime > 0 ? processTime : 1;
23 public void update(WireArray initiator)
25 Simulation.TIMELINE.addEvent((e) -> {compute();}, processTime);
28 protected abstract void compute();