添加物品

kubejs可以在startup_scripts文件夹内创建去创建物品,注意所有的添加自定义的操作都是无法热加载的,写完之后需要重启游戏后才会加载进游戏内

基础写法

StartupEvents.registry("item",event=>{
    event.create("meng:my_item","basic")
})

kjs创建物品是非常简单的,只需要一行就可以解决

create里的第一个参数为物品id,这里如果写成"xxx:xxx",冒号前面的是你的命名空间(类似于模组id),后面的才是你的物品id,如果你只是写成"xxx"并不加冒号也是可以的,kjs为默认为你创建在kubejs下,最后呈现形式就是"kubejs:xxx"

create里的第二个参数为物品类型,在下面会给大家列举出来他的物品类型和描述

物品类型

类型参数作用描述示例

basic

基础物品

-

basic

基础物品

-

music_disc

唱片

可以在唱片机里播放的

smithing_template

锻造模板

-

helmet

头盔

chestplate

胸甲

同上

leggings

护腿

同上

boots

鞋子

同上

axe

斧子

hoe

锄头

同上

pickaxe

镐子

同上

shovel

铲子

同上

sword

同上

shears

剪刀

通用方法参数

下面提供的方法为所有物品类型都可以调用到的参数,针对于护甲、工具等物品会在对应的章节提供专有的方法

常用方法

方法调用传入参数用处返回类型

maxDamage(int)

->

设置物品的最大耐久

this

food(Consumer<FoodBuilder>)

->

this

maxStackSize(int)

->

设置物品的最大堆叠,虽然能超过64但是不建议

this

fireResistant(bool)

->

设置物品是否防火

this

displayName(string)

->

设置在没有配置lang文件时直接显示的名称

this

tag(ResourceLocation)

->

设置物品的tag标签

this

texture(string)

->

设置物品材质路径

this

unstackable()

-

设置物品为不可堆叠

this

burnTime(int)

-

设置物品的可燃烧tick(默认为0则是不可燃烧)

this

modifyAttribute(ResourceLocation,string,double,AttributeModifier)

~

物品属性修饰符

this

createItemProperties()

-

创建为物品属性

Item

物品使用时调用的方法

方法调用传入参数用处返回类型

use(ItemBuilder$UseCallback)

->

物品开始被玩家使用时

this

releaseUsing(ItemBuilder$ReleaseUsingCallback)

->

当玩家没有使用完物品但中途松开鼠标右键时(?)

this

finishUsing(ItemBuilder$FinishUsingCallback)

->

当玩家使用完物品时

this

useDuration(ToIntFunction<ItemStack>)

~

关于物品的使用时间?

this

useAnimation(UseAnim)

~

物品在使用时的动画

this

关于渲染的方法

方法调用传入参数用处返回类型

modelJson(JsonObject)

->

设置模型的json(虽然但是不建议这么干)

this

parentModel(string)

~

设置模型的父模型?

this

textureJson(JsonObject)

->

设置物品的材质json ??

this

barWidth(ToIntFunction<ItemStack>)

~

关于耐久条?

this

barColor(Function<ItemStack>,Color)

~

关于耐久条颜色?

this

glow(bool)

->

设置物品是否有附魔光效

this

tooltip(Component)

->

物品提示内容

this

其他方法

方法调用传入参数用处返回类型

hurtEnemy(Predicate<HurtEnemyContext>)

->

物品攻击实体生物时

this

rarity(Rarity)

设置物品稀有度

this

getRegistryType()

-

获取注册类型

RegistryInfo<T>

generateAssetJsons(AssetJsonGenerator)

?

?

-

generateDataJsons(DataJsonGenerator)

?

?

-

name(NameCallback)

~

动态设置物品名字?

this

color(int,ItemTintFunction)

?

?

this

color(ItemTintFunction)

?

?

this

transformObject(Item)

~

~

this

subtypes(Function<ItemStack,Collection<ItemStack>>)

~

?

this

containerItem(ResourceLocation)

~

设置物品为容器???

this

简单的注册物品轮子

注:以下内容根据个人习惯选择性使用和更改

StartupEvents.registry("item", (event) => {
	// ModID声明如果选择不更改ModID(默认即"kubejs")直接把ModID这个变量取消
	const MODID = "meng:"

	/* 
	* 定义物品
	* 在添加下一个物品时要记得在[]后加上逗号
	* 并且一定要严格按照格式进行
	* [物品id, 稀有度类型, 是否有附魔光效]
	*/
	let itemRegisters = [
		["example_item", "common", false],
	]
	itemRegisters.forEach(([name, rarity, glow]) => {
		event.create(MODID + name) // 声明id
			.rarity(rarity) // 稀有度
			.glow(glow) // 是否有附魔光效
			.tag(MODID + "items") // 添加物品tag(可选)
	})
})

最后更新于