Commit Graph
1762 Commits
Author SHA1 Message Date
Anaël 7f5847c93e build: start playing with PGO
Nightly Release / build (push) Waiting to run
Nightly Release / release (push) Blocked by required conditions
Nightly Release / cleanup (push) Blocked by required conditions
Sync branches with main / sync (push) Waiting to run
2026-10-05 00:01:54 +02:00
Anaël 95111a621a performance: Apply culling to tile entities and throttle PathNavigation::updatePath to run every 8 ticks
Sync branches with main / sync (push) Waiting to run
Nightly Release / build (push) Canceled after 0s
Nightly Release / release (push) Canceled after 0s
Nightly Release / cleanup (push) Canceled after 0s
Cull tile entities and throttle mob pathfinding to every 8 ticks.
The players won't see the difference on the pathfinding and the culling improves the performance by a lot in zones with a lot of tile entities

in TileEntityRenderDispatcher.cpp:
Calculate if the tile entities are visible in the camera. Early return if they are so they don't get rendered while the players don't look at those tile entities so .
in PathNavigation.cpp:
Do a simple modulo operation on the current number of ticks to test if its been 8 ticks since last operation. UpdatePath(); doesn't get executed if elapsed time isn't enough
2026-10-04 21:02:32 +02:00
Anaël 1b691739e6 QOL: Add some java commands
Added many commands from Minecraft Java edition:

    setblock
    fill
    seed
    xp
    gamemode spectator
    summon
    effect
    difficulty
    spawnpoint
    setworldspawn
    kick
    enchant

All of the logic is contained inside of PlayerConnection.cpp along with the previous command handler, i also changed MobEffect.h to add a new helper for potion names -> ids.
And for spectator, a bunch of small changes inside server/client related file, along with the removal of the weird /spectator command which was added previously. I think it can still be refined because im not sure the invisibility thing is working.
2026-10-04 21:01:15 +02:00
Anaël 29ea94206c MainMenu: Add build tag to neoLegacy name on main menu 2026-10-04 20:59:17 +02:00
Anaël 919d582a18 fix: block shadows in inventory on Clang-cl builds (Linux)
Replaced the aggressive inline expansion used by clang-cl (/Ob2) with a less aggressive setting (/Ob1)

I couldn't figure out where that happened after looking for it for quite long. /Ob2 doesn't seem really useful in such a big project (and it could even be a downgrade compared to /Ob1 on low L1 cache CPUs). So i explicitly set it to /Ob1.
2026-10-04 20:55:20 +02:00
Anaël d8d65bcd49 game loop: Refactor the tooltips loop
Moved the whole logic to a new file (TooltipManager.cpp), and rewrote most of the logic to profit from object oriented programming. The side-effect is that the changes are scattered across entities, tiles and items because moving everything to OOP requires to add the tooltip to every .cpp file for every tile/item/entities (or their class, on plants for example which all use the tooltip IDS_TOOLTIPS_PLANT)

The issue with the default tooltips loop written by 4J is that:

    Its running in the main Minecraft::tick loop and is more than a thousand lines long, polluting the function.
    Not using C++'s full potential with object oriented programming, 4J decided to use a big switch case (probably because it could run better on hardware without branch prediction like the WiiU or Xbox 360 ?)
    And seems to be better off in its own file than in the main Minecraft.cpp file
