VoxelEngine/doc/en/entity-properties.md
2024-07-10 05:23:10 +03:00

2.9 KiB
Raw Blame History

Entity properties

Logic

components

Defines components and the order in which they are initialized.

"components": [
    list of components
]

Example:

"components": [
    "base:drop"
]

The components code should be in scripts/components.

Physics

hitbox

An array of three numbers indicating the size of the entity's hitbox.

Example:

"hitbox": [0.6, 1.8, 0.6]

body-type

Determines how the physics engine will work with it.

  • dynamic - default type. The physics engine calculates movement and collisions.
  • kinematic - only movement is calculated, without collisions.

blocking

Determines whether the entity blocks installation of blocks.

In the future will also block other entities movement.

Default value: true.

sensors

A sensor is an area attached to a physical body that detects the entry of other bodies into it.

  • When a body enter, the on_sensor_enter event is triggered.
  • When a body exit, the on_sensor_exit event is called.

Sensors are indexed in the same order as they are presented in the list, starting from 0.

The following types (shapes) of sensors exist:

  • radius is the simplest sensor. Defines the area around the center of the hitbox. The following values are specified:
    • radius - number.
  • aabb - a rectangular area that changes position depending on the rotation of the entity. The area itself does not rotate. The following values are specified:
    • three numbers x, y, z of the minimal corner of the area.
    • three numbers x, y, z of the opposite corner of the area.

Example:

"sensors": [
    ["aabb", -0.2, -0.2, -0.2, 0.2, 0.2, 0.2],
    ["radius", 1.6]
]
  1. A rectangular area with a width, height and length of 0.4 m, centered at 0.0.
  2. Radial area with a radius of 1.6 m.

View

skeleton-name

The default value is the same as the entity name. Determines which skeleton will be used by the entity. See rigging.

Saving/Loading

In addition to custom components, the engine automatically saves data from the built-in ones: transform, rigidbody, skeleton.

There is a set of flags that allow you to specify which data will be saved and which will not.

(Boolean values are specified)

Title Target Default
save the entity itself true
save-skeleton-pose skeleton pose false
save-skeleton-textures dynamically assigned textures false
save-body-velocity body velocity true
save-body-settings changed body settings
(type, damping, crouching)
false