public static void DeregisterAsRegisterSlot(Button regSlot) { if (!instance.buttonToDelegateMap.ContainsKey(regSlot)) { return; } HighlightAsRegisterSlot temp = instance.buttonToDelegateMap[regSlot]; if (temp != null) { instance.registerSlotHighlighter -= temp; } }
public static void RegisterAsRegisterSlot(CodeLine line, Button regSlot, Text label, int operandNumber) { HighlightAsRegisterSlot temp = (Register.REGISTERS reg, Color c) => { label.color = c; regSlot.onClick.AddListener(() => { Register r = new Register(reg); switch (operandNumber) { case 0: line.setOperand1(r); break; case 1: line.setOperand2(r); break; case 2: line.setOperand3(r); break; default: break; } }); }; instance.buttonToDelegateMap.Add(regSlot, temp); instance.registerSlotHighlighter += temp; instance.disableHighlighting += (Color n) => { regSlot.onClick.RemoveAllListeners(); label.color = n; }; }