|
Temporal API (Temporal API)Github |相关wiki |源站链接支持: forgeTemporal API 是 Team Temporal 模组的库,其他项目也可能会使用它。Temporal API 是 Team Temporal 模组的官方库,其他项目和模组作者以及模组包创建者可以根据他们的项目需要随意使用。
主要目标
该模组的主要目标是让创建模组变得更加简单和灵活!
在使用我们的库时,您需要打开 build.gradle 文件并添加以下内容:
repositories {
maven {
url \"https://cursemaven.com\"
}
}
dependencies {
implementation fg.deobf(\"curse.maven:temporalapi-970291:<file-id>\")
...
}Copy已复制!
您需要将 \\替换为所需版本的mod文件链接末尾可以找到的文件id。
当前库的功能包括:
- factories (工厂)
- tag utils (标签工具)
- creative tab utils (创造模式标签工具)
- trading with villagers and wanderers customizer (与村民和流浪商人交易定制工具)
- world features utils (世界特性工具)
- item properties utils (物品属性工具)
- fov modifier (视野修改器)
Factories and Extensions
工厂用于创建 RegistryObject 对象,并使其创建变得更加容易。
使用 API 中的 ItemFactory 需要创建 ItemFactoryFacade 类,如下所示:
public class ModItemFactoryFacade extends ItemFactory {
public ModItemFactoryFacade() {
super(ModItems.ITEMS);
}
}Copy已复制!
您还可以使用 API 中的扩展来扩展您的 Facade 工厂,或者创建自己的扩展。
以下是使用 SwordExtension 的两个示例(使用此扩展创建剑变得更加容易):
public class ModItemFactoryFacade extends ItemFactory implements SwordExtension {
public ModItemFactoryFacade() {
super(ModItems.ITEMS);
}
}Copy已复制!
或者像这样:
public class ModItemFactoryFacade extends ItemFactory implements SwordExtension {
public ModItemFactoryFacade() {
super(ModItems.ITEMS);
}
public RegistryObject<SwordItem> createSword(String name, Object... args) {
return SwordExtension.super.createSword(name, this, args);
}
public RegistryObject<? extends SwordItem> createSword(String name, Supplier<? extends SwordItem> tTypedSupplier) {
return SwordExtension.super.createSword(name, this, tTypedSupplier);
}
}Copy已复制!
下面是使用此 Facade 类创建对象的示例:
public class ModItems {
public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(Registries.ITEM, \"MOD_ID\");
public static final ModItemFactoryFacade ITEM_FACTORY = new ModItemFactoryFacade();
// ... 这里是其他对象的创建示��,这里省略部分内容以保持简洁
// 第一个创建 Facade 对象的示例
public static final RegistryObject<SwordItem> MY_SWORD_1 = ITEM_FACTORY.createSword(\"my_sword_1\", ITEM_FACTORY, Tiers.STONE, 3, -2.4F);
public static final RegistryObject<? extends SwordItem> 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<SwordItem> MY_SWORD_3 = ITEM_FACTORY.createSword(\"my_sword_3\", Tiers.STONE, 3, -2.4F);
public static final RegistryObject<? extends SwordItem> MY_SWORD_4 = ITEM_FACTORY.createSword(\"my_sword_4\", () -> new SwordItem(Tiers.STONE, 3, -2.4F, new Item.Properties()));
}Copy已复制!
现在让我们看看 args... 数组。它是用于创建对象的参数数组(将来会改进以获得更好的可读性)。
当前可用的工厂和扩展有:
ItemFactory(ArrowExtension, BowExtension, ...)
BlockFactory(BushExtension, FlowerExtension, ...)
ParticleFactory
EffectFactory
PaintingFactory
PotionFactory
SoundEventFactory
CreativeTabFactory
EntityFactoryCopy已复制!
Tag Utils
标签工具专注于标签的创建和使用,例如,如果要创建物品标签,您需要使用 ItemTagFactory:
public class MyItemTags {
public static final TagFactory<Item> TAG_FACTORY = new ItemTagFactory(\"MY_MOD_ID\");
public static final TagKey<Item> MY_TAG = TAG_FACTORY.createTag(\"my_tag\");
}Copy已复制!
Creative Tab Utils
[modrinth_id id=\"JDtt43My\"]
<!--markdown_parsed--
文章类型:收录layui.use([\'form\'], function(){
var form = layui.form;
});
Temporal API |
楼主
2025-8-10 19:33:51
回复(0)
收起回复
|