I want to add components to the Urho3DPlayer for use in the Editor. THe problem I have in a separate folder I have the components basically in ExistenceClient like GameObject.cpp and Character.cpp.
The cmake is coded to use all files in Tools/Urho3DPlayer which I need to compile the other files at the same time.
The only thing I can think of is adding lines in the cmake file in Tools/Urho3DPlayer to include specifc source in the ExistenceClient folder specifically components. Or tell Cmake to use the Urho3D library + my components when compiling.
There’s still the problem of registering your components before running, which I don’t think is possible without modifying Urho3DPlayer code. You could go that route, but it’s probably easier and more future-proof making a mode in your application which is able to behave like Urho3DPlayer when it’s running the editor. For example when there’s a command line switch “–editor” or similar.
Ther’s nothing “magic” in what Urho3DPlayer does, you’ll only need to:
Register your components
Instantiate the Script subsystem
Load the editor script and run its Start() function
[quote=“cadaver”]There’s still the problem of registering your components before running, which I don’t think is possible without modifying Urho3DPlayer code. You could go that route, but it’s probably easier and more future-proof making a mode in your application which is able to behave like Urho3DPlayer when it’s running the editor. For example when there’s a command line switch “–editor” or similar.
Ther’s nothing “magic” in what Urho3DPlayer does, you’ll only need to:
Register your components
Instantiate the Script subsystem
Load the editor script and run its Start() function
Symlink/copy helper shell scripts or batch files to invoke Urho3DPlayer
if (NOT IOS AND NOT ANDROID AND NOT EMSCRIPTEN)
# Ensure the output directory exist before creating the symlinks
file (MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
foreach (FILE Editor NinjaSnowWar)
create_symlink (${CMAKE_SOURCE_DIR}/bin/${FILE}${SCRIPT_EXT} ${CMAKE_BINARY_DIR}/bin/${FILE}${SCRIPT_EXT} FALLBACK_TO_COPY)
endforeach ()
endif ()[/code]
I think I can now build individiual editor without messing with urho3dplayer? Not “Editor.as”
Vivienne
[quote=“vivienneanthony”][quote=“cadaver”]There’s still the problem of registering your components before running, which I don’t think is possible without modifying Urho3DPlayer code. You could go that route, but it’s probably easier and more future-proof making a mode in your application which is able to behave like Urho3DPlayer when it’s running the editor. For example when there’s a command line switch “–editor” or similar.
Ther’s nothing “magic” in what Urho3DPlayer does, you’ll only need to:
Register your components
Instantiate the Script subsystem
Load the editor script and run its Start() function
Symlink/copy helper shell scripts or batch files to invoke Urho3DPlayer
if (NOT IOS AND NOT ANDROID AND NOT EMSCRIPTEN)
# Ensure the output directory exist before creating the symlinks
file (MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
foreach (FILE Editor NinjaSnowWar)
create_symlink (${CMAKE_SOURCE_DIR}/bin/${FILE}${SCRIPT_EXT} ${CMAKE_BINARY_DIR}/bin/${FILE}${SCRIPT_EXT} FALLBACK_TO_COPY)
endforeach ()
endif ()[/code][/quote]
[quote=“cadaver”]There’s still the problem of registering your components before running, which I don’t think is possible without modifying Urho3DPlayer code. You could go that route, but it’s probably easier and more future-proof making a mode in your application which is able to behave like Urho3DPlayer when it’s running the editor. For example when there’s a command line switch “–editor” or similar.
Ther’s nothing “magic” in what Urho3DPlayer does, you’ll only need to:
Register your components
Instantiate the Script subsystem
Load the editor script and run its Start() function
Run Urho engine loop until exited[/quote]
That’s what I did. It seems to not pick up the components and it seems if the scene doesn’t fully load the “open scene” does not disappear?
Do you need to register attributes for your custom components? Also, maybe include them all in a single editor category (the string parameter for RegisterFactory). However, RegisterFactory should be enough for them to appear in the editor menu.
Ok, when your classes have attributes and you have defined a ClassName::RegisterObject() function for them, you should rather call that instead of just registering the factory.