package aoi type ( MarkerFunc func(marker *Object, notifyWatchers Objects) MarkerUpdateFunc func(marker *Object, notifyWatchers Objects, updateID uint32, funcName string) WatcherFunc func(watcher *Object, updateMarkers Objects) AOI interface { events Get(objectID int64) *Object Enter(object *Object) bool Move(objectID int64, x, y int32) bool Leave(objectID int64) Update(objectID int64, updateID uint32, funcName string) } events interface { OnMarkerEnter(fn MarkerFunc) OnMarkerMove(fn MarkerFunc) OnMarkerLeave(fn MarkerFunc) OnMarkerUpdate(fn MarkerUpdateFunc) OnWatcherEnter(fn WatcherFunc) OnWatcherMove(fn WatcherFunc) } EventBase struct { MarkerEnterFunc MarkerFunc MarkerMoveFunc MarkerFunc MarkerLeaveFunc MarkerFunc MarkerUpdateFunc MarkerUpdateFunc WatcherEnterFunc WatcherFunc WatcherMoveFunc WatcherFunc } ) func (p *EventBase) OnMarkerEnter(fn MarkerFunc) { p.MarkerEnterFunc = fn } func (p *EventBase) OnMarkerMove(fn MarkerFunc) { p.MarkerMoveFunc = fn } func (p *EventBase) OnMarkerLeave(fn MarkerFunc) { p.MarkerLeaveFunc = fn } func (p *EventBase) OnMarkerUpdate(fn MarkerUpdateFunc) { p.MarkerUpdateFunc = fn } func (p *EventBase) OnWatcherEnter(fn WatcherFunc) { p.WatcherEnterFunc = fn } func (p *EventBase) OnWatcherMove(fn WatcherFunc) { p.WatcherMoveFunc = fn }