121#elif PLATFORM_WINDOWS
122 mProcessHandle =
nullptr;
128#elif PLATFORM_WINDOWS
129 void* mProcessHandle{
nullptr};
159 Node*
SpawnBasicNode(
const std::string& name,
Node* parent,
Asset* srcAsset =
nullptr,
bool setWorldPos =
false, glm::vec3 worldPos = { 0.0f, 0.0f, 0.0f });
168 void EXE_EditTransforms(
const std::vector<Node3D*>& nodes,
const std::vector<glm::mat4>& newTransforms);
225 void EXE_TimelineBindTrack(
Timeline* timeline, int32_t trackIndex, uint64_t oldUuid, uint64_t newUuid,
const std::string& oldName,
const std::string& newName);
251 std::vector<std::pair<AssetStub*, std::string> >& assets,
252 std::vector<EmbeddedRawAssetEntry>& rawAssets,
253 const char* headerPath,
254 const char* sourcePath);
257 std::vector<std::string> files,
258 const char* headerPath,
259 const char* sourcePath);
282 void CreateNewProject(
const char* folderPath =
nullptr,
bool cpp =
false,
const char* defaultSceneName =
"SC_Default");
352#define DECLARE_ACTION_INTERFACE(Name) \
353 virtual void Execute() override; \
354 virtual void Reverse() override; \
355 virtual const char* GetName() { return #Name; }
367 const
std::
string& propName,
393 const
std::vector<glm::mat4>& newTransforms);
397 std::vector<glm::mat4> mNewTransforms;
398 std::vector<glm::mat4> mPrevTransforms;
425 const
std::vector<
NodePtr>& GetNodes()
const {
return mNodes; }
450 std::vector<int32_t> mChildIndices;
451 std::vector<int32_t> mBoneIndices;
463 int32_t mChildIndex = -1;
464 int32_t mPrevChildIndex = -1;
465 int32_t mBoneIndex = -1;
466 int32_t mPrevBoneIndex = -1;
478 int32_t mNewRootChildIndex = -1;
488 glm::quat mNewRotation;
489 glm::quat mPrevRotation;
499 glm::vec3 mNewPosition;
500 glm::vec3 mPrevPosition;
511 glm::vec3 mPrevScale;
544 bool mBakedLight =
false;
555 std::vector<ActionSetInstanceColorsData>
mData;
567 int32_t mStartIndex = -1;
569 std::vector<MeshInstanceData>
mData;
608 int32_t mChildIndex = -1;
632 int32_t mInstancedChildIndex = -1;
636 bool mFirstExecute =
true;
654 int32_t mOriginalChildIndex = -1;
659 bool mFirstExecute =
true;
670 const std::vector<Node*>& nodes,
681 int32_t mCreatedParentChildIndex = -1;
684 bool mFirstExecute =
true;
701struct TerrainHeightChange;
715struct TilePaintChange;
#define DECLARE_ACTION_INTERFACE(Name)
Definition ActionManager.h:352
Platform
Definition EngineTypes.h:31
PropertyOwnerType
Definition EngineTypes.h:148
uint32_t TypeId
Definition EngineTypes.h:64
Definition ActionManager.h:455
Definition ActionManager.h:443
Definition ActionManager.h:360
Datum mPreviousValue
Definition ActionManager.h:383
Property * FindProp(std::vector< Property > &props, const std::string &name)
Datum mValue
Definition ActionManager.h:380
void * mOwner
Definition ActionManager.h:376
void GatherProps(std::vector< Property > &props)
PropertyOwnerType mOwnerType
Definition ActionManager.h:377
std::string mPropertyName
Definition ActionManager.h:378
uint32_t mIndex
Definition ActionManager.h:379
AssetRef mReferencedAsset
Definition ActionManager.h:382
Definition ActionManager.h:143
void EXE_TimelineAddClip(Timeline *timeline, int32_t trackIndex, TypeId clipType, float startTime, float duration)
void WriteProjectLocalPolyphaseConfig()
std::string mBuildDisplayOutput
Definition ActionManager.h:269
void AttachSelectedNodes(Node *newParent, int32_t boneIdx)
void BeginReimportAssetWithNewFile(AssetStub *stub)
void EXE_DeleteNodes(const std::vector< Node * > &nodes)
bool mShowBuildModal
Definition ActionManager.h:268
void EXE_ReplaceWithInstancedMesh(const std::vector< Node * > &nodes, bool merge)
Replace selected StaticMesh3D nodes with InstancedMesh3D nodes.
void ImportTinyLLMModel()
void DeleteAssetDir(AssetDir *dir)
void FinalizeLocalBuild()
void ExecuteAction(Action *action)
Asset * ImportAsset(const std::string &path)
void EXE_SetRootNode(Node *newRoot)
void ImportScene(const SceneImportOptions &options)
std::vector< NodePtr > mExiledNodes
Definition ActionManager.h:264
Node * EXE_SpawnNode(TypeId srcType)
void EXE_SetWorldRotation(Node3D *node, glm::quat rot)
void EXE_TimelineRemoveClip(Timeline *timeline, int32_t trackIndex, int32_t clipIndex)
void EXE_TimelineMoveClip(Timeline *timeline, int32_t trackIndex, int32_t clipIndex, float oldStartTime, float newStartTime)
void EXE_EditTransform(Node3D *node, const glm::mat4 &transform)
void OnSelectedNodeChanged()
void AppendBuildOutput(const std::string &text)
void EXE_UnlinkScene(Node *node)
void OpenScene(Scene *scene)
void ImportCamera(const CameraImportOptions &options)
void EXE_SetWorldPosition(Node3D *node, glm::vec3 pos)
void EXE_DeleteNode(Node *node)
void RestoreExiledNode(NodePtr node)
void EXE_SetVoxels(class Voxel3D *voxel, const std::vector< struct VoxelChange > &changes)
void EXE_TimelineBindTrack(Timeline *timeline, int32_t trackIndex, uint64_t oldUuid, uint64_t newUuid, const std::string &oldName, const std::string &newName)
void RequestResaveAllAssets()
void EXE_SetInstanceData(InstancedMesh3D *instMesh, int32_t startIndex, const std::vector< MeshInstanceData > &data)
void RequestOpenScene(AssetStub *stub)
Node * EXE_SpawnNode(Scene *srcScene)
void CreateNewProject(const char *folderPath=nullptr, bool cpp=false, const char *defaultSceneName="SC_Default")
static ActionManager * Get()
void EXE_TimelineAddTrack(Timeline *timeline, TypeId trackType)
void EXE_SetTerrainHeights(class Terrain3D *terrain, const std::vector< struct TerrainHeightChange > &changes)
static ActionManager * sInstance
Definition ActionManager.h:236
void ExileNode(NodePtr node)
Scene * CreateNewScene(const char *sceneName, int sceneType, bool createCamera, bool createSkybox=false, AssetDir *targetDir=nullptr)
void EXE_PaintTiles(class TileMap2D *tileMapNode, const std::vector< struct TilePaintChange > &changes)
void EXE_EditWidgetTransforms(const std::vector< Widget * > &widgets, const std::vector< WidgetTransformData > &newTransforms)
void ClearActionHistory()
void EXE_ReplaceWithStaticMesh(const std::vector< Node * > &nodes)
Split selected InstancedMesh3D nodes into individual StaticMesh3D nodes.
void GenerateEmbeddedAssetFiles(std::vector< std::pair< AssetStub *, std::string > > &assets, std::vector< EmbeddedRawAssetEntry > &rawAssets, const char *headerPath, const char *sourcePath)
bool DuplicateNodes(std::vector< Node * > nodes)
void EXE_TimelineRemoveTrack(Timeline *timeline, int32_t trackIndex)
void EXE_EditTransforms(const std::vector< Node3D * > &nodes, const std::vector< glm::mat4 > &newTransforms)
void EXE_SetInstanceColors(const std::vector< ActionSetInstanceColorsData > &data)
bool mBuildPending
Definition ActionManager.h:271
LocalBuildState & GetBuildState()
Definition ActionManager.h:336
void RecaptureAndSaveAllScenes()
bool CheckProjectNeedsUpgrade()
void DeleteNode(Node *node)
void EXE_ReplaceSelectedWithAsset(Asset *asset, const std::vector< Node * > &nodes)
Replace selected nodes' mesh/material with an asset, or replace with scene instances.
Node * SpawnNode(TypeId nodeType, Node *parent)
Node * EXE_SpawnNode(const char *srcTypeName)
void RequestSaveScene(bool saveAs)
void OpenProject(const char *path=nullptr)
void RequestSaveSelectedAsset()
void RequestOpenSceneFromDialog()
bool IsBuildRunning() const
void BeginReimportScene(AssetStub *sceneStub)
Node * EXE_SpawnNode(Node *srcNode)
void EXE_ResetScene(Node *node)
bool mBuildAutoScroll
Definition ActionManager.h:270
void RequestOpenProject(const char *path)
LocalBuildState mBuildState
Definition ActionManager.h:267
Node * SpawnBasicNode(const std::string &name, Node *parent, Asset *srcAsset=nullptr, bool setWorldPos=false, glm::vec3 worldPos={ 0.0f, 0.0f, 0.0f })
void ImportTinyLLMTokenizer()
void GatherScriptFiles(const std::string &dir, std::vector< std::string > &outFiles)
std::vector< Action * > mActionHistory
Definition ActionManager.h:262
void BuildData(Platform platform, bool embedded)
void GenerateEmbeddedScriptFiles(std::vector< std::string > files, const char *headerPath, const char *sourcePath)
void DeleteAsset(AssetStub *stub)
void EXE_SetWorldScale(Node3D *node, glm::vec3 scale)
void EXE_AttachNode(Node *node, Node *newParent, int32_t childIndex, int32_t boneIndex)
std::vector< Node * > EXE_SpawnNodes(const std::vector< Node * > &nodes)
void DeleteSelectedNodes()
void SaveScene(bool saveAs)
void BuildCompileThreadFunc()
void EXE_EditProperty(void *owner, PropertyOwnerType ownerType, const std::string &name, uint32_t index, Datum newValue)
Node * SpawnNode(TypeId nodeType, glm::vec3 position)
std::vector< Action * > mActionFuture
Definition ActionManager.h:263
void EXE_ParentSelectedWith(const std::vector< Node * > &nodes, TypeId parentType, ArrayOrientation arrayOrientation=ArrayOrientation::Vertical)
Create a new parent node of the specified type and reparent all selected nodes under it.
Definition ActionManager.h:719
ActionPaintTiles(TileMap2D *tileMapNode, const std::vector< TilePaintChange > &changes)
std::vector< TilePaintChange > mChanges
Definition ActionManager.h:726
DECLARE_ACTION_INTERFACE(PaintTiles)
Action to create a new parent node and reparent selected nodes under it.
Definition ActionManager.h:666
ActionParentSelectedWith(const std::vector< Node * > &nodes, TypeId newParentType, ArrayOrientation arrayOrientation=ArrayOrientation::Vertical)
std::vector< int32_t > mPrevChildIndices
Definition ActionManager.h:677
NodePtr mCreatedParent
Definition ActionManager.h:679
TypeId mNewParentType
Definition ActionManager.h:682
std::vector< NodePtr > mNodes
Definition ActionManager.h:675
NodePtr mCreatedParentParent
Definition ActionManager.h:680
std::vector< NodePtr > mPrevParents
Definition ActionManager.h:676
DECLARE_ACTION_INTERFACE(ParentSelectedWith)
std::vector< int32_t > mPrevBoneIndices
Definition ActionManager.h:678
Action to replace selected nodes' mesh or material with an asset, or replace with scene instances.
Definition ActionManager.h:577
DECLARE_ACTION_INTERFACE(ReplaceWithAsset)
std::vector< Mesh3D * > mMatNodes
Definition ActionManager.h:600
std::vector< MaterialRef > mPrevMaterials
Definition ActionManager.h:601
std::vector< SceneReplaceEntry > mSceneEntries
Definition ActionManager.h:611
ReplaceMode
Definition ActionManager.h:585
AssetRef mAsset
Definition ActionManager.h:592
std::vector< StaticMesh3D * > mMeshNodes
Definition ActionManager.h:596
ActionReplaceWithAsset(Asset *asset, const std::vector< Node * > &nodes)
std::vector< StaticMeshRef > mPrevMeshes
Definition ActionManager.h:597
Action to merge selected StaticMesh3D nodes into InstancedMesh3D nodes grouped by mesh.
Definition ActionManager.h:618
std::vector< GroupEntry > mGroups
Definition ActionManager.h:635
ActionReplaceWithInstancedMesh(const std::vector< Node * > &nodes, bool merge)
DECLARE_ACTION_INTERFACE(ReplaceWithInstancedMesh)
Action to split selected InstancedMesh3D nodes into individual StaticMesh3D nodes.
Definition ActionManager.h:643
DECLARE_ACTION_INTERFACE(ReplaceWithStaticMesh)
std::vector< SplitEntry > mEntries
Definition ActionManager.h:658
ActionReplaceWithStaticMesh(const std::vector< Node * > &nodes)
Definition ActionManager.h:528
SceneRef mScene
Definition ActionManager.h:536
DECLARE_ACTION_INTERFACE(ResetScene)
ActionResetScene(Node *node)
std::vector< Property > mPrevProperties
Definition ActionManager.h:537
Definition ActionManager.h:548
DECLARE_ACTION_INTERFACE(SetInstanceColors)
std::vector< ActionSetInstanceColorsData > mPrevData
Definition ActionManager.h:556
std::vector< ActionSetInstanceColorsData > mData
Definition ActionManager.h:555
ActionSetInstanceColors(const std::vector< ActionSetInstanceColorsData > &data)
Definition ActionManager.h:560
std::vector< MeshInstanceData > mPrevData
Definition ActionManager.h:570
DECLARE_ACTION_INTERFACE(SetInstanceData)
std::vector< MeshInstanceData > mData
Definition ActionManager.h:569
ActionSetInstanceData(InstancedMesh3D *instMesh, int32_t startIndex, const std::vector< MeshInstanceData > &data)
Definition ActionManager.h:470
Definition ActionManager.h:705
ActionSetTerrainHeights(Terrain3D *terrain, const std::vector< TerrainHeightChange > &changes)
DECLARE_ACTION_INTERFACE(SetTerrainHeights)
std::vector< TerrainHeightChange > mChanges
Definition ActionManager.h:712
Definition ActionManager.h:691
std::vector< VoxelChange > mChanges
Definition ActionManager.h:698
DECLARE_ACTION_INTERFACE(SetVoxels)
ActionSetVoxels(Voxel3D *voxel, const std::vector< VoxelChange > &changes)
Definition ActionManager.h:493
Definition ActionManager.h:482
Definition ActionManager.h:504
Definition ActionManager.h:417
std::vector< NodePtr > mParents
Definition ActionManager.h:439
std::vector< TypeId > mSrcTypes
Definition ActionManager.h:430
std::vector< SceneRef > mSrcScenes
Definition ActionManager.h:432
std::vector< NodePtr > mNodes
Definition ActionManager.h:436
std::vector< NodePtr > mSrcNodes
Definition ActionManager.h:433
std::vector< const char * > mSrcTypeNames
Definition ActionManager.h:431
Definition ActionManager.h:515
ActionUnlinkScene(Node *node)
DECLARE_ACTION_INTERFACE(UnlinkScene)
SceneRef mScene
Definition ActionManager.h:523
Definition ActionManager.h:134
virtual ~Action()
Definition ActionManager.h:136
virtual const char * GetName()=0
Definition InstancedMesh3d.h:13
Definition StaticMesh3d.h:12
Definition StaticMesh.h:18
Definition Terrain3d.h:13
Definition TileMap2d.h:23
Definition SmartPointer.h:631
Definition ActionManager.h:244
std::string mLookupKey
Definition ActionManager.h:246
bool mEngineAsset
Definition ActionManager.h:247
std::string mAbsolutePath
Definition ActionManager.h:245
Definition ActionManager.h:605
NodePtr mSpawnedNode
Definition ActionManager.h:609
NodePtr mOriginal
Definition ActionManager.h:606
NodePtr mParent
Definition ActionManager.h:607
Definition ActionManager.h:626
NodePtr mInstancedNode
Definition ActionManager.h:630
std::vector< int32_t > mOriginalChildIndices
Definition ActionManager.h:629
std::vector< NodePtr > mOriginalNodes
Definition ActionManager.h:627
NodePtr mInstancedParent
Definition ActionManager.h:631
std::vector< NodePtr > mOriginalParents
Definition ActionManager.h:628
Definition ActionManager.h:651
NodePtr mOriginalParent
Definition ActionManager.h:653
std::vector< NodePtr > mCreatedNodes
Definition ActionManager.h:655
NodePtr mOriginalNode
Definition ActionManager.h:652
Definition ActionManager.h:541
std::vector< uint32_t > mColors
Definition ActionManager.h:543
State for async local build operations.
Definition ActionManager.h:40
std::string mProjectName
Definition ActionManager.h:58
std::string mExtension
Definition ActionManager.h:60
std::string mStripCommand
Definition ActionManager.h:69
std::atomic< int > mExitCode
Definition ActionManager.h:46
bool mUseSteam
Definition ActionManager.h:64
std::string mCompileCommand
Definition ActionManager.h:65
bool mForceRebuild
Definition ActionManager.h:78
Platform mPlatform
Definition ActionManager.h:53
bool mStandalone
Definition ActionManager.h:62
bool mForceCompile
Definition ActionManager.h:82
std::string mPackagedDir
Definition ActionManager.h:55
void Reset()
Definition ActionManager.h:84
int64_t mExeMTimeBeforeBuild
Definition ActionManager.h:61
std::atomic< bool > mCancelRequested
Definition ActionManager.h:43
std::string mBuildProjDir
Definition ActionManager.h:56
std::string mExeSrc
Definition ActionManager.h:59
bool mNeedCompile
Definition ActionManager.h:63
bool mRunOnDevice
Definition ActionManager.h:77
std::string mInjectedVcxprojPath
Definition ActionManager.h:73
std::string mProjectDir
Definition ActionManager.h:57
bool mOutputDirty
Definition ActionManager.h:50
std::string mPrebuiltExePath
Definition ActionManager.h:66
std::string mShaderCompileCommand
Definition ActionManager.h:68
std::string mOutput
Definition ActionManager.h:49
std::mutex mOutputMutex
Definition ActionManager.h:48
std::atomic< bool > mRunning
Definition ActionManager.h:42
std::string mTmpMakefile
Definition ActionManager.h:67
bool mRunAfterBuild
Definition ActionManager.h:76
std::atomic< bool > mComplete
Definition ActionManager.h:44
bool mEmbedded
Definition ActionManager.h:54
std::atomic< bool > mSuccess
Definition ActionManager.h:45
std::thread mBuildThread
Definition ActionManager.h:41
Definition InstancedMesh3d.h:6