Exemplo n.º 1
0
    public void AddSentence(CodeSentenceController sentence)
    {
        codeSentences.Add(sentence);

        sentence.transform.SetParent(container, false);
        sentence.gameObject.SetActive(false);

        sentenceMaxWidth = Mathf.Max(sentenceMaxWidth, sentence.width);
        sentenceHeight  += sentence.height;
    }
Exemplo n.º 2
0
    // Generate all code snippet and get all editable part
    private void CreateCodeSnippet(string sourcePath, RectTransform contentParent)
    {
        if (string.IsNullOrEmpty(sourcePath))
        {
            return;
        }

        TextAsset     source        = Resources.Load <TextAsset>(sourcePath);
        List <string> sourceContent = source.text.Split('\n').ToList();

        Stack <CodeBlockController> blockStack = new Stack <CodeBlockController>();
        CodeBlockController         mainBlock  = GameObject.Instantiate(codeBlock_prefab).GetComponent_AutoAdd <CodeBlockController>();

        mainBlock.transform.SetParent(contentParent, false);
        blockStack.Push(mainBlock);

        sourceContent.ForEach(sentence =>
        {
            if (sentence.Contains("[`"))
            {
                CodeBlockController codeBlock = GameObject.Instantiate(codeBlock_prefab).GetComponent_AutoAdd <CodeBlockController>();
                codeBlock.LoadTitle(sentence);
                blockStack.Peek().AddBlock(codeBlock);
                blockStack.Push(codeBlock);
            }
            else if (sentence.Contains("`]"))
            {
                CodeBlockController codeBlock = blockStack.Pop();
            }
            else
            {
                CodeSentenceController sentenceController = GameObject.Instantiate(codeSentence_prefab).GetComponent <CodeSentenceController>();
                sentenceController.LoadSentence(sentence);
                snippetEditablePart.AddRange(sentenceController.sentenceEditablePart);
                snippetTag2EditablePart.AddRange(sentenceController.tag2EditablePart);
                blockStack.Peek().AddSentence(sentenceController);
            }
        });
        mainBlock.UnFoldBlock();
        UpdateWindowResolution();
    }
Exemplo n.º 3
0
    public string GetWholeCode()
    {
        string result = "";
        CodeBlockController    nestBlock = null;
        CodeSentenceController sentence  = null;

        for (int i = 0; i != container.childCount; ++i)
        {
            nestBlock = container.GetChild(i).GetComponent <CodeBlockController>();
            if (nestBlock != null)
            {
                result += nestBlock.GetWholeCode();
                continue;
            }
            else
            {
                sentence = container.GetChild(i).GetComponent <CodeSentenceController>();
                result  += sentence.GetWholeCode();
            }
        }
        Debug.Log("sentence from block is " + result);

        return(result);
    }