summaryrefslogtreecommitdiff
path: root/src/components/messages.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/messages.rs')
-rw-r--r--src/components/messages.rs18
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>;