runtime

package
v0.4.26 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 6, 2026 License: LGPL-2.1 Imports: 19 Imported by: 21

Documentation

Overview

Package runtime 为运行时环境提供的一些接口与函数。

  • 运行时上下文(Context)
  • 实体管理器(EntityManager)
  • 实体树(EntityTree)
  • 帧(Frame)

Index

Constants

This section is empty.

Variables

View Source
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)
)
View Source
var (
	EventEntityTreeAddNodeId    = event.DeclareEventIdT[entityTreeEventTab](0)
	EventEntityTreeRemoveNodeId = event.DeclareEventIdT[entityTreeEventTab](1)
	EventEntityTreeMoveNodeId   = event.DeclareEventIdT[entityTreeEventTab](2)
)
View Source
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)                  // 帧错误
)
View Source
var (
	EventContextRunningEventId = event.DeclareEventIdT[contextRunningEventTab](0)
)
View Source
var (
	// ForestNodeId 实体树森林节点ID
	ForestNodeId = uid.From("d5rh7sbr1n96c63fs3vg")
)
View Source
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

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 Current

func Current(provider corectx.CurrentContextProvider) Context

Current 获取当前运行时上下文

func NewContext

func NewContext(svcCtx service.Context, settings ...option.Setting[ContextOptions]) Context

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) CollectGC

func (ctx *ContextBehavior) CollectGC(gc GC)

CollectGC 收集GC

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) Id added in v0.4.25

func (ctx *ContextBehavior) Id() uid.Id

Id 获取运行时Id

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) Name added in v0.4.25

func (ctx *ContextBehavior) Name() string

Name 获取名称

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 IContextRunningEventTab interface {
	EventContextRunningEvent() event.IEvent
}

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 IEntityTreeEventTab interface {
	EventEntityTreeAddNode() event.IEvent
	EventEntityTreeRemoveNode() event.IEvent
	EventEntityTreeMoveNode() event.IEvent
}

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] // 运行事件回调

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL