public void CheckHoveringOnBox()
    {
        MouseDetector detector    = new MouseDetector();
        int           findChecker = 0;

        foreach (GameObject box in itemBoxList)
        {
            // 타겟 설정.
            detector.TargetChange(box.transform);
            // 현재 마우스가 타겟 위에 있는지 확인. 있다면 현재 커서 위치에 툴팁 생성
            if (detector.Trigger())
            {
                showTooltip(detector.GetMousePos(), itemBoxCodenameList[findChecker]);
                break;
            }
            else
            {
                findChecker += 1;
            }
        }
        if (findChecker == itemBoxList.Count)
        {
            closeTooltip();
        }
    }
Example #2
0
        public WatcherService(ref IStorage store)
        {
            this.store = store ?? throw new ArgumentNullException(nameof(store));

            keyboard = new KeyboardHook(KeyboardHook.Parameters.PassAllKeysToNextApp);
            keyboard.KeyIntercepted += Keyboard_KeyIntercepted;

            mouse             = new MouseDetector(store.GetCurrentResolution(), store.GetDataPrecision());
            mouse.MouseMoved += Mouse_MouseMoved;
        }
 private void FormMain_Load(object sender, EventArgs e)
 {
     tabSaveManager.VisibleChanged += (o, args) => {
         if (tabSaveManager.Visible)
         {
             SmBecameVisible();
         }
     };
     _mouseDetector = new MouseDetector();
 }
Example #4
0
 private void Awake()
 {
     if (instance == null)
     {
         instance = this;
     }
     else
     {
         Debug.LogWarning("Instance already exists", this);
         Destroy(this.gameObject);
     }
 }
Example #5
0
    public void CheckShowTooltip()
    {
        MouseDetector detector = new MouseDetector();
        // 현재 커서가 상단 패널에 있는지 하단 패널에 있는지 확인.
        int mode = -1;

        detector.TargetChange(viewPanel.transform);
        if (detector.Trigger())
        {
            mode = 0;
        }
        detector.TargetChange(selectedViewPanel.transform);
        if (detector.Trigger())
        {
            mode = 1;
        }

        if (mode == -1)
        {
            CloseTooltip();
            return;
        }
        // mode 가 -1인 경우 엉뚱한 곳이 클릭되었다는 뜻이므로 탈출.
        if (mode == 0)
        {
            // 상단 패널 안인 경우.
            for (int i = 0; i < shopItemList.Count; i++)
            {
                detector.TargetChange(itemViewList[i].transform);
                if (detector.Trigger())
                {
                    if (shopItemList[i].count != 0)
                    {
                        showTooltip(detector.GetMousePos(), shopItemList[i].itemCode);
                    }
                    return;
                }
            }
        }
        if (mode == 1)
        {
            // 하단 패널 안인 경우.
            for (int i = 0; i < tradeDataList.Count; i++)
            {
                detector.TargetChange(selectedViewList[i].transform);
                if (detector.Trigger())
                {
                    showTooltip(detector.GetMousePos(), tradeDataList[i].itemCode);
                    return;
                }
            }
        }
    }
Example #6
0
    // 좌표를 입력받아 그것에 해당하는 아이템이 무엇인지 확인하고 아래 목록으로 이동.
    // 만약 대상이 하단 패널이면 오히려 위로 올림.
    public void SelectItem()
    {
        MouseDetector detector = new MouseDetector();
        // 현재 커서가 상단 패널에 있는지 하단 패널에 있는지 확인.
        int mode = -1;

        detector.TargetChange(viewPanel.transform);
        if (detector.Trigger())
        {
            mode = 0;
        }
        detector.TargetChange(selectedViewPanel.transform);
        if (detector.Trigger())
        {
            mode = 1;
        }

        if (mode == -1)
        {
            return;
        }
        // mode 가 -1인 경우 엉뚱한 곳이 클릭되었다는 뜻이므로 탈출.
        if (mode == 0)
        {
            // 상단 패널 안인 경우.
            Debug.Log($"ShopUI/Trade/SelectItem.notice : is done double click.");
            for (int i = 0; i < shopItemList.Count; i++)
            {
                detector.TargetChange(itemViewList[i].transform);
                if (detector.Trigger())
                {
                    if (shopItemList[i].count != 0)
                    {
                        ModifyItem(shopItemList[i].itemCode);
                    }
                    return;
                }
            }
        }
        if (mode == 1)
        {
            // 하단 패널 안인 경우.
            for (int i = 0; i < tradeDataList.Count; i++)
            {
                detector.TargetChange(selectedViewList[i].transform);
                if (detector.Trigger())
                {
                    ModifyItem(tradeDataList[i].itemCode, -1);
                    return;
                }
            }
        }
    }
Example #7
0
    public void OnRightClick(Message message)
    {
        MouseDetector detector = new MouseDetector();
        Vector2       pos      = detector.GetMousePos();

        if (mode == 0)
        {
            buyTrade.CheckShowTooltip();
        }
        else if (mode == 1)
        {
            sellTrade.CheckShowTooltip();
        }
        Sync();
    }
Example #8
0
    public void CheckHoveringOnBox()
    {
        MouseDetector detector = new MouseDetector();

        // 클릭 확인.
        for (int i = 0; i < INVENTORY_CAPACITY; i++)
        {
            GameObject box;
            string     itemCode;
            // mode 에 따라 box 할당.
            if (mode == 0 && equipmentInventories[i].isSetItem == true)
            {
                box      = equipmentInventories[i].box;
                itemCode = equipmentInventories[i].itemCode;
            }
            else if (mode == 1 && comsumableInventories[i].isSetItem == true)
            {
                box      = comsumableInventories[i].box;
                itemCode = comsumableInventories[i].itemCode;
            }
            else if (mode == 2 && etcInventories[i].isSetItem == true)
            {
                box      = etcInventories[i].box;
                itemCode = etcInventories[i].itemCode;
            }
            else
            {
                continue;
            }
            // 타겟 설정.
            detector.TargetChange(box.transform);
            // 현재 마우스가 타겟 위에 있는지 확인. 있다면 현재 커서 위치에 툴팁 생성
            if (detector.Trigger())
            {
                showTooltip(detector.GetMousePos(), itemCode);
                return;
            }
        }
        // 일치하는 케이스가 없다면 툴팁 닫기.
        CloseTooltip();
    }
Example #9
0
    public void OnLeftDoubleClick(Message message)
    {
        MouseDetector detector = new MouseDetector();
        Vector2       nowPos   = detector.GetMousePos();

        if (posBuffer == nowPos)
        {
            if (mode == 0)
            {
                buyTrade.SelectItem();
            }
            else if (mode == 1)
            {
                sellTrade.SelectItem();
            }
        }
        else
        {
            posBuffer = nowPos;
        }
        Sync();
    }
 void Start()
 {
     detector           = MouseDetector.instance;
     transform.position = detector.mousePosition;
 }