Move comp into own file

This commit is contained in:
bloeys
2022-12-06 04:56:17 +04:00
parent 23a6689346
commit 7d5e3e2d82
2 changed files with 36 additions and 35 deletions

36
entity/comp.go Executable file
View File

@ -0,0 +1,36 @@
package entity
type Comp interface {
Name() string
}
func AddComp(e *Entity, c Comp) {
e.Comps = append(e.Comps, c)
}
func GetComp[T Comp](e *Entity) (out T) {
for i := 0; i < len(e.Comps); i++ {
comp, ok := e.Comps[i].(T)
if ok {
return comp
}
}
return out
}
func GetAllCompOfType[T Comp](e *Entity) (out []T) {
out = []T{}
for i := 0; i < len(e.Comps); i++ {
comp, ok := e.Comps[i].(T)
if ok {
out = append(out, comp)
}
}
return out
}

View File

@ -39,38 +39,3 @@ func (e *Entity) HasFlag(ef EntityFlag) bool {
func NewEntityId(generation byte, flags EntityFlag, index uint64) uint64 { func NewEntityId(generation byte, flags EntityFlag, index uint64) uint64 {
return index | (uint64(generation) << GenerationShiftBits) | (uint64(flags) << FlagsShiftBits) return index | (uint64(generation) << GenerationShiftBits) | (uint64(flags) << FlagsShiftBits)
} }
type Comp interface {
Name() string
}
func AddComp(e *Entity, c Comp) {
e.Comps = append(e.Comps, c)
}
func GetComp[T Comp](e *Entity) (out T) {
for i := 0; i < len(e.Comps); i++ {
comp, ok := e.Comps[i].(T)
if ok {
return comp
}
}
return out
}
func GetAllCompOfType[T Comp](e *Entity) (out []T) {
out = []T{}
for i := 0; i < len(e.Comps); i++ {
comp, ok := e.Comps[i].(T)
if ok {
out = append(out, comp)
}
}
return out
}