public void RefreshUI() { for (int i = link_display_holder.childCount - 1; i >= 0; i--) { Destroy(link_display_holder.GetChild(i).gameObject); } foreach (KeyValuePair <TriggerableBasePiece, TriggerBasePiece> kvp in build_manager.triggerable_to_trigger) { TriggerableBasePiece trap = kvp.Key; TriggerBasePiece trigger = kvp.Value; LinkDisplay new_link_display = Instantiate(link_display_prefab, link_display_holder); new_link_display.trap_title = trap.piece_name; new_link_display.trigger_title = trigger.piece_name; new_link_display.delete_button.onClick.AddListener(() => { build_manager.DeleteLink(trigger, trap); EndHover(); }); new_link_display.SetEnterAction(() => StartHover(trap)); new_link_display.SetExitAction(() => EndHover()); } }
void Update() { if (!active) { return; } if (Input.GetKeyDown(KeyCode.Escape)) { ClearToLink(); } if (to_link_trigger != null) { if (Input.GetMouseButtonDown(0) && !manager.mouse_over_ui) { if (triggerables.ContainsKey(mouse_position)) { SetToLinkTriggeable(triggerables[mouse_position]); manager.CreateLink(to_link_trigger, to_link_triggerable); ClearToLink(); } } else { if (triggerables.ContainsKey(mouse_position)) { SetLinkHighlight(triggerables[mouse_position]); } else { ClearLinkHighlight(); } } } else if (to_link_triggerable != null) { if (Input.GetMouseButtonDown(0) && !manager.mouse_over_ui) { if (triggers.ContainsKey(mouse_position)) { SetToLinkTrigger(triggers[mouse_position]); manager.CreateLink(to_link_trigger, to_link_triggerable); ClearToLink(); } } else { if (triggers.ContainsKey(mouse_position)) { SetLinkHighlight(triggers[mouse_position]); } else { ClearLinkHighlight(); } } } else { if (Input.GetMouseButtonDown(0) && !manager.mouse_over_ui) { if (triggers.ContainsKey(mouse_position)) { ClearLinkHighlight(); SetToLinkTrigger(triggers[mouse_position]); } else if (triggerables.ContainsKey(mouse_position)) { ClearLinkHighlight(); SetToLinkTriggeable(triggerables[mouse_position]); } } else if (Input.GetMouseButtonDown(1) && !manager.mouse_over_ui) { if (triggers.ContainsKey(mouse_position) && trigger_to_triggerable.ContainsKey(triggers[mouse_position])) { ClearLinkHighlight(); manager.DeleteLink(triggers[mouse_position], trigger_to_triggerable[triggers[mouse_position]]); } else if (triggerables.ContainsKey(mouse_position) && triggerable_to_trigger.ContainsKey(triggerables[mouse_position])) { ClearLinkHighlight(); manager.DeleteLink(triggerable_to_trigger[triggerables[mouse_position]], triggerables[mouse_position]); } } else { if (triggerables.ContainsKey(mouse_position)) { SetLinkHighlight(triggerables[mouse_position]); } else if (triggers.ContainsKey(mouse_position)) { SetLinkHighlight(triggers[mouse_position]); } else { ClearLinkHighlight(); } } } }