Fix up gocritic issues
This commit is contained in:
parent
2ee68e74ac
commit
14c4e61660
9 changed files with 72 additions and 56 deletions
|
@ -101,10 +101,12 @@ func InnerMain(command string) error {
|
||||||
// Handle all the commands
|
// Handle all the commands
|
||||||
switch command {
|
switch command {
|
||||||
case "status":
|
case "status":
|
||||||
if response, err := server.Status(); err != nil {
|
response, err := server.Status()
|
||||||
|
switch {
|
||||||
|
case err != nil:
|
||||||
return err
|
return err
|
||||||
|
|
||||||
} else {
|
default:
|
||||||
fmt.Printf("Ready: %t\n", response.Ready)
|
fmt.Printf("Ready: %t\n", response.Ready)
|
||||||
fmt.Printf("Version: %s\n", response.Version)
|
fmt.Printf("Version: %s\n", response.Version)
|
||||||
fmt.Printf("Tick: %d\n", response.Tick)
|
fmt.Printf("Tick: %d\n", response.Tick)
|
||||||
|
@ -115,13 +117,15 @@ func InnerMain(command string) error {
|
||||||
d := rove.RegisterData{
|
d := rove.RegisterData{
|
||||||
Name: *name,
|
Name: *name,
|
||||||
}
|
}
|
||||||
if response, err := server.Register(d); err != nil {
|
response, err := server.Register(d)
|
||||||
|
switch {
|
||||||
|
case err != nil:
|
||||||
return err
|
return err
|
||||||
|
|
||||||
} else if !response.Success {
|
case !response.Success:
|
||||||
return fmt.Errorf("Server returned failure: %s", response.Error)
|
return fmt.Errorf("Server returned failure: %s", response.Error)
|
||||||
|
|
||||||
} else {
|
default:
|
||||||
fmt.Printf("Registered account with id: %s\n", response.Id)
|
fmt.Printf("Registered account with id: %s\n", response.Id)
|
||||||
config.Accounts[config.Host] = response.Id
|
config.Accounts[config.Host] = response.Id
|
||||||
}
|
}
|
||||||
|
@ -129,13 +133,17 @@ func InnerMain(command string) error {
|
||||||
d := rove.SpawnData{}
|
d := rove.SpawnData{}
|
||||||
if err := verifyId(account); err != nil {
|
if err := verifyId(account); err != nil {
|
||||||
return err
|
return err
|
||||||
} else if response, err := server.Spawn(account, d); err != nil {
|
}
|
||||||
|
|
||||||
|
response, err := server.Spawn(account, d)
|
||||||
|
switch {
|
||||||
|
case err != nil:
|
||||||
return err
|
return err
|
||||||
|
|
||||||
} else if !response.Success {
|
case !response.Success:
|
||||||
return fmt.Errorf("Server returned failure: %s", response.Error)
|
return fmt.Errorf("Server returned failure: %s", response.Error)
|
||||||
|
|
||||||
} else {
|
default:
|
||||||
fmt.Printf("Spawned rover with attributes %+v\n", response.Attributes)
|
fmt.Printf("Spawned rover with attributes %+v\n", response.Attributes)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -152,26 +160,34 @@ func InnerMain(command string) error {
|
||||||
|
|
||||||
if err := verifyId(account); err != nil {
|
if err := verifyId(account); err != nil {
|
||||||
return err
|
return err
|
||||||
} else if response, err := server.Command(account, d); err != nil {
|
}
|
||||||
|
|
||||||
|
response, err := server.Command(account, d)
|
||||||
|
switch {
|
||||||
|
case err != nil:
|
||||||
return err
|
return err
|
||||||
|
|
||||||
} else if !response.Success {
|
case !response.Success:
|
||||||
return fmt.Errorf("Server returned failure: %s", response.Error)
|
return fmt.Errorf("Server returned failure: %s", response.Error)
|
||||||
|
|
||||||
} else {
|
default:
|
||||||
fmt.Printf("Request succeeded\n")
|
fmt.Printf("Request succeeded\n")
|
||||||
}
|
}
|
||||||
|
|
||||||
case "radar":
|
case "radar":
|
||||||
if err := verifyId(account); err != nil {
|
if err := verifyId(account); err != nil {
|
||||||
return err
|
return err
|
||||||
} else if response, err := server.Radar(account); err != nil {
|
}
|
||||||
|
|
||||||
|
response, err := server.Radar(account)
|
||||||
|
switch {
|
||||||
|
case err != nil:
|
||||||
return err
|
return err
|
||||||
|
|
||||||
} else if !response.Success {
|
case !response.Success:
|
||||||
return fmt.Errorf("Server returned failure: %s", response.Error)
|
return fmt.Errorf("Server returned failure: %s", response.Error)
|
||||||
|
|
||||||
} else {
|
default:
|
||||||
// Print out the radar
|
// Print out the radar
|
||||||
game.PrintTiles(response.Tiles)
|
game.PrintTiles(response.Tiles)
|
||||||
}
|
}
|
||||||
|
@ -179,13 +195,17 @@ func InnerMain(command string) error {
|
||||||
case "rover":
|
case "rover":
|
||||||
if err := verifyId(account); err != nil {
|
if err := verifyId(account); err != nil {
|
||||||
return err
|
return err
|
||||||
} else if response, err := server.Rover(account); err != nil {
|
}
|
||||||
|
response, err := server.Rover(account)
|
||||||
|
|
||||||
|
switch {
|
||||||
|
case err != nil:
|
||||||
return err
|
return err
|
||||||
|
|
||||||
} else if !response.Success {
|
case !response.Success:
|
||||||
return fmt.Errorf("Server returned failure: %s", response.Error)
|
return fmt.Errorf("Server returned failure: %s", response.Error)
|
||||||
|
|
||||||
} else {
|
default:
|
||||||
fmt.Printf("attributes: %+v\n", response.Attributes)
|
fmt.Printf("attributes: %+v\n", response.Attributes)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -198,10 +218,8 @@ func InnerMain(command string) error {
|
||||||
// Save out the persistent file
|
// Save out the persistent file
|
||||||
if b, err := json.MarshalIndent(config, "", "\t"); err != nil {
|
if b, err := json.MarshalIndent(config, "", "\t"); err != nil {
|
||||||
return fmt.Errorf("failed to marshal data error: %s", err)
|
return fmt.Errorf("failed to marshal data error: %s", err)
|
||||||
} else {
|
} else if err := ioutil.WriteFile(*data, b, os.ModePerm); err != nil {
|
||||||
if err := ioutil.WriteFile(*data, b, os.ModePerm); err != nil {
|
return fmt.Errorf("failed to save file %s error: %s", *data, err)
|
||||||
return fmt.Errorf("failed to save file %s error: %s", *data, err)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
|
|
@ -59,7 +59,7 @@ func (a *Accountant) RegisterAccount(name string) (acc Account, err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// AssignRover assigns rover ownership of an rover to an account
|
// AssignRover assigns rover ownership of an rover to an account
|
||||||
func (a *Accountant) AssignRover(account uuid.UUID, rover uuid.UUID) error {
|
func (a *Accountant) AssignRover(account, rover uuid.UUID) error {
|
||||||
|
|
||||||
// Find the account matching the ID
|
// Find the account matching the ID
|
||||||
if this, ok := a.Accounts[account]; ok {
|
if this, ok := a.Accounts[account]; ok {
|
||||||
|
|
|
@ -29,7 +29,7 @@ type Atlas struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewAtlas creates a new empty atlas
|
// NewAtlas creates a new empty atlas
|
||||||
func NewAtlas(size int, chunkSize int) Atlas {
|
func NewAtlas(size, chunkSize int) Atlas {
|
||||||
if size%2 != 0 {
|
if size%2 != 0 {
|
||||||
log.Fatal("atlas size must always be even")
|
log.Fatal("atlas size must always be even")
|
||||||
}
|
}
|
||||||
|
@ -77,11 +77,11 @@ func (a *Atlas) SpawnWalls() error {
|
||||||
|
|
||||||
if err := a.SetTile(vector.Vector{X: i, Y: extent - 1}, TileWall); err != nil { // N
|
if err := a.SetTile(vector.Vector{X: i, Y: extent - 1}, TileWall); err != nil { // N
|
||||||
return err
|
return err
|
||||||
} else if a.SetTile(vector.Vector{X: extent - 1, Y: i}, TileWall); err != nil { // E
|
} else if err := a.SetTile(vector.Vector{X: extent - 1, Y: i}, TileWall); err != nil { // E
|
||||||
return err
|
return err
|
||||||
} else if a.SetTile(vector.Vector{X: i, Y: -extent}, TileWall); err != nil { // S
|
} else if err := a.SetTile(vector.Vector{X: i, Y: -extent}, TileWall); err != nil { // S
|
||||||
return err
|
return err
|
||||||
} else if a.SetTile(vector.Vector{X: -extent, Y: i}, TileWall); err != nil { // W
|
} else if err := a.SetTile(vector.Vector{X: -extent, Y: i}, TileWall); err != nil { // W
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -155,7 +155,7 @@ func (a *Atlas) ChunkOrigin(chunk int) vector.Vector {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetWorldExtent gets the min and max valid coordinates of world
|
// GetWorldExtent gets the min and max valid coordinates of world
|
||||||
func (a *Atlas) GetWorldExtents() (min vector.Vector, max vector.Vector) {
|
func (a *Atlas) GetWorldExtents() (min, max vector.Vector) {
|
||||||
min = vector.Vector{
|
min = vector.Vector{
|
||||||
X: -(a.Size / 2) * a.ChunkSize,
|
X: -(a.Size / 2) * a.ChunkSize,
|
||||||
Y: -(a.Size / 2) * a.ChunkSize,
|
Y: -(a.Size / 2) * a.ChunkSize,
|
||||||
|
|
|
@ -3,7 +3,6 @@ package game
|
||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/mdiluz/rove/pkg/bearing"
|
|
||||||
"github.com/mdiluz/rove/pkg/vector"
|
"github.com/mdiluz/rove/pkg/vector"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
@ -23,10 +22,9 @@ func TestCommand_Move(t *testing.T) {
|
||||||
err = world.WarpRover(a, pos)
|
err = world.WarpRover(a, pos)
|
||||||
assert.NoError(t, err, "Failed to set position for rover")
|
assert.NoError(t, err, "Failed to set position for rover")
|
||||||
|
|
||||||
bearing := bearing.North
|
|
||||||
duration := 1
|
duration := 1
|
||||||
// Try the move command
|
// Try the move command
|
||||||
moveCommand := Command{Command: CommandMove, Bearing: bearing.String(), Duration: duration}
|
moveCommand := Command{Command: CommandMove, Bearing: "N", Duration: duration}
|
||||||
assert.NoError(t, world.Enqueue(a, moveCommand), "Failed to execute move command")
|
assert.NoError(t, world.Enqueue(a, moveCommand), "Failed to execute move command")
|
||||||
|
|
||||||
// Tick the world
|
// Tick the world
|
||||||
|
|
|
@ -36,7 +36,7 @@ type World struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewWorld creates a new world object
|
// NewWorld creates a new world object
|
||||||
func NewWorld(size int, chunkSize int) *World {
|
func NewWorld(size, chunkSize int) *World {
|
||||||
return &World{
|
return &World{
|
||||||
Rovers: make(map[uuid.UUID]Rover),
|
Rovers: make(map[uuid.UUID]Rover),
|
||||||
CommandQueue: make(map[uuid.UUID]CommandStream),
|
CommandQueue: make(map[uuid.UUID]CommandStream),
|
||||||
|
@ -183,7 +183,7 @@ func (w *World) WarpRover(id uuid.UUID, pos vector.Vector) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetPosition sets an rovers position
|
// SetPosition sets an rovers position
|
||||||
func (w *World) MoveRover(id uuid.UUID, bearing bearing.Bearing) (RoverAttributes, error) {
|
func (w *World) MoveRover(id uuid.UUID, b bearing.Bearing) (RoverAttributes, error) {
|
||||||
w.worldMutex.Lock()
|
w.worldMutex.Lock()
|
||||||
defer w.worldMutex.Unlock()
|
defer w.worldMutex.Unlock()
|
||||||
|
|
||||||
|
@ -192,7 +192,7 @@ func (w *World) MoveRover(id uuid.UUID, bearing bearing.Bearing) (RoverAttribute
|
||||||
distance := i.Attributes.Speed
|
distance := i.Attributes.Speed
|
||||||
|
|
||||||
// Calculate the full movement based on the bearing
|
// Calculate the full movement based on the bearing
|
||||||
move := bearing.Vector().Multiplied(distance)
|
move := b.Vector().Multiplied(distance)
|
||||||
|
|
||||||
// Try the new move position
|
// Try the new move position
|
||||||
newPos := i.Attributes.Pos.Added(move)
|
newPos := i.Attributes.Pos.Added(move)
|
||||||
|
|
|
@ -79,16 +79,16 @@ func TestWorld_GetSetMovePosition(t *testing.T) {
|
||||||
assert.NoError(t, err, "Failed to set position for rover")
|
assert.NoError(t, err, "Failed to set position for rover")
|
||||||
assert.Equal(t, pos, newAttribs.Pos, "Failed to correctly set position for rover")
|
assert.Equal(t, pos, newAttribs.Pos, "Failed to correctly set position for rover")
|
||||||
|
|
||||||
bearing := bearing.North
|
b := bearing.North
|
||||||
duration := 1
|
duration := 1
|
||||||
newAttribs, err = world.MoveRover(a, bearing)
|
newAttribs, err = world.MoveRover(a, b)
|
||||||
assert.NoError(t, err, "Failed to set position for rover")
|
assert.NoError(t, err, "Failed to set position for rover")
|
||||||
pos.Add(vector.Vector{X: 0, Y: attribs.Speed * duration}) // We should have move one unit of the speed north
|
pos.Add(vector.Vector{X: 0, Y: attribs.Speed * duration}) // We should have move one unit of the speed north
|
||||||
assert.Equal(t, pos, newAttribs.Pos, "Failed to correctly move position for rover")
|
assert.Equal(t, pos, newAttribs.Pos, "Failed to correctly move position for rover")
|
||||||
|
|
||||||
// Place a tile in front of the rover
|
// Place a tile in front of the rover
|
||||||
assert.NoError(t, world.Atlas.SetTile(vector.Vector{X: 0, Y: 2}, TileWall))
|
assert.NoError(t, world.Atlas.SetTile(vector.Vector{X: 0, Y: 2}, TileWall))
|
||||||
newAttribs, err = world.MoveRover(a, bearing)
|
newAttribs, err = world.MoveRover(a, b)
|
||||||
assert.Equal(t, pos, newAttribs.Pos, "Failed to correctly not move position for rover into wall")
|
assert.Equal(t, pos, newAttribs.Pos, "Failed to correctly not move position for rover into wall")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ func Pmod(x, d int) int {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Max returns the highest int
|
// Max returns the highest int
|
||||||
func Max(x int, y int) int {
|
func Max(x, y int) int {
|
||||||
if x < y {
|
if x < y {
|
||||||
return y
|
return y
|
||||||
}
|
}
|
||||||
|
@ -33,7 +33,7 @@ func Max(x int, y int) int {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Min returns the lowest int
|
// Min returns the lowest int
|
||||||
func Min(x int, y int) int {
|
func Min(x, y int) int {
|
||||||
if x > y {
|
if x > y {
|
||||||
return y
|
return y
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,13 +12,13 @@ import (
|
||||||
var dataPath = os.TempDir()
|
var dataPath = os.TempDir()
|
||||||
|
|
||||||
// SetPath sets the persistent path for the data storage
|
// SetPath sets the persistent path for the data storage
|
||||||
func SetPath(path string) error {
|
func SetPath(p string) error {
|
||||||
if info, err := os.Stat(path); err != nil {
|
if info, err := os.Stat(p); err != nil {
|
||||||
return err
|
return err
|
||||||
} else if !info.IsDir() {
|
} else if !info.IsDir() {
|
||||||
return fmt.Errorf("path for persistence is not directory")
|
return fmt.Errorf("path for persistence is not directory")
|
||||||
}
|
}
|
||||||
dataPath = path
|
dataPath = p
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,40 +29,40 @@ func jsonPath(name string) string {
|
||||||
|
|
||||||
// Save will serialise the interface into a json file
|
// Save will serialise the interface into a json file
|
||||||
func Save(name string, data interface{}) error {
|
func Save(name string, data interface{}) error {
|
||||||
path := jsonPath(name)
|
p := jsonPath(name)
|
||||||
if b, err := json.MarshalIndent(data, "", " "); err != nil {
|
if b, err := json.MarshalIndent(data, "", " "); err != nil {
|
||||||
return err
|
return err
|
||||||
} else {
|
} else {
|
||||||
if err := ioutil.WriteFile(jsonPath(name), b, os.ModePerm); err != nil {
|
if err := ioutil.WriteFile(p, b, os.ModePerm); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Printf("Saved %s\n", path)
|
fmt.Printf("Saved %s\n", p)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Load will load the interface from the json file
|
// Load will load the interface from the json file
|
||||||
func Load(name string, data interface{}) error {
|
func Load(name string, data interface{}) error {
|
||||||
path := jsonPath(name)
|
p := jsonPath(name)
|
||||||
// Don't load anything if the file doesn't exist
|
// Don't load anything if the file doesn't exist
|
||||||
_, err := os.Stat(path)
|
_, err := os.Stat(p)
|
||||||
if os.IsNotExist(err) {
|
if os.IsNotExist(err) {
|
||||||
fmt.Printf("File %s didn't exist, loading with fresh data\n", path)
|
fmt.Printf("File %s didn't exist, loading with fresh data\n", p)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Read and unmarshal the json
|
// Read and unmarshal the json
|
||||||
if b, err := ioutil.ReadFile(path); err != nil {
|
if b, err := ioutil.ReadFile(p); err != nil {
|
||||||
return err
|
return err
|
||||||
} else if len(b) == 0 {
|
} else if len(b) == 0 {
|
||||||
fmt.Printf("File %s was empty, loading with fresh data\n", path)
|
fmt.Printf("File %s was empty, loading with fresh data\n", p)
|
||||||
return nil
|
return nil
|
||||||
} else if err := json.Unmarshal(b, data); err != nil {
|
} else if err := json.Unmarshal(b, data); err != nil {
|
||||||
return fmt.Errorf("failed to load file %s error: %s", path, err)
|
return fmt.Errorf("failed to load file %s error: %s", p, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Printf("Loaded %s\n", path)
|
fmt.Printf("Loaded %s\n", p)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,12 +13,12 @@ type Server string
|
||||||
|
|
||||||
// GET performs a GET request
|
// GET performs a GET request
|
||||||
func (s Server) GET(path string, out interface{}) error {
|
func (s Server) GET(path string, out interface{}) error {
|
||||||
url := url.URL{
|
u := url.URL{
|
||||||
Scheme: "http",
|
Scheme: "http",
|
||||||
Host: string(s),
|
Host: string(s),
|
||||||
Path: path,
|
Path: path,
|
||||||
}
|
}
|
||||||
if resp, err := http.Get(url.String()); err != nil {
|
if resp, err := http.Get(u.String()); err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
||||||
} else if resp.StatusCode != http.StatusOK {
|
} else if resp.StatusCode != http.StatusOK {
|
||||||
|
@ -30,8 +30,8 @@ func (s Server) GET(path string, out interface{}) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
// POST performs a POST request
|
// POST performs a POST request
|
||||||
func (s Server) POST(path string, in interface{}, out interface{}) error {
|
func (s Server) POST(path string, in, out interface{}) error {
|
||||||
url := url.URL{
|
u := url.URL{
|
||||||
Scheme: "http",
|
Scheme: "http",
|
||||||
Host: string(s),
|
Host: string(s),
|
||||||
Path: path,
|
Path: path,
|
||||||
|
@ -45,7 +45,7 @@ func (s Server) POST(path string, in interface{}, out interface{}) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set up the request
|
// Set up the request
|
||||||
req, err := http.NewRequest("POST", url.String(), bytes.NewReader(marshalled))
|
req, err := http.NewRequest("POST", u.String(), bytes.NewReader(marshalled))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue