void ScriptEditorApplication::internal_SetStatusProject(bool modified) { MainEditorWindow* mainWindow = EditorWindowManager::instance().getMainWindow(); if (gEditorApplication().isProjectLoaded()) mainWindow->getStatusBar().setProject(gEditorApplication().getProjectName(), modified); else mainWindow->getStatusBar().setProject("None", false); }
BuiltinEditorResources::BuiltinEditorResources() { // Set up paths BuiltinRawDataFolder = gEditorApplication().getDataPath() + "Raw/"; EditorRawSkinFolder = BuiltinRawDataFolder + SkinFolder; EditorRawIconsFolder = BuiltinRawDataFolder + IconFolder; EditorRawShaderFolder = BuiltinRawDataFolder + ShaderFolder; EditorRawShaderIncludeFolder = BuiltinRawDataFolder + ShaderIncludeFolder; BuiltinDataFolder = gEditorApplication().getDataPath(); EditorSkinFolder = BuiltinDataFolder + SkinFolder; EditorSkinSpritesFolder = EditorSkinFolder + SpriteSubFolder; EditorIconFolder = BuiltinDataFolder + IconFolder; EditorIcon3DFolder = BuiltinDataFolder + Icon3DFolder; EditorIconSpritesFolder = EditorIconFolder + SpriteSubFolder; EditorIcon3DSpritesFolder = EditorIcon3DFolder + SpriteSubFolder; EditorAnimatedSpritesFolder = BuiltinDataFolder + AnimatedSpritesFolder + SpriteSubFolder; EditorShaderFolder = BuiltinDataFolder + ShaderFolder; EditorShaderIncludeFolder = BuiltinDataFolder + ShaderIncludeFolder; ResourceManifestPath = BuiltinDataFolder + "ResourceManifest.asset"; // Load manifest if (FileSystem::exists(ResourceManifestPath)) mResourceManifest = ResourceManifest::load(ResourceManifestPath, BuiltinDataFolder); if (mResourceManifest == nullptr) mResourceManifest = ResourceManifest::create("BuiltinResources"); gResources().registerResourceManifest(mResourceManifest); // Load basic resources mShaderDockOverlay = getShader(ShaderDockOverlayFile); mShaderSceneGrid = getShader(ShaderSceneGridFile); mShaderPicking[(int)CULL_NONE] = getShader(ShaderPickingCullNoneFile); mShaderPicking[(int)CULL_CLOCKWISE] = getShader(ShaderPickingCullCWFile); mShaderPicking[(int)CULL_COUNTERCLOCKWISE] = getShader(ShaderPickingCullCCWFile); mShaderPickingAlpha[(int)CULL_NONE] = getShader(ShaderPickingAlphaCullNoneFile); mShaderPickingAlpha[(int)CULL_CLOCKWISE] = getShader(ShaderPickingAlphaCullCWFile); mShaderPickingAlpha[(int)CULL_COUNTERCLOCKWISE] = getShader(ShaderPickingAlphaCullCCWFile); mShaderGizmoSolid = getShader(ShaderSolidGizmoFile); mShaderGizmoLine = getShader(ShaderLineGizmoFile); mShaderGizmoWire = getShader(ShaderWireGizmoFile); mShaderGizmoIcon = getShader(ShaderIconGizmoFile); mShaderGizmoPicking = getShader(ShaderGizmoPickingFile); mShaderGizmoAlphaPicking = getShader(ShaderGizmoPickingAlphaFile); mShaderGizmoText = getShader(ShaderTextGizmoFile); mShaderHandleSolid = getShader(ShaderSolidHandleFile); mShaderHandleClearAlpha = getShader(ShaderHandleClearAlphaFile); mShaderHandleLine = getShader(ShaderLineHandleFile); mShaderSelection = getShader(ShaderSelectionFile); mDefaultFont = gResources().load<Font>(BuiltinDataFolder + (DefaultFontFilename + ".asset")); mDefaultAAFont = gResources().load<Font>(BuiltinDataFolder + (DefaultAAFontFilename + ".asset")); mSkin = gResources().load<GUISkin>(BuiltinDataFolder + (GUISkinFile + ".json.asset")); }
void ScriptEditorSettings::internal_SetBool(MonoString* name, bool value) { String nativeName = MonoUtil::monoToString(name); SPtr<EditorSettings> settings = gEditorApplication().getEditorSettings(); settings->setBool(nativeName, value); }
bool ScriptEditorSettings::internal_GetBool(MonoString* name, bool defaultValue) { String nativeName = MonoUtil::monoToString(name); SPtr<EditorSettings> settings = gEditorApplication().getEditorSettings(); return settings->getBool(nativeName, defaultValue); }
bool ScriptEditorSettings::internal_HasKey(MonoString* name) { String nativeName = MonoUtil::monoToString(name); SPtr<EditorSettings> settings = gEditorApplication().getEditorSettings(); return settings->hasKey(nativeName); }
SPtr<PixelData> BuiltinEditorResources::getSplashScreen() { Path splashScreenPath = gEditorApplication().getDataPath() + (String(SplashScreenName) + ".asset"); FileDecoder fd(splashScreenPath); return std::static_pointer_cast<PixelData>(fd.decode()); }
void ScriptEditorSettings::internal_DeleteKey(MonoString* name) { String nativeName = MonoUtil::monoToString(name); SPtr<EditorSettings> settings = gEditorApplication().getEditorSettings(); settings->deleteKey(nativeName); }
void ScriptEditorSettings::internal_SetString(MonoString* name, MonoString* value) { String nativeName = MonoUtil::monoToString(name); WString nativeValue = MonoUtil::monoToWString(value); SPtr<EditorSettings> settings = gEditorApplication().getEditorSettings(); settings->setString(nativeName, nativeValue); }
Path BuildManager::getBuildFolder(BuildFolder folder, PlatformType platform) const { // Use Data folder as an anchor to find where the root is Path sourceRoot = Paths::getRuntimeDataPath(); UINT32 numDataDirs = Paths::RUNTIME_DATA_PATH.getNumDirectories(); if (Paths::RUNTIME_DATA_PATH.isFile()) numDataDirs++; for (UINT32 i = 0; i < numDataDirs; i++) sourceRoot.makeParent(); switch (folder) { case BuildFolder::SourceRoot: return sourceRoot; case BuildFolder::DestinationRoot: { switch (platform) { case PlatformType::Windows: return gEditorApplication().getProjectPath() + BUILD_FOLDER_NAME + L"Windows"; default: break; } return gEditorApplication().getProjectPath() + BUILD_FOLDER_NAME; } case BuildFolder::NativeBinaries: { Path binariesPath = Paths::getBinariesPath(); return binariesPath.makeRelative(sourceRoot); } case BuildFolder::BansheeDebugAssemblies: return Paths::DEBUG_ASSEMBLY_PATH; case BuildFolder::BansheeReleaseAssemblies: return Paths::RELEASE_ASSEMBLY_PATH; case BuildFolder::Data: return Paths::ENGINE_DATA_PATH; } return Path::BLANK; }
MonoString* ScriptEditorSettings::internal_GetString(MonoString* name, MonoString* defaultValue) { String nativeName = MonoUtil::monoToString(name); WString nativeDefaultValue = MonoUtil::monoToWString(defaultValue); SPtr<EditorSettings> settings = gEditorApplication().getEditorSettings(); WString nativeValue = settings->getString(nativeName, nativeDefaultValue); return MonoUtil::wstringToMono(nativeValue); }
void EditorScriptManager::loadMonoTypes() { WString editorAssemblyPath = gEditorApplication().getEditorAssemblyPath().toWString(); mEditorAssembly = &MonoManager::instance().loadAssembly(editorAssemblyPath, EDITOR_ASSEMBLY); mProgramEdClass = mEditorAssembly->getClass("BansheeEditor", "Program"); mUpdateMethod = mProgramEdClass->getMethod("OnEditorUpdate"); ScriptEditorWindow::clearRegisteredEditorWindow(); ScriptEditorWindow::registerManagedEditorWindows(); }
void ScriptEditorSettings::internal_SetRecentProjects(MonoArray* paths, MonoArray* timeStamps) { ScriptArray pathsArray(paths); ScriptArray timeStampsArray(timeStamps); UINT32 numEntries = pathsArray.size(); Vector<RecentProject> recentProjects(numEntries); for (UINT32 i = 0; i < numEntries; i++) { recentProjects[i].path = pathsArray.get<WString>(i); recentProjects[i].accessTimestamp = timeStampsArray.get<UINT64>(i); } SPtr<EditorSettings> settings = gEditorApplication().getEditorSettings(); settings->setRecentProjects(recentProjects); }
void ScriptEditorApplication::update() { // Project load must be delayed when requested from managed code because it // triggers managed assembly reload, and that can't be performed when called // from the Mono thread. if (mRequestProjectLoad) { gEditorApplication().loadProject(mProjectLoadPath); mRequestProjectLoad = false; mRequestAssemblyReload = false; MonoUtil::invokeThunk(onProjectLoadedThunk); } else if (mRequestAssemblyReload) { ScriptManager::instance().reload(); mRequestAssemblyReload = false; } }
void ScriptEditorSettings::internal_GetRecentProjects(MonoArray** paths, MonoArray** timeStamps) { SPtr<EditorSettings> settings = gEditorApplication().getEditorSettings(); const Vector<RecentProject>& recentProjects = settings->getRecentProjects(); UINT32 numEntries = (UINT32)recentProjects.size(); ScriptArray outputPaths = ScriptArray::create<WString>(numEntries); ScriptArray outputTimeStamps = ScriptArray::create<UINT64>(numEntries); for (UINT32 i = 0; i < numEntries; i++) { WString projectPath = recentProjects[i].path.toWString(); MonoString* monoPath = MonoUtil::wstringToMono(projectPath); outputPaths.set(i, monoPath); outputTimeStamps.set(i, recentProjects[i].accessTimestamp); } *paths = outputPaths.getInternal(); *timeStamps = outputPaths.getInternal(); }
void ScriptEditorSettings::internal_SetRotateHandleSnapActive(bool value) { SPtr<EditorSettings> settings = gEditorApplication().getEditorSettings(); settings->setRotateHandleSnapActive(value); }
bool ScriptEditorSettings::internal_GetRotateHandleSnapActive() { SPtr<EditorSettings> settings = gEditorApplication().getEditorSettings(); return settings->getRotateHandleSnapActive(); }
void ScriptEditorSettings::internal_Save() { gEditorApplication().saveEditorSettings(); }
UINT32 ScriptEditorSettings::internal_GetHash() { SPtr<EditorSettings> settings = gEditorApplication().getEditorSettings(); return settings->getHash(); }
void ScriptEditorSettings::internal_DeleteAllKeys() { SPtr<EditorSettings> settings = gEditorApplication().getEditorSettings(); settings->deleteAllKeys(); }
void ScriptEditorSettings::internal_SetActivePivotMode(UINT32 value) { SPtr<EditorSettings> settings = gEditorApplication().getEditorSettings(); settings->setActivePivotMode(value); }
void ScriptEditorSettings::internal_SetAutoLoadLastProject(bool value) { SPtr<EditorSettings> settings = gEditorApplication().getEditorSettings(); settings->setAutoLoadLastProject(value); }
float ScriptEditorSettings::internal_GetRotateHandleSnapAmount() { SPtr<EditorSettings> settings = gEditorApplication().getEditorSettings(); return settings->getRotationHandleSnap().valueDegrees(); }
float ScriptEditorSettings::internal_GetMouseSensitivity() { SPtr<EditorSettings> settings = gEditorApplication().getEditorSettings(); return settings->getMouseSensitivity(); }
void ScriptEditorSettings::internal_SetMouseSensitivity(float value) { SPtr<EditorSettings> settings = gEditorApplication().getEditorSettings(); settings->setMouseSensitivity(value); }
float ScriptEditorSettings::internal_GetMoveHandleSnapAmount() { SPtr<EditorSettings> settings = gEditorApplication().getEditorSettings(); return settings->getMoveHandleSnap(); }
void ScriptEditorSettings::internal_SetLastOpenProject(MonoString* value) { SPtr<EditorSettings> settings = gEditorApplication().getEditorSettings(); settings->setLastOpenProject(MonoUtil::monoToWString(value)); }
void ScriptEditorSettings::internal_SetMoveHandleSnapAmount(float value) { SPtr<EditorSettings> settings = gEditorApplication().getEditorSettings(); settings->setMoveHandleSnap(value); }
bool ScriptEditorSettings::internal_GetAutoLoadLastProject() { SPtr<EditorSettings> settings = gEditorApplication().getEditorSettings(); return settings->getAutoLoadLastProject(); }
void ScriptEditorSettings::internal_SetFPSLimit(UINT32 value) { SPtr<EditorSettings> settings = gEditorApplication().getEditorSettings(); settings->setFPSLimit(value); }
MonoString* ScriptEditorSettings::internal_GetLastOpenProject() { SPtr<EditorSettings> settings = gEditorApplication().getEditorSettings(); return MonoUtil::wstringToMono(settings->getLastOpenProject().toWString()); }