* Lua show_menu function to show inventories. WIP
* Copy all lua mods & their files into a series of structs,
stored in LuaMod, LuaModFile, and LuaModConfig classes.
* Sandbox SandboxedDoFile further by making it only open LuaModFiles
* Recursive mod searching which identifies conf.json as a mod root
* Read conf.json for name, description, version, and dependencies
* Organize mods to load in order of their dependencies
- Standardize CMake include file structure
- Build GLFW in CMake configuration
- Include libs folder in repository (with licenses!)
- Update all #include statements that were broken
#Fixes
* Fix Segfault when you go back to previously generated chunks
* Make dimension & BlockChunks use shared_ptrs (finally)
* MeshGenStream no longer unnecessarily duplicates BlockChunks
* Different Vertical Gen Range to Horizontal
# Clean Up
* Convert most MeshGenerator functions to using references (safety)
* Optimize Flora noise
* Remove raw C array Mesh Initializer (it was messy)
* Pre-generate ActiveRange positions and remove runtime sorting
* Makefiles use GLOBs and Libraries to have better organization
* Zeus directory renamed to src
* New test directory for unit tests
* Using Catch2 for unit tests
* Added unit tests to BlockChunk serialization
* Updated ServerConnection Authentication call to supply name 'Aurailus'
* Packet::deserialize now returns a pointer
* Move most of the packet handling code from Server to ConnMan
Move connection code from Client.cpp to ServerConnection.cpp
GameScene connects to the server and sets player position based on it.
Server 'authenticates' client from (currently unused) token before giving it data.
Packets now support encoding floats and strings.
Server now acknowledges port argument.
ServerPlayer class for keeping track of client Player entities.
New stuff:
* Client will fork and exec a given path with the "server" argument if supplied.
* Packet class to help transfer data between client and server.
* New Server class which accepts handshake from client
* GameScene now attempts to connect to a server and ends if it fails.
Fixes:
* Changed deltaTime to double on Player class
* SceneManager defaults Scene to nullptr to fix seg fault.
* Moved some code to DebugGui and out of GameScene.
* World class stores per-frame updates for chunks and meshes.
* Scene emits warning if a derived class doesn't override all methods.
* GameScene overrides cleanup
* Created MenuScene to test having multiple scenes.
* Moved commented code out of Main
* SceneManager class allows swapping between scenes easily.
* Scene interface to provide methods for the SceneManager to interact with scenes.
* GameInstance turned into GameScene (derived from Scene)
* Practically move all non-commented code from main.cpp
* Create Client.cpp/h class and move logic out of main.cpp
* Create default constructor for Renderer
* Fix definition of default:stone
* Change GameInstance:update() to use a double instead of a GLfloat
- Removed yaw and pitch properties from camera create method
- Removed movement code from camera
- Added setYaw and setPitch to camera class
- Created Player class which holds camera class
- Player position and yaw/pitch are synced with camera
- Movement code moved to player class
- Added collision in player class
- Added gravity and friction to player
- Created Ray class
- Used Ray class to get what block player is looking at
- Show currently looked at block in DebugGui
- Changed DebugGUI class to be more concise and show more information
- Added a crosshair to the game, temporarily in GameInstance class