Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
8c687e0
clean branch
samdotjpg Feb 15, 2026
3054cbd
furnace rot fix, useTouchscreen/isTouchscreen
samdotjpg Feb 15, 2026
26e7f2e
Virtual EntityTile class; fix save/load of entity tiles (far safer)
samdotjpg Feb 16, 2026
f64f96a
base client riding logic
samdotjpg Feb 16, 2026
bd18e03
naming convention adjustment to match other classes better
samdotjpg Feb 17, 2026
ecdaaea
Entities should be hashmaps. Can open furnace now
samdotjpg Feb 17, 2026
58f8f0b
Merge branch 'ReMinecraftPE:master' into tile-entity-rev2
samdotjpg Feb 17, 2026
d0699c4
bounds check fix
samdotjpg Feb 17, 2026
22170d2
vsync, top snow fix
samdotjpg Feb 17, 2026
837b741
drop sand
samdotjpg Feb 17, 2026
da33efa
containers shouldnt look stupid
samdotjpg Feb 18, 2026
fa895e2
naming conventions, not done yet
samdotjpg Feb 18, 2026
732374d
wrong way of doing this but i have to merge
samdotjpg Feb 18, 2026
5a63427
Merge branch 'ReMinecraftPE:master' into tile-entity-rev2
samdotjpg Feb 18, 2026
67a9b26
syntax bitch
samdotjpg Feb 18, 2026
7506a6c
sorry SDL1 no vsync yet
samdotjpg Feb 18, 2026
b39ae30
android
samdotjpg Feb 18, 2026
4d117c3
Updated Visual Studio Projects
BrentDaMage Feb 18, 2026
d2bdb19
tim apple
samdotjpg Feb 18, 2026
da4f864
add to lang file
samdotjpg Feb 18, 2026
d46806d
Make riding / rider code not suck really badly
samdotjpg Feb 18, 2026
6bea080
Fixed container listening and networking
BrentDaMage Feb 18, 2026
02783ae
CMakeLists & Xcode
samdotjpg Feb 18, 2026
4d5d1bb
Merge branch 'master' into tile-entity-rev2
samdotjpg Feb 18, 2026
14bb937
Merge branch 'ReMinecraftPE:master' into tile-entity-rev2
samdotjpg Feb 19, 2026
d80620f
todo fix putting item stack in chests not relaying count to clients w…
samdotjpg Feb 19, 2026
a55606e
Merge branch 'master' into tile-entity-rev2
BrentDaMage Feb 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions game/assets/lang/en_US.lang
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ options.guiScale.small=Small
options.guiScale.normal=Normal
options.guiScale.large=Large
options.advancedOpengl=Advanced OpenGL
options.enableVsync=Enable Vsync

performance.max=Max FPS
performance.balanced=Balanced
Expand Down
14 changes: 14 additions & 0 deletions platforms/android/AppPlatform_android.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,20 @@ void AppPlatform_android::setScreenSize(int width, int height)
m_ScreenHeight = height;
}

void AppPlatform_android::setVSyncEnabled(bool enabled)
{
EGLDisplay display = eglGetCurrentDisplay();
if (display == EGL_NO_DISPLAY)
return;

eglSwapInterval(display, enabled ? 1 : 0);
}

bool AppPlatform_android::isVsyncSwitchable() const
{
return eglGetCurrentDisplay() != EGL_NO_DISPLAY;
}

void AppPlatform_android::initAndroidApp(android_app* ptr)
{
m_app = ptr;
Expand Down
2 changes: 2 additions & 0 deletions platforms/android/AppPlatform_android.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@ class AppPlatform_android : public AppPlatform
void setExternalStoragePath(const std::string& path);

AssetFile readAssetFile(const std::string&, bool) const override;
void setVSyncEnabled(bool enabled) override;
bool isVsyncSwitchable() const override;

private:
void changeKeyboardVisibility(bool bShown);
Expand Down
276 changes: 206 additions & 70 deletions platforms/macos/projects/Minecraft/Minecraft.xcodeproj/project.pbxproj

Large diffs are not rendered by default.

14 changes: 5 additions & 9 deletions platforms/sdl/sdl2/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -63,16 +63,11 @@ static void initGraphics()
exit(EXIT_FAILURE);
}

