/* * Copyright (c) Contributors to the Open 3D Engine Project. For complete copyright and license terms please see the LICENSE at the root of this distribution. * * SPDX-License-Identifier: Apache-2.0 OR MIT * */ #pragma once #include #include #include namespace ScriptCanvas { class RuntimeAsset; class RuntimeComponent; } namespace ScriptCanvasEditor { struct LoadedInterpretedDependency { AZStd::string path; AZ::Data::Asset runtimeAsset; ScriptCanvas::Translation::LuaAssetResult luaAssetResult; AZStd::vector dependencies; }; AZ_INLINE AZStd::vector LoadInterpretedDepencies(const ScriptCanvas::DependencySet& dependencySet); AZ_INLINE LoadTestGraphResult LoadTestGraph(AZStd::string_view path); struct RunSpec { DurationSpec duration; ScriptCanvas::ExecutionMode execution = ScriptCanvas::ExecutionMode::Interpreted; bool expectRuntimeFailure = false;; bool processOnly = false; bool release = true; bool debug = true; bool traced = true; AZStd::function m_onPostSimulate; }; struct RunGraphSpec { AZStd::string_view graphPath; AZStd::string_view dirPath; RunSpec runSpec; }; AZ_INLINE Reporters RunGraph(const RunGraphSpec& runGraphSpec); AZ_INLINE void RunEditorAsset(AZ::Data::Asset asset, Reporter& reporter, ScriptCanvas::ExecutionMode mode); AZ_INLINE void RunGraphImplementation(const RunGraphSpec& runGraphSpec, Reporter& reporter); AZ_INLINE void RunGraphImplementation(const RunGraphSpec& runGraphSpec, LoadTestGraphResult& loadGraphResult, Reporter& reporter); AZ_INLINE void RunGraphImplementation(const RunGraphSpec& runGraphSpec, Reporters& reporters); AZ_INLINE void Simulate(const DurationSpec& duration); AZ_INLINE void SimulateDuration(const DurationSpec& duration); AZ_INLINE void SimulateSeconds(const DurationSpec& duration); AZ_INLINE void SimulateTicks(const DurationSpec& duration); } // ScriptCanvasEditor #include