public ICompiledScript Compile(IAdvancedScript script) { ICompiledScript compiledScript = _factory.CreateInstance <ICompiledScript>(); compiledScript.OriginalScript = script; Inputs = new(); AllNodes = new(); foreach (InputNode scriptInput in script.Editor.Inputs.InputNodes) { ILaminarValue myInputValue = _valueFactory.Get(scriptInput.Value, true); myInputValue.Name = scriptInput.GetNameLabel().LabelText.Value; compiledScript.Inputs.Add(myInputValue); Inputs.Add(scriptInput, myInputValue); } foreach (INodeContainer triggerNode in script.Editor.TriggerNodes) { if (triggerNode.Name.OutputConnector.ExclusiveConnection is not null) { CompiledNodeWrapper wrappedTrigger = CompiledNodeWrapper.Get(triggerNode, this); compiledScript.AllTriggerNodes.Add(wrappedTrigger); wrappedTrigger.flowOutChains.Add(new CompiledNodeChain(triggerNode.Name, wrappedTrigger.CoreNode.GetNameLabel().FlowOutput, this)); } } return(compiledScript); }
public void ShowScriptEditor(IAdvancedScript script) { MainControl = new ScriptEditor { DataContext = script, }; script.IsBeingEdited = true; PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(MainControl))); }
public async Task AddScript() { string text = await TextPrompt.Show(this, "Script Maker", "Please enter the name of the script"); if (text is null or "") { return; } IAdvancedScript newTree = App.LaminarInstance.Factory.GetImplementation <IAdvancedScript>(); newTree.Name.Value = text; App.LaminarInstance.AllAdvancedScripts.Add(newTree); _needsScriptInstance = true; OpenScriptEditor(newTree); }
public void AddScriptInstance(IAdvancedScript script) { (DataContext as MainWindowViewModel).CloseAddScriptsButton(); App.LaminarInstance.AllScripts.Scripts.Add(script.CreateInstance()); }
public void OpenScriptEditor(IAdvancedScript script) { (DataContext as MainWindowViewModel).ShowScriptEditor(script); }