Commit Graph

121 Commits

Author SHA1 Message Date
DeadVoxelx
3e02388ca9 Update IUIScene_CreativeMenu.cpp 2026-05-09 07:23:08 -04:00
DeadVoxelx
7ea2894200 Update UIControl_BeaconEffectButton.cpp 2026-05-06 14:26:34 -04:00
DeadVoxelx
6fb815c9cb Update IUIScene_CreativeMenu.cpp 2026-05-04 09:05:12 -04:00
DeadVoxelx
3d19dd967c Update UIScene_HUD.cpp 2026-05-04 09:04:45 -04:00
DeadVoxelx
cb4783e7e1 Add Debug Creative Toggle Host Option To Release Build 2026-05-03 16:09:31 -04:00
DeadVoxelx
ececc6268e Update UIScene_LaunchMoreOptionsMenu.cpp 2026-05-01 00:15:44 -04:00
DeadVoxelx
515d212bbb Update UIScene_LoadMenu.cpp 2026-05-01 00:15:09 -04:00
DeadVoxelx
caf64db044 Update IUIScene_CreativeMenu.cpp 2026-04-30 12:06:19 -04:00
DeadVoxelx
2f93570cc5 Update IUIScene_CreativeMenu.cpp 2026-04-30 10:10:55 -04:00
DeadVoxelx
c63b5666e1 Update UIScene_CreateWorldMenu.cpp 2026-04-30 08:20:06 -04:00
DeadVoxelx
e3109cb0e7 Update UIScene_LoadMenu.cpp 2026-04-30 08:19:25 -04:00
DeadVoxelx
01a6910c39 Update IUIScene_CreativeMenu.cpp 2026-04-28 08:57:08 -04:00
DeadVoxelx
f718fe7055 Update IUIScene_CreativeMenu.cpp 2026-04-24 16:06:31 -04:00
DeadVoxelx
91f62751a3 Add Endorium Toolset 2026-04-22 21:28:33 -04:00
DeadVoxelx
cc2e0ac729 Update UIScene_EndPoem.cpp 2026-04-13 19:58:41 -04:00
DeadVoxelx
a0d38c1fdd Update IUIScene_CreativeMenu.cpp 2026-04-12 16:16:28 -04:00
DeadVoxelx
9205eac8f6 Add Zombice Spawn Egg To Creative Inventory 2026-04-11 22:23:33 -04:00
DeadVoxelx
aaccab3ffa Add Husk Spawn Egg To Creative Menu 2026-04-11 18:49:00 -04:00
DeadVoxelx
1413596181 Add Faceless Pumpkins To Creative Inventory 2026-04-10 21:08:30 -04:00
DeadVoxelx
9256b9b0e5 Add Veloett Berry To Creative Menu 2026-04-09 20:11:53 -04:00
DeadVoxelx
d2ba47d492 End Update Content 2026-04-09 13:16:52 -04:00
DeadVoxelx
85d0cd0305 Add Watcher 2026-04-03 11:15:37 -04:00
DeadVoxelx
a80d49987d Fixed issue with world seeds not saving correctly (SmartCMD) 2026-03-30 08:55:14 -04:00
DeadVoxelx
473977c5f3 Add Pigmen 2026-03-30 00:53:25 -04:00
DeadVoxelx
cbfcdada7d Add Netherrack Furnace 2026-03-29 18:56:36 -04:00
DeadVoxelx
54bff99bf0 Update IUIScene_CreativeMenu.cpp 2026-03-28 19:26:20 -04:00
DeadVoxelx
1943e1fd02 Update IUIScene_CreativeMenu.cpp 2026-03-28 12:26:33 -04:00
DeadVoxelx
efacc791a2 Update UIScene_ConnectingProgress.cpp 2026-03-26 11:29:14 -04:00
DeadVoxelx
444cdbd0b2 Update UIScene_ConnectingProgress.h 2026-03-26 11:28:47 -04:00
DeadVoxelx
926902dbaa Update UIScene_JoinMenu.cpp 2026-03-26 11:23:16 -04:00
DeadVoxelx
e97ef780d4 Update IUIScene_CreativeMenu.cpp 2026-03-25 11:32:39 -04:00
Ayush Thoren
ed9cbae3f7 Fix initial cursor position for in-game UI elements (#1120)
Signed-off-by: Ayush Thoren <ayushthoren@gmail.com>
2026-03-23 21:06:20 -05:00
Sylvessa
127465b0eb add advanced tooltips, F3+H combo, and handle settings (#1389) 2026-03-23 17:54:46 -05:00
Lord Cambion
9a6d126ae1 Stained Glass Survival Integration & Crafting UI Fix (#1195)
* Added Stained Glass

i found out that stained glass  was not accessible in survival, then i  saw they disabled it in the code

* Grouping glass correctly in crafting table

I removed the #if/endif from the ClothDyeRecipes.cpp and added a different one in StructureRecipies.cpp
also changed the Tile definition giving it the same
setBaseItemTypeAndMaterial of stained glass to group it correctly inside the crafting table UI.
also aincremented the Vertical Slot for crafting table to include many more craftings in the same group
2026-03-22 21:15:02 -05:00
Revela
39e46751bf Add clipboard paste support to UIControl_TextInput and UIScene_Keyboard (#1298)
Previously paste only worked in the chat screen. Wire Screen::getClipboard() into the two remaining text input paths so Ctrl+V works for sign editing, seed entry, server IP/port, and world name fields.
2026-03-22 21:09:10 -05:00
Sylvessa
b6e25415ca Remove redundant buffer in UIScene_SettingsGraphicsMenu.cpp (#1348) (#1380) 2026-03-22 18:37:59 -04:00
Xenovyy
a94ee1ca22 Fixed the ear bleeding sound when using a slider with mouse controls (#1296)
* Fixed the ear bleeding sound when using a slider with mouse controls

Now only ticks every 9 "ticks" unless the slider has less than 18 possible values..

* cured rtm516's ocd

title

* rtm516 reaches enlightenment

* rtm516 reaches total enlightenment
2026-03-17 22:44:12 +00:00
Loki Rautio
1a3fcb5b20 Remove Miles Sound System from credits
we don't use it anymore!
2026-03-17 16:22:49 -05:00
Loki Rautio
a3ca23fdf6 Cleanup project credits and README 2026-03-17 16:15:26 -05:00
Alex
994a23f96b Fix save space indicator display
Include space indicator UI element in windows build, logic to handle getting save file sizes on windows
2026-03-17 07:44:52 -07:00
Xenovyy
15ea3dc85c Adjusted Exit Game title (#1277)
* Adjusted Exit Game title

Replaced "Return to Xbox Dashboard" with "Exit Minecraft" on the exit game screen.

* Fixed Blending on Intro Sequence

Fixed Blocky, Crappy blending on the ESRB and Mojang Logos in the Intro Sequence.
2026-03-15 18:12:53 -05: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
Alezito2008
e140978daf fix: logo rendering order after closing host options (#907) 2026-03-12 12:52:09 +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
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
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
MrTheShy
af5d5a06d5 Revert the workaround of loading of hd textures (#999)
The previous crash fix forced HD skins at every resolution which made everything blurry at 720p and below because Iggy was downscaling 1080p assets.

The real problem was that 4J loaded the HD skin libraries (skinHD.swf, skinHDHud.swf etc) unconditionally on Win64 but the HD platform skin was only registered above 720p. At 720p or lower Iggy couldnt find platformskinHD.swf and crashed.

Now on Win64 we load both skin sets at startup, HD and non-HD, each with their own registered name so they dont conflict. loadMovie() picks 1080.swf or 720.swf based on actual screen height, and each scene SWF naturally imports the right skin chain. No crash, no blurriness.

4J already had the eLibraryFallback enum slots for this (including eLibraryFallback_Platform) but it was behind a debug-only guard and the platform skin slot was never actually loaded. Removed the guard and added the missing load.
2026-03-08 21:02:48 -05:00
MrTheShy
3c52436c08 Fix crash when launching at 720p or lower resolutions (#981)
The HD skin libraries (skinHD.swf, skinHDHud.swf, etc.) are loaded
unconditionally on Win64/Durango/Orbis, and they import the Iggy
library "platformskinHD.swf" by name. However, the platform skin
path and registration name were gated behind a runtime resolution
check (m_fScreenHeight > 720.0f), so at exactly 720p the skin was
registered as "platformskin.swf" instead, and below 720p the non-HD
.swf file was loaded entirely. This caused Iggy to fail resolving
the import, which cascaded into a failed scene load and hit a
__debugbreak().

Always use the HD platform skin on these platforms since the HD
libraries that depend on it are always loaded regardless of
resolution. PS3/PSVita are unaffected as they have their own
non-HD skin loading path.
2026-03-08 18:36:56 -05:00