bevy_asset_loader
bevy_asset_loader copied to clipboard
RON Map support
I am looking to implement this:
({
"icons": Map {
"a" : Image (
path: "a.png"
),
"b" : Image (
path: "b.png"
),
"c" : Image (
path: "c.png"
),
},
"meshes": Map {
"sphere": Sphere (
radius: 0.75,
),
"square": Quad (
size: (
2.0,
2.0
)
),
},
})
Where I then am trying to create a dynamic asset out of this, with the backbone enum being:
/// Supported types of icons within the editor to be loaded in
#[derive(serde::Deserialize, Debug, Clone)]
enum EditorIconAssetType {
/// PNG images for cameras, lights, and audio
Image { path: String },
/// Quad mesh for putting images onto
Quad { size: Vec2 },
/// Icosphere mesh to make an icon clickable
Sphere { radius: f32 },
// *This is the part that I am not sure about*
/// Collection of multiple inner assets
Map { items: HashMap<String, EditorIconAssetType> },
}
So my question on this is do I need to try and find a way to support the RON map type like this or is there another way?
I know that in the impl of DynamicAssetType there is a collection type that stores a vec of the data, so is there a clean way that this could be done?
I feel like this should either be a feature if it isn't already, but given a direction I wouldn't mind trying to hash it out.
Maps in Ron would be
"icons": {
"a" : Image (
path: "a.png"
),
"b" : Image (
path: "b.png"
),
"c" : Image (
path: "c.png"
),
}
Without the "Map". But if that doesn't work I can try to extend the custom dynamic assets example and potentially fix it.
Maps in Ron would be
"icons": { "a" : Image ( path: "a.png" ), "b" : Image ( path: "b.png" ), "c" : Image ( path: "c.png" ), }Without the "Map". But if that doesn't work I can try to extend the custom dynamic assets example and potentially fix it.
I had that before and edited the comment to have the "Map" in it, my bad. I did try testing with just nothing there but end up getting an Expected Identifier error at the { after "icons"