173 Commits

Author SHA1 Message Date
IntegratedQuantum
f15d1adc56 Various performance improvements:
The NoiseCaveGenerator now produces all (noise + interpolateValue) values at once instead of recalculating them 7 times on average.

The TerrainGenerator no longer uses integer division.

The chunk meshing doesn't calculate the giant switch case in the middle of `cenBeSeenThroughOtherBlock()` if the block as the simple cube model.

And some smaller things.
2023-05-10 21:25:24 +02:00
IntegratedQuantum
83f4503390 Update zig to 0.11.0-dev.3041+8e9c9f6fd
Featuring `@memset`, `@memcpy`, multi-argument `@min`/`@max` and annoyingly #15644
2023-05-10 13:55:20 +02:00
IntegratedQuantum
5341f7c48f Improve performance of the NoiseCaveGenerator by using a non-cached version of the 3d fractal noise. 2023-05-09 18:48:09 +02:00
IntegratedQuantum
67c0d1f183 A couple of small fixes and refactoring. 2023-05-08 21:19:02 +02:00
IntegratedQuantum
c3a842b326 Interpolation in a bcc lattice using 3d barycentric coordinates.
Among that I also improved the cave biome map to actually use a bcc lattice as the underlying biome grid (before that a biome was spread over multiple points in the lattice, now it's just one.

And I also improved performance of the 2d fractal noise algorithms by using `@memcpy`.
2023-05-03 21:06:41 +02:00
IntegratedQuantum
fc12bd5a63 Add terrain generation. 2023-05-01 18:35:45 +02:00
IntegratedQuantum
7c339707e6 Fix integer overflow error. 2023-04-15 17:55:54 +02:00
IntegratedQuantum
cc97c0d296 Add a ServerWorld which at the moment generates empty chunks. 2023-04-13 21:04:46 +02:00
IntegratedQuantum
38601dc42c Reduce raymarching pixel errors and add chunkmesh gpu memory usage to the debug menu. 2023-04-12 20:33:58 +02:00
IntegratedQuantum
0c3743fd02 Add some file utilities to simplify reading/writing (json-)files. 2023-04-09 21:44:15 +02:00
IntegratedQuantum
b98f565f2e Start working on the server:
It can now do a handshake (sort of).
I also added a CommandQueue for the gui system to prevent issues from closing windows while they are being updated.
2023-04-09 11:28:21 +02:00
IntegratedQuantum
f1681d1687 Improve network.Protocols and remove unnecessary warning from Recipe loading. 2023-04-08 16:12:53 +02:00
IntegratedQuantum
b0ea868fa4 Remove the window title and fix ItemSlot pressed behavior. 2023-04-08 14:58:25 +02:00
IntegratedQuantum
32a4e2cb10 Send inventory changes to the server. 2023-04-08 12:59:26 +02:00
IntegratedQuantum
84d55cc95c Finish some remaining TODOs in the gui system. 2023-04-07 22:52:24 +02:00
IntegratedQuantum
34a3ac4986 Fix bugged line between windows caused by floating point inaccuracies. 2023-04-07 22:22:55 +02:00
IntegratedQuantum
a9dff66be3 Fix small bug in the healthbar. 2023-04-07 16:56:50 +02:00
IntegratedQuantum
e09bc9eb4e Add the save_selection gui. 2023-04-04 22:38:41 +02:00
IntegratedQuantum
3212e00b42 Add a userData argument to all gui callbacks and some more refactoring. 2023-04-04 21:50:57 +02:00
IntegratedQuantum
914be9cf63 Add debug overlay and performance graph. 2023-04-04 19:22:02 +02:00
IntegratedQuantum
9dee31ccbe Render text "shadows", once again till++ forced me to do it. 2023-04-04 16:17:39 +02:00
IntegratedQuantum
60f0c5d3af Add support for menu background scenes (but no default scene yet). 2023-04-04 11:30:02 +02:00
IntegratedQuantum
3b5b9fec8a Add till++'s beloved thin white line back to the item slots. 2023-04-03 20:25:24 +02:00
IntegratedQuantum
e0321c6cbf Various ui improvements proposed by @till++ 2023-04-03 19:01:49 +02:00
IntegratedQuantum
e17699f9f8 Add the workbench gui. 2023-04-02 21:29:19 +02:00
IntegratedQuantum
1e7e8a7a1a Avoid creating a GeneralPurposeAllocator for every tiny thing.
Using a global gpa allocator seems like the best solution until there is a performance problem, and in that case a custom allocator is better anyways.
2023-04-02 12:15:28 +02:00
IntegratedQuantum
71159060a3 Use an icon for the crafting button. 2023-04-01 12:32:40 +02:00
IntegratedQuantum
da8f6ac9cb Add inventory crafting. 2023-03-31 20:37:39 +02:00
IntegratedQuantum
9fdfa04734 Refactor: Limit window components to one. Also use better formatting for tooltips. 2023-03-29 22:11:08 +02:00
IntegratedQuantum
58d1428392 Tooltips. 2023-03-29 11:41:13 +02:00
IntegratedQuantum
2a332e9c04 . 2023-03-28 16:34:03 +02:00
IntegratedQuantum
1400141e94 Render item images for blocks. 2023-03-28 16:33:01 +02:00
IntegratedQuantum
2f5ff8f081 Throw items out of the inventory when clicking outside of an inventory slot. 2023-03-27 22:17:55 +02:00
IntegratedQuantum
f927487a0f Add inventory and creative inventory. 2023-03-27 17:51:00 +02:00
IntegratedQuantum
bbcc9caff0 Allow interacting with item slots. 2023-03-27 12:37:47 +02:00
IntegratedQuantum
a0c2d62110 Load the inventory when the player joins. 2023-03-23 17:43:11 +01:00
IntegratedQuantum
758fe2c8ab Use @hasDecl and automatically assign the window function pointers. 2023-03-23 17:13:40 +01:00
IntegratedQuantum
c2b0428539 Fix floating point precision issues in rendering. 2023-03-23 13:20:19 +01:00
IntegratedQuantum
642624c94d Add the ItemSlot component. 2023-03-23 13:08:29 +01:00
IntegratedQuantum
f158da89d4 Seperate the gui and game update logic, so you won't move while typing into a text field. 2023-03-22 14:29:55 +01:00
IntegratedQuantum
77610c0064 Add the chat gui and set the default text color to white. 2023-03-22 13:59:46 +01:00
IntegratedQuantum
d5389aefb7 Refactor: Add a seperate function for binding a texture to a specific texture unit. 2023-03-21 12:50:58 +01:00
IntegratedQuantum
219c3214e9 Add a ScrollBar to the VerticalList. 2023-03-21 11:45:29 +01:00
IntegratedQuantum
ef0f9ebf67 Allow ungrabbing the mouse by pressing escape and add a way to show the title bar of transparent windows. 2023-03-20 18:37:26 +01:00
IntegratedQuantum
9c20b463e3 Add a simple healthbar. 2023-03-19 23:25:31 +01:00
IntegratedQuantum
f04d441c3c Improve Bloom performance by combining downsampling and color extracting steps. 2023-03-19 19:20:42 +01:00
IntegratedQuantum
ba8856bd35 Add the crosshair. 2023-03-18 22:54:05 +01:00
IntegratedQuantum
0467e43163 Update the position of closed windows as well to prevent weird behavior. 2023-03-17 16:26:49 +01:00
IntegratedQuantum
9e7f3defe2 Add HorizontalList, add alignment to list components and fix a bug. 2023-03-17 16:18:43 +01:00
IntegratedQuantum
5c74694611 Refactor how components are handled.
- A `GuiComponent` now is union of pointers.
- `pos` and `size` are now stored in each component rather than being passed down through functions.
2023-03-17 13:47:07 +01:00