Skip to main content

mittens_engine/engine/ecs/component/
asset_payload.rs

1use crate::engine::ecs::component::Component;
2
3#[derive(Debug, Clone, PartialEq, Eq)]
4pub struct AssetPayloadComponent {
5    pub asset_key: String,
6    pub title: String,
7}
8
9impl AssetPayloadComponent {
10    pub fn new(asset_key: impl Into<String>, title: impl Into<String>) -> Self {
11        Self {
12            asset_key: asset_key.into(),
13            title: title.into(),
14        }
15    }
16}
17
18impl Component for AssetPayloadComponent {
19    fn set_id(&mut self, _id: crate::engine::ecs::ComponentId) {}
20
21    fn name(&self) -> &'static str {
22        "asset_payload"
23    }
24
25    fn as_any(&self) -> &dyn std::any::Any {
26        self
27    }
28
29    fn as_any_mut(&mut self) -> &mut dyn std::any::Any {
30        self
31    }
32
33    fn to_mms_ast(
34        &self,
35        _world: &crate::engine::ecs::World,
36    ) -> crate::scripting::ast::ComponentExpression {
37        use crate::engine::ecs::component::ce_helpers::*;
38        ce_call(
39            "AssetPayload",
40            "new",
41            vec![s(&self.asset_key), s(&self.title)],
42        )
43    }
44}