\r
import java.util.List;\r
\r
-import era.mi.logic.Bit;\r
import era.mi.logic.Simulation;\r
import era.mi.logic.timeline.TimelineEvent;\r
import era.mi.logic.timeline.TimelineEventHandler;\r
-import era.mi.logic.wires.WireArray;\r
-import era.mi.logic.wires.WireArray.WireArrayEnd;\r
+import era.mi.logic.types.Bit;\r
+import era.mi.logic.wires.Wire;\r
+import era.mi.logic.wires.Wire.WireEnd;\r
\r
public class Clock implements TimelineEventHandler, Component\r
{\r
private boolean toggle = false;\r
- private WireArrayEnd outI;\r
+ private WireEnd out;\r
private int delta;\r
\r
/**\r
* \r
- * @param out {@link WireArray} the clock's impulses are fed into\r
+ * @param out {@link Wire} the clock's impulses are fed into\r
* @param delta ticks between rising and falling edge\r
*/\r
- public Clock(WireArray out, int delta)\r
+ public Clock(WireEnd out, int delta)\r
{\r
this.delta = delta;\r
- this.outI = out.createInput();\r
- Simulation.TIMELINE.addEvent(this, delta);\r
+ this.out = out;\r
+ addToTimeline();\r
}\r
\r
@Override\r
public void handle(TimelineEvent e)\r
{\r
addToTimeline();\r
- outI.feedSignals(toggle ? Bit.ONE : Bit.ZERO);\r
+ out.feedSignals(toggle ? Bit.ONE : Bit.ZERO);\r
toggle = !toggle;\r
}\r
\r
- public WireArray getOut()\r
+ public WireEnd getOut()\r
{\r
- return outI.owner;\r
+ return out;\r
}\r
\r
private void addToTimeline()\r
}\r
\r
@Override\r
- public List<WireArray> getAllInputs()\r
+ public List<WireEnd> getAllInputs()\r
{\r
return List.of();\r
}\r
\r
@Override\r
- public List<WireArray> getAllOutputs()\r
+ public List<WireEnd> getAllOutputs()\r
{\r
- return List.of(outI.owner);\r
+ return List.of(out);\r
}\r
}\r