Split Atlas chunks into tiles and objects
This commit is contained in:
parent
74dcae6542
commit
062f9cfec8
11 changed files with 284 additions and 169 deletions
|
@ -108,6 +108,7 @@ func TestServer_Radar(t *testing.T) {
|
|||
assert.NotZero(t, resp.Range, "Radar should return valid range")
|
||||
w := int(resp.Range*2 + 1)
|
||||
assert.Equal(t, w*w, len(resp.Tiles), "radar should return correct number of tiles")
|
||||
assert.Equal(t, w*w, len(resp.Objects), "radar should return correct number of objects")
|
||||
}
|
||||
|
||||
func TestServer_Rover(t *testing.T) {
|
||||
|
|
|
@ -59,6 +59,11 @@ func (s *Server) Rover(ctx context.Context, req *rove.RoverRequest) (*rove.Rover
|
|||
return nil, fmt.Errorf("error getting rover: %s", err)
|
||||
|
||||
} else {
|
||||
var inv []byte
|
||||
for _, i := range rover.Inventory {
|
||||
inv = append(inv, byte(i.Type))
|
||||
}
|
||||
|
||||
response = &rove.RoverResponse{
|
||||
Name: rover.Name,
|
||||
Position: &rove.Vector{
|
||||
|
@ -66,7 +71,7 @@ func (s *Server) Rover(ctx context.Context, req *rove.RoverRequest) (*rove.Rover
|
|||
Y: int32(rover.Pos.Y),
|
||||
},
|
||||
Range: int32(rover.Range),
|
||||
Inventory: rover.Inventory,
|
||||
Inventory: inv,
|
||||
Integrity: int32(rover.Integrity),
|
||||
}
|
||||
}
|
||||
|
@ -88,10 +93,11 @@ func (s *Server) Radar(ctx context.Context, req *rove.RadarRequest) (*rove.Radar
|
|||
} else if rover, err := s.world.GetRover(resp); err != nil {
|
||||
return nil, fmt.Errorf("error getting rover attributes: %s", err)
|
||||
|
||||
} else if radar, err := s.world.RadarFromRover(resp); err != nil {
|
||||
} else if radar, objs, err := s.world.RadarFromRover(resp); err != nil {
|
||||
return nil, fmt.Errorf("error getting radar from rover: %s", err)
|
||||
|
||||
} else {
|
||||
response.Objects = objs
|
||||
response.Tiles = radar
|
||||
response.Range = int32(rover.Range)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue