[package]
name = "Primitives"
description = "Components that create primitive (in the geometric sense) objects from their attached entities."
content = { type = "Asset", schema = true }
version = "0.3.1"
ambient_version = "0.3.1"
[components.cube]
type = "Empty"
name = "Cube"
description = """
If attached to an entity, the entity will be converted to a cube primitive.
The cube is unit-sized (i.e. 0.5 metres out to each side)."""
attributes = ["Debuggable", "Networked", "Store"]
[components.quad]
type = "Empty"
name = "Quad"
description = """
If attached to an entity, the entity will be converted to a quad primitive.
The quad is unit-sized on the XY axes, and flat on the Z axis (i.e. 0.5 metres out to the XY axes)."""
attributes = ["Debuggable", "Networked", "Store"]
[components.sphere]
type = "Empty"
name = "Sphere"
description = """
If attached to an entity alongside the other `sphere_*` components, the entity will be converted to a sphere primitive.
To easily instantiate a unit-diameter `sphere`, consider using the `Sphere` concept."""
attributes = ["Debuggable", "Networked", "Store"]
[components.sphere_radius]
type = "F32"
name = "Sphere radius"
description = "Set the radius of a `sphere` entity."
default = 0.5
attributes = ["Debuggable", "Networked", "Store"]
[components.sphere_sectors]
type = "U32"
name = "Sphere sectors"
description = "Set the longitudinal sectors of a `sphere` entity."
default = 36
attributes = ["Debuggable", "Networked", "Store"]
[components.sphere_stacks]
type = "U32"
name = "Sphere stacks"
description = "Set the latitudinal stacks of a `sphere` entity."
default = 18
attributes = ["Debuggable", "Networked", "Store"]
[components.torus]
type = "Empty"
name = "Torus"
description = """
If attached to an entity alongside the other `torus_*` components, the entity will be converted to a torus primitive.
To easily instantiate a default `torus`, consider using the `Torus` concept."""
attributes = ["Debuggable", "Networked", "Store"]
[components.torus_inner_radius]
type = "F32"
name = "Torus inner radius"
description = "Set the inner radius of a `torus` entity, spanning XY-plane."
attributes = ["Debuggable", "Networked", "Store"]
[components.torus_outer_radius]
type = "F32"
name = "Torus outer radius"
description = "Set the outer radius of a `torus` entity, spanning XY-plane."
attributes = ["Debuggable", "Networked", "Store"]
[components.torus_loops]
type = "U32"
name = "Torus loops"
description = "Set the loops of a `torus` entity, spanning XY-plane."
attributes = ["Debuggable", "Networked", "Store"]
[components.torus_slices]
type = "U32"
name = "Torus slices"
description = "Set the slices of a `torus` entity, spanning XY-plane."
attributes = ["Debuggable", "Networked", "Store"]
[components.capsule]
type = "Empty"
name = "Capsule"
description = """
If attached to an entity alongside the other `capsule_*` components, the entity will be converted to a capsule primitive.
To easily instantiate a default `capsule`, consider using the `Capsule` concept."""
attributes = ["Debuggable", "Networked", "Store"]
[components.capsule_radius]
type = "F32"
name = "Capsule radius"
description = "Set the radius of a `capsule` entity, spanning XY-plane."
attributes = ["Debuggable", "Networked", "Store"]
[components.capsule_half_height]
type = "F32"
name = "Capsule half-height"
description = "Set the half-height of the `capsule` entity, spanning Z-axis, excluding the caps."
attributes = ["Debuggable", "Networked", "Store"]
[components.capsule_rings]
type = "U32"
name = "Capsule rings"
description = "Set the number of sections between the caps."
attributes = ["Debuggable", "Networked", "Store"]
[components.capsule_latitudes]
type = "U32"
name = "Capsule latitudes"
description = "Set the number of latitudinal sections. Should be even."
attributes = ["Debuggable", "Networked", "Store"]
[components.capsule_longitudes]
type = "U32"
name = "Capsule longitudes"
description = "Set the number of longitudinal sections."
attributes = ["Debuggable", "Networked", "Store"]
[concepts.Sphere]
name = "Sphere"
description = "A primitive sphere."
[concepts.Sphere.components.required]
sphere = { suggested = {} }
sphere_radius = { suggested = 0.5 }
sphere_sectors = { suggested = 36 }
sphere_stacks = { suggested = 18 }
[concepts.Capsule]
name = "Capsule"
description = "A primitive capsule. Defined as a cylinder capped by hemispheres."
[concepts.Capsule.components.required]
capsule = { suggested = {} }
capsule_radius = { suggested = 0.5 }
capsule_half_height = { suggested = 0.5 }
capsule_rings = { suggested = 0 }
capsule_latitudes = { suggested = 16 }
capsule_longitudes = { suggested = 32 }
[concepts.Torus]
name = "Torus"
description = "A primitive Torus, surface of revolution generated by revolving a circle in three-dimensional space one full revolution."
[concepts.Torus.components.required]
torus = { suggested = {} }
torus_inner_radius = { suggested = 0.25 }
torus_outer_radius = { suggested = 0.35 }
torus_slices = { suggested = 32 }
torus_loops = { suggested = 16 }