自定义生物蛋
生物蛋(Spawn Egg)用于生成自定义生物实体。玩家右键使用时会在目标位置生成指定的实体,也可以放入刷怪笼或发射器中使用。
前置条件
请先阅读 自定义基础物品 了解通用注册流程(步骤 1-6)。format_version 使用 1.10。
概述
生物蛋是最简单的特殊物品类型之一。只需将 custom_item_type 设为 egg,并通过 netease:egg 组件指定要生成的实体,即可创建一个功能完整的自定义生物蛋。
核心特性:
- 右键方块表面生成实体
- 可放入刷怪笼持续生成实体
- 可放入发射器激活时生成实体
- 支持所有自定义物品通用组件
netease:egg 组件
| 字段 | 类型 | 说明 |
|---|---|---|
custom_item_type | string | 设为 "egg" |
netease:egg.entity | string | 要生成的实体 identifier,需在行为包 entities/ 目录下已定义 |
使用方式
| 操作 | 效果 |
|---|---|
| 右键方块表面 | 在点击位置的上方生成实体 |
| 放入刷怪笼 | 刷怪笼按规则持续生成该实体 |
| 放入发射器 | 发射器激活时在前方生成实体 |
注意
netease:egg 中 entity 字段指定的实体 identifier 必须是一个已注册的自定义生物(在行为包 entities/ 目录下有对应定义,且 is_spawnable 设为 true),否则右键使用时不会生成任何实体。
完整案例:松鼠生物蛋
行为包
behavior_pack/netease_items_beh/squirrel_egg.json:
json
{
"format_version": "1.10",
"minecraft:item": {
"description": {
"identifier": "mymod:squirrel_egg",
"custom_item_type": "egg",
"category": "nature"
},
"components": {
"minecraft:max_stack_size": 64,
"netease:egg": {
"entity": "mymod:squirrel"
}
}
}
}资源包
resource_pack/netease_items_res/squirrel_egg.json:
json
{
"format_version": "1.10",
"minecraft:item": {
"description": {
"identifier": "mymod:squirrel_egg",
"texture": "squirrel_egg"
}
}
}item_texture.json
json
{
"resource_pack_name": "mymod",
"texture_data": {
"squirrel_egg": {
"textures": "textures/items/squirrel_egg"
}
}
}本地化
item.mymod:squirrel_egg.name=松鼠生物蛋脚本扩展:生成时添加属性
python
import server.extraServerApi as serverApi
ServerSystem = serverApi.GetServerSystemCls()
class EggMod(ServerSystem):
def __init__(self, namespace, systemName):
super(EggMod, self).__init__(namespace, systemName)
self.ListenForEvent(
serverApi.GetEngineNamespace(),
serverApi.GetEngineSystemName(),
'AddEntityServerEvent',
self, self.OnEntityAdded
)
def OnEntityAdded(self, args):
entityId = args.get('id')
engineType = args.get('engineTypeStr', '')
if engineType == 'mymod:squirrel':
# 为生物蛋生成的松鼠设置自定义名称
comp = serverApi.GetEngineCompFactory().CreateName(entityId)
comp.SetName("小松鼠")常见问题
生物蛋无法生成实体
确认 netease:egg 中 entity 字段指向的实体已经在行为包 entities/ 目录下正确定义,且 is_spawnable 设为 true。
放入刷怪笼不生效
确认方块类型为刷怪箱(原版 mob_spawner 或自定义刷怪箱)。自定义生物蛋需要放入刷怪箱方块的 GUI 界面中。
