AmbientRun / Ambient

The multiplayer game engine
https://ambient.run
Apache License 2.0
3.76k stars 123 forks source link

Concept::suggested values not populated for ConceptOptional structs #1233

Open kevzettler opened 6 months ago

kevzettler commented 6 months ago

Using the Transformable concept as an example:

Transformable {
   ..Transformable::suggested()
}.make()

I would expect that this makes a Transformable with the suggested values. It does not and the translation value is None furthermore:

Transformable {
    optional: TransformableOptional::default(),
    ..Transformable::suggested()
}

I would expect that this example would populate the optional fields with TransformableOptional::default values it does not. they all come in as None

You can log these values and see that they are None

println!("Transformable {:?}", Transformable::suggested());
println!(
   "TransformableOptional default? {:?}",
    TransformableOptional::default()
 );
15:34:03  INFO ambient::server::wasm: stdout: Transformable Transformable { local_to_world: Mat4 { x_axis: Vec4(1.0, 0.0, 0.0, 0.0), y_axis: Vec4(0.0, 1.0, 0.0, 0.0), z_axis: Vec4(0.0, 0.0, 1.0, 0.0), w_axis: Vec4(0.0, 0.0, 0.0, 1.0) }, optional: TransformableOptional { translation: None, rotation: None, scale: None } } module_name=server_aceclone
15:34:03  INFO ambient::server::wasm: stdout: TransformableOptional default? TransformableOptional { translation: None, rotation: None, scale: None } module_name=server_aceclone

This is unfortunate because it means you need to define lots of redundant optional values. not sure if this was intended?