public void BuildPile(UICardPile pile)
 {
     ClearPile();
     SetCurrentPile(pile);
     BuildBottomCard();
     BuildTopCard();
 }
    public void ResetPile()
    {
        UICard resetBottomCard   = ResetBottomCard();
        UICard resetTopCard      = ResetTopCard();
        UICard currentBottomCard = null;
        UICard currentTopCard    = null;

        if (CurrentPile != null)
        {
            currentBottomCard = CurrentPile.BottomCard;
            currentTopCard    = CurrentPile.TopCard;
        }
        else
        {
            BuildPile(new UICardPile());
        }

        if (currentBottomCard != resetBottomCard)
        {
            UICardPile newPile = new UICardPile();
            newPile.PileCard(resetBottomCard);
            newPile.PileCard(resetTopCard);
            BuildPile(newPile);
        }
        else if (currentTopCard != resetTopCard)
        {
            CurrentPile.PileCard(resetTopCard);
        }
    }
Example #3
0
 private static UICardDesk NewDatabaseDesk(Database database, out UICard dataBaseCard)
 {
     UICardPile[] cardPiles = new UICardPile[] { new UICardPile(), new UICardPile() };
     dataBaseCard = UICard.NewCard(typeof(Database), false, false, database);
     cardPiles[0].PileCard(dataBaseCard);
     return(new UICardDesk(cardPiles));
 }
Example #4
0
 private void OnEndEditCalulatorInputCard(UICardDesk desk, UICardPile pile, UICard card)
 {
     if (card != null && card == calculatorInputCard)
     {
         RefreshCalculator();
     }
 }
 private void OnDealCard(UICardPile pile, UICard card)
 {
     if (pile == null || card == null || pile != CurrentPile)
     {
         return;
     }
     BuildBottomCard();
     BuildTopCard();
 }
Example #6
0
 private static UICardDesk NewCalculatorDesk(out UICard inputCard, out UICard outputCard)
 {
     UICardPile[] cardPiles = new UICardPile[] { new UICardPile(), new UICardPile() };
     inputCard = UICard.NewCard(typeof(CalculatorInput), false, false);
     cardPiles[0].PileCard(inputCard);
     outputCard = UICard.NewCard(typeof(CalculatorOutput), true, false);
     cardPiles[1].PileCard(outputCard);
     return(new UICardDesk(cardPiles));
 }
Example #7
0
 private void OnEndEditDatabaseCard(UICardDesk desk, UICardPile pile, UICard card)
 {
     if (card != null && card == databaseCard)
     {
         Database editedData = databaseCard.Data as Database;
         DatapackSerializer.Serialize(editedData, databaseSavePath);
         databaseCard.Data = editedData;
         //onSaveDatabase?.Invoke((Database)card.Data);
     }
 }
Example #8
0
    public void DealCard(int pileIndex, UICard card)
    {
        if (CardPiles == null || pileIndex < 0 || CardPiles.Length <= pileIndex)
        {
            return;
        }

        if (CardPiles[pileIndex] == null)
        {
            CardPiles[pileIndex] = new UICardPile();
        }

        CardPiles[pileIndex].PileCard(card);
    }
Example #9
0
    private void OnCardRequest(UICardPile pile, UICard card)
    {
        if (pile == null || card == null || CardPiles == null || CardPiles.Length == 0)
        {
            return;
        }

        int pileIndex = Array.FindIndex(CardPiles, p => p.ContainsCard(card));

        if (pileIndex < 0)
        {
            pileIndex = Array.IndexOf(CardPiles, pile);
            if (pileIndex >= 0)
            {
                pileIndex = (pileIndex + 1) % CardPiles.Length;
            }
            else
            {
                pileIndex = 0;
            }
        }
        DealCard(pileIndex, card);
    }
 private void Reset()
 {
     CurrentPile           = new UICardPile();
     currentBottomDataType = "(null)";
     currentTopDataType    = "(null)";
 }
 private void SetCurrentPile(UICardPile newPile)
 {
     RemoveListenners();
     CurrentPile = newPile != null ? newPile : new UICardPile();
     AddListenners();
 }
Example #12
0
 private void OnEndEditCard(UICardPile pile, UICard card)
 {
     onEndEditCard?.Invoke(this, pile, card);
 }