mittens_engine/engine/ecs/component/
asset_payload.rs1use 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}