diff --git a/pkg/bearing/bearing.go b/pkg/bearing/bearing.go index 90e771d..5d17858 100644 --- a/pkg/bearing/bearing.go +++ b/pkg/bearing/bearing.go @@ -7,11 +7,11 @@ import ( "github.com/mdiluz/rove/pkg/vector" ) -// Direction describes a compass direction -type Direction int +// Bearing describes a compass direction +type Bearing int const ( - North Direction = iota + North Bearing = iota NorthEast East SouthEast @@ -21,14 +21,14 @@ const ( NorthWest ) -// DirectionString simply describes the strings associated with a direction -type DirectionString struct { +// bearingString simply describes the strings associated with a direction +type bearingString struct { Long string Short string } -// DirectionStrings is the set of strings for each direction -var DirectionStrings = []DirectionString{ +// bearingStrings is the set of strings for each direction +var bearingStrings = []bearingString{ {"North", "N"}, {"NorthEast", "NE"}, {"East", "E"}, @@ -40,26 +40,26 @@ var DirectionStrings = []DirectionString{ } // String converts a Direction to a String -func (d Direction) String() string { - return DirectionStrings[d].Long +func (d Bearing) String() string { + return bearingStrings[d].Long } // ShortString converts a Direction to a short string version -func (d Direction) ShortString() string { - return DirectionStrings[d].Short +func (d Bearing) ShortString() string { + return bearingStrings[d].Short } -// DirectionFromString gets the Direction from a string -func DirectionFromString(s string) (Direction, error) { - for i, d := range DirectionStrings { +// FromString gets the Direction from a string +func FromString(s string) (Bearing, error) { + for i, d := range bearingStrings { if strings.ToLower(d.Long) == strings.ToLower(s) || strings.ToLower(d.Short) == strings.ToLower(s) { - return Direction(i), nil + return Bearing(i), nil } } return -1, fmt.Errorf("Unknown direction: %s", s) } -var DirectionVectors = []vector.Vector{ +var bearingVectors = []vector.Vector{ {X: 0, Y: 1}, // N {X: 1, Y: 1}, // NE {X: 1, Y: 0}, // E @@ -71,6 +71,6 @@ var DirectionVectors = []vector.Vector{ } // Vector converts a Direction to a Vector -func (d Direction) Vector() vector.Vector { - return DirectionVectors[d] +func (d Bearing) Vector() vector.Vector { + return bearingVectors[d] } diff --git a/pkg/bearing/bearing_test.go b/pkg/bearing/bearing_test.go index d9dc8e9..1232239 100644 --- a/pkg/bearing/bearing_test.go +++ b/pkg/bearing/bearing_test.go @@ -14,19 +14,19 @@ func TestDirection(t *testing.T) { assert.Equal(t, "N", dir.ShortString()) assert.Equal(t, vector.Vector{X: 0, Y: 1}, dir.Vector()) - dir, err := DirectionFromString("N") + dir, err := FromString("N") assert.NoError(t, err) assert.Equal(t, North, dir) - dir, err = DirectionFromString("n") + dir, err = FromString("n") assert.NoError(t, err) assert.Equal(t, North, dir) - dir, err = DirectionFromString("north") + dir, err = FromString("north") assert.NoError(t, err) assert.Equal(t, North, dir) - dir, err = DirectionFromString("NorthWest") + dir, err = FromString("NorthWest") assert.NoError(t, err) assert.Equal(t, NorthWest, dir) } diff --git a/pkg/game/world.go b/pkg/game/world.go index 466c895..52ca6a8 100644 --- a/pkg/game/world.go +++ b/pkg/game/world.go @@ -179,7 +179,7 @@ func (w *World) WarpRover(id uuid.UUID, pos vector.Vector) error { } // SetPosition sets an rovers position -func (w *World) MoveRover(id uuid.UUID, bearing bearing.Direction) (RoverAttributes, error) { +func (w *World) MoveRover(id uuid.UUID, bearing bearing.Bearing) (RoverAttributes, error) { w.worldMutex.Lock() defer w.worldMutex.Unlock() @@ -278,7 +278,7 @@ func (w *World) Enqueue(rover uuid.UUID, commands ...Command) error { for _, c := range commands { switch c.Command { case "move": - if _, err := bearing.DirectionFromString(c.Bearing); err != nil { + if _, err := bearing.FromString(c.Bearing); err != nil { return fmt.Errorf("unknown direction: %s", c.Bearing) } default: @@ -333,7 +333,7 @@ func (w *World) ExecuteCommand(c *Command, rover uuid.UUID) (finished bool, err switch c.Command { case "move": - if dir, err := bearing.DirectionFromString(c.Bearing); err != nil { + if dir, err := bearing.FromString(c.Bearing); err != nil { return true, fmt.Errorf("unknown direction in command %+v, skipping: %s\n", c, err) } else if _, err := w.MoveRover(rover, dir); err != nil {