* Added ability to load .obj files
* remove .mtl file
* Replaced z up with y up in obj because apparently it is better
* Make cubyz support blockbench models correctly
* Not working changes
* Segfault
* Fixed bugs because i felt like it
* Catch up
* stuff
* Stuff
* Catch up
* Remove unneccessary code
* Changes to hopefully fix things
* Remove debug log
* Remove exportModel function
* Updated new blocks
* Fixed some std.log.err calls
* aaa
* I AM SO HAPPY YEEEEESSSSSSSSSSSSSSSSSSSSSSSSS
* im silly
* remove commented line
* Remove useless code
* remove thing
* remove backgrounds
* export function just in case i make an oopsie
* add 1 to indices
* final exportModel fix before i remove
* remove export model
* i forgor to do the uv stuff
* hopefully final exportModel change
* yoo
* final changes
* fixed memory leak
* Made format_check use os.sep when checking if it should ignore a folder
* Made format_check specify utf-8 encoding when loading files.
* Fixed documentation using wrong filename for format_check.py
* Add more player debug info to debug.zig
* Made format_check use os.sep when checking if it should ignore a folder
* Made format_check log the file path if an exception occurs
* Made format_check specify utf-8 encoding when loading files.
* Extracted repeated code from player collision check
* Added back eyepos check that affected physics
* Made unstuck always unstuck upwards for the time being (affects #521)
* Added "coyote time" to eyes when you step off a ledge (fixes#636)
* Added eye data to debug info
* Use smarter eyebox check suggested by Quantum.
* Made collideOrStep return Vec3d with correct index set instead of Vec2d.
* Made sure debug loads atomic bools
* Make eye coyote debug number prettier by not showing it being less than 0
* Revert format_check.py changes to have them in a separate commit.
This reverts commit bebdaa57ce74c0d8152e9a3eedeb2ed96a1515ce.
This reverts commit 1e05bd42982ec3516a4f273a5ba3972d70efe1d8.
This reverts commit 2b4944e60c7441e29c7f96bfcc2d0f3436a01ca8.
* Fix accidentally replacing the wrong argument in a67aa290
fixes a deadlock and reduces the chance for future deadlocks of this kind.
should also fix#384 since now the largest continuous locking time is shorter.
It uses 4 collision checks to ensure that the item drop doesn't fall through blocks.
Jittering is fixed by adding the acceleration before the collision test.
items are now larger than blocks
items are now centered.
Syntactically this seems to be a pretty neutral change, some expression get longer, other get shorter.
But I guess it increases type safety and I could also replace some of the more magic operations, like `neighbor ^ 1` with a named function.
fixes#602
Also make sure that another port is used and communicated correctly when the default port is already in use.
This allows opening multiple singleplayer worlds on the same computer.
fixes#605
The index is then only calculated once. Individual insertions are not optimized though.
fixes#600
Also it seems that in my previous performance commit I had made a mistake in my measurement, I must have measured a buggy version which turned out to be super fast. In actuality the performance difference was much smaller, so I decided to optimize that section as well.
Now it's at 1.7 ms per chunk. Still needs more improvements, I guess.
To make this possible I switched from 3d noise offsets to a single 2d noise offset in z direction. This makes the biome structure more predictable vertically, and therefore suited for getting entire columns at once.
This introduced some artifacts at biome borders, but I could remove them by rotating the bioem map slightly, such that none of the biome borders are vertical.
In total this halfed the cost of the TerrainGenerator, which makes up most of chunk generation. Chunk generation speed is now around 1-1.2 ms per chunk.
This also opens up future optimizations, like bulk insertion into the chunk data structure.