# 服务端逻辑实体创建

引擎实体的创建在服务端处理,并且会自动同步给所有客户端。

# 生成实体

# 创建字符串定义的生物实体

CreateEngineEntityByTypeStr

  • 描述

    利用字符串创建引擎实体,主要用于微软自定义物体

  • 参数

    参数名 数据类型 说明
    engineTypeStr str 例如'minecraft:husk'
    pos tuple(float,float,float) 生成坐标
    rot tuple(float,float) 生物面向
    dimensionId int 生成的维度,默认值为0(0为主世界,1为地狱,2为末地)
    isNpc bool 是否为npc,默认值为False。npc不会移动、转向、存盘。
  • 返回值

    数据类型 说明
    str或None 实体Id或者None
  • 备注

    • 设置未加载的chunk的坐标会创建失败。 生成村民请使用"minecraft:villager_v2"
  • 示例

class MyServerSystem(ServerSystem):
    def createMob(self):
        # 类型是僵尸,位置(0,5,0),朝向角度(0, 0),维度0,
        entityId = self.CreateEngineEntityByTypeStr('minecraft:husk', (0, 5, 0), (0, 0), 0)

# 实体

# 创建物品实体

CreateEngineItemEntity

  • 描述

    服务端系统接口,用于创建物品实体,功能与item组件的SpawnItemToLevel接口作用类似,该接口返回物品的entityId,具体参见item组件

  • 参数

    参数名 数据类型 说明
    itemDict dict 物品信息字典
    dimensionId int 设置dimension,默认为主世界
    pos tuple(float,float,float) 生成坐标
  • 返回值

    数据类型 说明
    str或None 实体Id或者None
  • 示例

import mod.server.extraServerApi as serverApi
itemDict = {
        'itemName': 'minecraft:bow',
        'count': 1,
        'enchantData': [(serverApi.GetMinecraftEnum().EnchantType.BowDamage, 1),],
        'auxValue': 0,
        'customTips':'§c new item §r',
        'extraId': 'abc'
}
itemEntityId = self.CreateEngineItemEntity(itemDict, 0, (0, 5, 0))