public void Execute(object parameter) { var program = (string)parameter; try { ICollection <BaseLogoCommand> commands = LogoController.CreateAndParse(program); foreach (BaseLogoCommand logoCommand in commands) { logoCommand.Execute(); } FireParseResult(new ParseErrorEventArgs(false)); } catch (Exception ex) { if (ex is LogoScannerException || ex is LogoSyntaxErrorException) { FireParseResult(new ParseErrorEventArgs(true, ex.Message, program)); } else { throw; } } }
// Use this for initialization void Start() { logoController = GameObject.FindObjectOfType <LogoController>(); orderController = GameObject.FindObjectOfType <OrderController>(); restController = GameObject.FindObjectOfType <RestController>(); button.onClick.AddListener(delegate { onClick(id); }); }
public void CanUseLogoRoutine() { ICollection <BaseLogoCommand> programCommands = LogoController.CreateAndParse("TO RECTANGLE REPEAT 4 [ FORWARD 100 LEFT 90 ] END RECTANGLE"); var routineCallCommand = programCommands.ElementAt(0) as LogoRoutineCallCommand; Assert.IsNotNull(routineCallCommand); }
public void CanCreateRepeatLogoProgram() { ICollection <BaseLogoCommand> programCommands = LogoController.CreateAndParse("REPEAT 4 [ FORWARD 100 LEFT 90 ]"); var firstCommand = programCommands.ElementAt(0) as LogoRepeatCommand; Assert.IsNotNull(firstCommand); Assert.AreEqual(4, firstCommand.Repeat); Assert.AreEqual(2, firstCommand.Commands.Count); }
public void CreateDynamicNav() { LogoController objController = new LogoController(); LogoEntity objLogo = objController.GetLogoData(moduleID, portalID, GetCurrentCulture()); string navUrl = string.Empty; string imagePath = string.Empty; StringBuilder elem = new StringBuilder(); if (objLogo != null) { { if (objLogo.url == "http://" || objLogo.url == "") { navUrl = ""; } else { navUrl = "href= '" + GetHostURL() + "/" + objLogo.url + "'"; } if (objLogo.LogoPath != "") { imagePath = GetApplicationName + "/" + objLogo.LogoPath; } ContainerClientID = "divNav_" + moduleID; elem.Append("<div class='sfLogo' id='"); elem.Append(ContainerClientID); elem.Append("'>"); elem.Append("<a "); elem.Append(navUrl); elem.Append(">"); if (imagePath != string.Empty) { elem.Append("<img id='imgLogo' class='sfLogoimg' src='"); elem.Append(imagePath); elem.Append("' alt=''/>"); } elem.Append("<span>"); elem.Append(objLogo.LogoText); elem.Append("</span></a>"); if (objLogo.Slogan.Trim() != string.Empty) { elem.Append("<span>"); elem.Append(objLogo.Slogan); elem.Append("</span>"); } elem.Append("</div>"); ltrLogo.Text = elem.ToString(); } } }
public void CreateDynamicNav() { LogoController objController = new LogoController(); LogoEntity objLogo = objController.GetLogoData(moduleID, portalID, GetCurrentCulture()); string navUrl = string.Empty; string imagePath = string.Empty; StringBuilder elem = new StringBuilder(); if (objLogo != null) { { if (objLogo.url == "http://" || objLogo.url == "") { navUrl = ""; } else { navUrl = "href= '"+ GetHostURL() +"/"+ objLogo.url + "'"; } if (objLogo.LogoPath != "") { imagePath = GetApplicationName + "/" + objLogo.LogoPath; } ContainerClientID = "divNav_" + moduleID; elem.Append("<div class='sfLogo' id='"); elem.Append(ContainerClientID); elem.Append("'>"); elem.Append("<a "); elem.Append(navUrl); elem.Append(">"); if (imagePath != string.Empty) { elem.Append("<img id='imgLogo' class='sfLogoimg' src='"); elem.Append(imagePath); elem.Append("' alt=''/>"); } elem.Append("<span>"); elem.Append(objLogo.LogoText); elem.Append("</span></a>"); if (objLogo.Slogan.Trim() != string.Empty) { elem.Append("<span>"); elem.Append(objLogo.Slogan); elem.Append("</span>"); } elem.Append("</div>"); ltrLogo.Text = elem.ToString(); } } }
public void CanRepeatRepeatLogoProgram() { ICollection <BaseLogoCommand> programCommands = LogoController.CreateAndParse("REPEAT 3 [ FORWARD 1 REPEAT 2 [ FORWARD 1 ] ]"); var firstRepeat = programCommands.ElementAt(0) as LogoRepeatCommand; Assert.IsNotNull(firstRepeat); Assert.AreEqual(3, firstRepeat.Repeat); var secondCommand = firstRepeat.Commands.ElementAt(0) as LogoMoveCommand; Assert.IsNotNull(secondCommand); var secondRepeat = firstRepeat.Commands.ElementAt(1) as LogoRepeatCommand; Assert.IsNotNull(secondRepeat); Assert.AreEqual(2, secondRepeat.Repeat); }
public void CanCreateLogoRoutine() { LogoController.CreateAndParse("TO RECTANGLE REPEAT 4 [ FORWARD 100 LEFT 90 ] END"); SymbolTableEntry routine = LogoController.LookupRoutine("RECTANGLE"); Assert.IsNotNull(routine); Assert.AreEqual("RECTANGLE", routine.Name); var routineAttribute = routine.Attributes[0] as SymbolTableRoutineAttribute; Assert.IsNotNull(routineAttribute); var firstCommand = routineAttribute.Commands[0] as LogoRepeatCommand; Assert.IsNotNull(firstCommand); Assert.AreEqual(4, firstCommand.Repeat); Assert.AreEqual(2, firstCommand.Commands.Count()); }
public void CanCreateTwoSentenceLogoProgram() { ICollection <BaseLogoCommand> programCommands = LogoController.CreateAndParse("FORWARD 100 LEFT 90"); var firstCommand = programCommands.ElementAt(0) as LogoMoveCommand; Assert.IsNotNull(firstCommand); Assert.AreEqual(100, firstCommand.Distance); TurtleSituation forwardSituation = firstCommand.CalculateSituation(TurtleSituation.DefaultSituation); Assert.AreEqual(TurtleSituation.DefaultSituation.Angle, forwardSituation.Angle); var secondCommand = programCommands.ElementAt(1) as LogoTurnCommand; Assert.IsNotNull(secondCommand); Assert.AreEqual(90, secondCommand.TurnAngle); TurtleSituation leftSituation = secondCommand.CalculateSituation(forwardSituation); Assert.AreEqual(TurtleSituation.DefaultSituation.Angle + 90, leftSituation.Angle); }
public void StartPreloading(LogoController _lo) { _logo = _lo; _loadStatus = 3; StartCoroutine(PreloadBundle()); }