From dec2f8d8d04155a181c8a9267bef7d640b3d188e Mon Sep 17 00:00:00 2001 From: Tropical <42101043+tropicaaal@users.noreply.github.com> Date: Mon, 9 Mar 2026 00:22:02 -0500 Subject: [PATCH] fix: hopefully get assets building --- Minecraft.Assets/meson.build | 757 +++++++++++++++---------------- Minecraft.Client/meson.build | 2 +- meson.build | 5 +- scripts/build_col.py | 1 + scripts/move_assets_to_client.py | 35 ++ scripts/pack_arc.py | 1 + scripts/pack_loc.py | 1 + 7 files changed, 415 insertions(+), 387 deletions(-) create mode 100644 scripts/move_assets_to_client.py diff --git a/Minecraft.Assets/meson.build b/Minecraft.Assets/meson.build index cbf791639..cc9dc72d2 100644 --- a/Minecraft.Assets/meson.build +++ b/Minecraft.Assets/meson.build @@ -5,27 +5,18 @@ client_platform_path = meson.project_source_root() / 'Minecraft.Client/Platform' -install_subdir(meson.current_source_dir() / 'music', install_dir : '') -install_subdir(meson.current_source_dir() / 'res', install_dir : 'Common') -install_subdir(meson.current_source_dir() / 'font', install_dir : 'Common/Media') -install_data(meson.current_source_dir() / 'levels/TrialLevel.mcs', install_dir : 'Common/Trial') - -install_subdir(client_platform_path / 'Durango/Sound', install_dir : 'Durango') -# install_subdir(client_platform_path / 'Windows64Media/DLC', install_dir : 'Windows64Media') -install_subdir(client_platform_path / 'DurangoMedia/DLC', install_dir : 'Windows64Media') # Use this just for funsies so we get access to more dlc - +install_subdir('Common', install_dir : get_option('prefix')) # # Asset build # - # TODO: Need to make this take inputs localisation = custom_target('Minecraft.Assets_Localisation', output : [ 'languages.loc', 'strings.h' ], command : [ - 'python3', meson.project_source_root() / 'scripts/pack_loc.py', - client_platform_path / 'Windows64Media/loc', + python, meson.project_source_root() / 'scripts/pack_loc.py', + meson.current_source_dir() / 'Windows64Media/loc', '@OUTPUT0@', '@OUTPUT1@' ] @@ -33,7 +24,7 @@ localisation = custom_target('Minecraft.Assets_Localisation', colour_table = custom_target('Minecraft.Assets_Colour_Table', output : 'HTMLColours.col', - input : meson.current_source_dir() / 'HTMLColours.xml', + input : meson.current_source_dir() / 'Common/HTMLColours.xml', command : [ 'python3', meson.project_source_root() / 'scripts/build_col.py', '@INPUT@', @@ -41,402 +32,398 @@ colour_table = custom_target('Minecraft.Assets_Colour_Table', ] ) -movies_path = meson.current_source_dir() / 'movies' archive_sources = [ localisation[0], # client_platform_path / 'Windows64Media/Media/languages.loc', colour_table, - meson.current_source_dir() / 'splashes.txt', - meson.current_source_dir() / 'graphics\SaveChest.png', - meson.current_source_dir() / 'graphics\MinecraftIcon.png', - meson.current_source_dir() / 'graphics\TexturePackIcon.png', - client_platform_path / 'Windows64Media/Media/Tutorial.pck', - client_platform_path / 'Windows64Media/Media/skinWin.swf', - client_platform_path / 'Windows64Media/Media/skinHDWin.swf', - client_platform_path / 'Windows64Media/Media/DLCOffersMenu480.swf', - client_platform_path / 'Windows64Media/Media/DLCOffersMenu720.swf', - client_platform_path / 'Windows64Media/Media/DLCOffersMenu1080.swf', - client_platform_path / 'Windows64Media/Media/DLCOffersMenuVita.swf' + 'Common/splashes.txt', + 'Common/Media/Graphics/SaveChest.png', + 'Common/Media/Graphics/MinecraftIcon.png', + 'Common/Media/Graphics/TexturePackIcon.png', + 'Windows64Media/Media/Tutorial.pck', + 'Windows64Media/Media/skinWin.swf', + 'Windows64Media/Media/skinHDWin.swf', + 'Windows64Media/Media/DLCOffersMenu480.swf', + 'Windows64Media/Media/DLCOffersMenu720.swf', + 'Windows64Media/Media/DLCOffersMenu1080.swf', + 'Windows64Media/Media/DLCOffersMenuVita.swf' ] archive_sources_movies1080 = [ - movies_path / 'skinHDGraphics.swf', - movies_path / 'skinHDGraphicsHud.swf', - movies_path / 'skinHDGraphicsLabels.swf', - movies_path / 'skinHDGraphicsInGame.swf', - movies_path / 'skinHD.swf', - movies_path / 'skinHDHud.swf', - movies_path / 'skinHDLabels.swf', - movies_path / 'skinHDInGame.swf', - movies_path / 'AnvilMenu1080.swf', - movies_path / 'BrewingStandMenu1080.swf', - movies_path / 'ChestMenu1080.swf', - movies_path / 'ChestLargeMenu1080.swf', - movies_path / 'ComponentLogo1080.swf', - movies_path / 'ComponentLogoSplit1080.swf', - movies_path / 'Controls1080.swf', - movies_path / 'ControlsRemotePlay1080.swf', - movies_path / 'CreateWorldMenu1080.swf', - movies_path / 'CreativeMenu1080.swf', - movies_path / 'Credits1080.swf', - movies_path / 'Crafting2x2Menu1080.swf', - movies_path / 'Crafting3x3Menu1080.swf', - movies_path / 'DeathMenu1080.swf', - movies_path / 'DebugCreateSchematic1080.swf', - movies_path / 'DebugMenu1080.swf', - movies_path / 'DebugOptionsMenu1080.swf', - movies_path / 'DebugSetCamera1080.swf', - movies_path / 'DebugUIConsoleComponent1080.swf', - movies_path / 'DebugUIMarketingGuide1080.swf', - movies_path / 'DLCMainMenu1080.swf', - movies_path / 'DispenserMenu1080.swf', - movies_path / 'EnchantingMenu1080.swf', - movies_path / 'EndPoem1080.swf', - movies_path / 'EULA1080.swf', - movies_path / 'FullscreenProgress1080.swf', - movies_path / 'FurnaceMenu1080.swf', - movies_path / 'HelpAndOptionsMenu1080.swf', - movies_path / 'HowToPlay1080.swf', - movies_path / 'HowToPlayMenu1080.swf', - movies_path / 'HUD1080.swf', - movies_path / 'InGameHostOptions1080.swf', - movies_path / 'InGameInfoMenu1080.swf', - movies_path / 'InGamePlayerOptions1080.swf', - movies_path / 'InGameTeleportMenu1080.swf', - movies_path / 'Intro1080.swf', - movies_path / 'InventoryMenu1080.swf', - movies_path / 'JoinMenu1080.swf', - movies_path / 'LoadOrJoinMenu1080.swf', - movies_path / 'LaunchMoreOptionsMenu1080.swf', - movies_path / 'LeaderboardMenu1080.swf', - movies_path / 'LoadMenu1080.swf', - movies_path / 'MainMenu1080.swf', - movies_path / 'MenuBackground1080.swf', - movies_path / 'MessageBox1080.swf', - movies_path / 'NewUpdateMessage1080.swf', - movies_path / 'Panorama1080.swf', - movies_path / 'PauseMenu1080.swf', - movies_path / 'PressStartToPlay1080.swf', - movies_path / 'QuadrantSignin1080.swf', - movies_path / 'ReinstallMenu1080.swf', - movies_path / 'SaveMenu1080.swf', - movies_path / 'SaveMessage1080.swf', - movies_path / 'SettingsMenu1080.swf', - movies_path / 'SettingsAudioMenu1080.swf', - movies_path / 'SettingsControlMenu1080.swf', - movies_path / 'SettingsGraphicsMenu1080.swf', - movies_path / 'SettingsOptionsMenu1080.swf', - movies_path / 'SettingsUIMenu1080.swf', - movies_path / 'SignEntryMenu1080.swf', - movies_path / 'SkinSelectMenu1080.swf', - movies_path / 'Timer1080.swf', - movies_path / 'ToolTips1080.swf', - movies_path / 'TradingMenu1080.swf', - movies_path / 'TutorialPopup1080.swf', - movies_path / 'AnvilMenuSplit1080.swf', - movies_path / 'BrewingStandMenuSplit1080.swf', - movies_path / 'ChestMenuSplit1080.swf', - movies_path / 'ChestLargeMenuSplit1080.swf', - movies_path / 'ControlsSplit1080.swf', - movies_path / 'Crafting2x2MenuSplit1080.swf', - movies_path / 'Crafting3x3MenuSplit1080.swf', - movies_path / 'CreativeMenuSplit1080.swf', - movies_path / 'DeathMenuSplit1080.swf', - movies_path / 'DispenserMenuSplit1080.swf', - movies_path / 'EnchantingMenuSplit1080.swf', - movies_path / 'FurnaceMenuSplit1080.swf', - movies_path / 'FullscreenProgressSplit1080.swf', - movies_path / 'HelpAndOptionsMenuSplit1080.swf', - movies_path / 'HowToPlaySplit1080.swf', - movies_path / 'HowToPlayMenuSplit1080.swf', - movies_path / 'HUDSplit1080.swf', - movies_path / 'InGameHostOptionsSplit1080.swf', - movies_path / 'InGameInfoMenuSplit1080.swf', - movies_path / 'InGameTeleportMenuSplit1080.swf', - movies_path / 'InGamePlayerOptionsSplit1080.swf', - movies_path / 'InventoryMenuSplit1080.swf', - movies_path / 'MessageBoxSplit1080.swf', - movies_path / 'PanoramaSplit1080.swf', - movies_path / 'PauseMenuSplit1080.swf', - movies_path / 'ReinstallMenuSplit1080.swf', - movies_path / 'SettingsAudioMenuSplit1080.swf', - movies_path / 'SettingsControlMenuSplit1080.swf', - movies_path / 'SettingsGraphicsMenuSplit1080.swf', - movies_path / 'SettingsMenuSplit1080.swf', - movies_path / 'SettingsOptionsMenuSplit1080.swf', - movies_path / 'SettingsUIMenuSplit1080.swf', - movies_path / 'SignEntryMenuSplit1080.swf', - movies_path / 'SkinSelectMenuSplit1080.swf', - movies_path / 'TimerSplit1080.swf', - movies_path / 'ToolTipsSplit1080.swf', - movies_path / 'TradingMenuSplit1080.swf', - movies_path / 'TutorialPopupSplit1080.swf', - movies_path / 'Keyboard1080.swf', - movies_path / 'KeyboardSplit1080.swf' + 'Common/Media/skinHDGraphics.swf', + 'Common/Media/skinHDGraphicsHud.swf', + 'Common/Media/skinHDGraphicsLabels.swf', + 'Common/Media/skinHDGraphicsInGame.swf', + 'Common/Media/skinHD.swf', + 'Common/Media/skinHDHud.swf', + 'Common/Media/skinHDLabels.swf', + 'Common/Media/skinHDInGame.swf', + 'Common/Media/AnvilMenu1080.swf', + 'Common/Media/BrewingStandMenu1080.swf', + 'Common/Media/ChestMenu1080.swf', + 'Common/Media/ChestLargeMenu1080.swf', + 'Common/Media/ComponentLogo1080.swf', + 'Common/Media/ComponentLogoSplit1080.swf', + 'Common/Media/Controls1080.swf', + 'Common/Media/ControlsRemotePlay1080.swf', + 'Common/Media/CreateWorldMenu1080.swf', + 'Common/Media/CreativeMenu1080.swf', + 'Common/Media/Credits1080.swf', + 'Common/Media/Crafting2x2Menu1080.swf', + 'Common/Media/Crafting3x3Menu1080.swf', + 'Common/Media/DeathMenu1080.swf', + 'Common/Media/DebugCreateSchematic1080.swf', + 'Common/Media/DebugMenu1080.swf', + 'Common/Media/DebugOptionsMenu1080.swf', + 'Common/Media/DebugSetCamera1080.swf', + 'Common/Media/DebugUIConsoleComponent1080.swf', + 'Common/Media/DebugUIMarketingGuide1080.swf', + 'Common/Media/DLCMainMenu1080.swf', + 'Common/Media/DispenserMenu1080.swf', + 'Common/Media/EnchantingMenu1080.swf', + 'Common/Media/EndPoem1080.swf', + 'Common/Media/EULA1080.swf', + 'Common/Media/FullscreenProgress1080.swf', + 'Common/Media/FurnaceMenu1080.swf', + 'Common/Media/HelpAndOptionsMenu1080.swf', + 'Common/Media/HowToPlay1080.swf', + 'Common/Media/HowToPlayMenu1080.swf', + 'Common/Media/HUD1080.swf', + 'Common/Media/InGameHostOptions1080.swf', + 'Common/Media/InGameInfoMenu1080.swf', + 'Common/Media/InGamePlayerOptions1080.swf', + 'Common/Media/InGameTeleportMenu1080.swf', + 'Common/Media/Intro1080.swf', + 'Common/Media/InventoryMenu1080.swf', + 'Common/Media/JoinMenu1080.swf', + 'Common/Media/LoadOrJoinMenu1080.swf', + 'Common/Media/LaunchMoreOptionsMenu1080.swf', + 'Common/Media/LeaderboardMenu1080.swf', + 'Common/Media/LoadMenu1080.swf', + 'Common/Media/MainMenu1080.swf', + 'Common/Media/MenuBackground1080.swf', + 'Common/Media/MessageBox1080.swf', + 'Common/Media/NewUpdateMessage1080.swf', + 'Common/Media/Panorama1080.swf', + 'Common/Media/PauseMenu1080.swf', + 'Common/Media/PressStartToPlay1080.swf', + 'Common/Media/QuadrantSignin1080.swf', + 'Common/Media/ReinstallMenu1080.swf', + 'Common/Media/SaveMenu1080.swf', + 'Common/Media/SaveMessage1080.swf', + 'Common/Media/SettingsMenu1080.swf', + 'Common/Media/SettingsAudioMenu1080.swf', + 'Common/Media/SettingsControlMenu1080.swf', + 'Common/Media/SettingsGraphicsMenu1080.swf', + 'Common/Media/SettingsOptionsMenu1080.swf', + 'Common/Media/SettingsUIMenu1080.swf', + 'Common/Media/SignEntryMenu1080.swf', + 'Common/Media/SkinSelectMenu1080.swf', + 'Common/Media/Timer1080.swf', + 'Common/Media/ToolTips1080.swf', + 'Common/Media/TradingMenu1080.swf', + 'Common/Media/TutorialPopup1080.swf', + 'Common/Media/AnvilMenuSplit1080.swf', + 'Common/Media/BrewingStandMenuSplit1080.swf', + 'Common/Media/ChestMenuSplit1080.swf', + 'Common/Media/ChestLargeMenuSplit1080.swf', + 'Common/Media/ControlsSplit1080.swf', + 'Common/Media/Crafting2x2MenuSplit1080.swf', + 'Common/Media/Crafting3x3MenuSplit1080.swf', + 'Common/Media/CreativeMenuSplit1080.swf', + 'Common/Media/DeathMenuSplit1080.swf', + 'Common/Media/DispenserMenuSplit1080.swf', + 'Common/Media/EnchantingMenuSplit1080.swf', + 'Common/Media/FurnaceMenuSplit1080.swf', + 'Common/Media/FullscreenProgressSplit1080.swf', + 'Common/Media/HelpAndOptionsMenuSplit1080.swf', + 'Common/Media/HowToPlaySplit1080.swf', + 'Common/Media/HowToPlayMenuSplit1080.swf', + 'Common/Media/HUDSplit1080.swf', + 'Common/Media/InGameHostOptionsSplit1080.swf', + 'Common/Media/InGameInfoMenuSplit1080.swf', + 'Common/Media/InGameTeleportMenuSplit1080.swf', + 'Common/Media/InGamePlayerOptionsSplit1080.swf', + 'Common/Media/InventoryMenuSplit1080.swf', + 'Common/Media/MessageBoxSplit1080.swf', + 'Common/Media/PanoramaSplit1080.swf', + 'Common/Media/PauseMenuSplit1080.swf', + 'Common/Media/ReinstallMenuSplit1080.swf', + 'Common/Media/SettingsAudioMenuSplit1080.swf', + 'Common/Media/SettingsControlMenuSplit1080.swf', + 'Common/Media/SettingsGraphicsMenuSplit1080.swf', + 'Common/Media/SettingsMenuSplit1080.swf', + 'Common/Media/SettingsOptionsMenuSplit1080.swf', + 'Common/Media/SettingsUIMenuSplit1080.swf', + 'Common/Media/SignEntryMenuSplit1080.swf', + 'Common/Media/SkinSelectMenuSplit1080.swf', + 'Common/Media/TimerSplit1080.swf', + 'Common/Media/ToolTipsSplit1080.swf', + 'Common/Media/TradingMenuSplit1080.swf', + 'Common/Media/TutorialPopupSplit1080.swf', + 'Common/Media/Keyboard1080.swf', + 'Common/Media/KeyboardSplit1080.swf' ] archive_sources_movies720 = [ - movies_path / 'skinGraphics.swf', - movies_path / 'skinGraphicsHud.swf', - movies_path / 'skinGraphicsLabels.swf', - movies_path / 'skinGraphicsInGame.swf', - movies_path / 'skin.swf', - movies_path / 'skinHud.swf', - movies_path / 'skinLabels.swf', - movies_path / 'skinInGame.swf', - movies_path / 'AnvilMenu720.swf', - movies_path / 'BrewingStandMenu720.swf', - movies_path / 'ChestMenu720.swf', - movies_path / 'ChestLargeMenu720.swf', - movies_path / 'ComponentLogo720.swf', - movies_path / 'Controls720.swf', - movies_path / 'CreateWorldMenu720.swf', - movies_path / 'CreativeMenu720.swf', - movies_path / 'Credits720.swf', - movies_path / 'Crafting2x2Menu720.swf', - movies_path / 'Crafting3x3Menu720.swf', - movies_path / 'DeathMenu720.swf', - movies_path / 'DebugCreateSchematic720.swf', - movies_path / 'DebugMenu720.swf', - movies_path / 'DebugOptionsMenu720.swf', - movies_path / 'DebugSetCamera720.swf', - movies_path / 'DebugUIConsoleComponent720.swf', - movies_path / 'DebugUIMarketingGuide720.swf', - movies_path / 'DLCMainMenu720.swf', - movies_path / 'DispenserMenu720.swf', - movies_path / 'EnchantingMenu720.swf', - movies_path / 'EndPoem720.swf', - movies_path / 'EULA720.swf', - movies_path / 'FullscreenProgress720.swf', - movies_path / 'FurnaceMenu720.swf', - movies_path / 'HelpAndOptionsMenu720.swf', - movies_path / 'HowToPlay720.swf', - movies_path / 'HowToPlayMenu720.swf', - movies_path / 'HUD720.swf', - movies_path / 'InGameHostOptions720.swf', - movies_path / 'InGameInfoMenu720.swf', - movies_path / 'InGamePlayerOptions720.swf', - movies_path / 'InGameTeleportMenu720.swf', - movies_path / 'Intro720.swf', - movies_path / 'InventoryMenu720.swf', - movies_path / 'JoinMenu720.swf', - movies_path / 'LoadOrJoinMenu720.swf', - movies_path / 'LaunchMoreOptionsMenu720.swf', - movies_path / 'LeaderboardMenu720.swf', - movies_path / 'LoadMenu720.swf', - movies_path / 'MainMenu720.swf', - movies_path / 'MenuBackground720.swf', - movies_path / 'MessageBox720.swf', - movies_path / 'NewUpdateMessage720.swf', - movies_path / 'Panorama720.swf', - movies_path / 'PauseMenu720.swf', - movies_path / 'PressStartToPlay720.swf', - movies_path / 'QuadrantSignin720.swf', - movies_path / 'ReinstallMenu720.swf', - movies_path / 'SaveMessage720.swf', - movies_path / 'SettingsMenu720.swf', - movies_path / 'SettingsAudioMenu720.swf', - movies_path / 'SettingsControlMenu720.swf', - movies_path / 'SettingsGraphicsMenu720.swf', - movies_path / 'SettingsOptionsMenu720.swf', - movies_path / 'SettingsUIMenu720.swf', - movies_path / 'SignEntryMenu720.swf', - movies_path / 'SkinSelectMenu720.swf', - movies_path / 'Timer720.swf', - movies_path / 'ToolTips720.swf', - movies_path / 'TradingMenu720.swf', - movies_path / 'TutorialPopup720.swf', - movies_path / 'AnvilMenuSplit720.swf', - movies_path / 'BrewingStandMenuSplit720.swf', - movies_path / 'ChestMenuSplit720.swf', - movies_path / 'ChestLargeMenuSplit720.swf', - movies_path / 'ControlsSplit720.swf', - movies_path / 'ComponentLogoSplit720.swf', - movies_path / 'Crafting2x2MenuSplit720.swf', - movies_path / 'Crafting3x3MenuSplit720.swf', - movies_path / 'CreativeMenuSplit720.swf', - movies_path / 'DeathMenuSplit720.swf', - movies_path / 'DispenserMenuSplit720.swf', - movies_path / 'EnchantingMenuSplit720.swf', - movies_path / 'FurnaceMenuSplit720.swf', - movies_path / 'FullscreenProgressSplit720.swf', - movies_path / 'GamertagSplit720.swf', - movies_path / 'HelpAndOptionsMenuSplit720.swf', - movies_path / 'HowToPlaySplit720.swf', - movies_path / 'HowToPlayMenuSplit720.swf', - movies_path / 'HUDSplit720.swf', - movies_path / 'InGameHostOptionsSplit720.swf', - movies_path / 'InGameInfoMenuSplit720.swf', - movies_path / 'InGamePlayerOptionsSplit720.swf', - movies_path / 'InventoryMenuSplit720.swf', - movies_path / 'MessageBoxSplit720.swf', - movies_path / 'PanoramaSplit720.swf', - movies_path / 'PauseMenuSplit720.swf', - movies_path / 'ReinstallMenuSplit720.swf', - movies_path / 'SettingsAudioMenuSplit720.swf', - movies_path / 'SettingsControlMenuSplit720.swf', - movies_path / 'SettingsGraphicsMenuSplit720.swf', - movies_path / 'SettingsMenuSplit720.swf', - movies_path / 'SettingsOptionsMenuSplit720.swf', - movies_path / 'SettingsUIMenuSplit720.swf', - movies_path / 'SignEntryMenuSplit720.swf', - movies_path / 'InGameTeleportMenuSplit720.swf', - movies_path / 'ToolTipsSplit720.swf', - movies_path / 'TradingMenuSplit720.swf', - movies_path / 'TrialExitUpsell720.swf', - movies_path / 'TutorialPopupSplit720.swf', - movies_path / 'SkinSelectMenuSplit720.swf' + 'Common/Media/skinGraphics.swf', + 'Common/Media/skinGraphicsHud.swf', + 'Common/Media/skinGraphicsLabels.swf', + 'Common/Media/skinGraphicsInGame.swf', + 'Common/Media/skin.swf', + 'Common/Media/skinHud.swf', + 'Common/Media/skinLabels.swf', + 'Common/Media/skinInGame.swf', + 'Common/Media/AnvilMenu720.swf', + 'Common/Media/BrewingStandMenu720.swf', + 'Common/Media/ChestMenu720.swf', + 'Common/Media/ChestLargeMenu720.swf', + 'Common/Media/ComponentLogo720.swf', + 'Common/Media/Controls720.swf', + 'Common/Media/CreateWorldMenu720.swf', + 'Common/Media/CreativeMenu720.swf', + 'Common/Media/Credits720.swf', + 'Common/Media/Crafting2x2Menu720.swf', + 'Common/Media/Crafting3x3Menu720.swf', + 'Common/Media/DeathMenu720.swf', + 'Common/Media/DebugCreateSchematic720.swf', + 'Common/Media/DebugMenu720.swf', + 'Common/Media/DebugOptionsMenu720.swf', + 'Common/Media/DebugSetCamera720.swf', + 'Common/Media/DebugUIConsoleComponent720.swf', + 'Common/Media/DebugUIMarketingGuide720.swf', + 'Common/Media/DLCMainMenu720.swf', + 'Common/Media/DispenserMenu720.swf', + 'Common/Media/EnchantingMenu720.swf', + 'Common/Media/EndPoem720.swf', + 'Common/Media/EULA720.swf', + 'Common/Media/FullscreenProgress720.swf', + 'Common/Media/FurnaceMenu720.swf', + 'Common/Media/HelpAndOptionsMenu720.swf', + 'Common/Media/HowToPlay720.swf', + 'Common/Media/HowToPlayMenu720.swf', + 'Common/Media/HUD720.swf', + 'Common/Media/InGameHostOptions720.swf', + 'Common/Media/InGameInfoMenu720.swf', + 'Common/Media/InGamePlayerOptions720.swf', + 'Common/Media/InGameTeleportMenu720.swf', + 'Common/Media/Intro720.swf', + 'Common/Media/InventoryMenu720.swf', + 'Common/Media/JoinMenu720.swf', + 'Common/Media/LoadOrJoinMenu720.swf', + 'Common/Media/LaunchMoreOptionsMenu720.swf', + 'Common/Media/LeaderboardMenu720.swf', + 'Common/Media/LoadMenu720.swf', + 'Common/Media/MainMenu720.swf', + 'Common/Media/MenuBackground720.swf', + 'Common/Media/MessageBox720.swf', + 'Common/Media/NewUpdateMessage720.swf', + 'Common/Media/Panorama720.swf', + 'Common/Media/PauseMenu720.swf', + 'Common/Media/PressStartToPlay720.swf', + 'Common/Media/QuadrantSignin720.swf', + 'Common/Media/ReinstallMenu720.swf', + 'Common/Media/SaveMessage720.swf', + 'Common/Media/SettingsMenu720.swf', + 'Common/Media/SettingsAudioMenu720.swf', + 'Common/Media/SettingsControlMenu720.swf', + 'Common/Media/SettingsGraphicsMenu720.swf', + 'Common/Media/SettingsOptionsMenu720.swf', + 'Common/Media/SettingsUIMenu720.swf', + 'Common/Media/SignEntryMenu720.swf', + 'Common/Media/SkinSelectMenu720.swf', + 'Common/Media/Timer720.swf', + 'Common/Media/ToolTips720.swf', + 'Common/Media/TradingMenu720.swf', + 'Common/Media/TutorialPopup720.swf', + 'Common/Media/AnvilMenuSplit720.swf', + 'Common/Media/BrewingStandMenuSplit720.swf', + 'Common/Media/ChestMenuSplit720.swf', + 'Common/Media/ChestLargeMenuSplit720.swf', + 'Common/Media/ControlsSplit720.swf', + 'Common/Media/ComponentLogoSplit720.swf', + 'Common/Media/Crafting2x2MenuSplit720.swf', + 'Common/Media/Crafting3x3MenuSplit720.swf', + 'Common/Media/CreativeMenuSplit720.swf', + 'Common/Media/DeathMenuSplit720.swf', + 'Common/Media/DispenserMenuSplit720.swf', + 'Common/Media/EnchantingMenuSplit720.swf', + 'Common/Media/FurnaceMenuSplit720.swf', + 'Common/Media/FullscreenProgressSplit720.swf', + 'Common/Media/GamertagSplit720.swf', + 'Common/Media/HelpAndOptionsMenuSplit720.swf', + 'Common/Media/HowToPlaySplit720.swf', + 'Common/Media/HowToPlayMenuSplit720.swf', + 'Common/Media/HUDSplit720.swf', + 'Common/Media/InGameHostOptionsSplit720.swf', + 'Common/Media/InGameInfoMenuSplit720.swf', + 'Common/Media/InGamePlayerOptionsSplit720.swf', + 'Common/Media/InventoryMenuSplit720.swf', + 'Common/Media/MessageBoxSplit720.swf', + 'Common/Media/PanoramaSplit720.swf', + 'Common/Media/PauseMenuSplit720.swf', + 'Common/Media/ReinstallMenuSplit720.swf', + 'Common/Media/SettingsAudioMenuSplit720.swf', + 'Common/Media/SettingsControlMenuSplit720.swf', + 'Common/Media/SettingsGraphicsMenuSplit720.swf', + 'Common/Media/SettingsMenuSplit720.swf', + 'Common/Media/SettingsOptionsMenuSplit720.swf', + 'Common/Media/SettingsUIMenuSplit720.swf', + 'Common/Media/SignEntryMenuSplit720.swf', + 'Common/Media/InGameTeleportMenuSplit720.swf', + 'Common/Media/ToolTipsSplit720.swf', + 'Common/Media/TradingMenuSplit720.swf', + 'Common/Media/TrialExitUpsell720.swf', + 'Common/Media/TutorialPopupSplit720.swf', + 'Common/Media/SkinSelectMenuSplit720.swf' ] archive_sources_movies480 = [ - movies_path / 'AnvilMenu480.swf', - movies_path / 'BrewingStandMenu480.swf', - movies_path / 'ChestLargeMenu480.swf', - movies_path / 'ChestMenu480.swf', - movies_path / 'Controls480.swf', - movies_path / 'ComponentLogo480.swf', - movies_path / 'Crafting2x2Menu480.swf', - movies_path / 'Crafting3x3Menu480.swf', - movies_path / 'CreateWorldMenu480.swf', - movies_path / 'CreativeMenu480.swf', - movies_path / 'Credits480.swf', - movies_path / 'DeathMenu480.swf', - movies_path / 'DispenserMenu480.swf', - movies_path / 'DLCMainMenu480.swf', - movies_path / 'EnchantingMenu480.swf', - movies_path / 'EndPoem480.swf', - movies_path / 'EULA480.swf', - movies_path / 'FullscreenProgress480.swf', - movies_path / 'FurnaceMenu480.swf', - movies_path / 'HelpAndOptionsMenu480.swf', - movies_path / 'HowToPlay480.swf', - movies_path / 'HowToPlayMenu480.swf', - movies_path / 'HUD480.swf', - movies_path / 'InGameHostOptions480.swf', - movies_path / 'InGameInfoMenu480.swf', - movies_path / 'InGamePlayerOptions480.swf', - movies_path / 'Intro480.swf', - movies_path / 'InventoryMenu480.swf', - movies_path / 'JoinMenu480.swf', - movies_path / 'LaunchMoreOptionsMenu480.swf', - movies_path / 'LeaderboardMenu480.swf', - movies_path / 'LoadMenu480.swf', - movies_path / 'LoadOrJoinMenu480.swf', - movies_path / 'MainMenu480.swf', - movies_path / 'MenuBackground480.swf', - movies_path / 'MessageBox480.swf', - movies_path / 'NewUpdateMessage480.swf', - movies_path / 'Panorama480.swf', - movies_path / 'PauseMenu480.swf', - movies_path / 'PressStartToPlay480.swf', - movies_path / 'ReinstallMenu480.swf', - movies_path / 'SaveMessage480.swf', - movies_path / 'SettingsAudioMenu480.swf', - movies_path / 'SettingsControlMenu480.swf', - movies_path / 'SettingsGraphicsMenu480.swf', - movies_path / 'SettingsMenu480.swf', - movies_path / 'SettingsOptionsMenu480.swf', - movies_path / 'SettingsUIMenu480.swf', - movies_path / 'SignEntryMenu480.swf', - movies_path / 'SkinSelectMenu480.swf', - movies_path / 'InGameTeleportMenu480.swf', - movies_path / 'Timer480.swf', - movies_path / 'ToolTips480.swf', - movies_path / 'TradingMenu480.swf', - movies_path / 'TrialExitUpsell480.swf', - movies_path / 'TutorialPopup480.swf' + 'Common/Media/AnvilMenu480.swf', + 'Common/Media/BrewingStandMenu480.swf', + 'Common/Media/ChestLargeMenu480.swf', + 'Common/Media/ChestMenu480.swf', + 'Common/Media/Controls480.swf', + 'Common/Media/ComponentLogo480.swf', + 'Common/Media/Crafting2x2Menu480.swf', + 'Common/Media/Crafting3x3Menu480.swf', + 'Common/Media/CreateWorldMenu480.swf', + 'Common/Media/CreativeMenu480.swf', + 'Common/Media/Credits480.swf', + 'Common/Media/DeathMenu480.swf', + 'Common/Media/DispenserMenu480.swf', + 'Common/Media/DLCMainMenu480.swf', + 'Common/Media/EnchantingMenu480.swf', + 'Common/Media/EndPoem480.swf', + 'Common/Media/EULA480.swf', + 'Common/Media/FullscreenProgress480.swf', + 'Common/Media/FurnaceMenu480.swf', + 'Common/Media/HelpAndOptionsMenu480.swf', + 'Common/Media/HowToPlay480.swf', + 'Common/Media/HowToPlayMenu480.swf', + 'Common/Media/HUD480.swf', + 'Common/Media/InGameHostOptions480.swf', + 'Common/Media/InGameInfoMenu480.swf', + 'Common/Media/InGamePlayerOptions480.swf', + 'Common/Media/Intro480.swf', + 'Common/Media/InventoryMenu480.swf', + 'Common/Media/JoinMenu480.swf', + 'Common/Media/LaunchMoreOptionsMenu480.swf', + 'Common/Media/LeaderboardMenu480.swf', + 'Common/Media/LoadMenu480.swf', + 'Common/Media/LoadOrJoinMenu480.swf', + 'Common/Media/MainMenu480.swf', + 'Common/Media/MenuBackground480.swf', + 'Common/Media/MessageBox480.swf', + 'Common/Media/NewUpdateMessage480.swf', + 'Common/Media/Panorama480.swf', + 'Common/Media/PauseMenu480.swf', + 'Common/Media/PressStartToPlay480.swf', + 'Common/Media/ReinstallMenu480.swf', + 'Common/Media/SaveMessage480.swf', + 'Common/Media/SettingsAudioMenu480.swf', + 'Common/Media/SettingsControlMenu480.swf', + 'Common/Media/SettingsGraphicsMenu480.swf', + 'Common/Media/SettingsMenu480.swf', + 'Common/Media/SettingsOptionsMenu480.swf', + 'Common/Media/SettingsUIMenu480.swf', + 'Common/Media/SignEntryMenu480.swf', + 'Common/Media/SkinSelectMenu480.swf', + 'Common/Media/InGameTeleportMenu480.swf', + 'Common/Media/Timer480.swf', + 'Common/Media/ToolTips480.swf', + 'Common/Media/TradingMenu480.swf', + 'Common/Media/TrialExitUpsell480.swf', + 'Common/Media/TutorialPopup480.swf' ] archive_sources_moviesVita = [ - movies_path / 'skinGraphics.swf', - movies_path / 'skinGraphicsHud.swf', - movies_path / 'skinGraphicsLabels.swf', - movies_path / 'skinGraphicsInGame.swf', - movies_path / 'skin.swf', - movies_path / 'skinHud.swf', - movies_path / 'skinLabels.swf', - movies_path / 'skinInGame.swf', - movies_path / 'AnvilMenuVita.swf', - movies_path / 'BrewingStandMenuVita.swf', - movies_path / 'ChestLargeMenuVita.swf', - movies_path / 'ChestMenuVita.swf', - movies_path / 'ComponentLogoVita.swf', - movies_path / 'ControlsVita.swf', - movies_path / 'ControlsTVVita.swf', - movies_path / 'Crafting2x2MenuVita.swf', - movies_path / 'Crafting3x3MenuVita.swf', - movies_path / 'CreateWorldMenuVita.swf', - movies_path / 'CreativeMenuVita.swf', - movies_path / 'CreditsVita.swf', - movies_path / 'DeathMenuVita.swf', - movies_path / 'DispenserMenuVita.swf', - movies_path / 'DLCMainMenuVita.swf', - movies_path / 'EnchantingMenuVita.swf', - movies_path / 'EndPoemVita.swf', - movies_path / 'EULAVita.swf', - movies_path / 'FullscreenProgressVita.swf', - movies_path / 'FurnaceMenuVita.swf', - movies_path / 'HelpAndOptionsMenuVita.swf', - movies_path / 'HowToPlayMenuVita.swf', - movies_path / 'HowToPlayVita.swf', - movies_path / 'HUDVita.swf', - movies_path / 'InGameHostOptionsVita.swf', - movies_path / 'InGameInfoMenuVita.swf', - movies_path / 'InGamePlayerOptionsVita.swf', - movies_path / 'InGameTeleportMenuVita.swf', - movies_path / 'IntroVita.swf', - movies_path / 'InventoryMenuVita.swf', - movies_path / 'JoinMenuVita.swf', - movies_path / 'LaunchMoreOptionsMenuVita.swf', - movies_path / 'LeaderboardMenuVita.swf', - movies_path / 'LoadMenuVita.swf', - movies_path / 'LoadOrJoinMenuVita.swf', - movies_path / 'MainMenuVita.swf', - movies_path / 'MenuBackgroundVita.swf', - movies_path / 'MessageBoxVita.swf', - movies_path / 'NewUpdateMessageVita.swf', - movies_path / 'PanoramaVita.swf', - movies_path / 'PauseMenuVita.swf', - movies_path / 'PressStartToPlayVita.swf', - movies_path / 'ReinstallMenuVita.swf', - movies_path / 'SaveMessageVita.swf', - movies_path / 'SettingsAudioMenuVita.swf', - movies_path / 'SettingsControlMenuVita.swf', - movies_path / 'SettingsGraphicsMenuVita.swf', - movies_path / 'SettingsMenuVita.swf', - movies_path / 'SettingsOptionsMenuVita.swf', - movies_path / 'SettingsUIMenuVita.swf', - movies_path / 'SignEntryMenuVita.swf', - movies_path / 'SkinSelectMenuVita.swf', - movies_path / 'TimerVita.swf', - movies_path / 'ToolTipsVita.swf', - movies_path / 'TradingMenuVita.swf', - movies_path / 'TutorialPopupVita.swf', - movies_path / 'DebugCreateSchematic720.swf', - movies_path / 'DebugMenu720.swf', - movies_path / 'DebugOptionsMenu720.swf', - movies_path / 'DebugSetCamera720.swf', - movies_path / 'DebugUIConsoleComponent720.swf', - movies_path / 'DebugUIMarketingGuide720.swf' + 'Common/Media/skinGraphics.swf', + 'Common/Media/skinGraphicsHud.swf', + 'Common/Media/skinGraphicsLabels.swf', + 'Common/Media/skinGraphicsInGame.swf', + 'Common/Media/skin.swf', + 'Common/Media/skinHud.swf', + 'Common/Media/skinLabels.swf', + 'Common/Media/skinInGame.swf', + 'Common/Media/AnvilMenuVita.swf', + 'Common/Media/BrewingStandMenuVita.swf', + 'Common/Media/ChestLargeMenuVita.swf', + 'Common/Media/ChestMenuVita.swf', + 'Common/Media/ComponentLogoVita.swf', + 'Common/Media/ControlsVita.swf', + 'Common/Media/ControlsTVVita.swf', + 'Common/Media/Crafting2x2MenuVita.swf', + 'Common/Media/Crafting3x3MenuVita.swf', + 'Common/Media/CreateWorldMenuVita.swf', + 'Common/Media/CreativeMenuVita.swf', + 'Common/Media/CreditsVita.swf', + 'Common/Media/DeathMenuVita.swf', + 'Common/Media/DispenserMenuVita.swf', + 'Common/Media/DLCMainMenuVita.swf', + 'Common/Media/EnchantingMenuVita.swf', + 'Common/Media/EndPoemVita.swf', + 'Common/Media/EULAVita.swf', + 'Common/Media/FullscreenProgressVita.swf', + 'Common/Media/FurnaceMenuVita.swf', + 'Common/Media/HelpAndOptionsMenuVita.swf', + 'Common/Media/HowToPlayMenuVita.swf', + 'Common/Media/HowToPlayVita.swf', + 'Common/Media/HUDVita.swf', + 'Common/Media/InGameHostOptionsVita.swf', + 'Common/Media/InGameInfoMenuVita.swf', + 'Common/Media/InGamePlayerOptionsVita.swf', + 'Common/Media/InGameTeleportMenuVita.swf', + 'Common/Media/IntroVita.swf', + 'Common/Media/InventoryMenuVita.swf', + 'Common/Media/JoinMenuVita.swf', + 'Common/Media/LaunchMoreOptionsMenuVita.swf', + 'Common/Media/LeaderboardMenuVita.swf', + 'Common/Media/LoadMenuVita.swf', + 'Common/Media/LoadOrJoinMenuVita.swf', + 'Common/Media/MainMenuVita.swf', + 'Common/Media/MenuBackgroundVita.swf', + 'Common/Media/MessageBoxVita.swf', + 'Common/Media/NewUpdateMessageVita.swf', + 'Common/Media/PanoramaVita.swf', + 'Common/Media/PauseMenuVita.swf', + 'Common/Media/PressStartToPlayVita.swf', + 'Common/Media/ReinstallMenuVita.swf', + 'Common/Media/SaveMessageVita.swf', + 'Common/Media/SettingsAudioMenuVita.swf', + 'Common/Media/SettingsControlMenuVita.swf', + 'Common/Media/SettingsGraphicsMenuVita.swf', + 'Common/Media/SettingsMenuVita.swf', + 'Common/Media/SettingsOptionsMenuVita.swf', + 'Common/Media/SettingsUIMenuVita.swf', + 'Common/Media/SignEntryMenuVita.swf', + 'Common/Media/SkinSelectMenuVita.swf', + 'Common/Media/TimerVita.swf', + 'Common/Media/ToolTipsVita.swf', + 'Common/Media/TradingMenuVita.swf', + 'Common/Media/TutorialPopupVita.swf', + 'Common/Media/DebugCreateSchematic720.swf', + 'Common/Media/DebugMenu720.swf', + 'Common/Media/DebugOptionsMenu720.swf', + 'Common/Media/DebugSetCamera720.swf', + 'Common/Media/DebugUIConsoleComponent720.swf', + 'Common/Media/DebugUIMarketingGuide720.swf' ] -assets_archive = custom_target('Minecraft.Assets_Archive', - output : 'MediaWindows64.arc', +media_archive = custom_target('Minecraft.Media_Archive', + output : 'MediaLinux.arc', input : archive_sources + archive_sources_movies1080 + archive_sources_movies720, command : [ - 'python3', meson.project_source_root() / 'scripts/pack_arc.py', + python, meson.project_source_root() / 'scripts/pack_arc.py', '@OUTPUT@', '@INPUT@' ], - install : true, install_dir : 'Common/Media', + install : true, build_by_default : true ) - # # Dep defines # - assets_localisation_dep = declare_dependency( - sources : localisation[1], - # sources : client_platform_path / 'Windows64Media/strings.h', - include_directories : include_directories('.') -) - + sources : localisation[1], + # sources : client_platform_path / 'Windows64Media/strings.h', + include_directories : include_directories('.') +) \ No newline at end of file diff --git a/Minecraft.Client/meson.build b/Minecraft.Client/meson.build index 5ef5cd0e9..5451c79d3 100644 --- a/Minecraft.Client/meson.build +++ b/Minecraft.Client/meson.build @@ -16,7 +16,7 @@ platform_sources = run_command( check : true, ).stdout().strip().split('\n') -# some platform-specific sources that are for some stupid reason in Platform/Common +# some platform-specific sources that are for some stupid reason in Common exclude_platform_common_sources = [ ' ! -path "*/Network/Sony/*"', ' ! -path "*/XUI/*"', diff --git a/meson.build b/meson.build index b6e564454..5f0751b64 100644 --- a/meson.build +++ b/meson.build @@ -9,6 +9,9 @@ project('4jcraft-chucklegrounds', ['cpp', 'c'], ], ) +pymod = import('python') +python = pymod.find_installation('python3', required: true) + cc = meson.get_compiler('cpp') # system deps @@ -50,4 +53,4 @@ subdir('4J.Profile') subdir('4J.Storage') subdir('Minecraft.Assets') subdir('Minecraft.World') -subdir('Minecraft.Client') +subdir('Minecraft.Client') \ No newline at end of file diff --git a/scripts/build_col.py b/scripts/build_col.py index 55f783360..e8626c0d8 100644 --- a/scripts/build_col.py +++ b/scripts/build_col.py @@ -1,3 +1,4 @@ +#!/usr/bin/env python3 ''' Copyright (c) 2026 Pyogenics diff --git a/scripts/move_assets_to_client.py b/scripts/move_assets_to_client.py new file mode 100644 index 000000000..54df3b44a --- /dev/null +++ b/scripts/move_assets_to_client.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python3 + +import os +import shutil +import sys +from pathlib import Path + +project_source_root = Path(sys.argv[1]) +build_root_dir = Path(sys.argv[2]) +client_build_dir = Path(sys.argv[3]) +media_archive = Path(sys.argv[4]) +output_stamp = Path(sys.argv[5]) + +# At runtime, the client expects a `Common/` folder from the Minecraft.Assets source and a compiled +# media archive (LinuxMedia.arc) inside of said folder at its current working directory to launch. +# +# `meson install` also handles this, but installs it to system folders, which can be annoying for +# testing. Since we want a way to run it straight from `/build` when debugging, we do this instead. +dest_common = Path(client_build_dir / "Common") + +# clear out any old assets +if dest_common.exists(): + shutil.rmtree(dest_common) + +# copy `Minecraft.Assets/Common` into the build directory for the client. +shutil.copytree( + project_source_root / "Minecraft.Assets" / "Common", + dest_common, +) + +# copy the media archive to `Common/Media` inside the folder we just copied. +shutil.copy(media_archive, client_build_dir / "Common" / "Media") + +# modify the stamp so this only happens when client or media_archive targets are changed +output_stamp.touch() \ No newline at end of file diff --git a/scripts/pack_arc.py b/scripts/pack_arc.py index 6dd50f4f6..22ec24158 100644 --- a/scripts/pack_arc.py +++ b/scripts/pack_arc.py @@ -1,3 +1,4 @@ +#!/usr/bin/env python3 ''' Copyright (c) 2026 Pyogenics diff --git a/scripts/pack_loc.py b/scripts/pack_loc.py index 42afaf3d9..c8cad2462 100644 --- a/scripts/pack_loc.py +++ b/scripts/pack_loc.py @@ -1,3 +1,4 @@ +#!/usr/bin/env python3 ''' Copyright (c) 2026 Pyogenics