From 633cb7d5b2048324a13bedb43468a7f04a81a519 Mon Sep 17 00:00:00 2001 From: troido Date: Wed, 1 Apr 2020 16:48:24 +0200 Subject: removed Sometime parameter --- src/assemblage.rs | 7 ++++++- src/componentwrapper.rs | 17 ++++++++++++++++- src/parameter.rs | 10 +--------- 3 files changed, 23 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/assemblage.rs b/src/assemblage.rs index df60b45..1aa775f 100644 --- a/src/assemblage.rs +++ b/src/assemblage.rs @@ -166,7 +166,12 @@ impl Assemblage { }; let param = value.ok_or(aerr!(&format!("argument <{:?}> has no value", (idx, (name, typ, def)))))?; if param.paramtype() != *typ { - return Err(aerr!("argument has incorrect type")); + return Err(aerr!(&format!( + "argument has incorrect type: {:?}, {:?}, {:?}", + (idx, (name, typ, def)), + param.paramtype(), + param + ))); } arguments.insert(name, param); } diff --git a/src/componentwrapper.rs b/src/componentwrapper.rs index 40faa2d..589da15 100644 --- a/src/componentwrapper.rs +++ b/src/componentwrapper.rs @@ -181,7 +181,22 @@ components!( Faction (faction: String) {Faction::from_str(faction.as_str())?}; Interactable (action: String) {Interactable::from_str(action.as_str())?}; Loot (loot: LootList); - Grow (into: Template, delay: Int, target_time: SomeTime); + Grow ( + into: Template (Grow.into.clone()), + delay: Int (Grow.delay), + target_time: Int ({ + if let Some(time) = Grow.target_time { + time.0 + } else { + 0 + } + }) + ) + Grow { + into, + delay, + target_time: if target_time == 0 { None } else { Some(Timestamp(target_time)) } + }; Equipment () {panic!("equipment from parameters not implemented")}; CreationTime (time: Int) {CreationTime{time: Timestamp(time)}}; ); diff --git a/src/parameter.rs b/src/parameter.rs index a56dd23..829c5cf 100644 --- a/src/parameter.rs +++ b/src/parameter.rs @@ -3,8 +3,7 @@ use serde_json::{Value, json}; use crate::{ Template, components::item::ItemAction, - Pos, - Timestamp + Pos }; @@ -76,13 +75,6 @@ parameters!( Some((Template::from_json(item.get(0)?).ok()?, item.get(1)?.as_f64()?)) ).collect::>>()?) ({json!(v.iter().map(|(t, c)| (t.to_json(), *c)).collect::>())}); - SomeTime (Option) sometime, v - ( - serde_json::from_value::>(v.clone()) - .ok()? - .map(|time| Timestamp(time)) - ) - (json!(v.map(|timestamp| timestamp.0))); ); -- cgit