package gg /*func (e *engine) Resolve() { eng := (*Engine)(e) type resHold struct{ Resolver Resolver input chan *Context } colliders := map[CollisionType] []Collider{} resolvers := []resHold{} for _, object := range e.Objects.store { if object.IsResolvable() { interests := object.GetCollisionInterest() for _, interest := range interests { _, ok := colliders[interest] if !ok { colliders[interest] = []Collider{} } } resolvers = append(resolvers, resHold{ object, object.Input(), }) } } for _, object := range e.Objects.store { if object.IsCollidable() { typ := object.CollisionType() _, ok := colliders[typ] if !ok { continue } colliders[typ] = append(colliders[typ], object) } } for _, resolver := range resolvers { interests := resolver.Resolver.GetCollisionInterest() cols := []Collision{} for _, interest := range interests { cols = append(cols, GetCollisions(resolver.Resolver, colliders[interest])...) } if len(cols) > 0 { c := &Context{ typ: resolveContext, Collisions: cols, Engine: eng, } e.wg.Add(1) resolver.input <- c } } e.wg.Wait() }*/