diff options
| author | troido <troido@protonmail.com> | 2020-02-21 20:01:24 +0100 |
|---|---|---|
| committer | troido <troido@protonmail.com> | 2020-02-21 20:01:24 +0100 |
| commit | 7e9784f23d1920640152d1bc99a0725f6f22d529 (patch) | |
| tree | 8b4e33f67b827d1a5123e82877f61c1a6805aeb7 /src/assemblage.rs | |
| parent | 8169718d7e0b189acdf69c14ee817d2c6aa684e1 (diff) | |
visible component now also has a name
Diffstat (limited to 'src/assemblage.rs')
| -rw-r--r-- | src/assemblage.rs | 5 |
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()) ) ) )); |
