initial commit
commit
942c249be3
@ -0,0 +1,43 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/mlange-42/ark/ecs"
|
||||
|
||||
"code.ndumas.com/ndumas/muddy"
|
||||
)
|
||||
|
||||
func main() {
|
||||
world := ecs.NewWorld()
|
||||
|
||||
locationMapper := ecs.NewMap3[muddy.ID, muddy.Location, muddy.Observable](world)
|
||||
|
||||
z := 0
|
||||
for i := range 10 {
|
||||
for j := range 10 {
|
||||
_ = locationMapper.NewEntity(
|
||||
&muddy.ID{ID: int64(z)},
|
||||
&muddy.Location{
|
||||
World: 0,
|
||||
Exits: make([]int64, 0),
|
||||
},
|
||||
&muddy.Observable{
|
||||
Name: fmt.Sprintf("Room (%d,%d)", i, j),
|
||||
},
|
||||
)
|
||||
z++
|
||||
}
|
||||
}
|
||||
|
||||
locationFilter := ecs.NewFilter3[muddy.ID, muddy.Location, muddy.Observable](world)
|
||||
|
||||
query := locationFilter.Query()
|
||||
for query.Next() {
|
||||
id, loc, obsv := query.Get()
|
||||
fmt.Println("====")
|
||||
fmt.Printf("%#v\n", id)
|
||||
fmt.Printf("%#v\n", loc)
|
||||
fmt.Printf("%#v\n", obsv)
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package muddy
|
||||
|
||||
type ID struct {
|
||||
ID int64
|
||||
}
|
||||
|
||||
type Location struct {
|
||||
World int64
|
||||
Exits []int64
|
||||
}
|
||||
|
||||
type Observable struct {
|
||||
Name string
|
||||
Description string
|
||||
}
|
||||
@ -0,0 +1,5 @@
|
||||
module code.ndumas.com/ndumas/muddy
|
||||
|
||||
go 1.24.5
|
||||
|
||||
require github.com/mlange-42/ark v0.7.0
|
||||
Loading…
Reference in New Issue