public BloxBlockEd(BloxBlock b, BloxBlockEd prev, BloxBlockEd parentBlock, BloxBlockEd owningBlock, int fieldIdx) { UnityEngine.Debug.Log("BloxBlockEd init" + b.returnType + b + owningBlock); this.b = b; this.def = BloxEd.Instance.FindBlockDef(b); this.prev = prev; this.parentBlock = parentBlock; this.owningBlock = owningBlock; this.fieldIdx = fieldIdx; if (b.contextBlock != null) { this.contextBlock = new BloxBlockEd(b.contextBlock, null, null, this, -1); } if (((b.paramBlocks != null) ? b.paramBlocks.Length : 0) != 0) { this.paramBlocks = new BloxBlockEd[b.paramBlocks.Length]; for (int i = 0; i < b.paramBlocks.Length; i++) { if (b.paramBlocks[i] != null) { this.paramBlocks[i] = new BloxBlockEd(b.paramBlocks[i], null, null, this, i); } } } if (b.firstChild != null) { this.firstChild = new BloxBlockEd(b.firstChild, null, this, null, -1); } this.UpdateNextBlock(parentBlock); }
public BloxBlockEd(BloxBlock b, BloxBlockEd prev, BloxBlockEd parentBlock, BloxBlockEd owningBlock, int fieldIdx, bool checkNextToo = true) { //Debug.Log("BloxBlockEd", "BloxBlockEd", Color.cyan); this.b = b; this.def = BloxEd.Instance.FindBlockDef(b); this.prev = prev; this.parentBlock = parentBlock; this.owningBlock = owningBlock; if (owningBlock != null) { Debug.Log("b" + b.ident, "BloxBlockEd", Color.green); Debug.Log("owningBlock" + owningBlock.b.ident, "BloxBlockEd", Color.green); } this.fieldIdx = fieldIdx; if (b.contextBlock != null) { this.contextBlock = new BloxBlockEd(b.contextBlock, null, null, this, -1, true); } if (((b.paramBlocks != null) ? b.paramBlocks.Length : 0) != 0) { this.paramBlocks = new BloxBlockEd[b.paramBlocks.Length]; for (int i = 0; i < b.paramBlocks.Length; i++) { if (b.paramBlocks[i] != null) { this.paramBlocks[i] = new BloxBlockEd(b.paramBlocks[i], null, null, this, i, true); } } } if (b.firstChild != null) { this.firstChild = new BloxBlockEd(b.firstChild, null, this, null, -1, false); BloxBlockEd bloxBlockEd = this.firstChild; while (bloxBlockEd.b.next != null) { bloxBlockEd.next = new BloxBlockEd(bloxBlockEd.b.next, bloxBlockEd, this, null, -1, false); bloxBlockEd = bloxBlockEd.next; } } if (checkNextToo) { this.UpdateNextBlock(parentBlock); } }
private bool CheckBlockDef(BloxBlockEd bdi) { BloxBlock _ = bdi.b; if (bdi.b.blockType != 0 && (bdi.b.mi == null || bdi.b.mi.IsValid)) { if (bdi.def == null) { bdi.def = BloxEd.Instance.FindBlockDef(bdi.b); if (((bdi.def != null) ? bdi.def.blockType : BloxBlockType.Unknown) != 0) { goto IL_0078; } this.hasUndefinedblocks = true; return(true); } goto IL_0078; } this.hasUndefinedblocks = true; return(true); IL_0078: if (bdi.contextBlock != null && this.CheckBlockDef(bdi.contextBlock)) { return(true); } for (int i = 0; i < bdi.paramBlocks.Length; i++) { if (bdi.paramBlocks[i] != null && this.CheckBlockDef(bdi.paramBlocks[i])) { return(true); } } for (bdi = bdi.firstChild; bdi != null; bdi = bdi.next) { if (this.CheckBlockDef(bdi)) { return(true); } } return(false); }
public override void CopyTo(BloxBlock block) { base.CopyTo(block); (block as Comment_Block).message = this.message; }