# Component

# CreateComponent

服务端客户端

# 服务端接口

method in mod.server.extraServerApi

  • 描述

    给实体创建服务端组件

  • 参数

    参数名
    数据类型
    说明
    entityId str或int 该组件属主的实体id
    nameSpace str 组件的命名空间,registerComponent的namespace
    name str 组件的名字
  • 返回值

    数据类型
    说明
    BaseComponent 组件实例
  • 示例

import mod.server.extraServerApi as serverApi
comp = serverApi.CreateComponent(entityId, "Minecraft", "item")
# 拿到comp后就可以做一些逻辑内容,与GetComponent类似,如果已经创建会自动直接Get

# 客户端接口

method in mod.client.extraClientApi

  • 描述

    给实体创建客户端组件

  • 参数

    参数名
    数据类型
    说明
    entityId str或int 该组件属主的实体id
    nameSpace str 组件的命名空间,registerComponent的namespace
    name str 组件的名字
  • 返回值

    数据类型
    说明
    BaseComponent 组件实例
  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.CreateComponent(clientApi.GetLocalPlayerId(), "Minecraft", "item")
# 拿到comp后就可以做一些逻辑内容,与GetComponent类似,如果已经创建会自动直接Get

# DestroyComponent

服务端客户端

# 服务端接口

method in mod.server.extraServerApi

  • 描述

    删除实体的服务端组件

  • 参数

    参数名
    数据类型
    说明
    entityId str 该组件属主的实体id
    nameSpace str 组件的命名空间,registerComponent的namespace
    name str 组件的名字
  • 返回值

  • 示例

import mod.server.extraServerApi as serverApi
# entityId 根据游戏实际Id获取,这里'-12345678910'只是随便写的
comp = serverApi.DestroyComponent('-12345678910', "Minecraft", "item")

# 客户端接口

method in mod.client.extraClientApi

  • 描述

    删除实体的客户端组件

  • 参数

    参数名
    数据类型
    说明
    entityId str 该组件属主的实体id
    nameSpace str 组件的命名空间,registerComponent的namespace
    name str 组件的名字
  • 返回值

  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.DestroyComponent(clientApi.GetLocalPlayerId(), "Minecraft", "item")

# GetComponent

服务端客户端

# 服务端接口

method in mod.server.extraServerApi

  • 描述

    获取实体的服务端组件。一般用来判断某个组件是否创建过,其他情况请使用CreateComponent

  • 参数

    参数名
    数据类型
    说明
    entityId str 该组件属主的实体id
    nameSpace str 组件的命名空间,registerComponent的namespace
    name str 组件的名字
  • 返回值

    数据类型
    说明
    BaseComponent 组件实例或者None
  • 示例

import mod.server.extraServerApi as serverApi
comp = serverApi.GetComponent(entityId, "Minecraft", "item")
# 拿到comp后就可以做一些逻辑内容,如果没有创建过会返回None

# 客户端接口

method in mod.client.extraClientApi

  • 描述

    获取实体的客户端组件。一般用来判断某个组件是否创建过,其他情况请使用CreateComponent

  • 参数

    参数名
    数据类型
    说明
    entityId str 该组件属主的实体id
    nameSpace str 组件的命名空间,registerComponent的namespace
    name str 组件的名字
  • 返回值

    数据类型
    说明
    BaseComponent 组件实例或者None
  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetComponent(clientApi.GetLocalPlayerId(), "Minecraft", "item")
# 拿到comp后就可以做一些逻辑内容,如果没有创建过会返回None

# GetComponentCls

服务端客户端

# 服务端接口

method in mod.server.extraServerApi

  • 描述

    用于获取服务器component基类。实现新的component时,需要继承该接口返回的类

  • 参数

  • 返回值

    数据类型
    说明
    type(BaseComponent) 组件基类
  • 示例

import mod.server.extraServerApi as serverApi
ServerComponentCls = serverApi.GetComponentCls()
# Component要继承于基类才能生效
class ShootComponentServer(ServerComponentCls):
    def __init__(self, entityId):
        ServerComponentCls.__init__(self, entityId)
        # 这里设置了一个开关来开关更新射击
        self.mShoot = False

# 客户端接口

method in mod.client.extraClientApi

  • 描述

    用于获取客户端component基类。实现新的component时,需要继承该接口返回的类

  • 参数

  • 返回值

    数据类型
    说明
    type(BaseComponent) 组件基类
  • 示例

import mod.client.extraClientApi as clientApi
ClientComponentCls = clientApi.GetComponentCls()
# Component要继承于基类才能生效
class ShootComponentClient(ClientComponentCls):
    def __init__(self, entityId):
        ClientComponentCls.__init__(self, entityId)
        # 这里设置了一个开关来开关更新射击
        self.mShoot = False

# GetEngineCompFactory

服务端客户端

# 服务端接口

method in mod.server.extraServerApi

  • 描述

    获取引擎组件的工厂,通过工厂可以创建服务端的引擎组件

  • 参数

  • 返回值

    数据类型
    说明
    EngineCompFactoryServer 服务端引擎组件工厂
  • 示例

import mod.server.extraServerApi as serverApi
compFactory = serverApi.GetEngineCompFactory()
gameComp = compFactory.CreateGame(serverApi.GetLevelId())

# 客户端接口

method in mod.client.extraClientApi

  • 描述

    获取引擎组件的工厂,通过工厂可以创建客户端的引擎组件

  • 参数

  • 返回值

    数据类型
    说明
    EngineCompFactoryClient 客户端引擎组件工厂
  • 示例

import mod.client.extraClientApi as clientApi
compFactory = clientApi.GetEngineCompFactory()
gameComp = compFactory.CreateGame(clientApi.GetLevelId())

# RegisterComponent

服务端客户端

# 服务端接口

method in mod.server.extraServerApi

  • 描述

    用于将组件注册到引擎中

  • 参数

    参数名
    数据类型
    说明
    nameSpace str 命名空间,建议为mod名字
    name str 组件名称
    clsPath str 组件类路径,路径从脚本的第一层开始算起
  • 返回值

    数据类型
    说明
    bool 注册成功与否
  • 示例

import mod.server.extraServerApi as serverApi
@Mod.InitServer()
def TutorialServerInit(self):
    # 注册一个自定义的服务端Component
    serverApi.RegisterComponent("TutorialMod", "ServerShoot", "tutorialScripts.modServer.serverComponent.shootComponentServer.ShootComponentServer")

# 客户端接口

method in mod.client.extraClientApi

  • 描述

    用于将组件注册到引擎中

  • 参数

    参数名
    数据类型
    说明
    nameSpace str 命名空间,建议为mod名字
    name str 组件名称
    clsPath str 组件类路径,路径从脚本的第一层开始算起
  • 返回值

    数据类型
    说明
    bool 注册成功与否
  • 示例

import mod.client.extraClientApi as clientApi
@Mod.InitClient()
def TutorialClientInit(self):
    # 注册一个自定义的客户端Component
    clientApi.RegisterComponent("TutorialMod", "ClientShoot", "tutorialScripts.modClient.clientComponent.shootComponentClient.ShootComponentClient")