package
0.3.36
Repository: https://github.com/pangdogs/core.git
Documentation: pkg.go.dev

# Packages

Package eventc 使用go:generate功能,在编译前自动化生成代码 - 可以生成事件(event)与事件表(event table)代码。 - 用于生成事件代码时,在事件定义代码源文件(.go)头部,添加以下注释: //go:generate go run git.golaxy.org/core/event/eventc event - 用于生成事件表代码时,在事件定义代码源文件(.go)头部,添加以下注释: //go:generate go run git.golaxy.org/core/event/eventc eventtab --name={事件表名称} - 在cmd控制台中,进入事件定义代码源文件(.go)的目录,输入go generate指令即可生成代码,此外也可以使用IDE提供的go generate功能。 - 编译本包并执行eventc --help,可以查看命令行参数,通过参数可以调整生成的代码。 */.

# Functions

Bind 绑定事件与订阅者,可以设置优先级调整回调先后顺序(升序).
Clean 清理Hooks.
DeclareEventId 声明事件Id.
DeclareEventIdT 声明事件Id.
DeclareEventTabId 声明事件表Id.
DeclareEventTabIdT 声明事件表Id.
MakeEventId 创建事件Id.
MakeEventIdT 创建事件Id.
MakeEventTabId 创建事件表Id.
MakeEventTabIdT 创建事件表Id.
Unbind 解绑定事件与订阅者,在同个订阅者多次绑定事件的情况下,会以逆序依次解除,正常情况下应该使用事件钩子(Hook)解绑定,不应该使用该函数.
Deprecated: UnsafeEvent 访问事件内部方法.

# Constants

允许事件递归,可能会无限递归.
深度优先处理递归的事件,会中断当前事件发送过程,并在新的事件发送过程中,不会再次发送给这个订阅者.
不允许事件递归,递归时会panic.
丢弃递归的事件,不会再发送给任何订阅者.
截断递归的事件,不会再发送给当前订阅者,但是会发送给其他订阅者.

# Variables

参数错误.
事件错误.
EventRecursionLimit 事件递归次数上限,超过此上限会panic.

# Structs

Event 事件.
Hook 事件钩子,主要用于重新绑定或解除绑定事件,由BindEvent()创建并返回,请勿自己创建.

# Interfaces

IEvent 事件接口 定义事件: 1.按以下格式编写一个接口,即完成事件的定义: type Event{事件名} interface { On{事件名}({参数列表}) } 2.在定义事件的源码文件(.go)头部添加以下注释,在编译前自动化生成代码: //go:generate go run git.golaxy.org/core/event/eventc event 定义事件的选项(添加到定义事件的注释里): 1.发送事件的代码的可见性 +event-gen:export=[0,1] 2.是否生成简化绑定事件的代码 +event-gen:auto=[0,1] 使用事件: 1.事件一般作为组件的成员,在组件Awake时初始化,组件Dispose时关闭,示例如下: type Comp struct { ec.ComponentBehavior event{事件名} event.Event } func (c *Comp) Awake() { runtime.Current(c).ActivateEvent(&c.event{事件名}, event.EventRecursion_Discard) } func (c *Comp) Dispose() { c.event{事件名}.Close() } 订阅事件: 1.在组件的成员函数,编写以下代码: func (c *Comp) On{事件名}({参数列表}) { ..
IEventCtrl 事件控制接口.
IEventTab 事件表接口,方便管理多个事件 使用方式: 1.在定义事件的源码文件(.go)头部添加以下注释,在编译前自动化生成代码: //go:generate go run git.golaxy.org/core/event/eventc eventtab --name={事件表名称} 定义事件的选项(添加到定义事件的注释里): 1.事件表初始化时,该事件使用的递归处理方式,不填表示使用事件表初始化参数值 +event-tab-gen:recursion=[allow,disallow,discard,truncate,deepest] */.

# Type aliases

CombineEventTab 联合事件表,可以将多个事件表联合在一起,方便管理多个事件表.
EventRecursion 发生事件递归时的处理方式(事件递归:事件发送过程中,在订阅者的逻辑中,再次发送这个事件).