Commit graph

121 commits

Author SHA1 Message Date
8c6230ca20 Implement a reverse proxy using grpc-gateway 2020-06-13 00:23:21 +01:00
7ababb79f6 Migrate to gRPC rather than REST with swagger
Will also be adding in a RESTful endpoint to the server as well so it can consume both types
2020-06-12 22:51:18 +01:00
6cfc9444f3 Simplify the APIs to return http status codes 2020-06-12 19:05:26 +01:00
6342d9dc4d Add TODO notes about hack with rovers in the atlas 2020-06-11 20:47:45 +01:00
faaa556ad0 Move the Atlas code into it's own package 2020-06-11 20:42:59 +01:00
8cd7b06c0c Privatise Atlas functions that should only be internal 2020-06-11 20:34:30 +01:00
de3c2b9134 Fix printing the tile grid 2020-06-11 20:26:06 +01:00
2f5863b17a Use log instead of fmt for logging
Also fix up a few errors to lower case
2020-06-11 19:04:53 +01:00
223c50228e Add comments to the accounts proto file 2020-06-11 18:38:34 +01:00
99da6c5d67 Move accountant to it's own deployment using gRCP 2020-06-11 13:24:42 +01:00
8f25f55658 Refactor accounts to store a data map rather than just a rover ID 2020-06-10 22:48:45 +01:00
7749854eb7 Remove account IDs in favor of just account names
These were a "security" feature but pre-emptive and just add complications when we can implement secrets later
2020-06-10 18:57:43 +01:00
b3b369f608 Remove /spawn POST endpoint
This was increasing complexity for no added benefit

	/register now performs the spawn in 4 lines of code
2020-06-10 18:48:56 +01:00
6fb7ee598d Move server package out into rove-server 2020-06-10 18:20:05 +01:00
62d6213c1a Change GET and SET to CamelCase 2020-06-10 17:27:55 +01:00
14c4e61660 Fix up gocritic issues 2020-06-10 12:34:04 +01:00
2ee68e74ac Enqueue the incoming commands at the next tick
This sync commands for all users and in the future will let you view which moves and commands are currently being executed
2020-06-09 20:44:25 +01:00
6a868d3e41 Fix up TODOs and comments that have now been done 2020-06-09 18:33:30 +01:00
a784b06c2a Fix error messages that still talk about direction 2020-06-09 18:33:05 +01:00
4558e8a9b0 Rename Direction -> Bearing 2020-06-09 18:09:51 +01:00
51fe918090 Split out maths functions into maths, vector and bearing 2020-06-09 18:08:07 +01:00
aae668fb57 Fix instabilities caused by random rocks 2020-06-09 00:16:49 +01:00
520f78b5c3 Stop spawning rovers outside the chunks or warping into other rovers 2020-06-09 00:07:25 +01:00
ae2cb6598a Fix WarpRover when warping onto itself 2020-06-08 23:41:33 +01:00
de94b39a50 Fix TestCommand_Move instability by increasing the size of the atlas 2020-06-08 23:39:13 +01:00
066df58705 Fix the names including apostrophes 2020-06-08 23:37:03 +01:00
43588c0e4b Fix world spawning and radar
Also expand test coverage a little to ensure it's correct
2020-06-08 23:32:52 +01:00
b0e076ac1a Refactor radar to return a full set of the tiles within rover range 2020-06-08 18:14:24 +01:00
175c66cddf Remove tests on spawn world for empty tiles 2020-06-07 23:19:57 +01:00
35806576f9 Add a bunch of TODOs 2020-06-07 23:17:56 +01:00
65818ed0e1 Renamethe spawn world function 2020-06-07 23:05:55 +01:00
de0ccbaa6e Fix the random rock spawns 2020-06-07 23:05:36 +01:00
e82fb3dbfe Pepper the world with rocks 2020-06-07 22:36:11 +01:00
43648926ca Large refactor to properly implement radar
/radar now returns a set of non-empty tile blips
2020-06-07 22:30:03 +01:00
fc54775df9 Stop movement into non-empty tiles 2020-06-07 19:03:16 +01:00
3781a4d10d Spawn a border around the world atlas for now
Also spawn the rover within a single chunk in the middle
2020-06-07 18:57:44 +01:00
cb725c96d2 Rename Kind -> Tile 2020-06-07 18:38:46 +01:00
289bab2a7a Refactor atlas creation and growth
Pass in the real size and grow itself rather than return a new one
2020-06-07 18:36:00 +01:00
aa4df38ead Swap kind to bytes and reduce chunk size 2020-06-07 18:21:44 +01:00
ceca4eb7fa Refactor the Tile to a full Atlas
This atlas is a set of chunks and supports resizing
2020-06-07 18:08:34 +01:00
8586bdabd7 Fix duplicate saving on quit
Slight refactor to split server stop and close functions
	Quit function explicitly sends SIGTERM
	SIGTERM doesn't trigger an os.Exit

	Bonus: Properly save the world on spawning the rover
2020-06-07 18:06:34 +01:00
141827fa57 Add a blank atlas to the world 2020-06-07 13:33:44 +01:00
77be28f913 Rename geom to math 2020-06-07 13:33:18 +01:00
ca17d89f6e Fix logging of rover spawn 2020-06-07 13:32:37 +01:00
55cfa37ac5 Give the rover name a json representation in lowercase 2020-06-06 19:11:12 +01:00
5c549ad8c3 Add a TODO to the MoveRover command about blocking other rovers 2020-06-06 18:45:23 +01:00
91947f614c Randomly position new rovers 2020-06-06 18:45:15 +01:00
2b87c2b4c0 Add version to ./rove 2020-06-06 18:44:40 +01:00
50cc8b5dbf Minor cleanups 2020-06-06 18:44:24 +01:00
4645ef81e5 Add missing rover.go file 2020-06-06 16:53:42 +01:00