Скачать RandomLib — Minecraft Моды — MetaMods
RandomLib

RandomLib

Активный

Установок

1

Последнее обновление

3 года назад
Клиент
Библиотеки
Технологические

RandomLib - Библиотека для настраиваемых случайных наборов

RandomLib представляет собой специализированную библиотеку, которая изначально была частью мода One Block Plus, но теперь доступна как самостоятельное решение. Основная задача этой библиотеки - предоставить разработчикам удобный инструмент для создания конфигурационных файлов, управляющих взвешенной случайной генерацией элементов в ваших модах.

Документация для разработчиков (в разработке)

Для начала работы с RandomLib необходимо выполнить настройку во время события FMLCommonSetupEvent:

<T extends ExtraData> RandomLibUtils.setup(ResourceLocation registryKey, Supplier<T> extra, Consumer<Map<String, RandomPool<T>>> afterDeserialization)

Например, если вы установите registryKey как oneblock:phases, ваши конфигурационные файлы будут создаваться в папке configs/oneblock/phases/.

Параметр extra представляет собой поставщик экземпляра реализации ExtraData, что позволяет сохранять дополнительную информацию о случайном наборе помимо взвешенных элементов.

После десериализации конфигурационные файлы сохраняются в карте с именем файла в качестве ключа, но вы можете использовать потребитель afterDeserialization для сохранения данных в более удобной для вашего мода структуре.

Для регистрации команд управления конфигурационными файлами используйте во время события FMLServerStartingEvent:

RandomLibUtils.registerCommand(FMLServerStartingEvent event, String commandname, ResourceLocation registryKey)
RandomLibUtils.registerCommand(FMLServerStartingEvent event, String commandname, ResourceLocation registryKey, ExtraDataCommand<? extends ExtraData> extraDataCommand)

Параметр registryKey должен совпадать с тем, что используется в RandomLibUtils.setup, а extraDataCommand завершает brigadier для вашей реализации ExtraData.

Основные методы для работы с случайными наборами:

  • RandomPool#getExtra() - получение десериализованных данных ExtraData
  • RandomPool#getRandom()#generateAndReplace(ServerWorld, BlockPos) - уничтожение блока и генерация элемента из случайного набора
  • RandomPool#getRandom()#generate(ServerWorld, BlockPos) - генерация элемента из случайного набора
  • RandomPool#getRandom()#vgenerate(RandomContainer, ServerWorld, BlockPos, ItemStack) - генерация элемента для объекта, реализующего RandomContainer

Документация для пользователей (в разработке)

Для получения справки по командам используйте: /<имя команды RandomLib для этого мода> help

Пример справки

Участники проекта
NaturaSpell

NaturaSpell

Создан: 25 мар 2022

ID: 36520