物品添加
1.基础部分
首先在scripts文件夹中创建一个 xxx.zs 文件, 使用文本编辑器打开(推荐使用vs code 打开)。
键入以下内容
#loader avaritiaitem
import mods.avaritiaitem.AvaritiaItemBuilder;
import mods.avaritiaitem.ItemPrimer;
AvaritiaItemBuilder.registerItem("data_card", 64, "data_card").create();
registerItem("data_card", 64, "data_card")中三个参数分别为
物品注册名(必须全小写, 且用下划线分隔单词);
物品最大单组数量;
物品模型type名(必须全局唯一,推荐和物品注册名相同)。
接下来启动游戏,你会看到这样一个物品。
我们需要给物品添加贴图材质以及名字。
打开游戏文件夹 ./minecraft/resources/avaritiaitem,你会看到这三个文件夹
第一个存放的是物品的模型文件,一般不需要手动填写;
第二个存放的是语言文件,你需要进入创建一个zh_cn.lang文件;
第三个存放的是物品的贴图文件,所有贴图文件都必须放入此文件夹下的items文件夹内。
我们为刚才创建的物品添加一个名字,已经设置一张贴图,这里以ae2的身份卡为例。
名字的创建方式为,在第二个文件夹内创建的zh_cn.lang中输入以下内容。
item.avaritiaitem.data_card.name=这是一个教程物品
item.avaritiaitem是固定的,name也是固定的,中间的data_card就是你在第一步中设置的注册名。
随后将名为data_card.png的图片文件放入第三个文件夹中的items内。
接下来再启动游戏,可以看到物品材质和名字都赋值成功。
2.特效添加
回到我们的zs脚本上,开始为物品添加特效。
AvaritiaItemBuilder.registerItem("data_card", 64, "data_card")
// 通过以下方式添加的特效可自由搭配, 自己决定哪个特效需要, 哪个不需要
.shouldDrawHalo(true) // 是否显示光环
.haloSize(8) // 显示光环是必填 光环大小(1-16)
.haloColour("808080") // 显示光环时选填 光环颜色 为十六进制颜色 , 如果设置了光环图片 请不要调用此方法
.haloOpacity(100) // 光环透明度 (0-100)
.haloTextures("halo_image") // 显示光环时选填 光环自定义图片, 只需输入名称不需要后缀, 透明度需要自己使用图片编辑器修改, 如果不设置此项将显示原版无尽的光环 同样需要放到 ./minecraft/resources/avaritiaitem/textures/items 文件夹内
.shouldDrawCosmic(true) // 是否渲染宇宙背景
.mask("data_card_mask") // 上方为true时必填 渲染宇宙背景区域的图片,放置位置同上方光环图片, 必须完全覆盖原图且不需要显示的区域使用全黑像素覆盖(#000000), 需要显示区域使用灰色覆盖(即图片编辑器的颜色选择器中rgb色盘的最左边一列的颜色)
.maskOpacity(1.0f) // 宇宙背景透明度 推荐值 1.0f
.shouldDrawPulse(true) // 是否显示脉冲特效(即无尽催化剂的抖动效果)
.colorfulName(true) // 是否为物品名称添加炫彩动态效果
.addTooltip("§a这是第一条tooltip") // 添加物品 tooltip
.addTooltip("这是第二条tooltip", true) // 添加物品 tooltip 同时设置为炫彩效果
.create();
其中 haloTextures属性和mask属性的图片,均可按照原物品材质的方法只作为动态的。
haloTextures拥有3个预设值,不调用此方法为默认无尽光环, 传入halo_noise 为噪音光环, halo128为高清光环。
因代码渲染的 halo 透明度为整体光环的透明度,建议在图片上手动设置透明度。
mask的透明度为整体星空材质的透明度,最低0.1f,透明度低于1.0f将会在 星空背景 下看到原物品的材质。
此时items文件夹内为。
完结撒花。