add english version of the ecs.md
This commit is contained in:
parent
086a44d703
commit
4952de4716
@ -7,6 +7,7 @@ Subsections:
|
||||
- [User input](scripting/user-input.md)
|
||||
- [Filesystem and serialization](scripting/filesystem.md)
|
||||
- [UI properties and methods](scripting/ui.md)
|
||||
- [Entities and components](scripting/ecs.md)
|
||||
- [Libraries](#)
|
||||
- [mat4](scripting/builtins/libmat4.md)
|
||||
- [Module core:bit_converter](scripting/modules/core_bit_converter.md)
|
||||
|
||||
131
doc/en/scripting/ecs.md
Normal file
131
doc/en/scripting/ecs.md
Normal file
@ -0,0 +1,131 @@
|
||||
# Entities and components
|
||||
|
||||
## Types notation used below
|
||||
|
||||
- vec3 - 3D vector (array of three numbers)
|
||||
- mat4 - 4x4 matrix (array of 16 numbers)
|
||||
|
||||
Type annotations are added for documentation purposes and are not part of the Lua syntax.
|
||||
|
||||
## Entity
|
||||
|
||||
The entity object is available in components as a global variable **entity**.
|
||||
|
||||
```lua
|
||||
-- Deletes an entity (the entity may continue to exist until the frame ends, but will not be displayed in that frame)
|
||||
entity:despawn()
|
||||
|
||||
-- Returns the name of the entity skeleton
|
||||
entity:get_skeleton() -> str
|
||||
-- Replaces the entity skeleton
|
||||
entity:set_skeleton(name: str)
|
||||
|
||||
-- Returns the unique entity identifier
|
||||
entity:get_uid() -> int
|
||||
|
||||
-- Returns the component by name
|
||||
entity:get_component(name: str) -> component or nil
|
||||
-- Checks for the presence of a component by name
|
||||
entity:has_component(name: str) -> bool
|
||||
```
|
||||
|
||||
## Built-in components
|
||||
|
||||
### Transform
|
||||
|
||||
The component is responsible for the position, scale and rotation of the entity.
|
||||
|
||||
```lua
|
||||
-- Alias
|
||||
local tsf = entity.transform
|
||||
|
||||
-- Returns the position of the entity
|
||||
tsf:get_pos() -> vec3
|
||||
-- Sets the entity position
|
||||
tsf:set_pos(pos:vec3)
|
||||
|
||||
-- Returns the entity scale
|
||||
tsf:get_size() -> vec3
|
||||
-- Sets the entity scale
|
||||
tsf:set_size(size: vec3)
|
||||
|
||||
-- Returns the entity rotation
|
||||
tsf:get_rot() -> mat4
|
||||
-- Sets entity rotation
|
||||
tsf:set_rot(size: mat4)
|
||||
```
|
||||
|
||||
### Rigidbody
|
||||
|
||||
The component is responsible for the physical body of the entity.
|
||||
|
||||
```lua
|
||||
-- Alias
|
||||
local body = entity.rigidbody
|
||||
|
||||
-- Checks if body physics calculation is enabled
|
||||
body:is_enabled() -> bool
|
||||
-- Enables/disables body physics calculation
|
||||
body:set_enabled(enabled: bool)
|
||||
|
||||
-- Returns linear velocity
|
||||
body:get_vel() -> vec3
|
||||
-- Sets linear velocity
|
||||
body:set_vel(vel: vec3)
|
||||
|
||||
-- Returns the size of the hitbox
|
||||
body:get_size() -> vec3
|
||||
-- Sets the hitbox size
|
||||
body:set_size(size: vec3)
|
||||
|
||||
-- Returns the gravity multiplier
|
||||
body:get_gravity_scale() -> vec3
|
||||
-- Sets the gravity multiplier
|
||||
body:set_gravity_scale(scale: vec3)
|
||||
|
||||
-- Returns the linear velocity attenuation multiplier (used to simulate air resistance and friction)
|
||||
body:get_linear_damping() -> number
|
||||
-- Sets the linear velocity attenuation multiplier
|
||||
body:set_linear_damping(value: number)
|
||||
|
||||
-- Checks if vertical velocity attenuation is enabled
|
||||
body:is_vdamping() -> bool
|
||||
-- Enables/disables vertical velocity attenuation
|
||||
body:set_vdamping(enabled: bool)
|
||||
|
||||
-- Checks if the entity is on the ground
|
||||
body:is_grounded() -> bool
|
||||
|
||||
-- Checks if the entity is in a "crouching" state (cannot fall from blocks)
|
||||
body:is_crouching() -> bool
|
||||
-- Enables/disables the "crouching" state
|
||||
body:set_crouching(enabled: bool)
|
||||
|
||||
-- Returns the type of physical body (dynamic/kinematic)
|
||||
body:get_body_type() -> str
|
||||
-- Sets the physical body type
|
||||
body:set_body_type(type: str)
|
||||
```
|
||||
|
||||
### Skeleton
|
||||
|
||||
The component is responsible for the entity skeleton. See [rigging](../rigging.md).
|
||||
|
||||
```lua
|
||||
-- Alias
|
||||
local rig = entity.skeleton
|
||||
|
||||
-- Returns the model name assigned to the bone at the specified index
|
||||
rig:get_model(index: int) -> str
|
||||
|
||||
-- Returns the bone transformation matrix at the specified index
|
||||
rig:get_matrix(index: int) -> mat4
|
||||
-- Sets the bone transformation matrix at the specified index
|
||||
rig:set_matrix(index: int, matrix: mat4)
|
||||
|
||||
-- Returns the texture by key (dynamically assigned textures - '$name')
|
||||
rig:get_texture(key: str) -> str
|
||||
|
||||
-- Assigns texture by key
|
||||
rig:set_texture(key: str, value: str)
|
||||
```
|
||||
Loading…
x
Reference in New Issue
Block a user