public static void RegisterAsRegisterSlot(CodeLine line, Button immSlot, Text label, int operandNumber) { HighlightAsImmediateSlot temp = (Immediate imm, Color c) => { label.color = c; immSlot.onClick.AddListener(() => { switch (operandNumber) { case 0: line.setOperand1(imm); break; case 1: line.setOperand2(imm); break; case 2: line.setOperand3(imm); break; default: break; } }); }; instance.buttonToDelegateMap.Add(immSlot, temp); instance.immediateSlotHighlighter += temp; instance.disableHighlighting += (Color n) => { immSlot.onClick.RemoveAllListeners(); label.color = n; }; }
public static void DeregisterAsImmediateSlot(Button immSlot) { if (!instance.buttonToDelegateMap.ContainsKey(immSlot)) { return; } HighlightAsImmediateSlot temp = instance.buttonToDelegateMap[immSlot]; if (temp != null) { instance.immediateSlotHighlighter -= temp; } }