RendersArmInFirstPerson 接口,允许添加可在第一人称下渲染于玩家手上的特性。展开画廊


展开文档
展开 Gradle 详情
repositories {
maven {
name = 'Ladysnake Mods'
url = 'https://maven.ladysnake.org/releases'
}
dependencies {
modImplementation "dev.doctor4t:ratatouille:${project.ratatouille_version}"
}
展开自定义模型盔甲工具详情
该工具允许你轻松注册使用自定义模型的新盔甲套装,只需一次方法调用即可(当然还需要那个自定义模型,因为游戏确实需要知道你想渲染什么)。
在添加自定义盔甲之前,我们需要一个遵循若干规则的模型。你可以在仓库的 RESOURCES 文件夹中找到一个盔甲模板模型(Blockbench 模型文件)和纹理。你可以自由编辑此模型和纹理,打造你梦想中的盔甲外观,但请注意,现有分组非常重要;你可以向其中添加新的子分组,但不能也不应该删除任何现有分组,因为这些分组能让库知道当玩家(或盔甲架或生物)穿戴盔甲部件时应显示什么:
helmet 在装备头盔物品时显示bodychestplate、rightarmchestplate 和 leftarm_chestplate 在装备胸甲物品时显示bodyleggings、rightlegleggings 和 leftleg_leggings 在装备护腿物品时显示rightlegboot 和 leftlegboot 在装备靴子物品时显示完成模型后,你可以使用 Blockbench 导出:File -> Export -> Export Java Entity。打开生成的 Java 类,并将 getTexturedModelData() 中从 ModelPartData modelPartData = modelData.getRoot(); 到 return 前一行(包含该行)之间的代码复制出来。Ratatouille 添加了一种新的模型类类型,用于简化盔甲模型定义,名为 CustomArmorModelDefinition;继承该类并实现 addModelParts 方法,把你从生成模型类中复制的代码片段粘贴进去。然后实现 getTexture();最简单的做法是在你的模型定义类中为盔甲纹理设置一个静态 Identifier 并返回它,但如果你希望通过特殊逻辑动态返回不同纹理,当然也可以。
第二步也是最后一步,是在客户端初始化时注册你的自定义盔甲渲染。调用 CustomModelArmorUtil.registerCustomArmor 并传入所需参数:
Identifier id:自定义盔甲的 id。它用于自动生成并注册盔甲的模型层,因此必须是唯一的。ArmorDisplayConditions displayConditions:你的盔甲部件进行渲染所需满足的显示条件。如果你想要的是一种简单盔甲,即每装备一个物品就显示对应部件,那么 ItemSetDisplayConditions 允许你定义头盔、胸甲、护腿和靴子物品,并会自动检查已装备了哪些盔甲物品需要显示,同时阻止带缺失纹理的原版盔甲模型被渲染。如果你希望用自定义逻辑来决定显示哪些不同部件,而不是仅仅检查物品是否被穿戴,那么你可以实现 ArmorDisplayConditions 及其四个 shouldDisplay 方法。CustomArmorModelDefinition armorModelDefinition:我们在第 1 步中创建的模型定义,直接创建一个它的新实例即可。int textureWidth, int textureHeight:盔甲纹理的宽度和高度。通过此方法注册你的盔甲后,它会为你处理所有事情,例如创建带纹理的模型数据、模型层,并将该特性附加到玩家 / 盔甲架 / 生物渲染器上。如果你需要访问盔甲的模型数据或模型层,可以在 CustomModelArmorUtil.CUSTOMARMORMODELS 这个 HashMap 中通过使用盔甲的 displayConditions 作为键来找到它们。
展开环境音工具详情
该工具允许你轻松注册环境循环音,既可作为通用背景音频,也可作为依赖方块实体的音频。
要注册背景环境音,你所需要做的就是在客户端初始化类中调用 AmbienceUtil.registerBackgroundAmbience 方法,并传入一个新的 BackgroundAmbience 对象及所需参数:
SoundEvent soundEvent:要播放的环境循环音效。SoundCategory soundCategory:播放该声音时使用的音频类别。PlayPredicate predicate:决定该声音是否允许播放的判定条件。接收一个 ClientPlayerEntity 并必须返回一个 boolean。int fadeIn:环境循环音开始播放时的淡入时间(以 tick 为单位)。int fadeOut:环境循环音停止播放时的淡出时间(以 tick 为单位)。要注册方块实体环境音,你所需要做的就是在客户端初始化类中调用 AmbienceUtil.registerBlockEntityAmbience 方法,并传入应播放该环境音的 BlockEntityType 以及一个新的 BlockEntityAmbience 对象及所需参数:
SoundEvent soundEvent:要播放的环境循环音效。SoundCategory soundCategory:播放该声音时使用的音频类别。PlayPredicate predicate:决定该声音是否允许播放的判定条件。接收一个 BlockEntity 并必须返回一个 boolean。int fadeIn:环境循环音开始播放时的淡入时间(以 tick 为单位)。int fadeOut:环境循环音停止播放时的淡出时间(以 tick 为单位)。友情链接: 网易我的世界 | 泰拉瑞亚 | ocent云计算 | 米饭Minecraft插件文档 | 友链合作
历史访问人数:194,515 | 历史访问人次:299,621
今日访问人数:1,199 | 今日访问人次:1,372
昨日访问人数:30,537 | 昨日访问人次:36,142
Copyright © 2019-2026 我的世界服务器列表站. All rights reserved.
❤ Powered by GermMC 京ICP备17023959号-6