Documentation
¶
Overview ¶
Package runtime 为运行时环境提供的一些接口与函数。
- 运行时上下文(Context)
- 实体管理器(EntityManager)
- 实体树(EntityTree)
- 帧(Frame)
Index ¶
- Variables
- func BindEventContextRunningEvent(auto iAutoEventContextRunningEvent, subscriber EventContextRunningEvent, ...) event.Handle
- func BindEventEntityManagerAddEntity(auto iAutoEventEntityManagerAddEntity, subscriber EventEntityManagerAddEntity, ...) event.Handle
- func BindEventEntityManagerEntityAddComponents(auto iAutoEventEntityManagerEntityAddComponents, ...) event.Handle
- func BindEventEntityManagerEntityComponentEnableChanged(auto iAutoEventEntityManagerEntityComponentEnableChanged, ...) event.Handle
- func BindEventEntityManagerEntityFirstTouchComponent(auto iAutoEventEntityManagerEntityFirstTouchComponent, ...) event.Handle
- func BindEventEntityManagerEntityRemoveComponent(auto iAutoEventEntityManagerEntityRemoveComponent, ...) event.Handle
- func BindEventEntityManagerRemoveEntity(auto iAutoEventEntityManagerRemoveEntity, ...) event.Handle
- func BindEventEntityTreeAddNode(auto iAutoEventEntityTreeAddNode, subscriber EventEntityTreeAddNode, ...) event.Handle
- func BindEventEntityTreeMoveNode(auto iAutoEventEntityTreeMoveNode, subscriber EventEntityTreeMoveNode, ...) event.Handle
- func BindEventEntityTreeRemoveNode(auto iAutoEventEntityTreeRemoveNode, subscriber EventEntityTreeRemoveNode, ...) event.Handle
- func UnsafeConcurrentContext(context ConcurrentContext) _UnsafeConcurrentContextdeprecated
- func UnsafeContext(ctx Context) _UnsafeContextdeprecated
- type ConcurrentContext
- type ConcurrentContextProvider
- type Context
- type ContextBehavior
- func (ctx *ContextBehavior) AddInManager() extension.AddInManager
- func (ctx *ContextBehavior) CallAsync(fun generic.FuncVar0[any, async.Ret], args ...any) async.AsyncRet
- func (ctx *ContextBehavior) CallDelegateAsync(fun generic.DelegateVar0[any, async.Ret], args ...any) async.AsyncRet
- func (ctx *ContextBehavior) CallDelegateVoidAsync(fun generic.DelegateVoidVar0[any], args ...any) async.AsyncRet
- func (ctx *ContextBehavior) CallVoidAsync(fun generic.ActionVar0[any], args ...any) async.AsyncRet
- func (ctx *ContextBehavior) CollectGC(gc GC)
- func (ctx *ContextBehavior) ConcurrentContext() iface.Cache
- func (ctx *ContextBehavior) CurrentContext() iface.Cache
- func (ctx *ContextBehavior) EntityManager() EntityManager
- func (ctx *ContextBehavior) EntityTree() EntityTree
- func (ctx *ContextBehavior) EventContextRunningEvent() event.IEvent
- func (ctx *ContextBehavior) Frame() Frame
- func (ctx *ContextBehavior) Id() uid.Id
- func (ctx *ContextBehavior) InstanceFaceCache() iface.Cache
- func (ctx *ContextBehavior) Managed() *event.ManagedHandles
- func (ctx *ContextBehavior) Name() string
- func (ctx *ContextBehavior) Reflected() reflect.Value
- func (ctx *ContextBehavior) String() string
- type ContextOptions
- type CurrentContextProvider
- type EntityManager
- type EntityTree
- type EventContextRunningEvent
- type EventContextRunningEventHandler
- type EventEntityManagerAddEntity
- type EventEntityManagerAddEntityHandler
- type EventEntityManagerEntityAddComponents
- type EventEntityManagerEntityAddComponentsHandler
- type EventEntityManagerEntityComponentEnableChanged
- type EventEntityManagerEntityComponentEnableChangedHandler
- type EventEntityManagerEntityFirstTouchComponent
- type EventEntityManagerEntityFirstTouchComponentHandler
- type EventEntityManagerEntityRemoveComponent
- type EventEntityManagerEntityRemoveComponentHandler
- type EventEntityManagerRemoveEntity
- type EventEntityManagerRemoveEntityHandler
- type EventEntityTreeAddNode
- type EventEntityTreeAddNodeHandler
- type EventEntityTreeMoveNode
- type EventEntityTreeMoveNodeHandler
- type EventEntityTreeRemoveNode
- type EventEntityTreeRemoveNodeHandler
- type Frame
- type GC
- type GCCollector
- type IContextRunningEventTab
- type IEntityManagerEventTab
- type IEntityTreeEventTab
- type RunningEvent
- type RunningEventCB
Constants ¶
This section is empty.
Variables ¶
var ( EventEntityManagerAddEntityId = event.DeclareEventIdT[entityManagerEventTab](0) EventEntityManagerRemoveEntityId = event.DeclareEventIdT[entityManagerEventTab](1) EventEntityManagerEntityAddComponentsId = event.DeclareEventIdT[entityManagerEventTab](2) EventEntityManagerEntityRemoveComponentId = event.DeclareEventIdT[entityManagerEventTab](3) EventEntityManagerEntityComponentEnableChangedId = event.DeclareEventIdT[entityManagerEventTab](4) EventEntityManagerEntityFirstTouchComponentId = event.DeclareEventIdT[entityManagerEventTab](5) )
var ( EventEntityTreeAddNodeId = event.DeclareEventIdT[entityTreeEventTab](0) EventEntityTreeRemoveNodeId = event.DeclareEventIdT[entityTreeEventTab](1) EventEntityTreeMoveNodeId = event.DeclareEventIdT[entityTreeEventTab](2) )
var ( ErrContext = fmt.Errorf("%w: runtime-context", exception.ErrCore) // 运行时上下文错误 ErrEntityTree = fmt.Errorf("%w: entity-tree", ErrContext) // 实体树错误 ErrEntityManager = fmt.Errorf("%w: entity-manager", ErrContext) // 实体管理器错误 ErrFrame = fmt.Errorf("%w: frame", ErrContext) // 帧错误 )
var (
EventContextRunningEventId = event.DeclareEventIdT[contextRunningEventTab](0)
)
var ( // ForestNodeId 实体树森林节点ID ForestNodeId = uid.From("d5rh7sbr1n96c63fs3vg") )
var With _ContextOption
Functions ¶
func BindEventContextRunningEvent ¶ added in v0.4.25
func BindEventContextRunningEvent(auto iAutoEventContextRunningEvent, subscriber EventContextRunningEvent, priority ...int32) event.Handle
func BindEventEntityManagerAddEntity ¶ added in v0.3.66
func BindEventEntityManagerAddEntity(auto iAutoEventEntityManagerAddEntity, subscriber EventEntityManagerAddEntity, priority ...int32) event.Handle
func BindEventEntityManagerEntityAddComponents ¶ added in v0.3.66
func BindEventEntityManagerEntityAddComponents(auto iAutoEventEntityManagerEntityAddComponents, subscriber EventEntityManagerEntityAddComponents, priority ...int32) event.Handle
func BindEventEntityManagerEntityComponentEnableChanged ¶ added in v0.4.25
func BindEventEntityManagerEntityComponentEnableChanged(auto iAutoEventEntityManagerEntityComponentEnableChanged, subscriber EventEntityManagerEntityComponentEnableChanged, priority ...int32) event.Handle
func BindEventEntityManagerEntityFirstTouchComponent ¶ added in v0.3.66
func BindEventEntityManagerEntityFirstTouchComponent(auto iAutoEventEntityManagerEntityFirstTouchComponent, subscriber EventEntityManagerEntityFirstTouchComponent, priority ...int32) event.Handle
func BindEventEntityManagerEntityRemoveComponent ¶ added in v0.3.66
func BindEventEntityManagerEntityRemoveComponent(auto iAutoEventEntityManagerEntityRemoveComponent, subscriber EventEntityManagerEntityRemoveComponent, priority ...int32) event.Handle
func BindEventEntityManagerRemoveEntity ¶ added in v0.3.66
func BindEventEntityManagerRemoveEntity(auto iAutoEventEntityManagerRemoveEntity, subscriber EventEntityManagerRemoveEntity, priority ...int32) event.Handle
func BindEventEntityTreeAddNode ¶ added in v0.2.58
func BindEventEntityTreeAddNode(auto iAutoEventEntityTreeAddNode, subscriber EventEntityTreeAddNode, priority ...int32) event.Handle
func BindEventEntityTreeMoveNode ¶ added in v0.4.25
func BindEventEntityTreeMoveNode(auto iAutoEventEntityTreeMoveNode, subscriber EventEntityTreeMoveNode, priority ...int32) event.Handle
func BindEventEntityTreeRemoveNode ¶ added in v0.2.58
func BindEventEntityTreeRemoveNode(auto iAutoEventEntityTreeRemoveNode, subscriber EventEntityTreeRemoveNode, priority ...int32) event.Handle
func UnsafeConcurrentContext
deprecated
added in
v0.3.21
func UnsafeConcurrentContext(context ConcurrentContext) _UnsafeConcurrentContext
Deprecated: UnsafeConcurrentContext 访问多线程安全的上下文接口内部函数
func UnsafeContext
deprecated
func UnsafeContext(ctx Context) _UnsafeContext
Deprecated: UnsafeContext 访问运行时上下文内部方法
Types ¶
type ConcurrentContext ¶
type ConcurrentContext interface {
corectx.Context
corectx.ConcurrentContextProvider
async.Caller
fmt.Stringer
// Name 获取名称
Name() string
// Id 获取运行时Id
Id() uid.Id
// contains filtered or unexported methods
}
ConcurrentContext 多线程安全的运行时上下文接口
func Concurrent ¶
func Concurrent(provider corectx.ConcurrentContextProvider) ConcurrentContext
Concurrent 获取多线程安全的运行时上下文
type ConcurrentContextProvider ¶
type ConcurrentContextProvider = corectx.ConcurrentContextProvider
ConcurrentContextProvider 多线程安全的上下文提供者
type Context ¶
type Context interface {
corectx.Context
corectx.CurrentContextProvider
reinterpret.InstanceProvider
extension.AddInProvider
async.Caller
GCCollector
fmt.Stringer
// Name 获取名称
Name() string
// Id 获取运行时Id
Id() uid.Id
// Reflected 获取反射值
Reflected() reflect.Value
// Frame 获取帧
Frame() Frame
// EntityManager 获取实体管理器
EntityManager() EntityManager
// EntityTree 获取实体树
EntityTree() EntityTree
// Managed 托管事件句柄
Managed() *event.ManagedHandles
IContextRunningEventTab
// contains filtered or unexported methods
}
Context 运行时上下文接口
func NewContext ¶
NewContext 创建运行时上下文
func UnsafeNewContext
deprecated
func UnsafeNewContext(svcCtx service.Context, options ContextOptions) Context
Deprecated: UnsafeNewContext 内部创建运行时上下文
type ContextBehavior ¶
type ContextBehavior struct {
corectx.ContextBehavior
// contains filtered or unexported fields
}
ContextBehavior 运行时上下文行为,在扩展运行时上下文能力时,匿名嵌入至运行时上下文结构体中
func (*ContextBehavior) AddInManager ¶ added in v0.4.25
func (ctx *ContextBehavior) AddInManager() extension.AddInManager
AddInManager 获取插件管理器
func (*ContextBehavior) CallAsync ¶ added in v0.3.89
func (ctx *ContextBehavior) CallAsync(fun generic.FuncVar0[any, async.Ret], args ...any) async.AsyncRet
CallAsync 异步调用函数,有返回值。不会阻塞当前线程,会返回AsyncRet。
注意: - 代码片段中的线程安全问题,如临界区访问、线程死锁等。 - 调用过程中的panic信息,均会转换为error返回。
func (*ContextBehavior) CallDelegateAsync ¶ added in v0.3.89
func (ctx *ContextBehavior) CallDelegateAsync(fun generic.DelegateVar0[any, async.Ret], args ...any) async.AsyncRet
CallDelegateAsync 异步调用委托,有返回值。不会阻塞当前线程,会返回AsyncRet。
注意: - 代码片段中的线程安全问题,如临界区访问、线程死锁等。 - 调用过程中的panic信息,均会转换为error返回。
func (*ContextBehavior) CallDelegateVoidAsync ¶ added in v0.3.89
func (ctx *ContextBehavior) CallDelegateVoidAsync(fun generic.DelegateVoidVar0[any], args ...any) async.AsyncRet
CallDelegateVoidAsync 异步调用委托,无返回值。在运行时中。不会阻塞当前线程,会返回AsyncRet。
注意: - 代码片段中的线程安全问题,如临界区访问、线程死锁等。 - 调用过程中的panic信息,均会转换为error返回。
func (*ContextBehavior) CallVoidAsync ¶ added in v0.3.89
func (ctx *ContextBehavior) CallVoidAsync(fun generic.ActionVar0[any], args ...any) async.AsyncRet
CallVoidAsync 异步调用函数,无返回值。在运行时中。不会阻塞当前线程,会返回AsyncRet。
注意: - 代码片段中的线程安全问题,如临界区访问、线程死锁等。 - 调用过程中的panic信息,均会转换为error返回。
func (*ContextBehavior) ConcurrentContext ¶ added in v0.4.25
func (ctx *ContextBehavior) ConcurrentContext() iface.Cache
ConcurrentContext 获取多线程安全的上下文
func (*ContextBehavior) CurrentContext ¶ added in v0.4.25
func (ctx *ContextBehavior) CurrentContext() iface.Cache
CurrentContext 获取当前上下文
func (*ContextBehavior) EntityManager ¶ added in v0.4.25
func (ctx *ContextBehavior) EntityManager() EntityManager
EntityManager 获取实体管理器
func (*ContextBehavior) EntityTree ¶ added in v0.4.25
func (ctx *ContextBehavior) EntityTree() EntityTree
EntityTree 获取主实体树
func (*ContextBehavior) EventContextRunningEvent ¶ added in v0.4.25
func (ctx *ContextBehavior) EventContextRunningEvent() event.IEvent
EventContextRunningEvent 事件:接收运行事件
func (*ContextBehavior) Frame ¶ added in v0.4.25
func (ctx *ContextBehavior) Frame() Frame
Frame 获取帧
func (*ContextBehavior) InstanceFaceCache ¶ added in v0.4.25
func (ctx *ContextBehavior) InstanceFaceCache() iface.Cache
InstanceFaceCache 支持重新解释类型
func (*ContextBehavior) Managed ¶ added in v0.4.25
func (ctx *ContextBehavior) Managed() *event.ManagedHandles
Managed 托管事件句柄
func (*ContextBehavior) Reflected ¶ added in v0.4.25
func (ctx *ContextBehavior) Reflected() reflect.Value
Reflected 获取反射值
func (*ContextBehavior) String ¶
func (ctx *ContextBehavior) String() string
String implements fmt.Stringer
type ContextOptions ¶
type ContextOptions struct {
InstanceFace iface.Face[Context] // 实例,用于扩展运行时上下文能力
Context context.Context // 父Context
AutoRecover bool // 是否开启panic时自动恢复
ReportError chan error // panic时错误写入的error channel
Name string // 运行时名称
PersistId uid.Id // 运行时持久化Id
AddInManager extension.RuntimeAddInManager // 插件管理器
RunningEventCB RunningEventCB // 运行事件回调
}
ContextOptions 创建运行时上下文的所有选项
type CurrentContextProvider ¶
type CurrentContextProvider = corectx.CurrentContextProvider
CurrentContextProvider 当前上下文提供者
type EntityManager ¶ added in v0.3.66
type EntityManager interface {
corectx.CurrentContextProvider
// AddEntity 添加实体
AddEntity(entity ec.Entity) error
// RemoveEntity 删除实体
RemoveEntity(id uid.Id)
// GetEntity 查询实体
GetEntity(id uid.Id) (ec.Entity, bool)
// RangeEntities 遍历所有实体
RangeEntities(fun generic.Func1[ec.Entity, bool])
// EachEntities 遍历每个实体
EachEntities(fun generic.Action1[ec.Entity])
// ReversedRangeEntities 反向遍历所有实体
ReversedRangeEntities(fun generic.Func1[ec.Entity, bool])
// ReversedEachEntities 反向遍历每个实体
ReversedEachEntities(fun generic.Action1[ec.Entity])
// FilterEntities 过滤并获取实体
FilterEntities(fun generic.Func1[ec.Entity, bool]) []ec.Entity
// ListEntities 获取所有实体
ListEntities() []ec.Entity
// CountEntities 获取实体数量
CountEntities() int
IEntityManagerEventTab
}
EntityManager 实体管理器接口
type EntityTree ¶ added in v0.2.58
type EntityTree interface {
corectx.CurrentContextProvider
// MakeRoot 创建根节点
MakeRoot(entityId uid.Id) error
// AddChild 新增子节点
AddChild(parentId, childId uid.Id) error
// RemoveNode 删除子节点,会后序遍历递归删除所有子节点
RemoveNode(childId uid.Id) error
// DetachNode 脱离父节点,成为根节点
DetachNode(childId uid.Id) error
// MoveNode 修改父节点
MoveNode(childId, parentId uid.Id) error
// IsFreedom 是否是自由节点
IsFreedom(entityId uid.Id) (bool, error)
// IsRoot 是否是根节点
IsRoot(entityId uid.Id) (bool, error)
// IsLeaf 是否是叶子节点
IsLeaf(entityId uid.Id) (bool, error)
// GetParent 获取父实体
GetParent(childId uid.Id) (ec.Entity, error)
// RangeChildren 遍历所有子节点
RangeChildren(parentId uid.Id, fun generic.Func1[ec.Entity, bool]) error
// EachChildren 遍历每个子节点
EachChildren(parentId uid.Id, fun generic.Action1[ec.Entity]) error
// ReversedRangeChildren 反向遍历所有子节点
ReversedRangeChildren(parentId uid.Id, fun generic.Func1[ec.Entity, bool]) error
// ReversedEachChildren 反向遍历每个子节点
ReversedEachChildren(parentId uid.Id, fun generic.Action1[ec.Entity]) error
// FilterChildren 过滤并获取子节点
FilterChildren(parentId uid.Id, fun generic.Func1[ec.Entity, bool]) ([]ec.Entity, error)
// ListChildren 获取所有子节点
ListChildren(parentId uid.Id) ([]ec.Entity, error)
// CountChildren 获取子节点数量
CountChildren(parentId uid.Id) (int, error)
IEntityTreeEventTab
}
EntityTree 实体树接口
type EventContextRunningEvent ¶ added in v0.4.25
type EventContextRunningEvent interface {
OnContextRunningEvent(ctx Context, runningEvent RunningEvent, args ...any)
}
EventContextRunningEvent 事件:运行事件 +event-gen:export_emit=0 +event-tab-gen:recursion=allow
type EventContextRunningEventHandler ¶ added in v0.4.25
type EventContextRunningEventHandler func(ctx Context, runningEvent RunningEvent, args ...any)
func HandleEventContextRunningEvent ¶ added in v0.4.25
func HandleEventContextRunningEvent(fun func(ctx Context, runningEvent RunningEvent, args ...any)) EventContextRunningEventHandler
func (EventContextRunningEventHandler) OnContextRunningEvent ¶ added in v0.4.25
func (h EventContextRunningEventHandler) OnContextRunningEvent(ctx Context, runningEvent RunningEvent, args ...any)
type EventEntityManagerAddEntity ¶ added in v0.3.66
type EventEntityManagerAddEntity interface {
OnEntityManagerAddEntity(entityManager EntityManager, entity ec.Entity)
}
EventEntityManagerAddEntity 事件:实体管理器添加实体 +event-gen:export_emit=0 +event-tab-gen:recursion=allow
type EventEntityManagerAddEntityHandler ¶ added in v0.3.66
type EventEntityManagerAddEntityHandler func(entityManager EntityManager, entity ec.Entity)
func HandleEventEntityManagerAddEntity ¶ added in v0.3.66
func HandleEventEntityManagerAddEntity(fun func(entityManager EntityManager, entity ec.Entity)) EventEntityManagerAddEntityHandler
func (EventEntityManagerAddEntityHandler) OnEntityManagerAddEntity ¶ added in v0.3.66
func (h EventEntityManagerAddEntityHandler) OnEntityManagerAddEntity(entityManager EntityManager, entity ec.Entity)
type EventEntityManagerEntityAddComponents ¶ added in v0.3.66
type EventEntityManagerEntityAddComponents interface {
OnEntityManagerEntityAddComponents(entityManager EntityManager, entity ec.Entity, components []ec.Component)
}
EventEntityManagerEntityAddComponents 事件:实体管理器中的实体添加组件 +event-gen:export_emit=0 +event-tab-gen:recursion=allow
type EventEntityManagerEntityAddComponentsHandler ¶ added in v0.3.66
type EventEntityManagerEntityAddComponentsHandler func(entityManager EntityManager, entity ec.Entity, components []ec.Component)
func HandleEventEntityManagerEntityAddComponents ¶ added in v0.3.66
func HandleEventEntityManagerEntityAddComponents(fun func(entityManager EntityManager, entity ec.Entity, components []ec.Component)) EventEntityManagerEntityAddComponentsHandler
func (EventEntityManagerEntityAddComponentsHandler) OnEntityManagerEntityAddComponents ¶ added in v0.3.66
func (h EventEntityManagerEntityAddComponentsHandler) OnEntityManagerEntityAddComponents(entityManager EntityManager, entity ec.Entity, components []ec.Component)
type EventEntityManagerEntityComponentEnableChanged ¶ added in v0.4.25
type EventEntityManagerEntityComponentEnableChanged interface {
OnEntityManagerEntityComponentEnableChanged(entityManager EntityManager, entity ec.Entity, component ec.Component, enable bool)
}
EventEntityManagerEntityComponentEnableChanged 事件:实体管理器中实体的组件启用状态改变 +event-gen:export_emit=0 +event-tab-gen:recursion=allow
type EventEntityManagerEntityComponentEnableChangedHandler ¶ added in v0.4.25
type EventEntityManagerEntityComponentEnableChangedHandler func(entityManager EntityManager, entity ec.Entity, component ec.Component, enable bool)
func HandleEventEntityManagerEntityComponentEnableChanged ¶ added in v0.4.25
func HandleEventEntityManagerEntityComponentEnableChanged(fun func(entityManager EntityManager, entity ec.Entity, component ec.Component, enable bool)) EventEntityManagerEntityComponentEnableChangedHandler
func (EventEntityManagerEntityComponentEnableChangedHandler) OnEntityManagerEntityComponentEnableChanged ¶ added in v0.4.25
func (h EventEntityManagerEntityComponentEnableChangedHandler) OnEntityManagerEntityComponentEnableChanged(entityManager EntityManager, entity ec.Entity, component ec.Component, enable bool)
type EventEntityManagerEntityFirstTouchComponent ¶ added in v0.3.66
type EventEntityManagerEntityFirstTouchComponent interface {
OnEntityManagerEntityFirstTouchComponent(entityManager EntityManager, entity ec.Entity, component ec.Component)
}
EventEntityManagerEntityFirstTouchComponent 事件:实体管理器中的实体首次访问组件 +event-gen:export_emit=0 +event-tab-gen:recursion=allow
type EventEntityManagerEntityFirstTouchComponentHandler ¶ added in v0.3.66
type EventEntityManagerEntityFirstTouchComponentHandler func(entityManager EntityManager, entity ec.Entity, component ec.Component)
func HandleEventEntityManagerEntityFirstTouchComponent ¶ added in v0.3.66
func HandleEventEntityManagerEntityFirstTouchComponent(fun func(entityManager EntityManager, entity ec.Entity, component ec.Component)) EventEntityManagerEntityFirstTouchComponentHandler
func (EventEntityManagerEntityFirstTouchComponentHandler) OnEntityManagerEntityFirstTouchComponent ¶ added in v0.3.66
func (h EventEntityManagerEntityFirstTouchComponentHandler) OnEntityManagerEntityFirstTouchComponent(entityManager EntityManager, entity ec.Entity, component ec.Component)
type EventEntityManagerEntityRemoveComponent ¶ added in v0.3.66
type EventEntityManagerEntityRemoveComponent interface {
OnEntityManagerEntityRemoveComponent(entityManager EntityManager, entity ec.Entity, component ec.Component)
}
EventEntityManagerEntityRemoveComponent 事件:实体管理器中的实体删除组件 +event-gen:export_emit=0 +event-tab-gen:recursion=allow
type EventEntityManagerEntityRemoveComponentHandler ¶ added in v0.3.66
type EventEntityManagerEntityRemoveComponentHandler func(entityManager EntityManager, entity ec.Entity, component ec.Component)
func HandleEventEntityManagerEntityRemoveComponent ¶ added in v0.3.66
func HandleEventEntityManagerEntityRemoveComponent(fun func(entityManager EntityManager, entity ec.Entity, component ec.Component)) EventEntityManagerEntityRemoveComponentHandler
func (EventEntityManagerEntityRemoveComponentHandler) OnEntityManagerEntityRemoveComponent ¶ added in v0.3.66
func (h EventEntityManagerEntityRemoveComponentHandler) OnEntityManagerEntityRemoveComponent(entityManager EntityManager, entity ec.Entity, component ec.Component)
type EventEntityManagerRemoveEntity ¶ added in v0.3.66
type EventEntityManagerRemoveEntity interface {
OnEntityManagerRemoveEntity(entityManager EntityManager, entity ec.Entity)
}
EventEntityManagerRemoveEntity 事件:实体管理器删除实体 +event-gen:export_emit=0 +event-tab-gen:recursion=allow
type EventEntityManagerRemoveEntityHandler ¶ added in v0.3.66
type EventEntityManagerRemoveEntityHandler func(entityManager EntityManager, entity ec.Entity)
func HandleEventEntityManagerRemoveEntity ¶ added in v0.3.66
func HandleEventEntityManagerRemoveEntity(fun func(entityManager EntityManager, entity ec.Entity)) EventEntityManagerRemoveEntityHandler
func (EventEntityManagerRemoveEntityHandler) OnEntityManagerRemoveEntity ¶ added in v0.3.66
func (h EventEntityManagerRemoveEntityHandler) OnEntityManagerRemoveEntity(entityManager EntityManager, entity ec.Entity)
type EventEntityTreeAddNode ¶ added in v0.2.58
type EventEntityTreeAddNode interface {
OnEntityTreeAddNode(entityTree EntityTree, parentId, childId uid.Id)
}
EventEntityTreeAddNode 事件:新增实体树节点 +event-gen:export_emit=0 +event-tab-gen:recursion=allow
type EventEntityTreeAddNodeHandler ¶ added in v0.2.58
type EventEntityTreeAddNodeHandler func(entityTree EntityTree, parentId, childId uid.Id)
func HandleEventEntityTreeAddNode ¶ added in v0.2.58
func HandleEventEntityTreeAddNode(fun func(entityTree EntityTree, parentId, childId uid.Id)) EventEntityTreeAddNodeHandler
func (EventEntityTreeAddNodeHandler) OnEntityTreeAddNode ¶ added in v0.2.58
func (h EventEntityTreeAddNodeHandler) OnEntityTreeAddNode(entityTree EntityTree, parentId, childId uid.Id)
type EventEntityTreeMoveNode ¶ added in v0.4.25
type EventEntityTreeMoveNode interface {
OnEntityTreeMoveNode(entityTree EntityTree, childId, fromParentId, toParentId uid.Id)
}
EventEntityTreeMoveNode 事件:实体树移动节点 +event-gen:export_emit=0 +event-tab-gen:recursion=allow
type EventEntityTreeMoveNodeHandler ¶ added in v0.4.25
type EventEntityTreeMoveNodeHandler func(entityTree EntityTree, childId, fromParentId, toParentId uid.Id)
func HandleEventEntityTreeMoveNode ¶ added in v0.4.25
func HandleEventEntityTreeMoveNode(fun func(entityTree EntityTree, childId, fromParentId, toParentId uid.Id)) EventEntityTreeMoveNodeHandler
func (EventEntityTreeMoveNodeHandler) OnEntityTreeMoveNode ¶ added in v0.4.25
func (h EventEntityTreeMoveNodeHandler) OnEntityTreeMoveNode(entityTree EntityTree, childId, fromParentId, toParentId uid.Id)
type EventEntityTreeRemoveNode ¶ added in v0.2.58
type EventEntityTreeRemoveNode interface {
OnEntityTreeRemoveNode(entityTree EntityTree, parentId, childId uid.Id)
}
EventEntityTreeRemoveNode 事件:删除实体树节点 +event-gen:export_emit=0 +event-tab-gen:recursion=allow
type EventEntityTreeRemoveNodeHandler ¶ added in v0.2.58
type EventEntityTreeRemoveNodeHandler func(entityTree EntityTree, parentId, childId uid.Id)
func HandleEventEntityTreeRemoveNode ¶ added in v0.2.58
func HandleEventEntityTreeRemoveNode(fun func(entityTree EntityTree, parentId, childId uid.Id)) EventEntityTreeRemoveNodeHandler
func (EventEntityTreeRemoveNodeHandler) OnEntityTreeRemoveNode ¶ added in v0.2.58
func (h EventEntityTreeRemoveNodeHandler) OnEntityTreeRemoveNode(entityTree EntityTree, parentId, childId uid.Id)
type Frame ¶
type Frame interface {
// TargetFPS 获取目标FPS
TargetFPS() float64
// CurFPS 获取当前FPS
CurFPS() float64
// TotalFrames 获取运行帧数上限
TotalFrames() int64
// CurFrames 获取当前帧数
CurFrames() int64
// RunningBeginTime 获取运行开始时间
RunningBeginTime() time.Time
// RunningElapseTime 获取运行持续时间
RunningElapseTime() time.Duration
// LoopBeginTime 获取当前帧循环开始时间(包含异步调用)
LoopBeginTime() time.Time
// LastLoopElapseTime 获取上一帧循环耗时(包含异步调用)
LastLoopElapseTime() time.Duration
// UpdateBeginTime 获取当前帧更新开始时间
UpdateBeginTime() time.Time
// LastUpdateElapseTime 获取上一次帧更新耗时
LastUpdateElapseTime() time.Duration
}
Frame 帧,在运行时初始化时可以设置帧,用于设置运行时帧更新方式,在逻辑运行过程中可以在运行时上下文中获取帧信息
type GC ¶ added in v0.2.53
type GC interface {
// GC GC
GC()
// NeedGC 是否需要GC
NeedGC() bool
}
GC GC接口
type GCCollector ¶ added in v0.2.53
type GCCollector interface {
// CollectGC 收集GC
CollectGC(gc GC)
}
GCCollector GC收集器接口
type IContextRunningEventTab ¶ added in v0.4.25
type IEntityManagerEventTab ¶ added in v0.3.66
type IEntityManagerEventTab interface {
EventEntityManagerAddEntity() event.IEvent
EventEntityManagerRemoveEntity() event.IEvent
EventEntityManagerEntityAddComponents() event.IEvent
EventEntityManagerEntityRemoveComponent() event.IEvent
EventEntityManagerEntityComponentEnableChanged() event.IEvent
EventEntityManagerEntityFirstTouchComponent() event.IEvent
}
type IEntityTreeEventTab ¶ added in v0.3.48
type RunningEvent ¶ added in v0.4.25
type RunningEvent int32
RunningEvent 运行事件
const ( RunningEvent_Birth RunningEvent = iota // 出生 RunningEvent_Starting // 开始启动 RunningEvent_Started // 已启动 RunningEvent_FrameLoopBegin // 帧循环开始 RunningEvent_FrameUpdateBegin // 帧更新开始 RunningEvent_FrameUpdateEnd // 帧更新结束 RunningEvent_FrameLoopEnd // 帧循环结束 RunningEvent_RunCallBegin // Call开始执行 RunningEvent_RunCallEnd // Call结束执行 RunningEvent_RunGCBegin // GC开始执行 RunningEvent_RunGCEnd // GC结束执行 RunningEvent_Terminating // 开始停止 RunningEvent_Terminated // 已停止 RunningEvent_AddInActivating // 开始激活插件 RunningEvent_AddInActivationAborted // 中止激活插件 RunningEvent_AddInActivated // 已激活插件 RunningEvent_AddInDeactivating // 开始去激活插件 RunningEvent_AddInDeactivated // 已去激活插件 RunningEvent_EntityActivating // 开始激活实体 RunningEvent_EntityActivationAborted // 中止激活实体 RunningEvent_EntityActivated // 已激活实体 RunningEvent_EntityDeactivating // 开始去激活实体 RunningEvent_EntityDeactivated // 已去激活实体 RunningEvent_EntityAddingComponents // 实体开始添加组件 RunningEvent_EntityComponentsAdditionAborted // 实体中止添加组件 RunningEvent_EntityComponentsAdded // 实体已添加组件 RunningEvent_EntityRemovingComponent // 实体开始删除组件 RunningEvent_EntityComponentRemoved // 实体中止删除组件 RunningEvent_EntityComponentRemovalAborted // 实体已删除组件 )
func (RunningEvent) String ¶ added in v0.4.25
func (i RunningEvent) String() string
type RunningEventCB ¶ added in v0.4.25
type RunningEventCB = generic.ActionVar2[Context, RunningEvent, any] // 运行事件回调
Source Files
¶
- context.go
- context_addin.go
- context_caller.go
- context_concurrent.go
- context_current.go
- context_event.gen.go
- context_event.go
- context_eventtab.gen.go
- context_gc.go
- context_options.go
- doc.go
- entitymanager.go
- entitymanager_event.gen.go
- entitymanager_event.go
- entitymanager_eventtab.gen.go
- entitytree.go
- entitytree_event.gen.go
- entitytree_event.go
- entitytree_eventtab.gen.go
- errors.go
- frame.go
- gc.go
- runningevent.go
- runningevent_string.go
- unsafe_concurrentcontext.go
- unsafe_context.go