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());
        }
    }
Beispiel #2
0
    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();
                }
            }
        }
    }