Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Renzora Engine `r1-alpha8`

## Unreleased
- feat(editor): asset context menus can copy project-relative paths
- feat(marketplace): a plugin states the engine each release was built for, so you are offered the newest version your editor can actually run instead of one that will not load
- feat(marketplace): the plugin store hides listings with no release for your engine, and shows the version you would get rather than the newest one published
- feat(marketplace): the update check now says when a newer version exists but needs a newer editor, instead of showing nothing
Expand Down
19 changes: 18 additions & 1 deletion crates/renzora_asset_browser/src/menus.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ use bevy::prelude::*;

use renzora_ember::font::EmberFonts;
use renzora_ember::widgets::{
menu_card, menu_header, menu_item, menu_item_styled, menu_sep, screen_menu,
clipboard, menu_card, menu_header, menu_item, menu_item_styled, menu_sep, screen_menu,
screen_menu_est_height, screen_menu_flip, screen_menu_under, trigger_rect,
};

Expand Down Expand Up @@ -300,6 +300,23 @@ pub(crate) fn asset_context_menu(
let path = path.clone();
move |_| duplicate_asset(&path)
}),
menu_item(
&mut commands,
&fonts,
"clipboard",
&renzora::lang::t("assets.context.copy_path"),
{
let path = path.clone();
move |world| {
if let Some(relative) = world
.get_resource::<renzora::core::CurrentProject>()
.and_then(|project| project.make_relative(&path))
{
clipboard::set_text(&relative);
}
}
},
),
menu_item(&mut commands, &fonts, "folder-open", &renzora::lang::t("assets.context.reveal"), {
let path = path.clone();
move |_| reveal_in_explorer(&path)
Expand Down
3 changes: 3 additions & 0 deletions docs/r1-alpha8/engine-core/asset-pipeline.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@ Paths are **project-relative** (e.g. `models/player.glb`) — the custom asset r

`AssetRegistryPlugin` walks the project tree **once**, on `OnEnter(SplashState::Loading)`, and records one `AssetEntry` per file. It deliberately does **not** read, decode, or instantiate anything — that stays with Bevy's `AssetServer`. The index powers the asset browser, drag-and-drop previews, and icon picking.

In the Asset Browser, right-click a file or folder and select **Copy Path** to
copy its project-relative path with forward slashes.

```rust
pub struct AssetEntry {
pub path: String, // project-relative, e.g. "models/player.glb"
Expand Down