Merge pull request #1 from kitskub/master

Update for flow-networking changes
Additional protocol cleanup

Change over to using varints where appropriate.
Codecs will be MessageHandlers, remove redundant additional classes
Rename NetworkPulser to Network, have it contain the GameNetworkClient
(network interactions will go through this class, makes things simple)

Signed-off-by: Chris Sanders <zidane@outlook.com>
Further cleanup the protocol

Added a better write/readUtf8

Signed-off-by: Chris Sanders <zidane@outlook.com>
Remove Client- naming for Protocol

Length should be readableBytes, not capacity.

Signed-off-by: Chris Sanders <zidane@outlook.com>
Fix handshake, connected to Minecraft Server.

Need to continue working on more of the protocol but we are very close to
chunk loading

Signed-off-by: Chris Sanders <zidane@outlook.com>
Add Player/ClientStatus codecs

Signed-off-by: Chris Sanders <zidane@outlook.com>
One more protocol refactor

- Added javadocs for all the messages
- Removed the ability to specify version in Handshake
- Added SpawnPosition

Signed-off-by: Chris Sanders <zidane@outlook.com>
Various small fixes and changes

- Move network connect to inside Game, in onStart()
- Remove thrown exception declarations in Network where unecessary
- Move Interface class to nterface package, we need a better
non-conflicting name for that part of the engine
- Reset the dirty arrays after updating the chunk snapshot
Signed-off-by: Aleksi Sapon <QcTechs@gmail.com>
Add names to worlds

Signed-off-by: Aleksi Sapon <QcTechs@gmail.com>
Singletons are bad, we won't be doing those.

Pass around Game reference

Signed-off-by: Chris Sanders <zidane@outlook.com>
Add RespawnCodec and active World to Universe

- Add world on JoinGame
- Update world on Respawn

Signed-off-by: Chris Sanders <zidane@outlook.com>
Import BlockFace and BlockFaces classes from Spout

Signed-off-by: Aleksi Sapon <QcTechs@gmail.com>
Begin work on chunk meshing

Signed-off-by: Aleksi Sapon <QcTechs@gmail.com>
Fixes to BlockFace

The rotationTo method in Quaternion needs to be fixed to account for
parallel vectors correctly
Signed-off-by: Aleksi Sapon <QcTechs@gmail.com>
Remove magic numbers, they are bad.

Signed-off-by: Chris Sanders <zidane@outlook.com>
Update license headers

Signed-off-by: Steven Downer <grinch@outlook.com>
Update build.gradle

- Add 'licenseFormatTest' as a default task
- Exclude .yml filetypes from the license task
- Update license headers

Signed-off-by: Chris Sanders <zidane@outlook.com>
Start channels

ChannelMessages keep track of which channels have read them (to solve
thread safety issues).

Signed-off-by: Chris Sanders <zidane@outlook.com>
Use bit mask instead of EnumSet for storing the channel that read the message in ChannelMessage

This will support up to 16 of them
Signed-off-by: Aleksi Sapon <QcTechs@gmail.com>
Implement Network Queue system

As Codecs come in, we disperse their messages to Network queue based. Each
component of the Client will then iterate the Queue each tick and handle
the message. At the start of each Network tick, if the message has been
handled by all required channels, it is removed from the Network queue

Signed-off-by: Chris Sanders <zidane@outlook.com>