Temporal API 是 Team Temporal mods 的官方库,其他项目、模组作者以及整合包作者都可以在他们的项目中尽情使用它。
这个模组的主要目标是让创建模组变得更简单、更灵活!
要使用我们的库,你需要前往 build.gradle 并添加以下内容:
repositories {
maven {
url "https://cursemaven.com"
}
}
dependencies {
implementation fg.deobf("curse.maven:temporalapi-970291:")
...
}
你需要将 替换为文件 id,它可以在所需版本的模组文件链接末尾找到。
当前版本的这个库添加了:
工厂,
标签工具,
创造模式标签页工具,
村民和流浪商人交易自定义器,
世界特性工具,
物品属性工具,
fov 修改器
等等
Factory 和 Extensions
Factories 用于创建 RegistryObject 对象,并让它们的创建变得更加简单。
要使用 API 中的 ItemFactory,你需要像下面这样创建一个 ItemFactoryFacade 类:
public class ModItemFactoryFacade extends ItemFactory {
public ModItemFactoryFacade() {
super(ModItems.ITEMS);
}
}
你也可以使用 API 中的 Extensions 扩展你的 Factory Facade,或者创建你自己的 Extension。
下面是使用 SwordExtension 的 2 个示例(有了这个 Extension,创建 Sword 会容易得多):
像这样:
public class ModItemFactoryFacade extends ItemFactory implements SwordExtension {
public ModItemFactoryFacade() {
super(ModItems.ITEMS);
}
}
或者这样:
public class ModItemFactoryFacade extends ItemFactory implements SwordExtension {
public ModItemFactoryFacade() {
super(ModItems.ITEMS);
}
public RegistryObject createSword(String name, Object... args) {
return SwordExtension.super.createSword(name, this, args);
}
public RegistryObject createSword(String name, Supplier tTypedSupplier) {
return SwordExtension.super.createSword(name, this, tTypedSupplier);
}
}
那么,如何使用这个 Facade 类来创建我们的对象呢:
public class ModItems {
public static final DeferredRegister ITEMS = DeferredRegister.create(Registries.ITEM, "MOD_ID");
public static final ModItemFactoryFacade ITEM_FACTORY = new ModItemFactoryFacade();
public static final RegistryObject MY_ITEM_1 = ITEM_FACTORY.create("my_item_1");
public static final RegistryObject MY_ITEM_2 = ITEM_FACTORY.create("my_item_2", new Item.Properties());
public static final RegistryObject MY_ITEM_3 = ITEM_FACTORY.create("my_item_3", () -> new Item(new Item.Properties()));
//上面创建 Facade 对象的第一个示例
public static final RegistryObject MY_SWORD_1 = ITEM_FACTORY.createSword("my_sword_1", ITEM_FACTORY, Tiers.STONE, 3, -2.4F);
public static final RegistryObject MY_SWORD_2 = ITEM_FACTORY.createSword("my_sword_2", ITEM_FACTORY, () -> new SwordItem(Tiers.STONE, 3, -2.4F, new Item.Properties()));
//上面创建 Facade 对象的第二个示例
public static final RegistryObject MY_SWORD_3 = ITEM_FACTORY.createSword("my_sword_3", Tiers.STONE, 3, -2.4F);
public static final RegistryObject MY_SWORD_4 = ITEM_FACTORY.createSword("my_sword_4", () -> new SwordItem(Tiers.STONE, 3, -2.4F, new Item.Properties()));
}
现在我们来看一下 args... 数组。它是用于创建对象的参数数组(未来会为了更好的可读性而更改)。
当前可用的 Factories 和 extensions:
ItemFactory (ArrowExtension, BowExtension, BowlExtension, MusicDiscExtension, SmithingTemplateExtension, SwordExtension, AxeExtension, PickaxeExtension, ShovelExtension, HoeExtension)
BlockFactory (BushExtension, FlowerExtension, PottedFlowerExtension)
ParticleFactory
EffectFactory
PaintingFactory
PotionFactory
SoundEventFactory
CreativeTabFactory
EntityFactory
Tag Utils
Tag utils 专注于创建 tag,并让使用 tags 更加简单。
例如,如果你想创建 item tag,你需要使用 ItemTagFactory:
public class MyItemTags {
public static final TagFactory TAGFACTORY = new ItemTagFactory("MYMOD_ID");
public static final TagKey MYTAG = TAGFACTORY.createTag("my_tag");
}
Creative Tab Utils
Creative tab utils 用于将你需要的物品添加到对应的创造模式标签页中。
首先,我们需要前往订阅了 mod 事件的类,并添加这个函数(方法内部内容只是示例):
@SubscribeEvent
public void addCreativeTabs(BuildCreativeModeTabContentsEvent event) {
new SimpleTabAdder(event)
.addAllToTab(CreativeModeTabs.INGREDIENTS, ModItems.MY_ITEM_1, ModItems.MY_ITEM_2, ModItems.MY_ITEM_3)
.addAllToTab(CreativeModeTabs.COMBAT, ModItems.MY_SWORD_1, ModItems.MY_SWORD_2, ModItems.MY_SWORD_3);
}
Trading with Villagers and Wanderers Utils
TemporalAPI 让交易变得简单得多。下面是一个示例:
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 customizeTradesWithWanderers(WandererTradesEvent event) {
tradeCustomizer.customize(event, new WandererTrade(
new TradingItemHolder(Items.ANDESITE, 2),
new TradingItemHolder(Items.EMERALD, 3),
new WandererTradeDescription(
WandererTradeDescription.TradeRarity.RARE, 5, 5, 0.5f
)
));
}
World Features Utils
将在接下来的更新中继续扩展。
Item Properties Utils
为弓、盾牌等添加所需属性。
@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);
});
}
FAQ:
这个模组会推出 Fabric 版本吗:
不会,暂时没有 Fabric 版本的计划
我可以在我的 Modpacks 中使用这个模组吗:
可以,欢迎在任何 modpack 中使用这个模组!
我该如何建议新功能或报告 Bugs:
如果有任何评论、问题、建议或遇到的问题,请加入上方的 discord!
友情链接: 网易我的世界 | 泰拉瑞亚 | ocent云计算 | 米饭Minecraft插件文档 | 友链合作
历史访问人数:180,046 | 历史访问人次:282,200
今日访问人数:17,132 | 今日访问人次:20,093
昨日访问人数:23,567 | 昨日访问人次:27,193
Copyright © 2019-2026 我的世界服务器列表站. All rights reserved.
❤ Powered by GermMC 京ICP备17023959号-6