Математические выражения
Начало работы
Помимо обычного чтения переменных, есть более продвинутый вариант работы с переменными с помощью математических выражений. Полную мощность этого метода можно почувствовать, воспользовавшись моделью rpt:expression
json
{
"model": {
"type": "rpt:expression",
"value": "foo + 1",
"cases": [
{
"when": [ 6 ],
"model": { ... } // Эта модель обновится, т.к. 5 + 1 = 6!
}
]
},
"rpt": {
"variables": {
"numbers": {
"foo": 5
}
}
}
}Помимо точного сравнения, в when вы можете указать и другие выражения для сравнений, константы и функции. Вы можете найти список всех этих вещей в документации EvalEx (англ)
json
{
"model": {
"type": "rpt:expression",
"value": "SIN(5) + PI",
"cases": [
{
"when": [ ">=0" ],
"all": true,
"model": {
"type": "model",
"model": "item/diamond"
}
}
]
}
}Игровые переменные
Так же вместе с переменными из rpt, в выражениях можно использовать игровые перменные:
1. Глобальные переменные и Время
| Переменная | Описание | Значение по умолчанию |
|---|---|---|
gameTime | Общее игровое время в тиках с момента создания мира. | 0 |
dayTime | Время текущего дня в тиках (от 0 до 24000). | 0 |
seed | Уникальное числовое зерно (seed) для текущего контекста рендера. | Передается из контекста |
2. Параметры Сущности (Держателя)
Эти параметры относятся к существу (игроку или мобу), который держит предмет.
| Переменная | Описание | Значение по умолчанию |
|---|---|---|
holderX | Координата X позиции сущности в мире. | 0 |
holderY | Координата Y позиции сущности в мире. | 0 |
holderZ | Координата Z позиции сущности в мире. | 0 |
yaw | Поворот сущности по горизонтали (в градусах). | 0 |
pitch | Поворот сущности по вертикали (наклон головы). | 0 |
health | Текущее количество здоровья сущности. | 20 |
maxHealth | Максимально возможное здоровье сущности. | 20 |
motionY | Вертикальная скорость (положительная при прыжке, отрицательная при падении). | 0 |
age | Возраст сущности в тиках (актуально для мирных мобов). | 0 |
3. Параметры Игрока
Доступны только если предмет держит игрок. В противном случае возвращаются стандартные значения.
| Переменная | Описание | Значение по умолчанию |
|---|---|---|
food | Текущий уровень сытости игрока (0 - 20). | 20 |
saturation | Уровень насыщения игрока (скрытая шкала еды). | 5 |
experienceLevel | Текущий уровень опыта (цифра над полоской опыта). | 0 |
armor | Суммарное значение очков брони на игроке. | 0 |
4. Окружение и Освещение
| Переменная | Описание | Значение по умолчанию |
|---|---|---|
lightSky | Уровень небесного освещения в текущей позиции (0 - 15). | 0 |
lightBlock | Уровень освещения от блоков (факелы, лампы) (0 - 15). | 0 |
lightTotal | Максимальное значение между lightSky и lightBlock. | 0 |
biomeTemp | Базовая температура биома, в котором находится сущность. | 0 |
sunAngle | Угол солнца в небе (от 0.0 до 1.0). | 0.0 |
moonPhase | Текущая фаза луны (целое число от 0 до 7). | 0 |
