summaryrefslogtreecommitdiff
path: root/src/assemblage.rs
diff options
context:
space:
mode:
authortroido <troido@protonmail.com>2020-02-21 20:01:24 +0100
committertroido <troido@protonmail.com>2020-02-21 20:01:24 +0100
commit7e9784f23d1920640152d1bc99a0725f6f22d529 (patch)
tree8b4e33f67b827d1a5123e82877f61c1a6805aeb7 /src/assemblage.rs
parent8169718d7e0b189acdf69c14ee817d2c6aa684e1 (diff)
visible component now also has a name
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())
)
)
));