Skip to content

Математические выражения

Начало работы

Помимо обычного чтения переменных, есть более продвинутый вариант работы с переменными с помощью математических выражений. Полную мощность этого метода можно почувствовать, воспользовавшись моделью 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

Выпущено под лицензией MIT.