void Start() { displayGroups = new List <SignalGroup> (); signalEditor = GetComponent <ChipInterfaceEditor> (); signalEditor.onChipsAddedOrDeleted += RebuildGroups; }
public void UpdateDisplay(ChipInterfaceEditor editor) { if (editor.selectedSignals.Contains(signals[0])) { text.gameObject.SetActive(false); } else { text.gameObject.SetActive(true); float yPos = (signals[0].transform.position.y + signals[signals.Length - 1].transform.position.y) / 2f; text.transform.position = new Vector3(editor.transform.position.x, yPos, -0.5f); bool useTwosComplement = signals[0].useTwosComplement; int decimalValue = 0; for (int i = 0; i < signals.Length; i++) { int signalState = signals[signals.Length - 1 - i].currentState; if (useTwosComplement && i == signals.Length - 1) { decimalValue |= -(signalState << i); } else { decimalValue |= signalState << i; } } text.text = decimalValue + ""; } }
public void Init(ChipInteraction chipInteraction, ChipInterfaceEditor inputEditor, ChipInterfaceEditor outputEditor) { chipInteraction.onDeleteChip += DeleteChipWires; inputEditor.onDeleteChip += DeleteChipWires; outputEditor.onDeleteChip += DeleteChipWires; }