1182 Commits

Author SHA1 Message Date
IntegratedQuantum
c2b03ff437
Add an abstraction for the Graphics pipeline (#1405)
* Add the vulkan headers from the new Cubyz-libs version

* Add a GraphicsPipeline abstraction that's based on Vulkan's pipeline parameters.

This will help get rid of all the glEnable implicit state, and it will make #102 easier.

* I'm leaving out the viewport for now, it seems that it would make migration difficult

* Small fixes and rename graphics.GraphicsPipeline to just graphics.Pipeline

* Pipelinify the UI shaders

* Fix formatting

* Pipelines everywhere

* Fix the crosshair and remove remaining glEnable and related calls

* fix format

* How many more things does it need to clear the thing correctly?

* Fix selection

* Fix bloom
2025-05-08 19:37:26 +02:00
ikabod-kee
2991febe3f
Oak and Birch Tree Generators (#1382)
* Added Blueprints and SBBs for oak and birch trees

* Whoops! Added .zig to .zon

* Format Change (agh)

* Fixes to generators

* Changed nulls and put trees in Tree folder

* Removed Treefixes

* Update leaf_1.zig.zon

* Omitted chances

* 5 years

* Changed the two oak roots I had neglected
2025-05-07 18:37:45 +02:00
Carrie
93d5292338
Make iron darker, tweak copper, tweak gold block (#1411) 2025-05-07 18:20:11 +02:00
IntegratedQuantum
5a1a824e05
Add SPIR-V compilation to ensure our shaders remain SPIR-V compatible (#1404)
* Remove unused `directionalLight` uniform

* Add glslang libraries

* Update to the new Cubyz-libs version

* Dehardcode OS-dependent library file name stuff

* Audio somehow crashes on close, not sure why but I assume it's probably because of the library being compiled with a new zig version.

* Remove irrelevant uniforms from Window uniform list

* Remove unused itemdrop uniform

* Implement SPIR-V compilation code, the actual output is discarded

* Improve linking shader errors by passing a file path

* Fix formatting
2025-05-05 20:20:11 +02:00
Carrie
2cf88669e7
Removed unused block textures (#1402) 2025-05-05 17:21:10 +02:00
Krzysztof Wiśniewski
67135b433d
Add chat history accessible with up/down arrows (#1244)
* Add up down message history

* Deduplicate messages when inserting into history

* Add dedicated function for inserting strings into TextInput

* Fix formatting issues

* Change history behavior

* Rename inputString to setString

* Move clearing to setString

* Apply suggestions from code review

Co-authored-by: IntegratedQuantum <43880493+IntegratedQuantum@users.noreply.github.com>

* Remove unused cursor capture

* Use FixedSizeCircularBuffer for history

* Restore large queue size

* Allow navigation to empty entry

* self.len must never be bigger than capacity

* Move optional callbacks into struct

* Use enum for moveCursorVertically return value

* WA attempt #1

* Fix edge case from review

* Update src/gui/windows/chat.zig

Co-authored-by: IntegratedQuantum <43880493+IntegratedQuantum@users.noreply.github.com>

* Remove isEmpty and isFull

* Allow for empty history entry

* Change empty message handling some more

* Remove unused methods

* Go to hell with all of those edge cases <3

* WA for 4b

* Remove CircularBufferQueue methods

* Fix queue thing

---------

Co-authored-by: IntegratedQuantum <43880493+IntegratedQuantum@users.noreply.github.com>
2025-05-04 12:57:25 +02:00
Carrie
7fed896a77
Permafrost, cold grass, and osier (+ biome changes) (#1369)
* Permafrost, cold grass, osier, cold taiga, tweaks

* Tweak osier and cold grass item

* formatting

* Move cold_taiga to taiga/cold and migrate taiga/base

* Fix subbiomes
2025-05-04 12:39:44 +02:00
Carrie
900b52a02c
Resin assets (#1383)
* Resin assets

* resin_block = .wood

* Make resin block more frictiony
2025-05-04 12:34:17 +02:00
Krzysztof Wiśniewski
e1fc8deef8
[Structure Building Block] Allow specifying empty / sentinel children (#1388)
* Allow sentinel child declarations

* Fix len check
2025-05-03 14:23:57 +02:00
IntegratedQuantum
1a1a503033 gl_DepthRange is not supported by SPIR-V
progress towards #1376
2025-05-02 17:04:21 +02:00
IntegratedQuantum
73d50720b4 Assign locations to all uniform declarations
progress towards #1376
2025-05-02 16:47:29 +02:00
Krzysztof Wiśniewski
61268fb374
Add Structure Building Blocks based Generator (#1227)
* Revert "Remove SBBGen"

This reverts commit b49048412f21c57d5638144da7f039753a94cafc.

* Revert "Remove example SBB"

This reverts commit afc5d6fed0ba92b558ccda91893fdb3fc63f69ec.

* Revert "Remove blueprint code"

This reverts commit 2553950adbdcef9c1c68afe4109f9247b74abb92.

* Fix compilation errors

* Fix compilation errors #2

* Fix test errors

* Fix rotateZ

* Resolve structure reference while instantiating SBBGen

* Fix formatting issues

* Add new trees to forest

* Add new trees to grassland

* Decrease forest density so you can find new trees

* Add degradable paste mode

* Remove substitutions

* Apply review suggestions

* Use lookup table for alignment

* Apply suggestions from code review

* Update src/server/terrain/simple_structures/_list.zig

Co-authored-by: IntegratedQuantum <43880493+IntegratedQuantum@users.noreply.github.com>

* Fix inital SBB offset

* Never place air in placeInGeneration

* Integrate void block with paste

* Revert "Move hashInt and hashCombine to utils"

This reverts commit 9bb276f69f60ad60f1170d07ec30ebd02307a36a.

* Make PasteMode comptime

* Fix remaining issues with void block integration

* Fix formatting

* Apply review change requests

* Remove origin and child blocks while resolving sbbs

* Apply review change requests

* I hate indexing

* Fix example tree models

* Use single index for chunk and blueprint in pasteInGeneration

* Fix formatting

* Extract blueprintOffset

* Fix formatting

* Apply suggestions from code review

Co-authored-by: IntegratedQuantum <43880493+IntegratedQuantum@users.noreply.github.com>

* Apply Quantums suggestion for Y and Z

* No cast

* Use pos instead of chunkOffset

* Remove test tree

* Apply suggestions from code review

---------

Co-authored-by: IntegratedQuantum <43880493+IntegratedQuantum@users.noreply.github.com>
2025-05-02 16:11:10 +02:00
IntegratedQuantum
3ba4d5fd14 Explicitly specify image bindings for all sampler uniforms.
progress towards #1376
2025-05-02 15:49:01 +02:00
IntegratedQuantum
9898db654b Specify the location of all shader in/out parameters.
also normalized the version and layout formatting
progress towards #1376
2025-05-02 14:53:57 +02:00
Krzysztof Wiśniewski
86e0a9ae4b
Move /set to be method on Blueprint (#1352)
* Move Pattern into Blueprint

* Improve error message on capture failure

* Change memory management
2025-05-02 10:21:25 +02:00
Krzysztof Wiśniewski
64ce0ed991
Batch block updates (#1313)
* Batch block updates

* Apply review change requests

* Allow blockUpdate to carry multiple block updates in single message

* Read until there is nothing left

* Use mesh_storage.BlockUpdate

* Break instead of boolean

* Restore client side neighbor updates

* Move side check in blockUpdate out of the loop

* Update src/utils.zig

* Fix minor issues

* Reverse ownership logic + change contains into liesInChunk

* Update liesInChunk

* No name for upadeBlock param

* Apply review change requests

* Fix formatting

* Restore onBreakClient where it should be

* Update src/renderer/chunk_meshing.zig

* Update src/renderer/chunk_meshing.zig

* Converge formatting with master

* fix formatting (https://github.com/ziglang/zig-spec/issues/38 is so stupid)

---------

Co-authored-by: IntegratedQuantum <jahe788@gmail.com>
2025-05-01 10:10:03 +02:00
IntegratedQuantum
e2a65d21d1 Check the world in openCommand before opening it.
fixes #1372
2025-04-30 16:40:19 +02:00
IntegratedQuantum
af52b392f6 fix formatting (https://github.com/ziglang/zig-spec/issues/38 is so stupid) 2025-04-30 15:12:44 +02:00
IntegratedQuantum
3780814400 hotfix for #1366
fixes #1366
2025-04-29 18:14:00 +02:00
Krzysztof Wiśniewski
d49f61e7b5
Add zig test runner (#1361)
* Add test runner

* Add runner to build
2025-04-29 17:49:59 +02:00
OneAvargeCoder193
cd0cabbbb8
Add Block Inventories (#1198)
* Add chest block placeholder

* Update location of chest.zig.zon

* added chests

* fix some stuff

* dont create all inventories on the client

* make it better

* remove comment

* fix formatting

* fix more formatting issues

* use chests instead of iron block

* fix formatting

* make blocks with inventories that are broken drop the items

* fix compiler error

* fix formatting

* fix formatting

* Trigger GitHub Actions

* add inventory saving to bin

* fix formatting

* fix formatting again

* fix formatting again again

* small change

* current changes

* thing

* Chest patch w/o quantums suggestions

* small test pls no merge

* it works with a couple segfaults that may or may not be in the base game

* final thing i think

* block inventories

* haha

* another thing

* fix formatting

* fix formatting again

* remove saving for now

* remove a comment

* remove more comments

* dont store inventory on the client

* something

* hardcode stuff for the future

* remove getwindow

* fix formatting

* fixes

---------

Co-authored-by: Krzysztof Wiśniewski <argmaster.world@gmail.com>
2025-04-28 17:17:39 +02:00
IntegratedQuantum
c7522483b0 Replace (most) bufPrints with allocPrints, which cannot break for large input sizes 2025-04-27 22:12:34 +02:00
OneAvargeCoder193
9181b31a6d
Add stars and a simple skybox (#1043)
* really bad and inefficient star code i think

* add stars that dont work during the day but look cool

* remove galaxy shape and replace it with a simple sphere

* add broken background

* make stars affected by fog

* make the stars additive

* remove commented code in shaders

* remove unused variables in the shader

* make the stars spin

* make stars not have bloom

* fix formatting

* temp changes

* fix formatting (still temp changes)

* switch to cubyz random numbers

* multiply star matrix in cpu instead of gpu

* changed star to be twice as big, not affect by resolution as much, and also be loaded from a texture

* remove trailing whitespaces

* remove unused constants

* simplify the code by removing a log and power

* optimizing the stars

* remove debug code

* make stars triangles instead of points

* simplify the math more

* give star ssbo unique id

* fix formatting issues

* make array multiline

* fix formatting

* remove files i accidentally added

* remove random obj file

* fix some issues

* use square distance

* fix formatting

* small change

* fix some stuff

* fix other things

* comp error

* more stuff

* fix some stuff with the stars

* test

* fix formatting

* fix more formatting

* test 2

* fixes

* changes

* changes

* fix formatting

* fixes

* remove patch
2025-04-27 20:29:19 +02:00
Carrie
a2911710a6
Add ladder assets (#1310) 2025-04-27 17:31:48 +02:00
Krzysztof Wiśniewski
668f9d0a9a
Directional drops (#1251)
* Add some crazy complicated logic to unstuck items

* Add bouncinessFactor

* Fix formatting issues

* Use rayIntersection to determine direction of drop

* Simplify blockDrop() code

* Apply review change requests

* Send bounding box for block drops

* Rename BlockDrop to BlockDropLocation

* Apply review change requests

* Apply review change requests

* Update src/Inventory.zig

* Apply review change requests

* Remove code reversing direction for carpet

* Update src/Inventory.zig

Co-authored-by: IntegratedQuantum <43880493+IntegratedQuantum@users.noreply.github.com>

* Update src/Inventory.zig

Co-authored-by: IntegratedQuantum <43880493+IntegratedQuantum@users.noreply.github.com>

* Remove factors variable

* Strip types from randomOffset

---------

Co-authored-by: IntegratedQuantum <43880493+IntegratedQuantum@users.noreply.github.com>
2025-04-27 17:29:02 +02:00
OneAvargeCoder193
735e99826e
Make the crosshair transparent (#1347)
* make crosshair transparent

* fix styling

* fixes
2025-04-27 15:14:07 +02:00
IntegratedQuantum
b70eb60afd Remove items that don't have a material from the tool grid.
fixes #1353
2025-04-27 12:30:04 +02:00
Carrie
db767b9c30
Update tool template textures (#1355) 2025-04-27 11:00:33 +02:00
Carrie
f8c26e751b
New selection wand texture (#1354) 2025-04-27 10:58:56 +02:00
Carrie
1c22c879f4
Ruby ore + diamond texture tweaks (#1349)
* Ruby blocks and item, tweaks to diamond textures

* Tweak ruby ore and add recipes

* Change ore height

* minHeight
2025-04-27 10:58:27 +02:00
OneAvargeCoder193
b554552b4d
Show tool durability in icon (#1350)
* durability kinda

* changes

* fix formatting

* fix formatting

* dont show durability when full

* fix formatting
2025-04-27 10:56:59 +02:00
IntegratedQuantum
29f06de52f Implement some basic lossy compression for entity and item network data
progress towards #1327
2025-04-26 15:59:59 +02:00
IntegratedQuantum
6fc7e604e7 Add a delay before after sending the disconnect signal on windows localhost.
fixes #1322
2025-04-26 15:12:24 +02:00
IntegratedQuantum
de3b862f1e Handle realpathAlloc failure in files.zig 2025-04-26 14:49:45 +02:00
Krzysztof Wiśniewski
62d4bf6700
Use isServerSide instead of conn.user != null (#1346) 2025-04-26 09:40:06 +02:00
IntegratedQuantum
05ab8a4a5b Make mushrooms degradable 2025-04-26 09:38:57 +02:00
Krzysztof Wiśniewski
c06e2c4673
Fix texture_pile (#1340)
* Fix texture pile

* Update src/rotation/texture_pile.zig

Co-authored-by: IntegratedQuantum <43880493+IntegratedQuantum@users.noreply.github.com>

* Apply review change requests

* Apply review change requests

* Update src/rotation/texture_pile.zig

Co-authored-by: IntegratedQuantum <43880493+IntegratedQuantum@users.noreply.github.com>

* Apply review change requests

---------

Co-authored-by: IntegratedQuantum <43880493+IntegratedQuantum@users.noreply.github.com>
2025-04-25 20:50:48 +02:00
Krzysztof Wiśniewski
fde5a69cdc
Add selection wand (#1298)
* Add selection wand

* Update zon file extension

* Apply review change requests

* Simplify receive logic for worldEditPos

* Convert isServerSide to method
2025-04-25 20:49:37 +02:00
IntegratedQuantum
f41504f684
Tool reparammarametetrizatation (#1332)
* Change how to specify tool parameters

* Some mild reparammarametetrizatation and pickaxes now only have one relevant tip.

* Ignore properties that couldn't be found instead of assigning some default

* Remove grip and strength from materials

* Ensure that all woods can break all stones, but not copper, and ensure that all stones tipped woods can break copper.

Also increased weight damage slightly

* Reparammamaramamararara

* Update shover and axe (mostly copied from the pickaxe with less damage)

* Remove the unused FunctionType struct.

* Remove named slots from axe
2025-04-24 21:57:12 +02:00
Carrie
f0bfe30c0e
Allow ores on obsidian (#1305) 2025-04-23 22:43:58 +02:00
Krzysztof Wiśniewski
af65b7c7fb
Integrate void block with commands (#1333)
* Integrate void block with paste

* Update src/blueprint.zig

Co-authored-by: IntegratedQuantum <43880493+IntegratedQuantum@users.noreply.github.com>

* Add -v flag description to /paste command description

* Swap conditions in paste

---------

Co-authored-by: IntegratedQuantum <43880493+IntegratedQuantum@users.noreply.github.com>
2025-04-23 22:18:45 +02:00
Krzysztof Wiśniewski
386ff63903
Unify 'Registered x' log message format (#1335)
* Unify 'Registered x' log message format

* Apply review change requests
2025-04-23 15:36:22 +02:00
Krzysztof Wiśniewski
05d39a81b8
Use readVec and writeVec where applicable (#1336)
* Use readVec and writeVec where applicable

* Use writeVec in chunkRequest.sendRequest
2025-04-22 23:02:22 +02:00
Krzysztof Wiśniewski
f193eb68bd
Migrate jungle(TODO) to jungle (#1334) 2025-04-22 22:44:49 +02:00
Krzysztof Wiśniewski
a4584d5e96
Add void block (#1324)
* Add void block

* Apply review change requests
2025-04-22 19:18:45 +02:00
IntegratedQuantum
eaa46fc065 Remove extra empty line 2025-04-20 18:32:28 +02:00
IntegratedQuantum
10ad990617 fix formatting 2025-04-20 18:24:41 +02:00
IntegratedQuantum
b0e067a458 I forgot to add the file 2025-04-20 18:12:20 +02:00
IntegratedQuantum
176c9d4c75 Introduce item tags and generalize the tag system
All tags now share the same index space, I don't see a reason why we should have separate spaces for these.

I also made diamond powerful if encased in gold/silver
2025-04-20 17:43:24 +02:00
IntegratedQuantum
4286455915 Implement basic modifier restrictions with an example for diamond.
Still needs tooltips and item tags to be more useful
2025-04-20 13:57:05 +02:00