Documentation
¶
Overview ¶
Package pt 实体与组件原型,用于创建实体。
Index ¶
- Variables
- func For(provider EntityPTProvider, prototype string) ec.EntityPT
- type ComponentDescriptor
- func (descr *ComponentDescriptor) AssignMeta(m meta.Meta) *ComponentDescriptor
- func (descr *ComponentDescriptor) MergeMeta(dict map[string]any) *ComponentDescriptor
- func (descr *ComponentDescriptor) MergeMetaIfAbsent(dict map[string]any) *ComponentDescriptor
- func (descr *ComponentDescriptor) SetMeta(dict map[string]any) *ComponentDescriptor
- func (descr *ComponentDescriptor) SetName(name string) *ComponentDescriptor
- func (descr *ComponentDescriptor) SetRemovable(b bool) *ComponentDescriptor
- type ComponentLib
- type EntityDescriptor
- func (descr *EntityDescriptor) AssignMeta(m meta.Meta) *EntityDescriptor
- func (descr *EntityDescriptor) MergeIfAbsent(dict map[string]any) *EntityDescriptor
- func (descr *EntityDescriptor) MergeMeta(dict map[string]any) *EntityDescriptor
- func (descr *EntityDescriptor) SetComponentAwakeOnFirstTouch(b bool) *EntityDescriptor
- func (descr *EntityDescriptor) SetComponentUniqueID(b bool) *EntityDescriptor
- func (descr *EntityDescriptor) SetInstance(instance any) *EntityDescriptor
- func (descr *EntityDescriptor) SetMeta(dict map[string]any) *EntityDescriptor
- func (descr *EntityDescriptor) SetScope(scope ec.Scope) *EntityDescriptor
- type EntityLib
- type EntityPTProvider
Constants ¶
This section is empty.
Variables ¶
View Source
var (
ErrPt = fmt.Errorf("%w: pt", exception.ErrCore) // 原型错误
)
Functions ¶
Types ¶
type ComponentDescriptor ¶ added in v0.4.25
type ComponentDescriptor struct {
Instance any // 组件实例(必填)
Name string // 组件名称
Removable bool // 是否可以删除
Meta meta.Meta // 原型Meta信息
}
ComponentDescriptor 组件原型描述
func NewComponentDescriptor ¶ added in v0.4.25
func NewComponentDescriptor(instance any) *ComponentDescriptor
NewComponentDescriptor 创建组件原型描述,用于注册实体原型的组件
func (*ComponentDescriptor) AssignMeta ¶ added in v0.4.25
func (descr *ComponentDescriptor) AssignMeta(m meta.Meta) *ComponentDescriptor
func (*ComponentDescriptor) MergeMeta ¶ added in v0.4.25
func (descr *ComponentDescriptor) MergeMeta(dict map[string]any) *ComponentDescriptor
func (*ComponentDescriptor) MergeMetaIfAbsent ¶ added in v0.4.25
func (descr *ComponentDescriptor) MergeMetaIfAbsent(dict map[string]any) *ComponentDescriptor
func (*ComponentDescriptor) SetMeta ¶ added in v0.4.25
func (descr *ComponentDescriptor) SetMeta(dict map[string]any) *ComponentDescriptor
func (*ComponentDescriptor) SetName ¶ added in v0.4.25
func (descr *ComponentDescriptor) SetName(name string) *ComponentDescriptor
func (*ComponentDescriptor) SetRemovable ¶ added in v0.4.25
func (descr *ComponentDescriptor) SetRemovable(b bool) *ComponentDescriptor
type ComponentLib ¶
type ComponentLib interface {
// Declare 声明组件原型
Declare(comp any) ec.ComponentPT
// Get 查询组件原型
Get(prototype string) (ec.ComponentPT, bool)
// List 获取所有组件原型
List() []ec.ComponentPT
// Watch 监听组件声明
Watch(ctx context.Context) <-chan ec.ComponentPT
}
ComponentLib 组件原型库
type EntityDescriptor ¶ added in v0.4.25
type EntityDescriptor struct {
Prototype string // 实体原型名称(必填)
Instance any // 实体实例
Scope ec.Scope // 可访问作用域
ComponentAwakeOnFirstTouch bool // 当实体组件首次被访问时,生命周期是否进入唤醒(Awake)
ComponentUniqueID bool // 是否为实体组件分配唯一Id
Meta meta.Meta // 原型Meta信息
}
EntityDescriptor 实体原型描述
func NewEntityDescriptor ¶ added in v0.4.25
func NewEntityDescriptor(prototype string) *EntityDescriptor
NewEntityDescriptor 创建实体原型描述,用于注册实体原型
func (*EntityDescriptor) AssignMeta ¶ added in v0.4.25
func (descr *EntityDescriptor) AssignMeta(m meta.Meta) *EntityDescriptor
func (*EntityDescriptor) MergeIfAbsent ¶ added in v0.4.25
func (descr *EntityDescriptor) MergeIfAbsent(dict map[string]any) *EntityDescriptor
func (*EntityDescriptor) MergeMeta ¶ added in v0.4.25
func (descr *EntityDescriptor) MergeMeta(dict map[string]any) *EntityDescriptor
func (*EntityDescriptor) SetComponentAwakeOnFirstTouch ¶ added in v0.4.25
func (descr *EntityDescriptor) SetComponentAwakeOnFirstTouch(b bool) *EntityDescriptor
func (*EntityDescriptor) SetComponentUniqueID ¶ added in v0.4.25
func (descr *EntityDescriptor) SetComponentUniqueID(b bool) *EntityDescriptor
func (*EntityDescriptor) SetInstance ¶ added in v0.4.25
func (descr *EntityDescriptor) SetInstance(instance any) *EntityDescriptor
func (*EntityDescriptor) SetMeta ¶ added in v0.4.25
func (descr *EntityDescriptor) SetMeta(dict map[string]any) *EntityDescriptor
func (*EntityDescriptor) SetScope ¶ added in v0.4.25
func (descr *EntityDescriptor) SetScope(scope ec.Scope) *EntityDescriptor
type EntityLib ¶
type EntityLib interface {
EntityPTProvider
// ComponentLib 获取组件原型库
ComponentLib() ComponentLib
// Declare 声明实体原型
Declare(prototype any, comps ...any) ec.EntityPT
// Get 获取实体原型
Get(prototype string) (ec.EntityPT, bool)
// List 获取所有实体原型
List() []ec.EntityPT
// Watch 监听实体声明
Watch(ctx context.Context) <-chan ec.EntityPT
}
EntityLib 实体原型库
type EntityPTProvider ¶
type EntityPTProvider interface {
// EntityLib 获取实体原型库
EntityLib() EntityLib
}
EntityPTProvider 实体原型提供者
Click to show internal directories.
Click to hide internal directories.