diff options
| author | troido <troido@protonmail.com> | 2020-09-25 08:54:20 +0200 |
|---|---|---|
| committer | troido <troido@protonmail.com> | 2020-09-25 08:54:20 +0200 |
| commit | 09306cb76c6e1eabb4082a985a0a0fa335bda5c1 (patch) | |
| tree | e43abd096374a8e79186b519d80372112ab0ca74 /src/components/messages.rs | |
| parent | 9eb3a9da97e53cee14e585e027badb3783b8e25e (diff) | |
proper serialisation for playerstate; strum for old-style enums
Diffstat (limited to 'src/components/messages.rs')
| -rw-r--r-- | src/components/messages.rs | 18 |
1 files changed, 3 insertions, 15 deletions
diff --git a/src/components/messages.rs b/src/components/messages.rs index 5e27cc6..f815ab5 100644 --- a/src/components/messages.rs +++ b/src/components/messages.rs @@ -1,6 +1,7 @@ use std::collections::HashMap; use std::any::Any; +use strum_macros::{EnumString, Display}; use specs::{ Component, DenseVecStorage, @@ -84,7 +85,8 @@ pub type AttackInbox = Inbox<AttackMessage>; -#[derive(Debug, Clone, Copy, PartialEq, Eq)] +#[derive(Debug, Clone, Copy, PartialEq, Eq, EnumString, Display)] +#[strum(serialize_all="snake_case")] pub enum Trigger { // basic triggers Loot, @@ -96,20 +98,6 @@ pub enum Trigger { Change // Remove + Build } -impl Trigger { - pub fn from_str(txt: &str) -> Option<Self> { - Some(match txt { - "loot" => Self::Loot, - "remove" => Self::Remove, - "build" => Self::Build, - "spawn" => Self::Spawn, - "die" => Self::Die, - "change" => Self::Change, - _ => {return None} - }) - } -} - impl Message for Trigger {} pub type TriggerBox = Inbox<Trigger>; |
