🛠️ Создаём НИПа
Шаблон
Прежде всего, у вас есть 2 способа получить Персонажа для дальнейшего использования.
Создать нового персонажа
Шаблон для создания Персонажа
Этот шаблон включает в себя все параметры, которые поддерживаются при создании Персонажа, они все не обязательные, оставляйте только те, которые будете менять:
val <npcID> by NPCEntity.creating {
name = "<name>" // Имя персонажа
model = "modid:path/to/model.gltf" // Путь к модели. Указывается в формате ResourceLocation.
textures["<original_texture>"] = "<new_texture>.png" // Устанавливает текстуру для модели. Примечание: получить оригинальные имена текстур можно командой `/hollowengine model <модель>`
animations[AnimationType.<animationID>] = "<animationName>" // Замена автоматически определённой анимации на свою (кастомную, другую)
// Атрибуты или же характеристики, вроде здоровья или защиты.
//Их можно получить через команду `/attribute <player>`
attributes = Attributes(
"<attribute>" to <значение>, // Если атрибутов больше одного, то не забывайте запятые. Типы аргуметов: String и Float.
)
size = <width> to <height> // Размер хитбокса. Тип аргуметов: Float.
showName = <false/true> // Отображение Ника НПС над его головой
transform = Transform( // Изменить Отображение модели (все параметры можно указать по имени и все они не обязательны)
tX = <значение>, tY = <значение>, tZ = <значение>, // Смещение | X, Y, Z
rX = <значение>, rY = <значение>, rZ = <значение>, // Поворот | X, Y, Z
sX = <значение>, sY = <значение>, sZ = <значение> // Размер | X, Y, Z
) // Все параметры имеют тип: Float
switchHeadRot = <false/true> // Меняет оси координат головы местами, используйте если голова поворачивается неправильно
world = "<dimensionID>" // Измерение, в котором должен появится НИП
pos = pos(<x>, <y>, <z>) // Позиция спавна. Все значения должны быть либо Целые, либо НЕ целые!
rotation = vec(<pitch>, <yaw>) // Поворот головы
}
Примечания:
textures
- Поддерживаетpng
иgif
формат. Указывайте название текстуры без.png
которая находится уже на НИПе.
Создать НИПа
настройка
- Базовый НИП
- Кастомный НИП
Базовый НИП
// Для спавна базового NPC, будет достаточно указать: Имя и Позиция
val npc by NPCEntity.creating{
// name = "Николай"
pos = pos(0, -57, 0) // Если будет pos(<int>, <double>, <int>) - работать не будет
}
Кастомный НИП
// Основным нужно, чтобы ты, как минимум, указан имя НПС, путь к модели и при необходимости путь к текстуре для модели
val npc by NPCEntity.creating{
name = "Горловина половника"
model = "models:test.gltf" // Модель находится в пути [<modpack>/hollowengine/assets/models/test.gltf]
world = "overworld"
pos = pos(0.5, -58.0, 0.5)
showName = false
}
Получить существующего Персонажа
Если в мире уже есть нужный вам персонаж или вы создали его с помощью инструмента (см. вкладку мода), то получить его можно или по UUID или по И мени
val npc by NPCEntity.finding { uuid="<UUID вашего нпс>" }
val npc by NPCEntity.finding { name="<Имя вашего нпс>" }
Если нпс будет не найден, то скрипт будет мгновенно завершён с ошибкой.
Примеры
- Пример - Базового НИПа
- Пример - Кастомного НИПа
val jeka by NPCEntity.creating{
name = "Жека Хот-дог"
pos = pos(0, 54, 0)
}
val jumaysimba by NPCEntity.creating{
name = "Джумайсыбма"
model = "models:classic.classic" // Модель находится в пути [<modpack>/hollowengine/assets/models/classic.gltf]
textures["gltf_model_layer_0_gltf"] = "textures:humans/hotdog.png" // Текстура находится в пути [<modpack>/hollowengine/assets/textures/humans/hotdog.png]
attributes = Attributes(
"generic.movement_speed" by 2f,
"generic.max_health" by 10f
)
size = 4f to 5f
showName = false
transform = Transform(
tX = 2f, tY = 1.5f, tZ = 0.3f,
rX = 92f, rY = 122f, rZ = 43f,
sX = 0.1f, sY = 1f, sZ = 14f
)
switchHeadRot = false
animations[AnimationType.IDLE] = "custom_idle"
world = "overworld" // Т.к. dimID верхнего мира из самого майна, необязательно указывать moID: minecraft
pos = pos(0, 64, 0)
rot = vec(64f, -30f)
}