VoxelEngine/doc/ru/entity-properties.md
2025-09-12 07:46:44 +03:00

5.2 KiB
Raw Blame History

Свойства сущностей

Логика

Cписок компонентов - components

Определяет компоненты и порядок их инициализации.

"components": [
    список компонентов
]

Пример:

"components": [
    "base:drop"
]

Из конфигурации сущности можно передавать значения в ARGS. Они будут передаваться как при создании новой сущности, так и при загрузке сохранённой. Для этого используется список args:

"components": [
    {
        "name": "base:drop",
        "args": {
            "item": "base:stone.item",
            "count": 1
        }
    }
]

Код компонентов должен находиться в scripts/components.

Физика

Хитбокс - hitbox

Массив из трех чисел, указывающих размер хитбокса сущности.

Пример:

"hitbox": [0.6, 1.8, 0.6]

Тип тела - body-type

Определяет то, как с ним будет работать физический движок.

  • static (статический) - физический движок не воздействует на тело.
  • dynamic (динамический) - тип по-умолчанию. Физический движок просчитывает движение и столкновения.
  • kinematic (кинематический) - просчитывается только движение, без столкновений.

Блокирование - blocking

Определяет блокирует ли сущность установку блоков.

В будущем будет также блокировать движение других сущностей.

Значение по-умолчанию: true.

Список сенсоров - sensors

Сенсор - область пространства, привязанная к физическому телу, детектирующее попадание в него других тел.

  • При попадании тела вызывается событие on_sensor_enter.
  • При покидании тела вызывается событие on_sensor_exit.

Сенсоры индексируются в том же порядке, в каком представлены в списке, начиная с 0.

Существуют следующие типы (формы) сенсоров:

  • radius (радиус) - самый простой сенсор. Определяет область вокруг центра хитбокса. Указываются следующие значения:
    • радиус - число.
  • aabb (коробка) - прямоугольная область, меняющая положение в зависимости от поворота сущности. Сама область не поворачивается. Указываются следующие значения:
    • три числа x, y, z минимального угла области.
    • три числа x, y, z противоположного угла области.

Пример:

"sensors": [
    ["aabb", -0.2, -0.2, -0.2, 0.2, 0.2, 0.2],
    ["radius", 1.6]
]
  1. Прямоугольная область шириной, высотой и длиной в 0.4 м. с центром в 0.0.
  2. Радиальная область с радиусом 1.6 м.

Вид

Имя скелета - skeleton-name

Значение по-умолчанию совпадает с именем сущности. Определяет то, какой скелет будет использоваться сущностью. См. риггинг.

Сохранение/загрузка

Кроме данных пользовательских компонентов, движок автоматически сохраняет данные встроенных: transform, rigidbody, skeleton.

Есть набор флагов, позволяющих указать какие данные будут сохранены, а какие нет.

(Указываются булевы значения)

Название Цель По-умолчанию
save сама сущность true
save-skeleton-pose поза скелета сущности false
save-skeleton-textures динамически назначенные текстуры false
save-body-velocity скорость движения тела true
save-body-settings измененные настройки тела
(type, damping, crouching)
true