2026-10-04 20:54:24 +02:00
Anaël ffa6694864 Revert "Tooltips: fix parity bug with elytra tooltip (#4183)"
This reverts commit a2a511ef19.
2026-10-04 20:51:27 +02:00
Anaël 299d1c8dfd Reapply "Renderer: Rewrite the frustum culling algorithm"
This reverts commit be8fcc9e64.
2026-10-04 20:50:00 +02:00
Joud Kandeel 8fd51a82e9 forcing the game to use the highest GPU perfrence 2026-10-04 20:48:38 +02:00
aRockefeller 594e6659b7 sdl3.dll
ehh sdl3.dll
2026-10-04 20:48:32 +02:00
anael.rstandAnaël 646536750f fix: Set correct visual position for gamemode slider on load (#4186)
# What changed ?
Fix a bug where the visual position of the gamemode slider when loading an already existing world would always be '0' even if the gamemode string is correct and the in-game behaviour is correct too

# What was added ?
Someone most likely forgot a "SetSliderValue()" inside of the gamemode switch cases in UIScene_LoadMenu::tick()
Adding it fixes the bug.

---------

Co-authored-by: Anaël <60509176+Bakoubak@users.noreply.github.com>
Reviewed-on: https://git.neolegacy.dev/neoStudiosLCE/neoLegacy/pulls/4186
Co-authored-by: anael.rst <144+vistaslayer@noreply.neolegacy.dev>
Co-committed-by: anael.rst <144+vistaslayer@noreply.neolegacy.dev>
2026-10-04 20:48:25 +02:00
anael.rstandAnaël 706aa550d2 fix: prevent player from moving when sleeping (#4185)
# What changed ?
Added a simple check in Player::travel to prevent a player from moving when asleep

# Why ?
Pressing the sneak key while the player is asleep would cause the camera to leave the player's body and see the head moving while the body stayed still in the bed

---------

Co-authored-by: Anaël <60509176+Bakoubak@users.noreply.github.com>
Reviewed-on: https://git.neolegacy.dev/neoStudiosLCE/neoLegacy/pulls/4185
Co-authored-by: anael.rst <144+vistaslayer@noreply.neolegacy.dev>
Co-committed-by: anael.rst <144+vistaslayer@noreply.neolegacy.dev>
2026-10-04 20:48:17 +02:00
anael.rstandAnaël a2a511ef19 Tooltips: fix parity bug with elytra tooltip (#4183)
Fix a very small parity bug i encountered with the elytras.

# What changed ?
Add the 'Equip' tooltip on the elytras which seems to have been forgotten about

# What was added ?
Add the elytra_id to the big switch case in Minecraft.Client/Minecraft.cpp along with the armor pieces, refer to this issue: #4182 for future updates as a big refactoring is needed in this place.

---------

Co-authored-by: Anaël <60509176+Bakoubak@users.noreply.github.com>
Reviewed-on: https://git.neolegacy.dev/neoStudiosLCE/neoLegacy/pulls/4183
Co-authored-by: anael.rst <144+vistaslayer@noreply.neolegacy.dev>
Co-committed-by: anael.rst <144+vistaslayer@noreply.neolegacy.dev>
2026-10-04 20:48:12 +02:00
Anaël be8fcc9e64 Revert "Renderer: Rewrite the frustum culling algorithm"
This reverts commit 6d25bae67f.
2026-10-04 20:47:07 +02:00
Anaël 6d25bae67f Renderer: Rewrite the frustum culling algorithm
Nightly Release / build (push) Canceled after 0s
Sync branches with main / sync (push) Canceled after 0s
Nightly Release / release (push) Canceled after 0s
Nightly Release / cleanup (push) Canceled after 0s
2026-08-22 02:56:08 +02:00
ACL c85b2a8740 fix: Armor swapping executed even when interacting with a block (#168)
Nightly Release / build (push) Canceled after 0s
Nightly Release / release (push) Canceled after 0s
Nightly Release / cleanup (push) Canceled after 0s
Sync branches with main / sync (push) Canceled after 0s
(This PR fixes [this issue](https://discord.com/channels/1482443865754701868/1534141325904183336) from the Discord server: )

Previously, when holding a piece of armor and right-clicking an interactable block (furnance, crafting table, levers, etc.) the armor would be equipped to the player.
This isn't the expected behavior. The interacted block should suppress any held item functionality (if not crouched)

This PR adds the "bool blockHandled" variable to the "handleUseItem" function. If the player interact with an interactable block, the variable is set to true.
This variable can be used for future packets added in this function

Reviewed-on: https://git.neolegacy.dev/neoStudiosLCE/neoLegacy/pulls/168
Co-authored-by: ACL <puffymono@gmail.com>
Co-committed-by: ACL <puffymono@gmail.com>
2026-08-08 16:58:45 +01:00
ACL a809e71d58 fix: Thrown eggs use snowball particles when hitting a block (#167)
Thrown eggs used snowball particles when hitting a block, there wasn't any code for the correct particles either.
I added the new egg particles and assigned them to the thrown egg entity.

Before:
![2026-08-07_20.09.22.png](/attachments/2d55ef32-3750-4825-b884-9a39a50e9bd8)

Now:
![2026-08-07_20.18.59.png](/attachments/d2b5571e-c121-44e2-a412-12d2a460f8d7)

Reviewed-on: https://git.neolegacy.dev/neoStudiosLCE/neoLegacy/pulls/167
Co-authored-by: ACL <puffymono@gmail.com>
Co-committed-by: ACL <puffymono@gmail.com>
2026-08-08 16:56:00 +01:00
700 6d226273b5 neoLegacy fork warning, name usage situations 2026-08-04 21:59:54 +01:00
Fireblade 024e0ba28a feat: tu43 parity changes + fixes (#165)
Reviewed-on: https://git.neolegacy.dev/neoStudiosLCE/neoLegacy/pulls/165
2026-08-03 01:08:51 +01:00
Fireblade 3ff2f52105 chore: bump version 2026-08-02 19:59:27 -04:00
Fireblade 518dd28029 fix: panorama path bug 2026-08-02 19:21:53 -04:00
Fireblade 69009916ef fix: dlc world music fading out to main menu 2026-08-02 19:08:14 -04:00
Fireblade 8d3e02bc1f feat: randomization-free landing particles 2026-08-02 18:11:23 -04:00
Fireblade f8a4de8afd fix: main menu music transition, tutorial keyboard images 2026-08-02 16:25:11 -04:00
Fireblade 432024f6ca fix: disable changing control presets when on keyboard and mouse 2026-08-02 15:34:42 -04:00
Fireblade a1eea81519 feat: creeper ignite tooltip 2026-08-02 15:11:42 -04:00
Fireblade 2c42b0cea3 chore: make slime block more accurate to decomp 2026-08-02 15:06:34 -04:00
Fireblade 30d7291310 chore: update keyboard tooltips 2026-07-25 01:40:21 -04:00
Fireblade c0265373a6 fix: hanging entities in dlc worlds 2026-07-24 18:59:43 -04:00
Fireblade 09c305e970 fix: magma block damage still taking effect when the player has frost walker 2026-07-24 17:44:59 -04:00
Fireblade 306d1c9fb7 feat: new chunk load toggle
also fixes item frames / paintings in dlc worlds
2026-07-24 15:14:27 -04:00
Fireblade 261700ea8b feat: passive chunk loading 2026-07-24 03:25:30 -04:00
Fireblade 5a8b93829b feat: modern autosave 2026-07-23 22:22:43 -04:00
Fireblade a045d994fb feat: tu43 entity sounds, spawner fixes, and a 16x16 region toolset 2026-07-23 19:47:55 -04:00
700 e4679718e6 (dont mind this commit just rephrasing) 2026-07-23 17:26:19 +01:00
700 89fd83401f Replaced outdated URL 2026-07-23 17:23:44 +01:00
Fireblade 1488469cb2 fix: translucent item rendering 2026-07-22 15:07:43 -04:00
Fireblade d41d82faa6 chore: finalize keyboard and mouse controls 2026-07-22 03:05:54 -04:00
Joud Kandeel b59e075247 fixed performance issue on debug builds by commenting out a commited code from the Smartcmd, I would assume that method worked fine on old update of LCE as it had a small amount of mobs in the game to save for every single tick, but as we introduce more mobs to neoLegacy that method becomes a bottle neck, and we dont really need it either in the game! 2026-07-21 13:26:06 +02:00
Fireblade 7baff55287 fix: key swap 2026-07-20 17:31:41 -04:00
Fireblade ca6e3585d0 chore: fix up keyboard tooltips 2026-07-20 17:23:25 -04:00
Fireblade cd64f5f52b feat: keyboard and mouse controls
fixes:
- unsafe string conversion
- fence gates not connecting to walls properly
2026-07-20 02:24:35 -04:00
DrPerkyLegitandDrPerkyLegit 18136070c1 Feat/gui enhancements (#54)
fix slider sounds
fix button sounds in settings page

---------

Co-authored-by: DrPerkyLegit <116128211+DrPerkyLegit@users.noreply.github.com>
Reviewed-on: https://git.neolegacy.dev/neoStudiosLCE/neoLegacy/pulls/54
Co-authored-by: DrPerkyLegit <6+drperkylegit@noreply.neolegacy.dev>
Co-committed-by: DrPerkyLegit <6+drperkylegit@noreply.neolegacy.dev>
2026-07-19 15:42:27 +01:00
ACLandTheHuckle a248586ad9 fix: Using the keyboard numbers to swap items didn't work properly (#8)
This PR adds some lines missing from the code inside where the game handles the hotbar inputs (1 to 9 keys). I copied the code that handles the scrollwheel hotbar input updates so it should work exactly the same.

This fixes some issues or bugs, such as the item name not appearing or the tutorial failing to track the current item.

---------

Co-authored-by: TheHuckle <1+thehuckle@noreply.neolegacy.dev>
Reviewed-on: https://git.neolegacy.dev/neoStudiosLCE/neoLegacy/pulls/8
Co-authored-by: ACL <puffymono@gmail.com>
Co-committed-by: ACL <puffymono@gmail.com>
2026-07-19 15:40:47 +01:00
Fireblade 1f4c62b011 fix: 1.1.0b bugs (#53)
Reviewed-on: https://git.neolegacy.dev/neoStudiosLCE/neoLegacy/pulls/53
2026-07-19 04:06:46 +01:00
Fireblade 10ab8b114d fix: shapeless recipies not accounting for duplicate crafting items 2026-07-18 23:02:35 -04:00
Fireblade 7e06e44f80 fix: chest breaking animation 2026-07-18 22:09:33 -04:00
Fireblade 525b89484c fix: enchantment table + frost walker (kinda)
fixes:
- treasure enchants being selectable within the enchantment table menu
- frost walker resemblance to decompiled legacy console edition
- enchantment table featuring hot-swappable abilities where the player could replace one tool with another whilst keeping the exact same potential enchantments in the enchant menu
2026-07-18 22:03:54 -04:00
Fireblade f5afc92cdd chore: port rest of magma block stuff 2026-07-18 20:52:23 -04:00
Fireblade d3067a7d0a chore: update block localizations 2026-07-18 19:12:07 -04:00