コード例 #1
0
    public void UpdateAvailableNumbers(int number, bool numberState, bool selectCube)
    {
        // Update available numbers map/array
        int prevCount = CountAvailableNumbersForCube();

        AvailableNumbersForCube[number - 1] = numberState;
        int newCount = CountAvailableNumbersForCube();

        // Only notify board if the available numbers changed
        if (prevCount != newCount)
        {
            // If the cube is newly selected
            if (selectCube)
            {
                OnAvailableNumbersUpdateSelect.Invoke(CubeIndices, prevCount, newCount);
            }

            // Remaining cases - where you simply adjust count map from propagation
            // NB - should only adjust count map if the number is not yet set/selected
            else if (CubeNumber == 0)
            {
                OnAvailableNumbersUpdatePropagate.Invoke(CubeIndices, prevCount, newCount);
            }
        }
    }
コード例 #2
0
 public void AddOnAvailableNumbersUpdateEventListener(UnityAction <Vector2Int, int, int> onAvailableNumbersUpdateCallback,
                                                      bool select, bool deselect)
 {
     if ((select) && (OnAvailableNumbersUpdateSelect != null))
     {
         OnAvailableNumbersUpdateSelect.AddListener(onAvailableNumbersUpdateCallback);
     }
     else if (OnAvailableNumbersUpdatePropagate != null)
     {
         OnAvailableNumbersUpdatePropagate.AddListener(onAvailableNumbersUpdateCallback);
     }
 }