[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"] # TODO: enums are not supported, see https://github.com/AmbientRun/Ambient/issues/221. # [components.capsule_uv_profile] # type = "???" # name = "Capsule UV profile" # description = "Specifies vertical UV distribution." # attributes = ["Debuggable", "Networked", "Store"] # Concepts [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 }