地穴:拟态怪
数据驱动的假玩家NPC
不是我最初打算做的东西,但仍然很酷 :3
使用指南
生成
/crypt-mimic <identifier> <x> <y> <z> <nbt>
该 NPC 会像盔甲架一样行动,直到用以下命令将其锁定:/data modify entity <seletor> Locked set value True
未锁定时,交互会修改物品;一旦锁定,对话动作就会显示。
你也可以像修改盔甲架那样修改模型各部位的旋转。
NBT 标签
NpcId - NPC 类型的 id
ArmourItems - 物品堆叠复合标签的列表
HandItems - 物品堆叠复合标签的列表
Small - 小型模型的布尔值
Locked - 锁定模型的布尔值
Pose - 姿态旋转的复合标签。
Pose.Head - 浮点数列表,头部旋转的欧拉角。
Pose.Body - 浮点数列表,身体旋转的欧拉角。
Pose.LeftArm - 浮点数列表,左臂旋转的欧拉角。
Pose.RightArm - 浮点数列表,右臂旋转的欧拉角。
Pose.LeftLeg - 浮点数列表,左腿旋转的欧拉角。
Pose.RightLeg - 浮点数列表,右腿旋转的欧拉角。
NPC
data/<namespace>/crypt-mimic/npc/<id>.json
// 注意:此示例使用 json5 来写注释,实际数据请使用普通 json
{
// `name` 使用原版 Text 编解码器,因此你可以构建复杂的内容
"name": [ // 必需
{
"type": "translatable",
"translate": "npc.<namespace>.<id>.name"
}
],
// `title` 同样使用原版 Text 编解码器
"title": [ // 可选
{
"type": "translatable",
"translate": "npc.<namespace>.<id>.title"
}
],
"skin": { // 可选
"texture": "<namespace>:textures/entity/npc/<id>.png", // 必需
"hasSlimArms": true // 可选,默认为 false
},
"action": { // 可选
"action": "crypt-mimic:show_dialog", // 必需
"value": "<namespace>:dialog_<id>" // 可能必需,取决于 `action`
}
}
对话
data/<namespace>/crypt-mimic/dialog/<id>.json
// 注意:此示例使用 json5 来写注释,实际数据请使用普通 json
{
// `text` 使用原版 Text 编解码器
"text": [ // 必需
{
"type": "translatable",
"translate": "dialog.<namespace>.<id>"
}
],
"actions": [ // 必需,即使为空,但应至少包含一项
{
"action": "crypt_mimic:show_dialog", // 必需
"value": "<namespace>:<different_id>" // 可能必需,取决于 `action`
}
]
}
自定义对话动作
对话动作使用 action.<namespace>.<id> 翻译键。
import gay.pyrrha.mimic.dialog.DialogAction;
DialogAction.getEVENT().register((player, entity, action) -> {
// do things
});
Kotlin 示例
import gay.pyrrha.mimic.dialog.DialogAction
DialogAction.EVENT.register { player, entity, action ->
// do things (but in kotlin :3)
}
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。