// Enable V-Sync
// Not setting this explicitly results in undefined behavior
if (SDL_GL_SetSwapInterval(-1) == -1) // Try adaptive
// Vsync is controlled through the AppPlatform,
// default to no vsync here, let platform set it when needed
if (SDL_GL_SetSwapInterval(0) == -1)
{
LOG_W("Adaptive V-Sync is not supported on this platform. Falling back to standard V-Sync...");
// fallback to standard
if (SDL_GL_SetSwapInterval(1) == -1)
{
LOG_W("Setting the swap interval for V-Sync is not supported on this platform!");
}
LOG_W("Setting the swap interval is not supported on this platform!");
}

if (!mce::Platform::OGL::InitBindings())
Expand Down Expand Up @@ -443,6 +438,7 @@ int main(int argc, char *argv[])
// Start MCPE
g_pAppPlatform = new UsedAppPlatform(storagePath, window);
g_pAppPlatform->m_externalStorageDir = storagePath;
g_pAppPlatform->setVSyncEnabled(true);
g_pApp = new NinecraftApp;
g_pApp->m_pPlatform = g_pAppPlatform;
g_pApp->init();
Expand Down
16 changes: 16 additions & 0 deletions platforms/windows/AppPlatform_win32.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -484,6 +484,22 @@ bool AppPlatform_win32::initGraphics(int width, int height)
return true;
}

void AppPlatform_win32::setVSyncEnabled(bool enabled)
{
#if MCE_GFX_API_OGL
xglSwapIntervalEXT(enabled ? 1 : 0);
#endif
}

bool AppPlatform_win32::isVsyncSwitchable() const
{
#if MCE_GFX_API_OGL
return true;
#else
return false;
#endif
}

