private static XmlObjectNode GetIfLogicEndBrickObject(XmlIfLogicEndBrickReference ifLogicEndBrickReference, string reference) { bool found = false; var ifLogicEndBricks = new List<XmlBrick>(); var sprite = XmlParserTempProjectHelper.Sprite; var script = XmlParserTempProjectHelper.Script; foreach (var brick in script.Bricks.Bricks) { if (brick is XmlIfLogicBeginBrick) { var ifLogicBeginBrick = brick as XmlIfLogicBeginBrick; if (ifLogicBeginBrick.IfLogicEndBrickReference == ifLogicEndBrickReference) found = true; } if (brick is XmlIfLogicElseBrick) { var ifLogicElseBrick = brick as XmlIfLogicElseBrick; if (ifLogicElseBrick.IfLogicEndBrickReference == ifLogicEndBrickReference) found = true; } if (brick is XmlIfLogicEndBrick) ifLogicEndBricks.Add(brick); } if (found) { var count = 0; if (reference.EndsWith("]")) { var splittetReference = reference.Split('['); reference = reference.Split('[')[splittetReference.Count() - 1]; reference = reference.Split(']')[0]; count = Int32.Parse(reference) - 1; } return ifLogicEndBricks[count]; } return null; }
private static string GetIfLogicEndBrickReferenceString(XmlIfLogicEndBrickReference ifLogicEndBrickReference) { var ifLogicEndBrick = ifLogicEndBrickReference.IfLogicEndBrick; var sprite = XmlParserTempProjectHelper.Sprite; foreach (var script in sprite.Scripts.Scripts) { var count = 0; foreach (var brick in script.Bricks.Bricks) if (brick is XmlIfLogicEndBrick) { count++; if ((brick == ifLogicEndBrick) && (count == 1)) return "../../ifLogicEndBrick"; else if (brick == ifLogicEndBrick) return "../../ifLogicEndBrick[" + count + "]"; } } return ""; }