diff options
| author | troido <troido@protonmail.com> | 2020-09-26 14:05:14 +0200 |
|---|---|---|
| committer | troido <troido@protonmail.com> | 2020-09-26 14:05:14 +0200 |
| commit | 9b7e3d14b3f35163199ed704ae35544fa658931e (patch) | |
| tree | 9ad3623420f34b48f538ff2ceca6e3a277f16758 /src/template.rs | |
| parent | 450cf9331803532cb0e3a002fec17d12be18abd6 (diff) | |
spawned entities are now saved but not spawned again until removed
Diffstat (limited to 'src/template.rs')
| -rw-r--r-- | src/template.rs | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/src/template.rs b/src/template.rs index 5d753a1..1475d42 100644 --- a/src/template.rs +++ b/src/template.rs @@ -22,7 +22,9 @@ enum TemplateSave { #[serde(default, skip_serializing_if = "HashMap::is_empty")] kwargs: HashMap<String, Parameter>, #[serde(default, skip_serializing_if = "Option::is_none")] - save: Option<bool> + save: Option<bool>, + #[serde(default, skip_serializing_if = "Option::is_none")] + clan: Option<String> } } @@ -33,27 +35,29 @@ pub struct Template { pub args: Vec<Parameter>, pub kwargs: HashMap<String, Parameter>, pub save: Option<bool>, + pub clan: Option<String> } impl From<TemplateSave> for Template { fn from(ts: TemplateSave) -> Self { match ts { - TemplateSave::Name(name) => Self{name, args: Vec::new(), kwargs: HashMap::new(), save: None}, - TemplateSave::Full{name, args, kwargs, save} => Self{name, args, kwargs, save} + TemplateSave::Name(name) => Self{name, args: Vec::new(), kwargs: HashMap::new(), save: None, clan: None}, + TemplateSave::Full{name, args, kwargs, save, clan} => Self{name, args, kwargs, save, clan} } } } impl Into<TemplateSave> for Template { fn into(self) -> TemplateSave { - if self.args.is_empty() && self.kwargs.is_empty() && self.save == None { + if self.args.is_empty() && self.kwargs.is_empty() && self.save == None && self.clan == None { return TemplateSave::Name(self.name); } TemplateSave::Full { name: self.name, args: self.args, kwargs: self.kwargs, - save: self.save + save: self.save, + clan: self.clan } } } @@ -65,7 +69,8 @@ impl Template { name: EntityType(name.to_string()), args: Vec::new(), kwargs, - save: None + save: None, + clan: None } } @@ -85,7 +90,8 @@ impl Template { name: typ, args: Vec::new(), kwargs: HashMap::new(), - save: None + save: None, + clan: None } } @@ -100,6 +106,9 @@ impl Template { if self.save == None { self.save = other.save; } + if self.clan == None { + self.clan = other.clan; + } for (key, value) in other.kwargs { self.kwargs.entry(key).or_insert(value); } |
