예제 #1
0
    public void EraseBlock()
    {
        int selected_indexer_data = selected_indexer.data;

        if (selected_indexer_data == BlockNumber.character || selected_indexer_data == BlockNumber.upperCharacter)
        {
            character_count--;


            int style = selected_indexer.blocks[selected_indexer.blocks.Count - 1].style;
            characterButtons[style].interactable = true;
        }
        else if ((selected_indexer_data >= BlockNumber.parfaitA && selected_indexer_data <= BlockNumber.parfaitD) ||
                 (selected_indexer_data >= BlockNumber.upperParfaitA && selected_indexer_data <= BlockNumber.upperParfaitD))
        {
            parfait_count--;

            int parfait_num = selected_indexer_data % 10 - 1;
            parfaitButtons[parfait_num].interactable = true;
        }

        selected_indexer.EraseBlock();
        selected_indexer.CheckPlaceableIndex(block_floor: placeableFloor);
        editPopup.SetActive(false);
        StartCoroutine(ActiveClickTimer());



        if (CheckCondition().Item1&& CheckCondition().Item2)
        {
            completeButton.interactable = true;
        }
        else
        {
            completeButton.interactable = false;
        }
        checkListPopup.SetCheckList(character_count, parfait_count);
    }
예제 #2
0
    void MakeBlock(Ray ray)
    {
        if (Physics.Raycast(ray, out hit, 1000))
        {
            if (hit.transform.CompareTag("Indexer"))
            {
                Indexer indexer = hit.transform.GetComponent <Indexer>();

                if (indexer.placeable)
                {
                    int blockNumber_modification = blockNumber;
                    //blocknumber 조정 : cracker , parfait , cloud , obstacle , character
                    if (indexer.Floor == 1)
                    {
                        if (blockNumber >= BlockNumber.cloudUp && blockNumber <= BlockNumber.cracker_2)
                        {
                            blockNumber_modification += 10;
                        }
                    }
                    else if (indexer.Floor == 2)
                    {
                        blockNumber_modification += 10;
                    }
                    Debug.Log("make block number : " + blockNumber_modification);
                    Block newBlock = blockFactory.EditorCreateBlock(blockNumber_modification, styleNumber, new Vector3(indexer.X, indexer.Z));
                    indexer.AddBlock(newBlock);
                    indexer.CheckPlaceableIndex(block_floor: placeableFloor);
                    newBlock.transform.SetParent(holders[indexer.Floor].transform);

                    if (blockNumber >= BlockNumber.parfaitA && blockNumber <= BlockNumber.parfaitD)
                    {
                        parfait_count++;
                        selectedButton.interactable = false;
                        blockNumber = 999;//더 이상 배치할 수 없음
                    }
                    if (blockNumber == BlockNumber.character)
                    {
                        character_count++;
                        selectedButton.interactable = false;
                        blockNumber = 999;//더 이상 배치할 수 없음

                        if (styleNumber == 0)
                        {
                            positionA = new Vector3(indexer.X + 1, indexer.Floor, indexer.Z + 1);
                        }
                        else
                        {
                            positionB = new Vector3(indexer.X + 1, indexer.Floor, indexer.Z + 1);
                        }
                    }

                    if (moveBlock)//move block
                    {
                        moveBlock = false;

                        blockNumber = temp_blockNumber;
                        styleNumber = temp_styleNumber;

                        Update_Placeable_Floor(blockNumber);
                        StartCoroutine(ActiveClickTimer());
                    }


                    if (CheckCondition().Item1&& CheckCondition().Item2)
                    {
                        completeButton.interactable = true;
                    }
                    else
                    {
                        completeButton.interactable = false;
                    }
                    checkListPopup.SetCheckList(character_count, parfait_count);
                }
            }
        }
    }