private void addExpression(string _uuid, BlockModel.Block _block, Dictionary <string, string> _variants, CustomElementModel.CustomElementStatus _elementStatus, List <BlockModel.Element> _elements, BlockBuilder.Symbol _symbol) { GameObject clone = GameObject.Instantiate(uiWorkbench.templateExpression.gameObject); clone.transform.SetParent(uiWorkbench.templateExpression.parent); clone.transform.localScale = Vector3.one; clone.SetActive(true); clone.name = _uuid; BlockBuilder.BuildExpression(_elements, _variants, clone, _elementStatus, _symbol, _block.color); }
private void addBlock(string _uuid, BlockModel.Block _block, Dictionary <string, string> _variants, CustomElementModel.CustomElementStatus _elementStatus) { if (null == _block) { return; } BlockBuilder.Symbol symbol = BlockBuilder.LineToSymbol(_block, 0); addExpression(_uuid, _block, _variants, _elementStatus, _block.elements[0], symbol); for (int line = 1; line < _block.elements.Count; ++line) { addExpression(_uuid, _block, _variants, _elementStatus, new List <BlockModel.Element>(0), BlockBuilder.Symbol.Blank); symbol = BlockBuilder.LineToSymbol(_block, line); addExpression(_uuid, _block, _variants, _elementStatus, _block.elements[line], symbol); } }