Paradox Game Engine  v1.0.0 beta06
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros Pages
ScriptAssemblyEnumerator.cs
Go to the documentation of this file.
1 using System.Linq;
2 
3 using SiliconStudio.Paradox;
4 using SiliconStudio.Paradox.Games.ViewModel;
5 
6 namespace ScriptTest
7 {
9  {
10  private EngineContext engineContext;
11 
12  public ScriptAssemblyEnumerator(EngineContext engineContext)
13  {
14  this.engineContext = engineContext;
15  }
16 
17  public void GenerateChildren(ViewModelContext context, IViewModelNode viewModelNode, ref bool handled)
18  {
19  var type = viewModelNode.Type;
20  if (viewModelNode.NodeValue is ScriptAssembly)
21  {
22  viewModelNode.Children.Add(new ViewModelNode("Url", new PropertyInfoViewModelContent(new ParentNodeValueViewModelContent(), typeof(ScriptAssembly).GetProperty("Url"))));
23  viewModelNode.Children.Add(new ViewModelNode("Scripts", EnumerableViewModelContent.FromUnaryLambda<ViewModelReference, ScriptAssembly>(new ParentNodeValueViewModelContent(),
24  (scriptAssembly) => scriptAssembly.Scripts.Select(x => new ViewModelReference(x, true)))));
25  handled = true;
26  }
27  if (viewModelNode.NodeValue is ScriptEntry2)
28  {
29  viewModelNode.Children.Add(new ViewModelNode("TypeName", new PropertyInfoViewModelContent(new ParentNodeValueViewModelContent(), typeof(ScriptEntry2).GetProperty("TypeName"))));
30  viewModelNode.Children.Add(new ViewModelNode("MethodName", new PropertyInfoViewModelContent(new ParentNodeValueViewModelContent(), typeof(ScriptEntry2).GetProperty("MethodName"))));
31  viewModelNode.Children.Add(new ViewModelNode("Run", new RootViewModelContent((ExecuteCommand)((viewModel2, parameter) =>
32  {
33  var scriptEntry = (ScriptEntry2)viewModel2.Parent.NodeValue;
34  var microThread = engineContext.ScriptManager.RunScript(scriptEntry, null);
35  }))));
36  handled = true;
37  }
38  }
39  }
40 }
void GenerateChildren(ViewModelContext context, IViewModelNode viewModelNode, ref bool handled)
ScriptAssemblyEnumerator(EngineContext engineContext)