class AssetExplorer : DockPanel { AssetType searchAssetType = AssetType::None; string currentPath = ""; void onRender() { UI::text("\t"); UI::sameline(); if (UI::button("Assets")) { searchAssetType = AssetType::None; currentPath = ""; } if (searchAssetType != AssetType::None) { UI::sameline(); UI::text("/"); UI::sameline(); switch (searchAssetType) { case AssetType::Mesh : if (UI::button("Meshes")) { currentPath = ""; } break; case AssetType::Shader : if (UI::button("Shaders")) { currentPath = ""; } break; default: UI::text("Error"); break; } if (currentPath != "") { array@ paths = Engine::dividePath(currentPath); for (uint i = 0; i < paths.length(); i++) { UI::sameline(); UI::text("/"); UI::sameline(); // If we select that path if (UI::button(paths[i])) { // We obtain that pat string changePath = ""; for (uint z = 0; z <= i; z++) { if (z != 0) changePath += "/"; changePath += paths[z]; } currentPath = changePath; } } } } UI::setupAutomaticColumns(128); if (searchAssetType == AssetType::None) { searchAssetType = renderRootAssets(); } if (searchAssetType == AssetType::Mesh) { currentPath = renderMeshExplorer(currentPath); if (currentPath == "..") { searchAssetType = AssetType::None; currentPath = ""; } } UI::setupColumns(1); } }