void AppPlatform_win32::createWindowSizeDependentResources(const Vec2& logicalSize, const Vec2& compositionScale)
{
#if MCE_GFX_API_D3D9
Expand Down
2 changes: 2 additions & 0 deletions platforms/windows/AppPlatform_win32.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,8 @@ class AppPlatform_win32 : public AppPlatform
bool initGraphics(int width, int height);
void createWindowSizeDependentResources(const Vec2& logicalSize, const Vec2& compositionScale);
void swapBuffers();
void setVSyncEnabled(bool enabled) override;
bool isVsyncSwitchable() const override;

static MouseButtonType GetMouseButtonType(UINT iMsg);
static bool GetMouseButtonState(UINT iMsg, WPARAM wParam);
Expand Down
2 changes: 2 additions & 0 deletions platforms/windows/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,8 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine
if (!g_AppPlatform.initGraphics(Minecraft::width, Minecraft::height))
goto _cleanup;

g_AppPlatform.setVSyncEnabled(true);

g_pApp = new NinecraftApp;
g_pApp->m_pPlatform = &g_AppPlatform;

Expand Down
2 changes: 2 additions & 0 deletions platforms/windows/projects/Client/Client.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -258,6 +258,7 @@
<ClInclude Include="$(MC_ROOT)\source\client\gui\ScreenChooser.hpp" />
<ClInclude Include="$(MC_ROOT)\source\client\resources\LoadingTipManager.hpp" />
<ClInclude Include="$(MC_ROOT)\source\client\resources\SplashManager.hpp" />
<ClInclude Include="$(MC_ROOT)\source\client\gui\screens\inventory\FurnaceScreen.hpp" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(MC_ROOT)\source\client\app\App.cpp" />
Expand Down Expand Up @@ -434,6 +435,7 @@
<ClCompile Include="$(MC_ROOT)\source\client\gui\ScreenChooser.cpp" />
<ClCompile Include="$(MC_ROOT)\source\client\resources\LoadingTipManager.cpp" />
<ClCompile Include="$(MC_ROOT)\source\client\resources\SplashManager.cpp" />
<ClCompile Include="$(MC_ROOT)\source\client\gui\screens\inventory\FurnaceScreen.cpp" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Common\Common.vcxproj">
Expand Down
6 changes: 6 additions & 0 deletions platforms/windows/projects/Client/Client.vcxproj.filters
Original file line number Diff line number Diff line change
Expand Up @@ -677,6 +677,9 @@
<ClInclude Include="$(MC_ROOT)\source\client\gui\screens\inventory\ClassicCraftingScreen_Console.hpp">
<Filter>Header Files\GUI\Screens\Inventory</Filter>
</ClInclude>
<ClInclude Include="$(MC_ROOT)\source\client\gui\screens\inventory\FurnaceScreen.hpp">
<Filter>Header Files\GUI\Screens\Inventory</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(MC_ROOT)\source\client\gui\components\AvailableGamesList.cpp">
Expand Down Expand Up @@ -1204,5 +1207,8 @@
<ClCompile Include="$(MC_ROOT)\source\client\gui\screens\inventory\ClassicCraftingScreen_Console.cpp">
<Filter>Source Files\GUI\Screens\Inventory</Filter>
</ClCompile>
<ClCompile Include="$(MC_ROOT)\source\client\gui\screens\inventory\FurnaceScreen.cpp">
<Filter>Source Files\GUI\Screens\Inventory</Filter>
</ClCompile>
</ItemGroup>
</Project>
40 changes: 35 additions & 5 deletions platforms/windows/projects/World/World.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -202,15 +202,15 @@
<ClCompile Include="$(MC_ROOT)\source\world\entity\Zombie.cpp" />
<ClCompile Include="$(MC_ROOT)\source\world\entity\EntityFactory.cpp" />
<ClCompile Include="$(MC_ROOT)\source\world\level\levelgen\chunk\DataLayer.cpp" />
<ClCompile Include="$(MC_ROOT)\source\world\ContainerListener.cpp" />
<ClCompile Include="$(MC_ROOT)\source\world\inventory\ContainerListener.cpp" />
<ClCompile Include="$(MC_ROOT)\source\world\inventory\ContainerMenu.cpp" />
<ClCompile Include="$(MC_ROOT)\source\world\inventory\Slot.cpp" />
<ClCompile Include="$(MC_ROOT)\source\world\inventory\ArmorSlot.cpp" />
<ClCompile Include="$(MC_ROOT)\source\world\inventory\CraftingContainer.cpp" />
<ClCompile Include="$(MC_ROOT)\source\world\inventory\InventoryMenu.cpp" />
<ClCompile Include="$(MC_ROOT)\source\world\inventory\ResultContainer.cpp" />
<ClCompile Include="$(MC_ROOT)\source\world\inventory\ResultSlot.cpp" />
<ClCompile Include="$(MC_ROOT)\source\world\CompoundContainer.cpp" />
<ClCompile Include="$(MC_ROOT)\source\world\inventory\CompoundContainer.cpp" />
<ClCompile Include="$(MC_ROOT)\source\world\inventory\SimpleContainer.cpp" />
<ClCompile Include="$(MC_ROOT)\source\world\inventory\ChestMenu.cpp" />
<ClCompile Include="$(MC_ROOT)\source\world\item\DyeColor.cpp" />
Expand All @@ -228,6 +228,22 @@
<ClCompile Include="$(MC_ROOT)\source\world\item\BowItem.cpp" />
<ClCompile Include="$(MC_ROOT)\source\world\item\WeaponItem.cpp" />
<ClCompile Include="$(MC_ROOT)\source\world\item\DyePowderItem.cpp" />
<ClCompile Include="$(MC_ROOT)\source\world\Facing.cpp" />
<ClCompile Include="$(MC_ROOT)\source\world\inventory\FurnaceMenu.cpp" />
<ClCompile Include="$(MC_ROOT)\source\world\inventory\FurnaceResultSlot.cpp" />
<ClCompile Include="$(MC_ROOT)\source\world\item\CoalItem.cpp" />
<ClCompile Include="$(MC_ROOT)\source\world\particle\NoteParticle.cpp" />
<ClCompile Include="$(MC_ROOT)\source\world\tile\ChestTile.cpp" />
<ClCompile Include="$(MC_ROOT)\source\world\tile\EntityTile.cpp" />
<ClCompile Include="$(MC_ROOT)\source\world\tile\entity\ChestTileEntity.cpp" />
<ClCompile Include="$(MC_ROOT)\source\world\tile\entity\FurnaceTileEntity.cpp" />
<ClCompile Include="$(MC_ROOT)\source\world\tile\entity\MusicTileEntity.cpp" />
<ClCompile Include="$(MC_ROOT)\source\world\tile\entity\TileEntity.cpp" />
<ClCompile Include="$(MC_ROOT)\source\world\tile\entity\TileEntityType.cpp" />
<ClCompile Include="$(MC_ROOT)\source\world\tile\FurnaceTile.cpp" />
<ClCompile Include="$(MC_ROOT)\source\world\tile\MusicTile.cpp" />
<ClCompile Include="$(MC_ROOT)\source\world\inventory\ContainerContentChangeListener.cpp" />
<ClCompile Include="$(MC_ROOT)\source\world\inventory\ContainerSizeChangeListener.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(MC_ROOT)\source\world\entity\Entity.hpp" />
Expand Down Expand Up @@ -371,16 +387,16 @@
<ClInclude Include="$(MC_ROOT)\source\world\level\levelgen\chunk\DataLayer.hpp" />
<ClInclude Include="$(MC_ROOT)\source\world\level\TileChange.hpp" />
<ClInclude Include="$(MC_ROOT)\source\world\level\LevelEvent.hpp" />
<ClInclude Include="$(MC_ROOT)\source\world\Container.hpp" />
<ClInclude Include="$(MC_ROOT)\source\world\ContainerListener.hpp" />
<ClInclude Include="$(MC_ROOT)\source\world\inventory\Container.hpp" />
<ClInclude Include="$(MC_ROOT)\source\world\inventory\ContainerListener.hpp" />
<ClInclude Include="$(MC_ROOT)\source\world\inventory\ContainerMenu.hpp" />
<ClInclude Include="$(MC_ROOT)\source\world\inventory\Slot.hpp" />
<ClInclude Include="$(MC_ROOT)\source\world\inventory\ArmorSlot.hpp" />
<ClInclude Include="$(MC_ROOT)\source\world\inventory\CraftingContainer.hpp" />
<ClInclude Include="$(MC_ROOT)\source\world\inventory\InventoryMenu.hpp" />
<ClInclude Include="$(MC_ROOT)\source\world\inventory\ResultContainer.hpp" />
<ClInclude Include="$(MC_ROOT)\source\world\inventory\ResultSlot.hpp" />
<ClInclude Include="$(MC_ROOT)\source\world\CompoundContainer.hpp" />
<ClInclude Include="$(MC_ROOT)\source\world\inventory\CompoundContainer.hpp" />
<ClInclude Include="$(MC_ROOT)\source\world\inventory\SimpleContainer.hpp" />
<ClInclude Include="$(MC_ROOT)\source\world\inventory\ChestMenu.hpp" />
<ClInclude Include="$(MC_ROOT)\source\world\item\DyeColor.hpp" />
Expand All @@ -397,6 +413,20 @@
<ClInclude Include="$(MC_ROOT)\source\world\item\BowItem.hpp" />
<ClInclude Include="$(MC_ROOT)\source\world\item\WeaponItem.hpp" />
<ClInclude Include="$(MC_ROOT)\source\world\item\DyePowderItem.hpp" />
<ClInclude Include="$(MC_ROOT)\source\world\inventory\FurnaceMenu.hpp" />
<ClInclude Include="$(MC_ROOT)\source\world\inventory\FurnaceResultSlot.hpp" />
<ClInclude Include="$(MC_ROOT)\source\world\item\CoalItem.hpp" />
<ClInclude Include="$(MC_ROOT)\source\world\tile\ChestTile.hpp" />
<ClInclude Include="$(MC_ROOT)\source\world\tile\EntityTile.hpp" />
<ClInclude Include="$(MC_ROOT)\source\world\tile\entity\ChestTileEntity.hpp" />
<ClInclude Include="$(MC_ROOT)\source\world\tile\entity\FurnaceTileEntity.hpp" />
<ClInclude Include="$(MC_ROOT)\source\world\tile\entity\MusicTileEntity.hpp" />
<ClInclude Include="$(MC_ROOT)\source\world\tile\entity\TileEntity.hpp" />
<ClInclude Include="$(MC_ROOT)\source\world\tile\entity\TileEntityType.hpp" />
<ClInclude Include="$(MC_ROOT)\source\world\tile\FurnaceTile.hpp" />
<ClInclude Include="$(MC_ROOT)\source\world\tile\MusicTile.hpp" />
<ClInclude Include="$(MC_ROOT)\source\world\inventory\ContainerContentChangeListener.hpp" />
<ClInclude Include="$(MC_ROOT)\source\world\inventory\ContainerSizeChangeListener.hpp" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\NBT\NBT.vcxproj">
Expand Down
Loading
Loading