Commit Graph

71 Commits (master)

Author SHA1 Message Date
Auri b26126e0fb Remove cute_headers 2021-09-23 23:16:23 -07:00
Auri 791bdd7eb1 Update file loading and mod config. 2021-09-06 18:33:01 -07:00
Auri a08af1b260 Bump to C++ 20 2021-09-03 14:22:58 -07:00
SamCZ 5364d12013 CMake fixes 2021-09-01 21:18:21 +02:00
SamCZ c89a945363 WIP cmake rework 2021-08-30 01:14:23 +02:00
Auri 10edb1eb60 Replaced LibNoise in MapGen with FastNoise2 for S U P E R S P E E D 2021-08-09 22:39:20 -07:00
Nicole Collings 75f716d315
Add RPath specification to CMakeLists.txt 2020-11-04 23:55:50 -08:00
Auri 8d6e19500a Committed to Lua 5.3, polyfilled (ew) the setfenv / getfenv functions.
* Fixed a crash where an improperly formatted subgame can crash the client.
* Remove Lua 5.1 from CMakeLists.txt.
2020-11-02 15:18:09 -08:00
Auri e0f9df5abe Remove LoadLibs, move all of that to CMakeLists.txt, re-implement Assimp building from source. 2020-10-29 21:37:27 -07:00
Jordan Snelling c0a60aac09 Fix build on Linux systems, notes added for Linux compiling. 2020-10-19 01:33:45 +01:00
Nicole Collings d56d6f890a Update to sol3, vec3 customization, C++ 17 now required. 2020-07-23 18:54:11 -07:00
Nicole Collings 10b9bdb95d Tweaks to naming 2020-06-24 00:46:57 -07:00
Nicole Collings ee94e691ae BlockChunks now use Run Index Encoding, 80% reduction in mem usage. 2020-02-14 13:04:07 -08:00
Nicole Collings 851de85e70 Block collision boxes, Add Step-up functionality to Collidable
* Tweak player speed.
* Make Invalid display.
* Fix some mod bugs.
2019-12-09 21:19:02 -08:00
Nicole Collings 49da2ad701 Organized and Optimized TransPos, renamed to Space
- Clean up VecUtils
2019-11-22 00:59:55 -08:00
Jordan Snelling 9aa94e0b12 Fix Windows build 2: electric boogaloo 2019-11-04 15:28:20 +00:00
Nicole Collings ae286f84eb New inventory format and inventory parsing algorithm in GameGui. 2019-11-04 00:43:12 -08:00
Nicole Collings 88ecf13e2c Fix Assimp compilation 2019-11-02 17:00:50 -07:00
Nicole Collings 352caaa268 Fix compilation on Linux 2019-11-02 16:27:13 -07:00
Nicole Collings 2d5aa93f38 Find GLEW_LIB on Unix 2019-11-02 15:58:25 -07:00
Jordan Snelling 086deeb773 Use improvements to allow for Linux compilation and Win64 compilation 2019-10-31 23:11:00 +00:00
Jordan Snelling 6c06d0ba8d Fix Windows x64 builds 2019-10-31 01:14:17 +00:00
Nicole Collings 6ee9a3cb3c Reimplement swaying leaves & grass with version 3.30 shaders.
* Move SOL_ALL_SAFETIES_ON to CMake target_compile_definitions.
2019-09-08 12:33:33 -07:00
Nicole Collings a7088bcd1f Remove references of Zeus from CMake files and separate LoadLibs.cmake 2019-09-08 11:27:28 -07:00
Nicole Collings fc325c4c2f Try to statically compile GLEW 2019-09-04 14:21:38 -07:00
Nicole Collings 43cb70da4f Seperate Chunk, Entity, and GUI mesh related structures 2019-08-24 17:29:31 -07:00
Nicole Collings e637622aa8 Sandbox Lua files into ram, namespace them, parse conf.json, show_menu
* 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
2019-08-03 18:18:05 -07:00
Nicole Collings 252c490aa2 Redo CMakeList to add more organization 2019-07-19 13:16:55 -07:00
Nicole Collings 32d8859e1a Delete sanitize line in CMakeLists 2019-07-17 23:02:31 -07:00
Nicole Collings 98ab5ea664 Refactor build files and libraries.
- Standardize CMake include file structure
- Build GLFW in CMake configuration
- Include libs folder in repository (with licenses!)
- Update all #include statements that were broken
2019-07-17 22:42:42 -07:00
aurailus 20a9eaa298 Generate crack textures dynamically on the texture atlas,
Note: Atlas does not discard unused textures yet.
2019-05-01 14:49:39 -07:00
aurailus 5e9a0774be BugFixes, Optimizations, Speed Improvements
#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
2019-04-08 19:18:03 -07:00
aurailus 16ff339a2b Add flowers, Pad Texture Atlas, Move block break code to Player class 2019-04-02 20:58:20 -07:00
aurailus 6fe900eb29 Rewrite Map Generation using LibNoise! 2019-04-01 23:03:36 -07:00
aurailus 5d87863cb8 Replace Perlin noise with Simplex Noise, Optimize NoiseSampler class. 2019-03-19 23:53:24 -07:00
aurailus 61c78d6b79 NetHandler class to abstract ENet C ugliness.
* Remove some old Boost:Asio based network code.
2019-02-04 23:22:31 -08:00
aurailus d191f926ef Testing, cleaner makefiles
* 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
2019-02-01 16:12:37 -08:00
aurailus a89efe9dcb New MapGen class for server-client map synchronization. 2019-01-29 16:41:59 -08:00
aurailus 3fc3d84bb4 Functionality to serialize a BlockChunk into a compressed string & back 2019-01-27 14:13:40 -08:00
aurailus 0b038364e5 Created ConnMan object for server to make it easier to program.
* 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
2019-01-22 23:29:32 -08:00
aurailus 4346f45c1c Completely reorganize file structure, delete unused imports,
clean all imports, surpress useless CLion warnings, clean code
2019-01-22 17:08:06 -08:00
aurailus d50cc1c072 More networking code implementation
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.
2019-01-11 23:16:10 -08:00
aurailus 0639c3b655 Add handlePacket function to server and commit ClientConnection class 2019-01-11 08:18:14 -08:00
aurailus c608e2336d UDP Networking first commit + Bugfixes & Cleanup
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
2019-01-10 23:33:36 -08:00
aurailus 9378296c5d Scene Interface!
* 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)
2019-01-07 00:07:41 -08:00
aurailus a40c85905a Clean up code for portability and server initialization
* 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
2019-01-06 23:31:13 -08:00
aurailus eb096f1a7a Update Lua Api C++ code to make it more extendable.
Added register_blockmodel to the api, unfinished.
2019-01-02 01:34:32 -08:00
aurailus 4e3f48b867 - Moved camera constructor to create method
- 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
2018-12-30 19:18:42 -08:00
aurailus b0ee113811 Updated the FPS Histogram and reorganize some files. 2018-12-28 18:51:47 -08:00
aurailus 9c3aac4789 Moved debug text to DebugGui object, added FPS histogram.
Entities now have Texture field, currently only respected for GuiEntities.
2018-12-28 15:58:05 -08:00