
StructurePlacerAPI
Активный0.0
Установок
Последнее обновление
Версии
StructurePlacerAPI
Эта простая библиотека предоставляет удобный способ для однократного размещения структур в мире Minecraft, минуя стандартную генерацию мира. Она идеально подходит для создания предметов, которые вызывают появление порталов или других сооружений, а также для реализации механики "счастливых блоков".
Установка
Добавьте зависимость в файл build.gradle
:
repositories {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
content {
includeGroup "maven.modrinth"
}
}
}
dependencies {
modImplementation "maven.modrinth:structureplacerapi:<version>"
}
Если требуется включить API в ваш jar-файл, добавьте строку include
:
repositories {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
content {
includeGroup "maven.modrinth"
}
}
}
dependencies {
modImplementation "maven.modrinth:structureplacerapi:<version>"
include "maven.modrinth:structureplacerapi:<version>"
}
Размер библиотеки составляет менее 15 КБ!
Использование
Создание структуры
Создайте NBT-структуру с помощью блоков структуры Minecraft, как показано в этом видео: https://www.youtube.com/watch?v=umhuRXinD3o
Размещение файла
Поместите файл structure.nbt
в папку данных вашего мода: data/yourmodid/structures
Создание объекта размещения
Для размещения структуры необходимо создать объект StructurePlacerAPI со следующими параметрами:
StructurePlacerAPI(ServerWorld world, Identifier templateName, BlockPos blockPos, BlockMirror mirror, BlockRotation rotation, boolean ignoreEntities, float integrity, BlockPos offset)
Параметры
- world - мир, в котором будет размещена структура
- templateName - идентификатор структуры в формате MOD_ID:structure_name
- blockPos - позиция блока для размещения структуры
- mirror - отражение структуры (используйте BlockMirror.#значение)
- rotation - вращение структуры (используйте BlockRotation.#значение)
- ignoreEntities - игнорировать ли сущности в структуре
- integrity - целостность структуры (от 0.0f до 1.0f)
- offset - смещение позиции структуры
Размещение структуры
После создания объекта выполните:
placer.loadStructure();
Восстановление территории
Начиная с версии 1.1.0 доступно восстановление исходной территории:
placer.loadAndRestoreStructure(int restore_ticks);
Для анимированного восстановления:
placer.loadAndRestoreStructureAnimated(int restore_ticks, int blocks_per_tick, boolean random);
- blocks_per_tick - количество блоков, восстанавливаемых за один тик
- random - случайный порядок восстановления блоков
Пример использования
Постоянная структура:
StructurePlacer placer = new StructurePlacer((ServerWorld) caster.getWorld(), new Identifier(MOD_ID, "frost_light"), caster.getBlockPos(), BlockMirror.NONE, BlockRotation.CLOCKWISE_90, true, 1.0f, new BlockPos(-4, -3, -3));
placer.loadStructure();
С восстановлением территории:
StructurePlacer placer = new StructurePlacer((ServerWorld) caster.getWorld(), new Identifier(MOD_ID, "frost_light"), caster.getBlockPos(), BlockMirror.NONE, BlockRotation.CLOCKWISE_90, true, 1.0f, new BlockPos(-4, -3, -3));
placer.loadAndRestoreStructureAnimated(200, 2, true);
Важное замечание
Убедитесь, что код выполняется на стороне сервера:
if(!world.isClient){
// выполняемый код
}
Лицензия
Библиотека распространяется под лицензией CC0.