world.go
func (w *World) AddSystemInterface(sys SystemAddByInterfacer, in interface{}, ex interface{}) {
	w.AddSystem(sys)

	if w.sysIn == nil {
		w.sysIn = make(map[reflect.Type]reflect.Type)
	}

	w.sysIn[reflect.TypeOf(sys)] = reflect.TypeOf(in).Elem()

	if ex == nil {
		return
	}

	if w.sysEx == nil {
		w.sysEx = make(map[reflect.Type]reflect.Type)
	}

	w.sysEx[reflect.TypeOf(sys)] = reflect.TypeOf(ex).Elem()
}
func (w *World) AddSystemInterface(sys SystemAddByInterfacer, in interface{}, ex interface{}) {
	w.AddSystem(sys)

	if w.sysIn == nil {
		w.sysIn = make(map[reflect.Type]reflect.Type)
	}

	w.sysIn[reflect.TypeOf(sys)] = reflect.TypeOf(in).Elem()

	if ex == nil {
		return
	}

	if w.sysEx == nil {
		w.sysEx = make(map[reflect.Type]reflect.Type)
	}

	w.sysEx[reflect.TypeOf(sys)] = reflect.TypeOf(ex).Elem()
}
func ( w * World ) AddSystemInterface ( sys SystemAddByInterfacer , in interface { } , ex interface { } ) { w . AddSystem ( sys ) if w . sysIn == nil { w . sysIn = make ( map [ reflect . Type ] reflect . Type ) } w . sysIn [ reflect . TypeOf ( sys ) ] = reflect . TypeOf ( in ) . Elem ( ) if ex == nil { return } if w . sysEx == nil { w . sysEx = make ( map [ reflect . Type ] reflect . Type ) } w . sysEx [ reflect . TypeOf ( sys ) ] = reflect . TypeOf ( ex ) . Elem ( ) }
// AddSystemInterface adds a system to the world, but also adds a filter that allows
// automatic adding of entities that match the provided in interface, and excludes any
// that match the provided ex interface, even if they also match in. in and ex must be
// pointers to the interface or else this panics.
AddSystemInterface adds a system to the world but also adds a filter that allows automatic adding of entities that match the provided in interface and excludes any that match the provided ex interface even if they also match in . in and ex must be pointers to the interface or else this panics .