summaryrefslogtreecommitdiff
path: root/src/assemblage.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/assemblage.rs')
-rw-r--r--src/assemblage.rs5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/assemblage.rs b/src/assemblage.rs
index dd84837..bdd6c25 100644
--- a/src/assemblage.rs
+++ b/src/assemblage.rs
@@ -74,8 +74,10 @@ impl Assemblage {
arguments: Self::parse_definition_arguments(val.get("arguments").unwrap_or(&json!([])))?,
components: Self::parse_definition_components(val.get("components").ok_or("property 'components' not found")?)?
};
+ // visible component is so common that shortcuts are very helpful
if let Some(spritename) = val.get("sprite") {
let height = val.get("height").ok_or("defining a sprite requires also defining a height")?;
+ let name = val.get("name").unwrap_or(spritename);
assemblage.components.push((
ComponentType::Visible,
hashmap!(
@@ -84,6 +86,9 @@ impl Assemblage {
),
"height".to_string() => ComponentParameter::Constant(
Parameter::Float(height.as_f64().ok_or("height not a float")?)
+ ),
+ "name".to_string() => ComponentParameter::Constant(
+ Parameter::String(name.as_str().ok_or("name not a string")?.to_string())
)
)
));