Commit graph

292 commits

Author SHA1 Message Date
piebot 135108a485 Add Packed Ice 2026-03-17 01:44:44 +03:00
Lord Cambion 32d7734d3e rabbit egg now has its own color 2026-03-16 22:24:47 +01:00
piebot 881462cd95 Merge branch 'main' of https://github.com/piebotc/LegacyEvolved 2026-03-16 22:40:16 +03:00
piebot 2539831608 Add wet sponges 2026-03-16 22:40:13 +03:00
Lord Cambion 230872ed36 Rabbit drops and mutton name changed 2026-03-16 19:30:33 +01:00
Lord Cambion 04f1e2fdd9 rabbit drops 2026-03-16 10:59:16 +01:00
Lord Cambion 7a77344d66 Update BuildVer.h 2026-03-16 10:18:39 +01:00
piebot 98ccca3eb0 Fix armor stands crashing the game 2026-03-16 07:18:18 +03:00
piebot b26d5e2a4f Merge branch 'main' of https://github.com/piebotc/LegacyEvolved 2026-03-16 02:04:53 +03:00
piebot 0bee09ecea Raw/Cooked Mutton
Also replaced item atlas with TU31's item atlas, and made item ids match java.
2026-03-15 22:46:02 +03:00
piebot 57be5ccb93 Add Logo and Panorama + Add Recipes 2026-03-15 20:24:53 +03:00
piebot 4be2e9da8f Fixed log rotation error 2026-03-15 04:02:50 +03:00
piebot 9c184fd7ba Remove Top-Left Watermark 2026-03-15 02:51:21 +03:00
piebot 91203050fa Implement red sand and red sandstone. 2026-03-14 23:21:19 +03:00
piebot bfb9568c1a Replace terrain.png with TU31's terrain.png 2026-03-14 20:00:34 +03:00
piebot 7bf199bc1c Fixed Terrain Maps 2026-03-14 09:08:22 +03:00
piebot a398941521 Implement spigotbase's following changes
jeb_'s fix, and maps placed in item frames now fill the whole block.
2026-03-14 06:02:05 +03:00
piebot 00d3ca7b9b Added Rose Types + jeb_ Easter egg 2026-03-14 00:51:31 +03:00
piebot 2c6060c26e
Merge branch 'smartcmd:main' into main 2026-03-13 23:00:26 +03:00
rtm516 4e4e4dff0a
Remove all old binka redist files (#1116)
* Remove all old binka redist files

* Delete x64/Debug/Effects.msscmp

* Delete x64/Release/Effects.msscmp
2026-03-13 19:43:37 +00:00
piebot 5dfcb348e3
Merge branch 'smartcmd:main' into main 2026-03-13 17:52:15 +03:00
ChristianF 348e44fe9e baby rabbits and craftings
incremented vertical slot for crafting table and implemented baby rabbit.
SpawnEgg named with Toast works too
2026-03-13 15:07:11 +01:00
Prakhar Sharma 379434097a
Fix witches' bottle color (#1205)
* fix: witches' bottle is now the right color

* fix: add condition if item has mutiple layers
2026-03-13 11:41:47 +00:00
MrTheShy ad74d44300
Fix joining servers in split screen, splitscreen fixes (#1031)
* Fix split-screen join failing when connecting to a remote host via UI

When a non-host client connected to a remote server through the in-game
UI (as opposed to the -ip/-port command line flags), the global variables
g_Win64MultiplayerIP and g_Win64MultiplayerPort were never updated from
their defaults ("127.0.0.1" and the default port). JoinSplitScreen()
relies on these globals to open a second TCP connection for the local
split-screen pad, so it would always attempt to connect to localhost,
failing immediately on any remote session.

Fix: update g_Win64MultiplayerIP and g_Win64MultiplayerPort inside
JoinGame() once the primary connection is established. This ensures
subsequent JoinSplitScreen() calls always reach the correct host
regardless of how the session was joined.

Additionally, guard PushFreeSmallId() against recycling smallIds in the
range [0, XUSER_MAX_COUNT), which are permanently reserved for the
host's local controller slots. Previously, if a host-side local pad
disconnected its smallId could re-enter the free pool and be handed
to an incoming remote client, causing that client's IQNetPlayer slot
to collide with a local pad slot on the non-host machine.

* Fix tutorial popup positioning in split-screen viewports

Replace the manual switch-case that computed viewport origin with the shared GetViewportRect/Fit16x9 helpers (from UISplitScreenHelpers.h). This ensures the tutorial popup is positioned and scaled consistently with the rest of the split-screen UI, fitting a 16:9 box inside each viewport and applying safezone offsets correctly.

Also adds missing default:break to safezone switch statements to silence compiler warnings.

Made-with: Cursor

* Prevent split-screen join when game window is not focused

Add g_KBMInput.IsWindowFocused() guard to the tryJoin condition so that gamepad input from background windows does not accidentally trigger a split-screen player join. This avoids phantom joins when the user is interacting with another application.

* Open debug overlay in fullscreen UI group during split-screen

Pass eUIGroup_Fullscreen to NavigateToScene when opening the debug overlay, so it spans the entire window instead of being confined to a single split-screen viewport. This makes the debug info readable regardless of the current split-screen layout.

* Fix non-host split-screen connections missing world updates

Previously, secondary (non-host) split-screen connections used isPrimaryConnection()
to gate nearly all world update packets, meaning the second local player would never
receive tile updates, entity movement, sounds, particles, explosions, etc.

The fix introduces per-connection tracking of which entities and chunks each
ClientConnection has loaded, and uses that information to decide whether a secondary
connection needs to process a given packet or if the primary connection already
handled it.

New members in ClientConnection:
- m_trackedEntityIds: set of entity IDs this connection has received AddEntity/AddMob/AddPlayer etc. for
- m_visibleChunks: set of chunk coordinates (packed into int64) this connection has marked visible
- Both sets are cleared on close(), respawn (dimension change), and destructor

New helpers:
- findPrimaryConnection(): walks the MultiPlayerLevel connection list to find the connection on the primary pad
- shouldProcessForEntity(id): secondary connection skips the packet only if the primary is already tracking that entity
- shouldProcessForPosition(x, z): secondary connection skips the packet only if the primary already has that chunk visible
- anyOtherConnectionHasChunk(x, z): used when a chunk becomes invisible to avoid hiding it from the level if another connection still needs it
- isTrackingEntity(id): public accessor used by shouldProcessForEntity on the primary connection

Packet handler changes:
- handleMoveEntity, handleMoveEntitySmall, handleSetEntityMotion, handleTakeItemEntity:
  replaced isPrimaryConnection() with shouldProcessForEntity() so secondary
  connections still process movement for entities they know about
- handleExplosion, handleLevelEvent:
  replaced isPrimaryConnection() with shouldProcessForPosition() so block
  destruction and level events fire for the correct connection based on chunks
- handleChunkTilesUpdate, handleBlockRegionUpdate, handleTileUpdate, handleSignUpdate,
  handleTileEntityData, handleTileEvent, handleTileDestruction, handleComplexItemData,
  handleSoundEvent, handleParticleEvent:
  removed the isPrimaryConnection() guard entirely -- these are world-state updates
  that all connections must process regardless of which pad is primary
- handleChunkVisibilityArea / handleChunkVisibility:
  now populate m_visibleChunks; on visibility=false, setChunkVisible(false) is
  only called on the level if no other connection still has that chunk loaded
- handleAddEntity, handleAddExperienceOrb, handleAddPainting, handleAddPlayer,
  handleAddMob: now insert into m_trackedEntityIds on arrival
- handleRemoveEntity: now erases from m_trackedEntityIds on removal
- handleLevelEvent: removed a duplicate levelEvent() call that was always firing
  regardless of the isPrimaryConnection() check above it (latent bug)

MultiPlayerLevel: added friend class ClientConnection to allow access to the
connections list without exposing it publicly.

* Fix fullscreen progress screen swallowing input before load completes

Two issues in UIScene_FullscreenProgress::handleInput:

1. The touchpad/button press that triggers movie skip or input forwarding
   had no guard on m_threadCompleted, so pressing a button during the loading
   phase would fire the skip/send logic before the background thread finished.
   Added the m_threadCompleted check so that path is only reachable once
   the load is actually done.

2. The `handled = true` assignment was missing from that branch, so input
   events were not being consumed and could fall through to other handlers.
   Added it unconditionally at the end of the block.

* Update player count decrement logic in PlatformNetworkManagerStub

Refactor the condition for decrementing the player count in CPlatformNetworkManagerStub::DoWork. The previous check was replaced with a while loop to ensure that the player count is only decremented when there are more than one player and the last player's custom data value is zero. This change improves the handling of player connections in the network manager.

* Refactor safe zone calculations in UI components for consistency

Updated the safe zone calculations across multiple UI components to ensure symmetry in split viewports. Removed unnecessary assignments and added comments for clarity. Modified the repositionHud function to include an additional parameter for better handling of HUD positioning in split-screen scenarios.

* Gui.cpp: fix F3 debug overlay in splitscreen + minor perf cleanup

The F3 debug screen was badly broken in splitscreen: it used the GUI
coordinate space which gets distorted by the splitscreen scaling, so
text appeared stretched, misaligned or completely off-screen depending
on the viewport layout.

Fixed by setting up a dedicated projection matrix using physical pixel
coordinates (g_rScreenWidth / g_rScreenHeight) each time the overlay is
drawn, completely decoupled from whatever transform the HUD is using.
The viewport dimensions are now computed per screen section so the ortho
projection matches the actual pixel area of each player's quadrant.
Version and branch strings are only shown for player 0 (iPad == 0) to
avoid repeating them across every splitscreen pane.

Also removed a few redundant calculations that were being done twice in
the same frame (atan for xRot, health halves, air supply scaled value).
These are minor and have negligible real-world impact; more substantial
per-frame caching work (safe zone calculations etc.) will follow in a
separate commit.
2026-03-13 01:32:18 -05:00
piebot c1124d2f26 Added Dirt and Stone Variants
Added podzol, coarse dirt, granite, polished granite, andesite, polished andesite, diorite, polished diorite.
2026-03-13 08:23:49 +03:00
ChristianFalegnami 71018169b5 Rabbit-1
Added Brown Rabbit model and a basic ai system.
added toast variant, others have to be implemented.
TODO:
add other variants, add their spawn in the biomes, add IDS_RABBIT And change sounds.
ADD color to the spwanegg.
2026-03-12 23:51:35 +01:00
piebot beec56d3be implement la's TU22 patch file 2026-03-13 00:56:59 +03:00
piebot ce0686afae fixed spruce being dark oak 2026-03-12 22:22:44 +03:00
piebot 1b97d70b52 fix linking error 2026-03-12 21:34:22 +03:00
piebot 483319befb revert to previous version 2026-03-12 19:37:50 +03:00
piebot 49dbf1b80f Changed Item IDs to Match Java
Also changed Lapis and Rose Textures.
2026-03-12 19:25:09 +03:00
aria 714462b130
Fix background stretching in settings>graphics menu (#1092) 2026-03-12 16:01:15 +00:00
RatCatcherVr 1cee2136d3
Added LittleBigPlanet Skin Pack (#793)
Co-authored-by: RatCatcherVr <littlerat111811@gmail.com>
2026-03-12 12:55:50 +00:00
Alezito2008 e140978daf
fix: logo rendering order after closing host options (#907) 2026-03-12 12:52:09 +00:00
Twig6943 1c32d7bc5d
Remove some leftover files (#881) 2026-03-12 12:48:06 +00:00
Ayush Thoren bb8ffee0d3
Fix mouse being pulled to the bottom right (#1156)
Signed-off-by: Ayush Thoren <ayushthoren@gmail.com>
2026-03-12 01:44:32 -05:00
ModMaker101 44fc8a4db2
Fix quiet in-game audio after engine update #897 (#1171) 2026-03-12 01:43:12 -05:00
piebot 45bee7a92f Merge branch 'main' of https://github.com/piebotc/LegacyEvolved 2026-03-11 09:14:08 +03:00
piebot da763bb36d Fixed some oversights 2026-03-11 09:13:47 +03:00
piebot 7e8f7cdcac
Merge branch 'smartcmd:main' into main 2026-03-11 08:59:51 +03:00
piebot a205b1d70a Added features from TU25
Acacia and Dark Oak Logs, Planks and Stairs.

Fences, Fence Gates and Doors for Spruce/Birch/Jungle/Acacia/Dark Oak.

Iron Trapdoors and Inverted Daylight Sensor.
2026-03-11 08:58:52 +03:00
Marvelco 1036b7368e
Fixed DLC map loading / saving, missing chunks (#1114)
* fixed all DLC maps

* fixed old saves have overlapping chunks with the new system
2026-03-10 22:04:19 -05:00
la d7596aa28c
Fix issue where visually the HUD shows you have 0 hearts when you dont (#1089)
* Fix for issue where player is able to stay alive with zero hearts in their healthbar.

* use static cast over c style cast
2026-03-09 22:30:01 -05:00
Alezito2008 5f777a7f45
Fix: Prevent clicking disabled checkboxes (#1075) 2026-03-09 22:03:39 -05:00
Marlian 3bcf588fbe
Fix crash when loading saved tutorial worlds (#1001)
writeRuleFile() was missing the schematic file count integer before the schematic entries. The reader in readRuleFile() expected this count, causing a stream misalignment that led to an assertion failure (Unrecognised schematic version) when reloading a saved tutorial world.

The fix writes the count on save and adds backward-compatible reading that detects old saves (without count) via a peek heuristic and falls back to count-less parsing.

Co-authored-by: MCbabel <MCbabel@users.noreply.github.com>
2026-03-09 22:02:39 -05:00
Loki bda3b1078a
Port over RCE Patches from LCEMP (#1023)
* LCEMP RCE Fixes WIP

Based on d017bfc30a

* Update to LCEMP's ByteArrayIO version

Fixes compilation since ours was missing some revisions from LCEMP

* Add additional safety checks missed in first pass

* Remove duplicate recipe count check
2026-03-09 06:53:08 -05:00
Loki Rautio 0c4f459904 Always show version overlay, add more info 2026-03-09 03:25:05 -05:00
MrTheShy 7a4f57e3e6
Reject duplicate UIDs on login and remove noisy gdraw debug log (#1013)
Players joining a server with a UID already in use are now disconnected
instead of the existing player being force-kicked. The previous behaviour
introduced in #767 allowed two clients with the same UID to coexist,
causing invisible players and undefined behaviour.

Also removes a per-frame debug printf in gdraw_SetViewSizeAndWorldScale
that was left in from earlier resolution-fix work.
2026-03-08 23:10:00 -05:00
MrTheShy e2adaa082c
Fix split-screen UI wrong positioning on window resize (#989)
* Fix split-screen UI wrong positioning on window resize

In vertical split at window heights below 1080, ComputeTileScale's min-scale clamp (>= 1.0) prevented the SWF from scaling down to fit, cropping the bottom and causing repositionHud to shift HUD elements downward. Chat and Tooltips additionally applied an offset from ComputeSplitContentOffset that only produced correct values at the 1920x1080 design resolution.

Override the scale for vertical split so the SWF fits the full window height when it is shorter than the movie. Remove the broken content offset from Chat and Tooltips -- the tile crop already positions the content correctly.

* Fix gamma post-process in split-screen

The gamma shader sampled the full backbuffer texture (UV 0..1) into each player's viewport, stretching the entire screen into every split region. Extended the shader constant buffer with per-viewport UV offset and scale so each pass samples only its own portion of the backbuffer.

ComputeViewportForPlayer was hardcoded to top/bottom for 2 players, ignoring the vertical split setting. Rewrote it to read each player's m_iScreenSection directly, which already accounts for the split orientation preference.

Secondary players have no Graphics menu and cannot change gamma. CachePlayerGammas now reads the primary player's setting and applies it uniformly to all viewports.
2026-03-08 22:16:58 -05:00
rtm516 91bf8d44fa
Use the correctly sized icons on 720p (#883)
* Use the correctly sized icons on 720p

* Improve check
2026-03-08 21:05:54 -05:00