bevy_asset_loader icon indicating copy to clipboard operation
bevy_asset_loader copied to clipboard

RON Map support

Open MickHarrigan opened this issue 1 year ago • 2 comments

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.

MickHarrigan avatar Jan 11 '24 21:01 MickHarrigan

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.

NiklasEi avatar Jan 11 '24 22:01 NiklasEi

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"

MickHarrigan avatar Jan 11 '24 22:01 MickHarrigan