public static TronicSequence StartFromReciever(DataNodeIn Channel, DataNodeOut Username, DataNodeOut Message, N8BlockFactory Blocks = null, string name = "Reciever") { TronicSequence ts = new TronicSequence(Blocks); ts.Button(1, "Reciever Setup") .RadioReciever(Channel, Username, Message, name); return ts; }
public static TronicSequence StartFromKeyboard(N8BlockFactory Blocks = null, DataNodeOut DataOut = null, string name = "Keyboard") { TronicSequence ts = new TronicSequence(Blocks); //I just learned about the null coalsece operator! it is awesome. ts.Keyboard(DataOut ?? ts.NewDataBlock().Out, name); if (!ts.data.Contains(DataOut.Parent)) { ts.data.Add(DataOut.Parent); } return ts; }
protected TronicSequence Keyboard(DataNodeOut Out, string name = "Keyboard") { Keyboard k = tronics.Keyboard(name); k.DataOutA(Out); CurrentTronic = k; CurrentOut = k.GetNode(NodeType.FlowOutA); sequence.Add(k); return this; }
private void WireArithmeticNode(FlowTronic next, DataNodeIn DataInA, DataNodeIn DataInB, DataNodeOut DataOut, NodeType NextOut = NodeType.FlowOutA) { next.DataInA(DataInA); next.DataInB(DataInB); next.DataOutA(DataOut); Append(next, next.GetNode(NextOut)); }
public TronicSequence Rotor(DataNodeIn DataInA, DataNodeOut DataOutA, string name = "Rotor") { CheckCanAppend(); FlowTronic NextTronic = tronics.Rotor(name); NextTronic.DataInA(DataInA); NextTronic.DataOutA(DataOutA); Append(NextTronic, NextTronic.GetNode(NodeType.FlowOutA)); return this; }
public TronicSequence Subtract(DataNodeIn DataInA, DataNodeIn DataInB, DataNodeOut DataOut, string name = "Subtractor") { CheckCanAppend(); FlowTronic NextTronic = tronics.Subtract(name); WireArithmeticNode(NextTronic, DataInA, DataInB, DataOut); return this; }
public TronicSequence RadioReciever(DataNodeIn Channel, DataNodeOut Username, DataNodeOut Message, string name = "Reciever") { Reciever r = tronics.Reciever(name); r.DataInA(Channel); r.DataOutB(Username); r.DataOutA(Message); Append(r, r.GetNode(NodeType.FlowOutA)); return this; }
public TronicSequence Rand(DataNodeIn DataInA, DataNodeIn DataInB, DataNodeOut DataOut, string name = "Random") { CheckCanAppend(); FlowTronic NextTronic = tronics.Rand(name); WireArithmeticNode(NextTronic, DataInA, DataInB, DataOut); return this; }
public TronicSequence Multiply(DataNodeIn DataInA, DataNodeIn DataInB, DataNodeOut DataOut, string name = "Multiplyer") { CheckCanAppend(); FlowTronic NextTronic = tronics.Multiply(name); WireArithmeticNode(NextTronic, DataInA, DataInB, DataOut); return this; }
public TronicSequence And(DataNodeIn Left, DataNodeIn Right, DataNodeOut DataOut, string name = "And") { CheckCanAppend(); FlowTronic NextTronic = tronics.And(name); WireArithmeticNode(NextTronic, Left, Right, DataOut); return this; }
public DataBlock(int id, string name="Data", string data="", string type="cdata") : base(id, type, name, data) { _in = new DataNodeIn(this); _out = new DataNodeOut(this); }
/// <summary> /// Wires this tronic's DataOutA node to a data block /// </summary> /// <param name="other">The DataNode to wire to, in Out format</param> public virtual void DataOutB(DataNodeOut other) { this.WireTo(this.GetNode(NodeType.DataOutB), other.Parent.GetNode(NodeType.DataBlock)); }
/// <summary> /// Wires this tronic's DataOutA node to a data block /// </summary> /// <param name="other">The DataNode to wire to, in Out format</param> public virtual void DataOutA(DataNodeOut other) { if (other == null) return; this.WireTo(this.GetNode(NodeType.DataOutA), other.Parent.GetNode(NodeType.DataBlock)); }