ambient_schema 0.3.1

Ambient schema.
Documentation
[package]
name = "Transform"
description = "Entity transform state (including translation, rotation and scale), as well as other transformations for this entity."
content = { type = "Asset", schema = true }
version = "0.3.1"
ambient_version = "0.3.1"

[components.cylindrical_billboard_z]
type = "Empty"
name = "Cylindrical billboard Z"
description = """
If attached, this ensures this entity is always aligned with the camera, except on the Z-axis.
This is useful for decorations that the player will be looking at from roughly the same altitude."""
attributes = ["Debuggable", "Networked", "Store"]

[components.euler_rotation]
type = "Vec3"
name = "Euler rotation"
description = "The Euler rotation of this entity in ZYX order."
attributes = ["Debuggable", "Networked", "Store"]

[components.inv_local_to_world]
type = "Mat4"
name = "Inverse Local to World"
description = """
Converts a world position to a local position.
This is automatically updated."""
attributes = ["Debuggable", "Networked", "Store"]

[components.local_to_parent]
type = "Mat4"
name = "Local to Parent"
description = "Transformation from the entity's local space to the parent's space."
attributes = ["Debuggable", "Networked", "Store", "MaybeResource"]

[components.local_to_world]
type = "Mat4"
name = "Local to World"
description = "Transformation from the entity's local space to worldspace."
attributes = ["Debuggable", "Networked", "Store"]

[components.lookat_target]
type = "Vec3"
name = "Look-at target"
description = "The position that this entity should be looking at."
attributes = ["Debuggable", "Networked", "Store"]

[components.lookat_up]
type = "Vec3"
name = "Look-at up"
description = "When combined with `lookat_target`, the up vector for this entity."
attributes = ["Debuggable", "Networked", "Store"]

[components.mesh_to_local]
type = "Mat4"
name = "Mesh to Local"
description = "Transformation from mesh-space to the entity's local space."
attributes = ["Debuggable", "Networked", "Store"]

[components.mesh_to_world]
type = "Mat4"
name = "Mesh to World"
description = """
Transformation from mesh-space to world space.
This is automatically updated when `mesh_to_local` and `local_to_world` change."""
attributes = ["Debuggable", "Networked", "Store"]

[components.reset_scale]
type = "Empty"
name = "Reset scale"
description = "If attached to a transform hierarchy, the scale will be reset at that point, with only rotation/translation considered."
attributes = ["Debuggable", "Networked", "Store"]

[components.rotation]
type = "Quat"
name = "Rotation"
description = "The rotation of this entity."
attributes = ["Debuggable", "Networked", "Store"]

[components.scale]
type = "Vec3"
name = "Scale"
description = "The scale of this entity."
attributes = ["Debuggable", "Networked", "Store"]

[components.spherical_billboard]
type = "Empty"
name = "Spherical billboard"
description = "If attached, this ensures that this entity is always aligned with the camera."
attributes = ["Debuggable", "Networked", "Store"]

[components.translation]
type = "Vec3"
name = "Translation"
description = "The translation/position of this entity."
attributes = ["Debuggable", "Networked", "Store"]

# Concepts

[concepts.Transformable]
name = "Transformable"
description = "Can be translated, rotated and scaled."

[concepts.Transformable.components.required]
local_to_world = { suggested = "Identity" }

[concepts.Transformable.components.optional]
translation = { suggested = [0.0, 0.0, 0.0] }
rotation = { suggested = [0.0, 0.0, 0.0, 1.0] }
scale = { suggested = [1.0, 1.0, 1.0] }