public MainWindow() { AllocConsole(); InitializeComponent(); CurrentEnviroment.Game = new Game(); this.ScriptEditor.IsEnabled = false; this.SpriteList.SpriteListView.SelectionChanged += SpriteListView_SelectionChanged; //this.SpriteList.BackgroundContainer.Checked += BackgroundContainer_Checked; this.ScriptPlayer.PlayScreen.PreviewMouseMove += PlayScreen_PreviewMouseMove; ScriptEditor.Register(((Color)ColorConverter.ConvertFromString("#4C97FF")), typeof(MoveStatement), typeof(RotationStatement), typeof(ReflectionStatement), typeof(SetRotationModeStatement), typeof(SetDegreeStatement), typeof(SetPositionStatement), typeof(SetPositionXStatement), typeof(SetPositionYStatement), typeof(TimedMoveStatement), typeof(XPositionExpression), typeof(YPositionExpression), typeof(DegreeExpression)); ScriptEditor.Register(((Color)ColorConverter.ConvertFromString("#9966FF")), typeof(ResizeStatement), typeof(SetImageStatement), typeof(SetNextImageStatement), typeof(ShowStatement), typeof(HideStatement), typeof(SizeExpression)); ScriptEditor.Register(((Color)ColorConverter.ConvertFromString("#FFBF00")), typeof(StartEventHandler), typeof(ClickEventHandler), typeof(MessageEvetHandler)); List <ScriptStepGroup> toolbar = new List <ScriptStepGroup>(); toolbar.Add(new ScriptStepGroup() { Name = Localize.GetString("xc_Motion"), Types = new List <object>() { new WaitStatement(), new MoveStatement(), new RotationStatement() { Direction = RotationDirection.Clockwise }, new RotationStatement() { Direction = RotationDirection.CounterClockwise }, new ReflectionStatement(), new SetRotationModeStatement(), new SetDegreeStatement(), new SetPositionStatement(), new SetPositionXStatement(), new SetPositionYStatement(), new TimedMoveStatement(), new XPositionExpression(), new YPositionExpression(), new DegreeExpression() } }); toolbar.Add(new ScriptStepGroup() { Name = Localize.GetString("xc_Looks"), Types = new List <object>() { new ResizeStatement(), new SetImageStatement(), new SetNextImageStatement(), new ShowStatement(), new HideStatement(), new SizeExpression() } }); toolbar.Add(new ScriptStepGroup() { Name = Localize.GetString("xc_Logic"), Types = new List <object>() { new BinaryExpression() { ValueType = "boolean", Operator = Operator.Equal }, //compare operator new BinaryExpression() { ValueType = "boolean", Operator = Operator.And }, //logical operator new NotExpression() } }); toolbar.Add(new ScriptStepGroup() { Name = Localize.GetString("xc_Operation"), Types = new List <object>() { new BinaryExpression(), new ConditionalExpression(), new RandomExpression() } }); toolbar.Add(new ScriptStepGroup() { Name = Localize.GetString("xc_Control"), Types = new List <object>() { new IfStatement(), new IfStatement() { Alternate = new BlockStatement() }, new LoopStatement(), new WhileStatement(), new BreakStatement(), new ContinueStatement(), new ReturnStatement(), new LogStatement(), new TryStatement() } }); toolbar.Add(new ScriptStepGroup() { Name = Localize.GetString("xc_Event"), Types = new List <object>() { new StartEventHandler(), new KeyEventHandler(), new ClickEventHandler(), new MessageEvetHandler() } }); toolbar.Add(new ScriptStepGroup() { Name = Localize.GetString("xc_Variable"), Types = new List <object>() { "CreateVariable", new ExpressionStatement() { Expression = new AssignmentExpression() } } }); toolbar.Add(new ScriptStepGroup() { Name = Localize.GetString("xc_Method"), Types = new List <object>() { "CreateFunction" } }); ScriptEditor.SetToolBar(toolbar); }