grid.go 828 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package aoiGrid
  2. type (
  3. Grid struct {
  4. id int32
  5. minX int32
  6. minY int32
  7. maxX int32
  8. maxY int32
  9. markers Objects
  10. watchers Objects
  11. }
  12. MapGrid map[int32]*Grid
  13. )
  14. func (p *Grid) AddMarker(object *Object) {
  15. if !p.markers.Contains(object.ObjectID) {
  16. p.markers.Add(object)
  17. }
  18. }
  19. func (p *Grid) DelMarker(object *Object) {
  20. if p.markers.Contains(object.ObjectID) {
  21. p.markers.Remove(object.ObjectID)
  22. }
  23. }
  24. func (p *Grid) AddWatcher(object *Object) {
  25. if !p.watchers.Contains(object.ObjectID) {
  26. p.watchers.Add(object)
  27. }
  28. }
  29. func (p *Grid) DelWatcher(object *Object) {
  30. if p.watchers.Contains(object.ObjectID) {
  31. p.watchers.Remove(object.ObjectID)
  32. }
  33. }
  34. func (p MapGrid) Add(grid *Grid) {
  35. p[grid.id] = grid
  36. }
  37. func (p MapGrid) Contains(grid *Grid) bool {
  38. _, found := p[grid.id]
  39. return found
  40. }