1190 Commits

Author SHA1 Message Date
IntegratedQuantum
783f342ad9 Allow player to reconnect when the server still thinks the old connection is active.
This makes it easier to reconnect to the server when the client crashed.

fixes #369
2024-08-02 11:07:05 +02:00
IntegratedQuantum
10a1322058 Use the default port where possible.
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
2024-08-01 22:05:20 +02:00
IntegratedQuantum
4fa08bec95 Add the ability to insert ranges of equal blocks into the palette compressed data structure.
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.
2024-08-01 17:30:44 +02:00
IntegratedQuantum
c3711868c5 Remove some outdated TODOs. 2024-07-31 21:11:39 +02:00
IntegratedQuantum
bc1c1d6d92 Rework the biome map to allow fetching entire biome columns at once.
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.
2024-07-31 18:46:20 +02:00
IntegratedQuantum
cde841bc6a Improve performance of PaletteCompressedRegion.setValue.
That made it almost 2× faster. But it's only a ~4% improvement of the total terrain generation time.
2024-07-30 10:11:29 +02:00
IntegratedQuantum
920d2354b9 Prevent some windows from being closed and fix titlebar hitboxes.
fixes #593
2024-07-27 16:29:56 +02:00
IntegratedQuantum
ac4fc601b9 Fix block placing at the same height as the player.
fixes #589
2024-07-27 16:11:52 +02:00
IntegratedQuantum
b1a28474ad Fix lighting for block items. 2024-07-27 16:08:52 +02:00
IntegratedQuantum
76476faa84 Fix the sliders.
fixes #590
2024-07-27 16:01:47 +02:00
IntegratedQuantum
6dc106fb9f Store light data in a separate buffer and compress it.
Slightly slower, but halfs GPU memory usage and allows storing 3× more faces on the GPU.
Also makes meshing a bit slower, but transparency sorting should be a lot faster, since it's shuffling around less memory.
2024-07-27 14:27:53 +02:00
OneAvargeCoder193
5281b77e9e
Made the open folder button work on windows (#586)
* Changed the saveFolder function so that it does the correct command on windows

* Changed the saveFolder function so that it does the correct command on windows

* why
2024-07-24 09:42:56 +02:00
IntegratedQuantum
60b17ed6ef Only draw the outer layers for leaves. The number of layers is configurable.
Makes #579 less useful, but it would still be beneficial.
2024-07-23 21:27:47 +02:00
Carrie
67cce6f25a Fix some text, add default_background 2024-07-23 20:44:34 +02:00
careeoki
952d93c45e
UI changes (#584)
* UI colour balancing+ design changes

* New world icons

* Update titlebar icons to match other icons

* Tweak raw meat palette
2024-07-22 09:34:13 +02:00
IntegratedQuantum
fa73ca7c22 Allow the player to change block break/place speeds.
This will make building large structures in creative much easier.
2024-07-21 11:18:27 +02:00
IntegratedQuantum
412d5b93b8 Improve world selection and creation interfaces.
fixes #577
fixes #576
fixes #575
2024-07-20 16:32:09 +02:00
IntegratedQuantum
6ca18480cf
Switch to an internal spring system for stepping and collision, instead of using external springs. (#580)
* Use internal springs instead of external springs.

This is not only more efficient, but also would potentially fix a large portion of open physics issues.

* Allow stepping onto blocks if velicity is positive and define a minimum stepping height.

* Add jump cooldown and make jump-stepping onto a block smoother.

* Disable the jump cooldown when the jump button was released.

* Remove some leftover code and fix stepping too far.
2024-07-19 15:41:55 +02:00
IntegratedQuantum
daf2f0332e Remove some deprecated APIs to become compatible with the latest master zig. 2024-07-18 21:09:32 +02:00
Carrie
f309e31eb5 Update apple and raw meat texture 2024-07-17 09:00:14 +02:00
careeoki
2f49d3744b
Update reflectivity textures (#572)
* Update reflectivity

* Ice hasBackFace
2024-07-15 22:16:28 +02:00
careeoki
72b8c2ce41
New hearts (#567)
* Redesign heart icons

* Fix indentation

* Fix indentation again

* Change half heart

* Fix scaling, fix formatting

* Fix formatting?????

* Fix formatting

* Fix Formmamting
2024-07-14 21:18:16 +02:00
IntegratedQuantum
78e30c5bf6 Fix formatting. 2024-07-14 11:38:14 +02:00
IntegratedQuantum
289e3c61f1 Add VSCode section headers to make navigating large files easier. 2024-07-14 11:31:57 +02:00
IntegratedQuantum
45cc9a9419 Add angle dependent reflections and draw glass backfaces.
Follow-up on #402
2024-07-12 17:00:26 +02:00
IntegratedQuantum
de21faa1ad Allow overwriting the GenerationMode of simple structures. Also makes simple vegetation work on the ceiling.
fixes #564
2024-07-12 10:38:45 +02:00
IntegratedQuantum
5c5347357b Remove the old StalagmiteGenerator.
follow-up on #562
2024-07-12 10:11:58 +02:00
Carrie
033ff55c02 Convert stalagmites to simple structures 2024-07-12 10:05:47 +02:00
IntegratedQuantum
358c0f38a8 Implement Stalagmites as their own simple structure model, which allows configuring the parameters in detail, potentially even adding multiple stalagmites with different block types..
Could also help with #547 once the biomes in question are transitioned to the new stalagmite structures, instead of using the old, dedicated generator.
2024-07-11 21:12:32 +02:00
careeoki
a6693d4113
Make glass more reflective (and slightly textured) (#555)
* Make glass more reflective (and slightly textured)

* Update brown glass
2024-07-10 09:01:36 +02:00
careeoki
56acfd05f3
Update biome structure chance, Ice and Frost (#550)
* Fix biome structure chance, Ice and Frost

* Make grassland consistent with other changes

* Revert glacier stoneBlock

* Warm Ocean stoneBlock is now sandstone

* 1/3 forest trees are birch
2024-07-08 22:10:54 +02:00
IntegratedQuantum
409ad24b14 Introduce the StructureMap to make large structure generation easier in the future. 2024-07-08 22:07:59 +02:00
IntegratedQuantum
814774f247 Use the player's inner hitbox for the block placing collision check.
fixes #549
2024-07-07 21:26:22 +02:00
IntegratedQuantum
2c70023779
Smooth collisions and stepping (#548)
* Prototype for spring-based collision boxes. It currently breaks at low fps and stairs are kind of weird

* Better stair climbing.

* Fix the problem where the player bounces off when jumping towards a block.

* Fix some things.

* More fixes
2024-07-07 17:32:26 +02:00
careeoki
25e82a51f9
Inventory item textures + Vetch & Iron (#545)
* Add ffiles!!! WOOOOOOWWW!!!!

* New material values for iron, tweak vetch textruye

* Tweak vetch, mahogany, update grass plant

* Revert blue glow crystal textures

* Revert blue glow crystal... Again!!!

* Fix indentation
2024-07-05 18:53:36 +02:00
IntegratedQuantum
117a1d7f71 Adjust structure chance in LOD.
follow-up to 2bc1292fc3ec50168dedfae94f01e2fcf3adc8e9
2024-07-04 11:27:32 +02:00
IntegratedQuantum
212b2f5b53 Filter degenerate quads, reducing total quad count in the base game from 266 to 250.
Degenerate quads were mainly created from the fence models.

Also fixed a bug with connections between fences.

fixes #280
2024-07-04 11:12:31 +02:00
IntegratedQuantum
be0406df09 Hotbar shortcut keys
fixes #343
2024-07-04 10:47:46 +02:00
IntegratedQuantum
45fed30069 Allow overwriting the block item texture.
fixes #345
2024-07-04 10:38:30 +02:00
IntegratedQuantum
337e014d88 Store settings and gui layout whenever it gets changed.
fixes #469
2024-07-04 10:24:57 +02:00
IntegratedQuantum
ac3847db79 Fix order of faces when drawing item textures.
This was working fine before due to a bug in the depth calculation that gave it negative depth values.

fixes #488
2024-07-03 22:11:46 +02:00
IntegratedQuantum
9d0f2fe681 Fix how fences/torches check neighboring blocks.
fixes #517
2024-07-03 21:21:28 +02:00
IntegratedQuantum
2bc1292fc3 Normalize structure chances if their sum is larger than one.
fixes #544
2024-07-03 21:09:23 +02:00
IntegratedQuantum
1f61ea0c37 Load music by ID from the assets folder and improve error handling when the file isn't found.
fixes #535
fixes #543
2024-07-03 17:22:07 +02:00
IntegratedQuantum
2e06b9d4af Add a button to hide the GUI (F1)
fixes #470
2024-07-02 22:18:05 +02:00
IntegratedQuantum
78db8f0839 Interpolate the biome interpolation based on some weights, instead of choosing the closest one.
This allows making plateaus without having a ramp (from the other biome interpolation) leading up to it.
2024-07-02 20:06:26 +02:00
IntegratedQuantum
4343f6eb18 Fix flat terrain bug.
fixes #183
2024-07-02 11:38:16 +02:00
IntegratedQuantum
12eae52f99 Normalize movement direction to make diagonal movement as fast as straight movement.
fixes #523
2024-07-02 10:48:56 +02:00
IntegratedQuantum
732b4d4836 Replace grass_vegetation with air in LOD.
fixes #542
2024-07-02 10:31:59 +02:00
IntegratedQuantum
d2bc6e6428 Allow configuring leaf radius and tree height independently.
fixes #519
2024-07-02 10:23:31 +02:00