Home
main
Button
code
held
pressed
held_any
pressed_any
Collider
box
sphere
capsule
Config
empty
Draw
default
Input
empty
idle_gamepad
Key
code
held
pressed
axis
Launch
default
Light
ambient
directional
sun
point
Pose
still
loop
Query
contacts_of
ray
ray_slot
overlap
overlap_slot
QueryResults
empty
ray
ray_slot
overlaps
Scene
empty
Sound
resolve
duration
play
Speaker
default
Vocabulary
Vec3
Quat
Rgb
Rgba
Config
Launch
Window
Msaa
Capacity
Manifest
Input
Gamepad
Camera
Draw
Pose
Collider
Contact
RayHit
OverlapHit
QueryResults
Query
Light
Sizing
Align
AttachPoint
BoxConfig
Text
Element
is_eq
Node
is_eq
Scene
Place
Speaker
Cursor
Command
Button
.
code
:
Button
->
U8
Button
.
held
:
Gamepad
,
Button
->
Bool
Button
.
pressed
:
Gamepad
,
Button
->
Bool
Button
.
held_any
:
Input
,
Button
->
Bool
Button
.
pressed_any
:
Input
,
Button
->
Bool
Collider
.
box
:
U64
,
Vec3
,
Quat
,
Vec3
->
Collider
Collider
.
sphere
:
U64
,
Vec3
,
F32
->
Collider
Collider
.
capsule
:
U64
,
Vec3
,
Quat
,
F32
,
F32
->
Collider
Config
.
empty
:
Config
Draw
.
default
:
Draw
Input
.
empty
:
Input
Input
.
idle_gamepad
:
Gamepad
Key
.
code
:
Key
->
U16
Key
.
held
:
Input
,
Key
->
Bool
Key
.
pressed
:
Input
,
Key
->
Bool
Key
.
axis
:
Input
,
Key
,
Key
->
F32
Launch
.
default
:
Launch
Light
.
ambient
:
Rgb
->
Light
Light
.
directional
:
Vec3
,
Rgb
->
Light
Light
.
sun
:
Vec3
,
Rgb
->
Light
Light
.
point
:
Vec3
,
Rgb
,
F32
->
Light
Pose
.
still
:
U32
,
F32
->
Pose
Pose
.
loop
:
F32
,
F32
->
F32
Query
.
contacts_of
:
U64
->
Query
Query
.
ray
:
U64
,
Vec3
,
Vec3
,
F32
->
Query
Query
.
ray_slot
:
U64
,
U32
,
Vec3
,
Vec3
,
F32
->
Query
Query
.
overlap
:
U64
, [
Box
(
Vec3
),
Sphere
(
F32
)],
Vec3
->
Query
Query
.
overlap_slot
:
U64
,
U32
, [
Box
(
Vec3
),
Sphere
(
F32
)],
Vec3
->
Query
QueryResults
.
empty
:
QueryResults
QueryResults
.
ray
:
QueryResults
,
U64
->
Try
(
RayHit
, [
Miss
])
QueryResults
.
ray_slot
:
QueryResults
,
U64
,
U32
->
Try
(
RayHit
, [
Miss
])
QueryResults
.
overlaps
:
QueryResults
,
U64
,
U32
->
List
(
U64
)
Scene
.
empty
:
Scene
Sound
.
resolve
:
Manifest
,
Str
->
U32
Sound
.
duration
:
Manifest
,
Str
->
F32
Sound
.
play
:
U32
->
Command
Speaker
.
default
:
Speaker
Vocabulary
.
Vec3
: { x :
F32
, y :
F32
, z :
F32
}
Vocabulary
.
Quat
: { x :
F32
, y :
F32
, z :
F32
, w :
F32
}
Vocabulary
.
Rgb
: { r :
F32
, g :
F32
, b :
F32
}
Vocabulary
.
Rgba
: { r :
F32
, g :
F32
, b :
F32
, a :
F32
}
Vocabulary
.
Config
: { seed :
U64
, assets :
List
(
Str
), args :
List
(
Str
) }
Vocabulary
.
Launch
: { window :
Window
, step_hz :
U32
, shadow_map :
U32
, capacity :
Capacity
}
Vocabulary
.
Window
: { width :
U32
, height :
U32
, title :
Str
, fullscreen :
Bool
, high_dpi :
Bool
, samples :
Msaa
, vsync :
Bool
}
Vocabulary
.
Msaa
: [
Off
,
X2
,
X4
,
X8
]
Vocabulary
.
Capacity
: { meshes :
U32
, skies :
U32
, draws :
U32
, groups :
U32
, ui_quads :
U32
, sounds :
U32
, voices :
U32
}
Vocabulary
.
Manifest
:
List
({ name :
Str
, id :
U32
, duration :
F32
, clips :
List
({ name :
Str
, id :
U32
, duration :
F32
}) })
Vocabulary
.
Input
: { held :
List
(
U16
), pressed :
List
(
U16
), mouse : { dx :
F32
, dy :
F32
}, gamepads :
List
(
Gamepad
) }
Vocabulary
.
Gamepad
: { slot :
U8
, held :
List
(
U8
), pressed :
List
(
U8
), left_stick : { x :
F32
, y :
F32
}, right_stick : { x :
F32
, y :
F32
}, left_trigger :
F32
, right_trigger :
F32
}
Vocabulary
.
Camera
: { eye :
Vec3
, target :
Vec3
, up :
Vec3
, fov_y :
F32
}
Vocabulary
.
Draw
: { id :
U64
, mesh :
U32
, pos :
Vec3
, scale :
Vec3
, rot :
Quat
, scale_rot :
Quat
, tint :
Rgb
, pose :
Pose
}
Vocabulary
.
Pose
: { clip :
U32
, time :
F32
, fade_clip :
U32
, fade_time :
F32
, fade :
F32
}
Vocabulary
.
Collider
: { id :
U64
, pos :
Vec3
, rot :
Quat
, shape : [
Box
(
Vec3
),
Sphere
(
F32
),
Capsule
({ radius :
F32
, half_height :
F32
})] }
Vocabulary
.
Contact
: { a :
U64
, b :
U64
, normal :
Vec3
, depth :
F32
}
Vocabulary
.
RayHit
: { owner :
U64
, slot :
U32
, id :
U64
, point :
Vec3
, normal :
Vec3
, distance :
F32
}
Vocabulary
.
OverlapHit
: { owner :
U64
, slot :
U32
, id :
U64
}
Vocabulary
.
QueryResults
: { contacts :
List
(
Contact
), rays :
List
(
RayHit
), overlaps :
List
(
OverlapHit
) }
Vocabulary
.
Query
: [
ContactsOf
(
U64
),
Raycast
({ owner :
U64
, slot :
U32
, origin :
Vec3
, dir :
Vec3
, max_distance :
F32
, exclude :
List
(
U64
) }),
Overlap
({ owner :
U64
, slot :
U32
, shape : [
Box
(
Vec3
),
Sphere
(
F32
)], pos :
Vec3
, exclude :
List
(
U64
) })]
Vocabulary
.
Light
: [
Ambient
(
Rgb
),
Directional
({ dir :
Vec3
, color :
Rgb
, shadow :
Bool
}),
Point
({ pos :
Vec3
, color :
Rgb
, range :
F32
})]
Vocabulary
.
Sizing
: [
Fit
({ min :
F32
, max :
F32
}),
Grow
({ min :
F32
, max :
F32
}),
Fixed
(
F32
),
Percent
(
F32
)]
Vocabulary
.
Align
: [
Start
,
Center
,
End
]
Vocabulary
.
AttachPoint
: [
LeftTop
,
LeftCenter
,
LeftBottom
,
CenterTop
,
CenterCenter
,
CenterBottom
,
RightTop
,
RightCenter
,
RightBottom
]
Vocabulary
.
BoxConfig
: { width :
Sizing
, height :
Sizing
, pad : { left :
F32
, right :
F32
, top :
F32
, bottom :
F32
}, gap :
F32
, direction : [
Row
,
Col
], child_align : { x :
Align
, y :
Align
}, background :
Rgba
, radius :
F32
, floating : [
NoFloat
,
Float
({ attach :
AttachPoint
, offset : { x :
F32
, y :
F32
} })] }
Vocabulary
.
Text
: { str :
Str
, size :
F32
, color :
Rgba
, wrap : [
Words
,
None
] }
Vocabulary
.
Element
:= [
Box
(
BoxConfig
,
List
(
Element
)),
Text
(
Text
)]
Vocabulary.Element
.
is_eq
:
Element
,
Element
->
Bool
Vocabulary
.
Node
:= [
Group
({ id :
U64
, pos :
Vec3
, rot :
Quat
},
List
(
Node
)),
Draw
(
Draw
),
Light
(
Light
),
Collider
(
Collider
),
Speaker
(
Speaker
)]
Vocabulary.Node
.
is_eq
:
Node
,
Node
->
Bool
Vocabulary
.
Scene
: { camera :
Camera
, nodes :
List
(
Node
), cursor :
Cursor
, sky :
U32
, ui :
List
(
Element
), queries :
List
(
Query
) }
Vocabulary
.
Place
: [
Here
,
At
({ pos :
Vec3
, range :
F32
})]
Vocabulary
.
Speaker
: { id :
U64
, sound :
U32
, gain :
F32
, pitch :
F32
, at :
Place
, repeat : [
Loop
,
Once
] }
Vocabulary
.
Cursor
: [
Free
,
Locked
]
Vocabulary
.
Command
: [
Quit
,
Load
({ pack :
Str
, assets :
List
(
Str
) }),
Unload
(
Str
),
Play
({ sound :
U32
, gain :
F32
, pitch :
F32
, at :
Place
})]