Skip to content

RON Map support #179

@MickHarrigan

Description

@MickHarrigan

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions