
Temporal API
Temporal API - это библиотека модов от Team Temporal, предназначенная для упрощения разработки модов для Майнкрафт on Forge.
Temporal API - это официальная библиотека от команды Team Temporal, созданная чтобы упростить жизнь разработчикам модов и сборщикам модпаков. Если вы когда-нибудь писали моды для Minecraft, то знаете, сколько шаблонного кода приходится писать для регистрации предметов, блоков, эффектов и торговли. Temporal API берёт это на себя, предлагая готовые фабрики (Factories) и расширения (Extensions).
Проект полностью совместим с Minecraft Forge, версия на Fabric не планируется. Вы можете свободно использовать библиотеку в своих сборках модов.
Как подключить
Чтобы начать работу с Temporal API, добавьте в build.gradle:
repositories {
maven {
url "https://cursemaven.com"
}
}
dependencies {
implementation fg.deobf("curse.maven:temporalapi-970291:<file-id>")
}
Замените <file-id> на ID нужной версии из ссылки на CurseForge.
Что внутри
Библиотека добавляет:
- фабрики для предметов, блоков, частиц, эффектов, картин, зелий, звуков, сущностей, вкладок креатива
- утилиты для работы с тегами (tags)
- утилиты для креативных вкладок
- кастомизацию торговли с жителями и странниками
- утилиты для генерации мира
- утилиты для свойств предметов
- модификатор поля обзора (FOV)
Фабрики и расширения
Фабрики используются для создания объектов RegistryObject. Например, чтобы сделать фабрику предметов, создаёте класс:
public class ModItemFactoryFacade extends ItemFactory {
public ModItemFactoryFacade() {
super(ModItems.ITEMS);
}
}
Если нужно добавить расширение (например, для меча):
public class ModItemFactoryFacade extends ItemFactory implements SwordExtension {
public ModItemFactoryFacade() {
super(ModItems.ITEMS);
}
}
Теперь можно создавать предметы одной строкой:
public class ModItems {
public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(Registries.ITEM, "MOD_ID");
public static final ModItemFactoryFacade ITEM_FACTORY = new ModItemFactoryFacade();
public static final RegistryObject<Item> MY_ITEM_1 = ITEM_FACTORY.create("my_item_1");
public static final RegistryObject<SwordItem> MY_SWORD_1 = ITEM_FACTORY.createSword("my_sword_1", ITEM_FACTORY, Tiers.STONE, 3, -2.4F);
}
Торговля с жителями
Temporal API делает настройку торговли проще. Пример:
public static final TradeCustomizer tradeCustomizer = new SimpleTradeCustomizer();
@SubscribeEvent
public void customizeTradesWithVillagers(VillagerTradesEvent event) {
tradeCustomizer.customize(event, new VillagerTrade(
new TradingItemHolder(Items.ANDESITE, 2),
new TradingItemHolder(Items.EMERALD, 3),
new VillagerTradeDescription(
VillagerProfession.ARMORER, 1, 5, 5, 0.5f
)
));
}
Свойства предметов
Можно быстро задать свойства для луков, щитов, арбалетов или компостируемость:
@SubscribeEvent
public void clientSetup(final FMLClientSetupEvent event) {
event.enqueueWork(() -> {
TemporalItemProperties.makeBow(ModItems.MY_BOW_1);
TemporalItemProperties.makeShield(ModItems.MY_SHIELD_1);
TemporalItemProperties.makeCrossbow(ModItems.MY_CROSSBOW_1);
TemporalItemProperties.putCompostable(ModBlocks.MY_FLOWER_1, 4);
});
}
Важно знать
- Fabric версия: не планируется.
- Можно ли использовать в модпаках: да.
- Как предложить идеи или сообщить о багах: через Discord команды (ссылку ищите на странице автора).
Библиотека постоянно развивается, в будущих обновлениях ожидается расширение утилит для генерации мира. Скачайте Temporal API, если вы разрабатываете моды для Forge и хотите ускорить процесс - это реально must-have для любого моддера. Вся внутренняя перелинковка сохраняется.
