diff --git a/src/item/entity/mod.rs b/src/item/entity/mod.rs index 479e4b1..a187cdb 100644 --- a/src/item/entity/mod.rs +++ b/src/item/entity/mod.rs @@ -102,6 +102,7 @@ impl EntityItem<'_, '_> { .map(|value| TilesetRectangle::new(value.clone())) } + // FIXME: Explore returning an iterator instead of allocating a vec? pub fn get_field_array_tiles(&self, identifier: &str) -> Option> { self.get_asset() .get_field_instance(identifier)? @@ -113,6 +114,20 @@ impl EntityItem<'_, '_> { .collect() }) } + + pub fn get_field_string(&self, identifier: &str) -> Option<&str> { + self.get_asset() + .get_field_instance(identifier)? + .get_string() + .map(|str| str.as_str()) + } + + pub fn get_field_array_string(&self, identifier: &str) -> Option> { + self.get_asset() + .get_field_instance(identifier)? + .get_array_string() + .map(|value| value.iter().map(|str| str.as_str()).collect()) + } } impl EntityItem<'_, '_> {