From 484a0b0205827a5b9d561417ea1199e66d59453c Mon Sep 17 00:00:00 2001 From: Eric Froemling Date: Fri, 17 Jan 2025 08:47:44 -0800 Subject: [PATCH] added the lovely bomb spinner from era as a spinnerwidget style and made it default --- .efrocachemap | 96 ++++++++++++++----- CHANGELOG.md | 2 +- src/assets/.asset_manifest_private.json | 48 ++++++++++ src/assets/Makefile | 48 ++++++++++ src/assets/ba_data/python/baenv.py | 2 +- src/ballistica/base/assets/assets.cc | 12 +++ src/ballistica/base/base.h | 14 ++- src/ballistica/shared/ballistica.cc | 2 +- .../python/methods/python_methods_ui_v1.cc | 20 +++- src/ballistica/ui_v1/widget/spinner_widget.cc | 55 ++++++++++- src/ballistica/ui_v1/widget/spinner_widget.h | 7 ++ 11 files changed, 272 insertions(+), 34 deletions(-) diff --git a/.efrocachemap b/.efrocachemap index 6b5950d6..4ca90ca1 100644 --- a/.efrocachemap +++ b/.efrocachemap @@ -2381,6 +2381,54 @@ "build/assets/ba_data/textures/spinner.dds": "54b0a3a695689974defcb7d0ddc40101", "build/assets/ba_data/textures/spinner.ktx": "9e47f8b7dcca8f061bff6a04a30a2833", "build/assets/ba_data/textures/spinner.pvr": "312c7ffa74c39d262d00971881ecd93b", + "build/assets/ba_data/textures/spinner0.dds": "1c62fedbcc2f55b84a53b4841230b9e0", + "build/assets/ba_data/textures/spinner0.ktx": "06a8b8a1b5c8bbad637313b7818dec59", + "build/assets/ba_data/textures/spinner0.pvr": "0f404c86e8ab3603cfad6a0566ab8b1e", + "build/assets/ba_data/textures/spinner0_preview.png": "182baf3f106303132f29e31e51250a2b", + "build/assets/ba_data/textures/spinner1.dds": "ffa465fce9a139284e873cc85f02e3ab", + "build/assets/ba_data/textures/spinner1.ktx": "9ee11de66cead63e36a7505f404278f7", + "build/assets/ba_data/textures/spinner1.pvr": "03ef811248760e4ff3b90bec295163da", + "build/assets/ba_data/textures/spinner10.dds": "992dbcdb08acf9284b3dd18759950699", + "build/assets/ba_data/textures/spinner10.ktx": "314abb7ae6536f4d5de1d8099d96fead", + "build/assets/ba_data/textures/spinner10.pvr": "453264e8736613e1ba1a59c157c761f5", + "build/assets/ba_data/textures/spinner10_preview.png": "c28cac92114a3b2ed2eae915a2431c38", + "build/assets/ba_data/textures/spinner11.dds": "6dd77e45ade453cb36a066d1f4ccf8d5", + "build/assets/ba_data/textures/spinner11.ktx": "e6b9d621e34131fc5f8da03cca0649c2", + "build/assets/ba_data/textures/spinner11.pvr": "59cc203dace6a08b0e2f2ca103427105", + "build/assets/ba_data/textures/spinner11_preview.png": "f5dd9439e0ce99ff31b97bbc1af55e85", + "build/assets/ba_data/textures/spinner1_preview.png": "4aaffc8cec040ab3058aeb50e6be49ec", + "build/assets/ba_data/textures/spinner2.dds": "d84debcc6b076b42ab8e6c799e5b0df5", + "build/assets/ba_data/textures/spinner2.ktx": "71bb08632f95b2d552b320e48e2955b8", + "build/assets/ba_data/textures/spinner2.pvr": "d9384f81bf6b94907019247c2ae20468", + "build/assets/ba_data/textures/spinner2_preview.png": "7441b95e3b7b69d0ecba8b0b71611e4e", + "build/assets/ba_data/textures/spinner3.dds": "a738c7db7b4842dea1d8b595b1159212", + "build/assets/ba_data/textures/spinner3.ktx": "9e6dcfb161800063ab49a78983b03497", + "build/assets/ba_data/textures/spinner3.pvr": "bd5627e6b41f4db255d8b54b3a1c9796", + "build/assets/ba_data/textures/spinner3_preview.png": "911ec29183f3a4bfec45a74863f62f2b", + "build/assets/ba_data/textures/spinner4.dds": "814b3286b553aa70b4949156ab4e5116", + "build/assets/ba_data/textures/spinner4.ktx": "25131e369fc5e24b33ca14c88cfa5eaf", + "build/assets/ba_data/textures/spinner4.pvr": "55e63f6d85bf7873aa32a0f013d8ad33", + "build/assets/ba_data/textures/spinner4_preview.png": "3a301f2f673acbf75480e211caec25ae", + "build/assets/ba_data/textures/spinner5.dds": "14dbc97413141f238a514595f21f909b", + "build/assets/ba_data/textures/spinner5.ktx": "7c12a514b49dd9883941114d4ff29d21", + "build/assets/ba_data/textures/spinner5.pvr": "dc715c49f150c2528e979c3c050353a3", + "build/assets/ba_data/textures/spinner5_preview.png": "c1c5bf49ed1e9d902a3402b1988f5c2e", + "build/assets/ba_data/textures/spinner6.dds": "f5da6259f64e5ecf3f52cdf072b93b5a", + "build/assets/ba_data/textures/spinner6.ktx": "06fd2b6ff11361916bb1269edc45eed8", + "build/assets/ba_data/textures/spinner6.pvr": "46adb7a332efc48952e3c6a6ac6653ca", + "build/assets/ba_data/textures/spinner6_preview.png": "e6eb29172a600e19a8ad50746a0a5d7a", + "build/assets/ba_data/textures/spinner7.dds": "1b17169545356b1b4a07149ca0cf806c", + "build/assets/ba_data/textures/spinner7.ktx": "1f2c477a88fcad987f2dca6570e8f4a1", + "build/assets/ba_data/textures/spinner7.pvr": "1ef6eea1f41fb4566727243697aa4586", + "build/assets/ba_data/textures/spinner7_preview.png": "d32b60dee75623814ad6e80479cc0a8c", + "build/assets/ba_data/textures/spinner8.dds": "a2f5e6656a7a1d6b4e0944a943fdb515", + "build/assets/ba_data/textures/spinner8.ktx": "c4f8ad150a2b44100ba4b20e17327dea", + "build/assets/ba_data/textures/spinner8.pvr": "c8af985255ccf92b710baefbb701e1c3", + "build/assets/ba_data/textures/spinner8_preview.png": "3129f7395fb0b164f61b525c636e3b3b", + "build/assets/ba_data/textures/spinner9.dds": "54cb8aac89d239732a159f6a8fbfdddb", + "build/assets/ba_data/textures/spinner9.ktx": "d5c65af44e8a03ebf144110bf1dd6637", + "build/assets/ba_data/textures/spinner9.pvr": "6e3cde21a8829c17620ee867446e488c", + "build/assets/ba_data/textures/spinner9_preview.png": "180ba8d95fb2e3432eb359d91b793655", "build/assets/ba_data/textures/spinner_preview.png": "680af969ab856865098dfcf4fb8b6845", "build/assets/ba_data/textures/star.dds": "e799668a604f3e680f7676994e894c1d", "build/assets/ba_data/textures/star.ktx": "725da9d09a93c636bd825788f859c62d", @@ -4126,22 +4174,22 @@ "build/assets/windows/Win32/ucrtbased.dll": "bfd1180c269d3950b76f35a63655e9e1", "build/assets/windows/Win32/vc_redist.x86.exe": "15a5f1f876503885adbdf5b3989b3718", "build/assets/windows/Win32/vcruntime140d.dll": "865b2af4d1e26a1a8073c89acb06e599", - "build/prefab/full/linux_arm64_gui/debug/ballisticakit": "1b62182e0466fe7324c8efd0a200a472", - "build/prefab/full/linux_arm64_gui/release/ballisticakit": "b02dbe8b27aa8652a4612adefa83455c", - "build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "669565afb8f2b89074d436dd198a2419", - "build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "6c0cf52c55bcfd75e8e351c623fb3039", - "build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "003a1b528c00fd3f8d9bf8369dd066e9", - "build/prefab/full/linux_x86_64_gui/release/ballisticakit": "1c64c91bd31b9f835a629480e6987281", - "build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "418668be72a86e15c736e3aed50a97de", - "build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "c307f9abcf5044baa72e1c357b8a62fb", - "build/prefab/full/mac_arm64_gui/debug/ballisticakit": "ffb63c7a3354152fa4faeb722d7e55e1", - "build/prefab/full/mac_arm64_gui/release/ballisticakit": "ebf4618f4a78e0c7e3aaec8de7a4a1bc", - "build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "cae3d890c467824753901c16099cd0b0", - "build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "1ecd9e8c0fa10babf6dc6329ad819466", - "build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "4061670ebc4762a19e3a50adf1e5c493", - "build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "38c425b1717d8d49558b8a953e7b8a6f", - "build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "f74c0f0068ca85f16c24e03f241e4cf6", - "build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "4e22ad07f0b128ea76c77afc5e99539d", + "build/prefab/full/linux_arm64_gui/debug/ballisticakit": "7d70aab272d19d3a8259c73c42303286", + "build/prefab/full/linux_arm64_gui/release/ballisticakit": "8e96faf2c718a22288d21c507d91a874", + "build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "e30e0a48d5443ed14814e20e4bad6c39", + "build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "b83a92b2f728cf8c31c3ccbcb75ae4b2", + "build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "dd9165e1b15a2bf0e9f031ba4eba04ce", + "build/prefab/full/linux_x86_64_gui/release/ballisticakit": "0b4b8e2f4be2e1a32548d68ec1ea6352", + "build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "94c46cf4c4e83d4b0607423178ef10af", + "build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "5e97089d59c6be9335e97ecf89a40dd3", + "build/prefab/full/mac_arm64_gui/debug/ballisticakit": "47adff640803b6b0593919c25e1db234", + "build/prefab/full/mac_arm64_gui/release/ballisticakit": "2f6bc04a3096848f7dead32652d3a480", + "build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "3c0acd04c89746de5d2dce5788d2cb2d", + "build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "cd056265bf7aca9ebc935728cfffce6d", + "build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "59c781b9cca04f3cf7e5dfcca5625280", + "build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "6f059bf04aacd8ef3182dd3577ed0904", + "build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "cfe6404ca4fe1dff6a31dc83285de5ea", + "build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "b693b0d77ed91270310edfffedc70dc9", "build/prefab/lib/linux_arm64_gui/debug/libballisticaplus.a": "b261c8140179fdaa56deeaff30b12e04", "build/prefab/lib/linux_arm64_gui/release/libballisticaplus.a": "72f521386bbf1ddfdd22b77b75a177fa", "build/prefab/lib/linux_arm64_server/debug/libballisticaplus.a": "b261c8140179fdaa56deeaff30b12e04", @@ -4154,14 +4202,14 @@ "build/prefab/lib/mac_arm64_gui/release/libballisticaplus.a": "ccb9b1af334e1594265fa9f68ae31937", "build/prefab/lib/mac_arm64_server/debug/libballisticaplus.a": "b8c4ecf1d17b2831f0eb8ff7d9ed496c", "build/prefab/lib/mac_arm64_server/release/libballisticaplus.a": "ccb9b1af334e1594265fa9f68ae31937", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "e3e116ce513eca674e13adf24fa55ba7", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "4d0c055d42e16cc0c311f32e53fead40", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "bcdf7b0398aa50c9e83c219ef55de54b", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "c47ea25a53a164af2aaddf7ec9b29a16", - "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "85f53f98450a37115aaa44b473833750", - "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "6ee5194d5c46a44fab82e5f746afb096", - "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "2c687b0d011bffe747810304da0e210a", - "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "51a0190483fc7bac9ecb5ffde6a7eebb", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "6cbe752b2e14bf9f55c6a9d106f75728", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "33f39a73f5888a5ba45f21b51c4528f7", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "f976f227c3e2420c23cedb01a48d8950", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "4b82625f6cc5c547b274b089ec71adf1", + "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "81d2ab3d8ff497debe83565ee0883a71", + "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "1fcf029af30b593e7eb8eced8343ba0d", + "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "36a90e522a89ef5fed8c4a038a537e34", + "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "d676fccdc16d33d5b4115e0160122b90", "src/assets/ba_data/python/babase/_mgen/__init__.py": "f885fed7f2ed98ff2ba271f9dbe3391c", "src/assets/ba_data/python/babase/_mgen/enums.py": "794d258d59fd17a61752843a9a0551ad", "src/ballistica/base/mgen/pyembed/binding_base.inc": "06042d31df0ff9af96b99477162e2a91", diff --git a/CHANGELOG.md b/CHANGELOG.md index 00977a07..7931c975 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -### 1.7.37 (build 22194, api 9, 2025-01-15) +### 1.7.37 (build 22196, api 9, 2025-01-17) - Bumping api version to 9. As you'll see below, there's some UI changes that will require a bit of work for any UI mods to adapt to. If your mods don't touch UI stuff at all you can simply bump your api version and call it a day. diff --git a/src/assets/.asset_manifest_private.json b/src/assets/.asset_manifest_private.json index 0c1da6e1..f552c3ce 100644 --- a/src/assets/.asset_manifest_private.json +++ b/src/assets/.asset_manifest_private.json @@ -2420,6 +2420,54 @@ "ba_data/textures/spinner.dds", "ba_data/textures/spinner.ktx", "ba_data/textures/spinner.pvr", + "ba_data/textures/spinner0.dds", + "ba_data/textures/spinner0.ktx", + "ba_data/textures/spinner0.pvr", + "ba_data/textures/spinner0_preview.png", + "ba_data/textures/spinner1.dds", + "ba_data/textures/spinner1.ktx", + "ba_data/textures/spinner1.pvr", + "ba_data/textures/spinner10.dds", + "ba_data/textures/spinner10.ktx", + "ba_data/textures/spinner10.pvr", + "ba_data/textures/spinner10_preview.png", + "ba_data/textures/spinner11.dds", + "ba_data/textures/spinner11.ktx", + "ba_data/textures/spinner11.pvr", + "ba_data/textures/spinner11_preview.png", + "ba_data/textures/spinner1_preview.png", + "ba_data/textures/spinner2.dds", + "ba_data/textures/spinner2.ktx", + "ba_data/textures/spinner2.pvr", + "ba_data/textures/spinner2_preview.png", + "ba_data/textures/spinner3.dds", + "ba_data/textures/spinner3.ktx", + "ba_data/textures/spinner3.pvr", + "ba_data/textures/spinner3_preview.png", + "ba_data/textures/spinner4.dds", + "ba_data/textures/spinner4.ktx", + "ba_data/textures/spinner4.pvr", + "ba_data/textures/spinner4_preview.png", + "ba_data/textures/spinner5.dds", + "ba_data/textures/spinner5.ktx", + "ba_data/textures/spinner5.pvr", + "ba_data/textures/spinner5_preview.png", + "ba_data/textures/spinner6.dds", + "ba_data/textures/spinner6.ktx", + "ba_data/textures/spinner6.pvr", + "ba_data/textures/spinner6_preview.png", + "ba_data/textures/spinner7.dds", + "ba_data/textures/spinner7.ktx", + "ba_data/textures/spinner7.pvr", + "ba_data/textures/spinner7_preview.png", + "ba_data/textures/spinner8.dds", + "ba_data/textures/spinner8.ktx", + "ba_data/textures/spinner8.pvr", + "ba_data/textures/spinner8_preview.png", + "ba_data/textures/spinner9.dds", + "ba_data/textures/spinner9.ktx", + "ba_data/textures/spinner9.pvr", + "ba_data/textures/spinner9_preview.png", "ba_data/textures/spinner_preview.png", "ba_data/textures/star.dds", "ba_data/textures/star.ktx", diff --git a/src/assets/Makefile b/src/assets/Makefile index 18004034..a697e1a4 100644 --- a/src/assets/Makefile +++ b/src/assets/Makefile @@ -5996,6 +5996,18 @@ TEX2D_DDS_TARGETS = \ $(BUILD_DIR)/ba_data/textures/softRectVertical.dds \ $(BUILD_DIR)/ba_data/textures/sparks.dds \ $(BUILD_DIR)/ba_data/textures/spinner.dds \ + $(BUILD_DIR)/ba_data/textures/spinner0.dds \ + $(BUILD_DIR)/ba_data/textures/spinner1.dds \ + $(BUILD_DIR)/ba_data/textures/spinner10.dds \ + $(BUILD_DIR)/ba_data/textures/spinner11.dds \ + $(BUILD_DIR)/ba_data/textures/spinner2.dds \ + $(BUILD_DIR)/ba_data/textures/spinner3.dds \ + $(BUILD_DIR)/ba_data/textures/spinner4.dds \ + $(BUILD_DIR)/ba_data/textures/spinner5.dds \ + $(BUILD_DIR)/ba_data/textures/spinner6.dds \ + $(BUILD_DIR)/ba_data/textures/spinner7.dds \ + $(BUILD_DIR)/ba_data/textures/spinner8.dds \ + $(BUILD_DIR)/ba_data/textures/spinner9.dds \ $(BUILD_DIR)/ba_data/textures/star.dds \ $(BUILD_DIR)/ba_data/textures/startButton.dds \ $(BUILD_DIR)/ba_data/textures/stepRightUpLevelColor.dds \ @@ -6411,6 +6423,18 @@ TEX2D_PVR_TARGETS = \ $(BUILD_DIR)/ba_data/textures/softRectVertical.pvr \ $(BUILD_DIR)/ba_data/textures/sparks.pvr \ $(BUILD_DIR)/ba_data/textures/spinner.pvr \ + $(BUILD_DIR)/ba_data/textures/spinner0.pvr \ + $(BUILD_DIR)/ba_data/textures/spinner1.pvr \ + $(BUILD_DIR)/ba_data/textures/spinner10.pvr \ + $(BUILD_DIR)/ba_data/textures/spinner11.pvr \ + $(BUILD_DIR)/ba_data/textures/spinner2.pvr \ + $(BUILD_DIR)/ba_data/textures/spinner3.pvr \ + $(BUILD_DIR)/ba_data/textures/spinner4.pvr \ + $(BUILD_DIR)/ba_data/textures/spinner5.pvr \ + $(BUILD_DIR)/ba_data/textures/spinner6.pvr \ + $(BUILD_DIR)/ba_data/textures/spinner7.pvr \ + $(BUILD_DIR)/ba_data/textures/spinner8.pvr \ + $(BUILD_DIR)/ba_data/textures/spinner9.pvr \ $(BUILD_DIR)/ba_data/textures/star.pvr \ $(BUILD_DIR)/ba_data/textures/startButton.pvr \ $(BUILD_DIR)/ba_data/textures/stepRightUpLevelColor.pvr \ @@ -6826,6 +6850,18 @@ TEX2D_KTX_TARGETS = \ $(BUILD_DIR)/ba_data/textures/softRectVertical.ktx \ $(BUILD_DIR)/ba_data/textures/sparks.ktx \ $(BUILD_DIR)/ba_data/textures/spinner.ktx \ + $(BUILD_DIR)/ba_data/textures/spinner0.ktx \ + $(BUILD_DIR)/ba_data/textures/spinner1.ktx \ + $(BUILD_DIR)/ba_data/textures/spinner10.ktx \ + $(BUILD_DIR)/ba_data/textures/spinner11.ktx \ + $(BUILD_DIR)/ba_data/textures/spinner2.ktx \ + $(BUILD_DIR)/ba_data/textures/spinner3.ktx \ + $(BUILD_DIR)/ba_data/textures/spinner4.ktx \ + $(BUILD_DIR)/ba_data/textures/spinner5.ktx \ + $(BUILD_DIR)/ba_data/textures/spinner6.ktx \ + $(BUILD_DIR)/ba_data/textures/spinner7.ktx \ + $(BUILD_DIR)/ba_data/textures/spinner8.ktx \ + $(BUILD_DIR)/ba_data/textures/spinner9.ktx \ $(BUILD_DIR)/ba_data/textures/star.ktx \ $(BUILD_DIR)/ba_data/textures/startButton.ktx \ $(BUILD_DIR)/ba_data/textures/stepRightUpLevelColor.ktx \ @@ -7240,6 +7276,18 @@ TEX2D_PREVIEW_PNG_TARGETS = \ $(BUILD_DIR)/ba_data/textures/softRectVertical_preview.png \ $(BUILD_DIR)/ba_data/textures/softRect_preview.png \ $(BUILD_DIR)/ba_data/textures/sparks_preview.png \ + $(BUILD_DIR)/ba_data/textures/spinner0_preview.png \ + $(BUILD_DIR)/ba_data/textures/spinner10_preview.png \ + $(BUILD_DIR)/ba_data/textures/spinner11_preview.png \ + $(BUILD_DIR)/ba_data/textures/spinner1_preview.png \ + $(BUILD_DIR)/ba_data/textures/spinner2_preview.png \ + $(BUILD_DIR)/ba_data/textures/spinner3_preview.png \ + $(BUILD_DIR)/ba_data/textures/spinner4_preview.png \ + $(BUILD_DIR)/ba_data/textures/spinner5_preview.png \ + $(BUILD_DIR)/ba_data/textures/spinner6_preview.png \ + $(BUILD_DIR)/ba_data/textures/spinner7_preview.png \ + $(BUILD_DIR)/ba_data/textures/spinner8_preview.png \ + $(BUILD_DIR)/ba_data/textures/spinner9_preview.png \ $(BUILD_DIR)/ba_data/textures/spinner_preview.png \ $(BUILD_DIR)/ba_data/textures/star_preview.png \ $(BUILD_DIR)/ba_data/textures/startButton_preview.png \ diff --git a/src/assets/ba_data/python/baenv.py b/src/assets/ba_data/python/baenv.py index 670fbfea..6b6616f4 100644 --- a/src/assets/ba_data/python/baenv.py +++ b/src/assets/ba_data/python/baenv.py @@ -53,7 +53,7 @@ if TYPE_CHECKING: # Build number and version of the ballistica binary we expect to be # using. -TARGET_BALLISTICA_BUILD = 22194 +TARGET_BALLISTICA_BUILD = 22196 TARGET_BALLISTICA_VERSION = '1.7.37' diff --git a/src/ballistica/base/assets/assets.cc b/src/ballistica/base/assets/assets.cc index 14bc31c9..45606f52 100644 --- a/src/ballistica/base/assets/assets.cc +++ b/src/ballistica/base/assets/assets.cc @@ -166,6 +166,18 @@ void Assets::StartLoading() { LoadSystemTexture(SysTextureID::kBlack, "black"); LoadSystemTexture(SysTextureID::kWings, "wings"); LoadSystemTexture(SysTextureID::kSpinner, "spinner"); + LoadSystemTexture(SysTextureID::kSpinner0, "spinner0"); + LoadSystemTexture(SysTextureID::kSpinner1, "spinner1"); + LoadSystemTexture(SysTextureID::kSpinner2, "spinner2"); + LoadSystemTexture(SysTextureID::kSpinner3, "spinner3"); + LoadSystemTexture(SysTextureID::kSpinner4, "spinner4"); + LoadSystemTexture(SysTextureID::kSpinner5, "spinner5"); + LoadSystemTexture(SysTextureID::kSpinner6, "spinner6"); + LoadSystemTexture(SysTextureID::kSpinner7, "spinner7"); + LoadSystemTexture(SysTextureID::kSpinner8, "spinner8"); + LoadSystemTexture(SysTextureID::kSpinner9, "spinner9"); + LoadSystemTexture(SysTextureID::kSpinner10, "spinner10"); + LoadSystemTexture(SysTextureID::kSpinner11, "spinner11"); // System cube map textures: LoadSystemCubeMapTexture(SysCubeMapTextureID::kReflectionChar, diff --git a/src/ballistica/base/base.h b/src/ballistica/base/base.h index 7da63538..8075c82c 100644 --- a/src/ballistica/base/base.h +++ b/src/ballistica/base/base.h @@ -477,7 +477,19 @@ enum class SysTextureID : uint8_t { kCharacterIconMask, kBlack, kWings, - kSpinner + kSpinner, + kSpinner0, + kSpinner1, + kSpinner2, + kSpinner3, + kSpinner4, + kSpinner5, + kSpinner6, + kSpinner7, + kSpinner8, + kSpinner9, + kSpinner10, + kSpinner11, }; enum class SysCubeMapTextureID : uint8_t { diff --git a/src/ballistica/shared/ballistica.cc b/src/ballistica/shared/ballistica.cc index fe2f5678..614ae1df 100644 --- a/src/ballistica/shared/ballistica.cc +++ b/src/ballistica/shared/ballistica.cc @@ -39,7 +39,7 @@ auto main(int argc, char** argv) -> int { namespace ballistica { // These are set automatically via script; don't modify them here. -const int kEngineBuildNumber = 22194; +const int kEngineBuildNumber = 22196; const char* kEngineVersion = "1.7.37"; const int kEngineApiVersion = 9; diff --git a/src/ballistica/ui_v1/python/methods/python_methods_ui_v1.cc b/src/ballistica/ui_v1/python/methods/python_methods_ui_v1.cc index 9b083e7b..fcb99046 100644 --- a/src/ballistica/ui_v1/python/methods/python_methods_ui_v1.cc +++ b/src/ballistica/ui_v1/python/methods/python_methods_ui_v1.cc @@ -913,12 +913,13 @@ static auto PySpinnerWidget(PyObject* self, PyObject* args, PyObject* keywds) PyObject* size_obj{Py_None}; PyObject* pos_obj{Py_None}; PyObject* visible_obj{Py_None}; + PyObject* style_obj{Py_None}; - static const char* kwlist[] = {"edit", "parent", "size", - "position", "visible", nullptr}; + static const char* kwlist[] = {"edit", "parent", "size", "position", + "visible", "style", nullptr}; if (!PyArg_ParseTupleAndKeywords( - args, keywds, "|OOOOO", const_cast(kwlist), &edit_obj, - &parent_obj, &size_obj, &pos_obj, &visible_obj)) + args, keywds, "|OOOOOO", const_cast(kwlist), &edit_obj, + &parent_obj, &size_obj, &pos_obj, &visible_obj, &style_obj)) return nullptr; if (!g_base->CurrentContext().IsEmpty()) { @@ -958,6 +959,16 @@ static auto PySpinnerWidget(PyObject* self, PyObject* args, PyObject* keywds) if (visible_obj != Py_None) { b->set_visible(Python::GetPyBool(visible_obj)); } + if (style_obj != Py_None) { + auto style_str = Python::GetPyString(style_obj); + if (style_str == "bomb") { + b->set_style(SpinnerWidget::Style::kBomb); + } else if (style_str == "simple") { + b->set_style(SpinnerWidget::Style::kSimple); + } else { + throw Exception("Invalid style value '" + style_str + "'"); + } + } // If making a new widget, add it at the end. if (edit_obj == Py_None) { @@ -981,6 +992,7 @@ static PyMethodDef PySpinnerWidgetDef = { " parent: bauiv1.Widget | None = None,\n" " size: float | None = None,\n" " position: Sequence[float] | None = None,\n" + " style: Literal['bomb', 'simple'] | None = None,\n" " visible: bool | None = None,\n" ")\n" " -> bauiv1.Widget\n" diff --git a/src/ballistica/ui_v1/widget/spinner_widget.cc b/src/ballistica/ui_v1/widget/spinner_widget.cc index e851f0e4..a75c8c39 100644 --- a/src/ballistica/ui_v1/widget/spinner_widget.cc +++ b/src/ballistica/ui_v1/widget/spinner_widget.cc @@ -41,11 +41,62 @@ void SpinnerWidget::Draw(base::RenderPass* pass, bool draw_transparent) { base::SimpleComponent c(pass); c.SetTransparent(true); c.SetColor(1.0f, 1.0f, 1.0f, alpha); - c.SetTexture(g_base->assets->SysTexture(base::SysTextureID::kSpinner)); + + if (style_ == Style::kSimple) { + c.SetTexture(g_base->assets->SysTexture(base::SysTextureID::kSpinner)); + } else { + assert(style_ == Style::kBomb); + // Advance through our 12 frames at 24fps. + auto frame{ + static_cast(std::floor(std::fmod(current_time * 24.0, 12.0)))}; + base::SysTextureID tex; + switch (frame) { + case 0: + tex = base::SysTextureID::kSpinner0; + break; + case 1: + tex = base::SysTextureID::kSpinner1; + break; + case 2: + tex = base::SysTextureID::kSpinner2; + break; + case 3: + tex = base::SysTextureID::kSpinner3; + break; + case 4: + tex = base::SysTextureID::kSpinner4; + break; + case 5: + tex = base::SysTextureID::kSpinner5; + break; + case 6: + tex = base::SysTextureID::kSpinner6; + break; + case 7: + tex = base::SysTextureID::kSpinner7; + break; + case 8: + tex = base::SysTextureID::kSpinner8; + break; + case 9: + tex = base::SysTextureID::kSpinner9; + break; + case 10: + tex = base::SysTextureID::kSpinner10; + break; + default: + tex = base::SysTextureID::kSpinner11; + break; + } + c.SetTexture(g_base->assets->SysTexture(tex)); + } + { auto xf = c.ScopedTransform(); c.Scale(size_, size_, 1.0f); - c.Rotate(-360.0f * std::fmod(current_time * 2.0, 1.0), 0.0f, 0.0f, 1.0f); + if (style_ == Style::kSimple) { + c.Rotate(-360.0f * std::fmod(current_time * 2.0, 1.0), 0.0f, 0.0f, 1.0f); + } c.DrawMeshAsset(g_base->assets->SysMesh(base::SysMeshID::kImage1x1)); } c.Submit(); diff --git a/src/ballistica/ui_v1/widget/spinner_widget.h b/src/ballistica/ui_v1/widget/spinner_widget.h index ab724dc3..dcbef9f7 100644 --- a/src/ballistica/ui_v1/widget/spinner_widget.h +++ b/src/ballistica/ui_v1/widget/spinner_widget.h @@ -11,6 +11,10 @@ namespace ballistica::ui_v1 { class SpinnerWidget : public Widget { public: + enum class Style : uint8_t { + kBomb, + kSimple, + }; SpinnerWidget(); ~SpinnerWidget() override; void Draw(base::RenderPass* pass, bool transparent) override; @@ -25,9 +29,12 @@ class SpinnerWidget : public Widget { auto GetHeight() -> float override; auto GetWidgetTypeName() -> std::string override { return "spinner"; } + void set_style(Style val) { style_ = val; } + private: float size_{32.0f}; float presence_{}; + Style style_{Style::kBomb}; bool visible_{true}; };