diff --git a/.efrocachemap b/.efrocachemap index 076b505c..fc5c4413 100644 --- a/.efrocachemap +++ b/.efrocachemap @@ -4096,26 +4096,26 @@ "build/assets/windows/Win32/ucrtbased.dll": "2def5335207d41b21b9823f6805997f1", "build/assets/windows/Win32/vc_redist.x86.exe": "b08a55e2e77623fe657bea24f223a3ae", "build/assets/windows/Win32/vcruntime140d.dll": "865b2af4d1e26a1a8073c89acb06e599", - "build/prefab/full/linux_arm64_gui/debug/ballisticakit": "d75f5f4310f75e74040fd0617e64f808", - "build/prefab/full/linux_arm64_gui/release/ballisticakit": "b58ff78d4b313d2f929c4d02ee48c3fd", - "build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "09217687f4cd81efd1061788dbc16830", - "build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "556abef315aab24e2b29b058ec4e97fa", - "build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "f7c223996f159ead8e57bd5d718bfd57", - "build/prefab/full/linux_x86_64_gui/release/ballisticakit": "62b67a3c1dc9fa3460ad330a5e41fb57", - "build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "a64bff24f4813517b481696442f4a66c", - "build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "4e9fd279decc11c8f686c52474e97e4a", - "build/prefab/full/mac_arm64_gui/debug/ballisticakit": "4c5ce050b46aa6e69f49351bb81ff33f", - "build/prefab/full/mac_arm64_gui/release/ballisticakit": "faaade6fa2863f1ad214ca8f6440acfe", - "build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "8a5273647be0a4979ef7457d9a293f2a", - "build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "29caca9434388e5256c951f7f4ff3705", - "build/prefab/full/mac_x86_64_gui/debug/ballisticakit": "9addb788e8b1777f91952dd3dcd7a76c", - "build/prefab/full/mac_x86_64_gui/release/ballisticakit": "d4caaec3da50abfaef83e966c1e4b27e", - "build/prefab/full/mac_x86_64_server/debug/dist/ballisticakit_headless": "e6601219689eeb0aea9775b744cefc35", - "build/prefab/full/mac_x86_64_server/release/dist/ballisticakit_headless": "5c91f9eb1064b3291f337014362e6290", - "build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "b580bfe90d14ffa181484d5dcd0c2039", - "build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "f674dcf98a27bcc90c3dfaa0df103175", - "build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "ece0bcba0c29308b4f0b4f81a383abdf", - "build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "f2b6a65b264164145f5f0c90b74807a1", + "build/prefab/full/linux_arm64_gui/debug/ballisticakit": "fad0592c63dbf5623fd085b1f94dc5b5", + "build/prefab/full/linux_arm64_gui/release/ballisticakit": "b18b7d1073b180dd2b0ed563e3befda7", + "build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "2ea095b28288927982060509174ed625", + "build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "bdd91ad1d25228813e6123adecc16031", + "build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "354635e2cdb27b523c229ee3c723e136", + "build/prefab/full/linux_x86_64_gui/release/ballisticakit": "6a3ecdf84a34549f451cfa43e87bae28", + "build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "5e01a1b583a53c3d475013363b6e0372", + "build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "179905fc0b716c99c57b56179f84166e", + "build/prefab/full/mac_arm64_gui/debug/ballisticakit": "be15731bcd223a8723f146d8e3153b53", + "build/prefab/full/mac_arm64_gui/release/ballisticakit": "dfc1d123a5517302f5869b151a436a7f", + "build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "b1ef6725fdcf9071aba0f0f5e038727d", + "build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "24ac52a8b44b2b815cce76a150f38629", + "build/prefab/full/mac_x86_64_gui/debug/ballisticakit": "488119eac17785da1bf534702e8ed51f", + "build/prefab/full/mac_x86_64_gui/release/ballisticakit": "cb59173e8b176b98206b7f69b9a08972", + "build/prefab/full/mac_x86_64_server/debug/dist/ballisticakit_headless": "60700ee6b7ed262215fca2c02ec5561b", + "build/prefab/full/mac_x86_64_server/release/dist/ballisticakit_headless": "972c6e59e59ca24c7d1739b1d7530a30", + "build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "b04c87e6dec8916aaf3666fe0aa4d158", + "build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "04ddbccf8268c1199d196b3dc4559e1b", + "build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "02c9824a5e1951e8298c75196ae154e2", + "build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "da0705f8cc9e9eece02592fd1295ea40", "build/prefab/lib/linux_arm64_gui/debug/libballisticaplus.a": "73ad3303fe1a82005918fbc5dae3446c", "build/prefab/lib/linux_arm64_gui/release/libballisticaplus.a": "fa659b5d6119acba6570c92ce4d35ae2", "build/prefab/lib/linux_arm64_server/debug/libballisticaplus.a": "73ad3303fe1a82005918fbc5dae3446c", @@ -4124,22 +4124,22 @@ "build/prefab/lib/linux_x86_64_gui/release/libballisticaplus.a": "4a4c19120f810ff5b4c7afbf11c23cf6", "build/prefab/lib/linux_x86_64_server/debug/libballisticaplus.a": "ab8467107ed371eb542e0317a7e7395d", "build/prefab/lib/linux_x86_64_server/release/libballisticaplus.a": "4a4c19120f810ff5b4c7afbf11c23cf6", - "build/prefab/lib/mac_arm64_gui/debug/libballisticaplus.a": "bbee8acd115ca24fc14146a9fc47c676", - "build/prefab/lib/mac_arm64_gui/release/libballisticaplus.a": "8b68b56dda9a9f421823e653b752445a", - "build/prefab/lib/mac_arm64_server/debug/libballisticaplus.a": "bbee8acd115ca24fc14146a9fc47c676", - "build/prefab/lib/mac_arm64_server/release/libballisticaplus.a": "8b68b56dda9a9f421823e653b752445a", - "build/prefab/lib/mac_x86_64_gui/debug/libballisticaplus.a": "3108eb4d3a41bde33702e22fb893b218", - "build/prefab/lib/mac_x86_64_gui/release/libballisticaplus.a": "3e5c5fd0a09f55ba7b05ce1e2ec7171e", - "build/prefab/lib/mac_x86_64_server/debug/libballisticaplus.a": "1659535e95e3047fda529543e265ac97", - "build/prefab/lib/mac_x86_64_server/release/libballisticaplus.a": "3e5c5fd0a09f55ba7b05ce1e2ec7171e", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "b109d15f1fb304874cac3d931d43a36b", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "aa913ed657a00c1806ab09a8458222b8", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "4b48897babf11db572bbd1ebb6fdfb47", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "fefa3781a2f219fd11cde65e88ddf73b", - "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "b64f90b8ab5fad730899089902ee9cc3", - "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "97046c99136410186428976d96fc6089", - "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "945a62b44dfe35e066264e014fe20e27", - "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "79eb0ddb488d8d19141d7d1afb294398", + "build/prefab/lib/mac_arm64_gui/debug/libballisticaplus.a": "f4c36e72fa8d9d06f8a00684a3fc4679", + "build/prefab/lib/mac_arm64_gui/release/libballisticaplus.a": "3168e8377498df85a4adacede63d126a", + "build/prefab/lib/mac_arm64_server/debug/libballisticaplus.a": "f4c36e72fa8d9d06f8a00684a3fc4679", + "build/prefab/lib/mac_arm64_server/release/libballisticaplus.a": "3168e8377498df85a4adacede63d126a", + "build/prefab/lib/mac_x86_64_gui/debug/libballisticaplus.a": "427a392c291aa9562e93c570c9f1b92c", + "build/prefab/lib/mac_x86_64_gui/release/libballisticaplus.a": "3f50101eed1a5178d5630064dbafb3ee", + "build/prefab/lib/mac_x86_64_server/debug/libballisticaplus.a": "78cf6a2069ab46f5f0be3f5b57a6ee70", + "build/prefab/lib/mac_x86_64_server/release/libballisticaplus.a": "3f50101eed1a5178d5630064dbafb3ee", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "4769b8b8a99ef0e08aa968af3072fa38", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "f999d258cb8c7645c5b462ff81012289", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "aee027b5a96a835583d07ea95ac6d608", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "3f7d65bf17deb2714862df46c6772e06", + "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "d332af0eee1178cc7c00b6e3ed5ca8a2", + "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "2c8f29b6b26f657c776fee12f81bd28e", + "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "26a02edb690a0f9e5baaf0923cc1e57d", + "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "62d7688c402895869b794541366a3e20", "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": "efa61468cf098f77cc6a234461d8b86d", diff --git a/CHANGELOG.md b/CHANGELOG.md index bd00ec4c..ddad06aa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -### 1.7.37 (build 22004, api 9, 2024-09-05) +### 1.7.37 (build 22007, api 9, 2024-09-19) - 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/config/requirements.txt b/config/requirements.txt index 96493d90..0f456306 100644 --- a/config/requirements.txt +++ b/config/requirements.txt @@ -1,14 +1,14 @@ cpplint==1.6.1 dmgbuild==1.6.2 -filelock==3.15.4 +filelock==3.16.1 furo==2024.8.6 mypy==1.11.2 pbxproj==4.2.1 -pdoc==14.6.1 +pdoc==14.7.0 pur==7.3.2 pylint==3.2.7 pylsp-mypy==0.6.9 -pytest==8.3.2 +pytest==8.3.3 python-daemon==3.0.1 python-lsp-black==2.0.0 python-lsp-server==1.12.0 @@ -17,6 +17,6 @@ Sphinx==8.0.2 tomlkit==0.13.2 types-certifi==2021.10.8.3 types-filelock==3.2.7 -types-requests==2.32.0.20240905 +types-requests==2.32.0.20240914 typing_extensions==4.12.2 -urllib3==2.2.2 +urllib3==2.2.3 diff --git a/src/assets/ba_data/python/babase/_devconsole.py b/src/assets/ba_data/python/babase/_devconsole.py index b858fcc7..fbae9fa2 100644 --- a/src/assets/ba_data/python/babase/_devconsole.py +++ b/src/assets/ba_data/python/babase/_devconsole.py @@ -152,14 +152,6 @@ class DevConsoleTabUI(DevConsoleTab): def refresh(self) -> None: from babase._mgen.enums import UIScale - # self.text( - # 'UI Testing', - # scale=0.8, - # pos=(15, 77), - # h_anchor='left', - # h_align='left', - # v_align='center', - # ) self.text( 'Make sure all interactive UI fits in the' ' virtual bounds at all UI-scales (not counting things' diff --git a/src/assets/ba_data/python/baenv.py b/src/assets/ba_data/python/baenv.py index b9de61fd..77a13c89 100644 --- a/src/assets/ba_data/python/baenv.py +++ b/src/assets/ba_data/python/baenv.py @@ -52,7 +52,7 @@ if TYPE_CHECKING: # Build number and version of the ballistica binary we expect to be # using. -TARGET_BALLISTICA_BUILD = 22004 +TARGET_BALLISTICA_BUILD = 22007 TARGET_BALLISTICA_VERSION = '1.7.37' diff --git a/src/assets/ba_data/python/bascenev1lib/mainmenu.py b/src/assets/ba_data/python/bascenev1lib/mainmenu.py index ac6aa3fa..a395abbf 100644 --- a/src/assets/ba_data/python/bascenev1lib/mainmenu.py +++ b/src/assets/ba_data/python/bascenev1lib/mainmenu.py @@ -7,7 +7,6 @@ from __future__ import annotations import time import random import weakref -import functools from typing import TYPE_CHECKING, override import bascenev1 as bs @@ -251,7 +250,7 @@ class MainMenuActivity(bs.Activity[bs.Player, bs.Team]): y = -15 base_scale = 1.1 self._word_actors = [] - base_delay = 1.0 + base_delay = 0.8 delay = base_delay delay_inc = 0.02 @@ -631,21 +630,37 @@ class MainMenuActivity(bs.Activity[bs.Player, bs.Team]): time_v += random.random() * 0.1 bs.animate(cmb, 'input1', keys, loop=True) - if custom_texture is None: + # Do a fun spinny animation on the logo the first time in. + if ( + custom_texture is None + and bs.app.classic is not None + and not bs.app.classic.main_menu_did_initial_transition + ): + jitter() + cmb = bs.newnode('combine', owner=logo.node, attrs={'size': 2}) - def rotate_logo() -> None: - logo_scale = logo.node.scale - assert not isinstance(logo_scale, float) - logo.node.rotate = logo.node.rotate + 4 - logo.node.scale = (logo_scale[0] - 20, logo_scale[1] - 20) - if logo.node.rotate >= 356: - self._logo_rotate_timer = None - jitter() + delay = 0.0 + keys = { + delay: 5000.0 * scale, + delay + 0.4: 530.0 * scale, + delay + 0.45: 620.0 * scale, + delay + 0.5: 590.0 * scale, + delay + 0.55: 605.0 * scale, + delay + 0.6: 600.0 * scale, + } + bs.animate(cmb, 'input0', keys) + bs.animate(cmb, 'input1', keys) + cmb.connectattr('output', logo.node, 'scale') - self._logo_rotate_timer = bs.Timer( - 0.001, functools.partial(rotate_logo), repeat=True - ) + keys = { + delay: 100.0, + delay + 0.4: 370.0, + delay + 0.45: 357.0, + delay + 0.5: 360.0, + } + bs.animate(logo.node, 'rotate', keys) else: + # For all other cases do a simple scale up animation. jitter() cmb = bs.newnode('combine', owner=logo.node, attrs={'size': 2}) diff --git a/src/assets/ba_data/python/bauiv1lib/account/settings.py b/src/assets/ba_data/python/bauiv1lib/account/settings.py index 9ba34ed1..0a16d8c4 100644 --- a/src/assets/ba_data/python/bauiv1lib/account/settings.py +++ b/src/assets/ba_data/python/bauiv1lib/account/settings.py @@ -982,7 +982,7 @@ class AccountSettingsWindow(bui.MainWindow): # bit of spacing before the reset/sign-out section # v -= 5 - button_width = 250 + button_width = 300 self._linked_accounts_text: bui.Widget | None if show_linked_accounts_text: diff --git a/src/assets/ba_data/python/bauiv1lib/mainmenu.py b/src/assets/ba_data/python/bauiv1lib/mainmenu.py index 555ff8d0..496da734 100644 --- a/src/assets/ba_data/python/bauiv1lib/mainmenu.py +++ b/src/assets/ba_data/python/bauiv1lib/mainmenu.py @@ -188,11 +188,16 @@ class MainMenuWindow(bui.MainWindow): ) if not classic.did_menu_intro: - self._tdelay = 1.7 - self._t_delay_inc = 0.05 - self._t_delay_play = 1.7 + self._tdelay = 1.6 + self._t_delay_inc = 0.03 classic.did_menu_intro = True + td1 = 2 + td2 = 1 + td3 = 0 + td4 = -1 + td5 = -2 + self._width = 400.0 self._height = 200.0 @@ -231,6 +236,7 @@ class MainMenuWindow(bui.MainWindow): ) # Version/copyright info. + thistdelay = self._tdelay + td3 * self._t_delay_inc bui.textwidget( parent=self._root_widget, position=(self._width * 0.5, button_y_offs - 10), @@ -245,7 +251,8 @@ class MainMenuWindow(bui.MainWindow): ), h_align='center', v_align='center', - transition_delay=self._t_delay_play, + # transition_delay=self._t_delay_play, + transition_delay=thistdelay, ) # In kiosk mode, provide a button to get back to the kiosk menu. @@ -255,11 +262,12 @@ class MainMenuWindow(bui.MainWindow): v = button_y_offs scale = 1.0 this_b_width = self._button_width * 0.4 * scale - demo_menu_delay = ( - 0.0 - if self._t_delay_play == 0.0 - else max(0, self._t_delay_play + 0.1) - ) + # demo_menu_delay = ( + # 0.0 + # if self._t_delay_play == 0.0 + # else max(0, self._t_delay_play + 0.1) + # ) + demo_menu_delay = 0.0 self._demo_menu_button = bui.buttonwidget( parent=self._root_widget, position=(self._width * 0.5 - this_b_width * 0.5, v + 90), @@ -289,6 +297,8 @@ class MainMenuWindow(bui.MainWindow): - side_button_width * side_button_scale * 0.5 ) v = button_y_offs + side_button_y_offs + + thistdelay = self._tdelay + td2 * self._t_delay_inc self._gather_button = btn = bui.buttonwidget( parent=self._root_widget, position=(h - side_button_width * side_button_scale * 0.5, v), @@ -297,7 +307,7 @@ class MainMenuWindow(bui.MainWindow): autoselect=self._use_autoselect, button_type='square', label='', - transition_delay=self._tdelay, + transition_delay=thistdelay, on_activate_call=self._gather_press, ) bui.textwidget( @@ -305,7 +315,7 @@ class MainMenuWindow(bui.MainWindow): position=(h, v + side_button_height * side_button_scale * 0.25), size=(0, 0), scale=0.75, - transition_delay=self._tdelay, + transition_delay=thistdelay, draw_controller=btn, color=(0.75, 1.0, 0.7), maxwidth=side_button_width * side_button_scale * 0.8, @@ -318,7 +328,7 @@ class MainMenuWindow(bui.MainWindow): parent=self._root_widget, size=(icon_size, icon_size), draw_controller=btn, - transition_delay=self._tdelay, + transition_delay=thistdelay, position=( h - 0.5 * icon_size, v @@ -327,6 +337,8 @@ class MainMenuWindow(bui.MainWindow): ), texture=bui.gettexture('usersButton'), ) + thistdelay = self._tdelay + td1 * self._t_delay_inc + # self._tdelay += self._t_delay_inc h -= ( side_button_width * side_button_scale * 0.5 @@ -343,7 +355,7 @@ class MainMenuWindow(bui.MainWindow): button_type='square', scale=side_button_2_scale, label=bui.Lstr(resource=f'{self._r}.howToPlayText'), - transition_delay=self._tdelay, + transition_delay=thistdelay, on_activate_call=self._howtoplay, ) self._how_to_play_button = btn @@ -353,6 +365,7 @@ class MainMenuWindow(bui.MainWindow): v = button_y_offs assert play_button_width is not None assert play_button_height is not None + thistdelay = self._tdelay + td3 * self._t_delay_inc self._play_button = start_button = bui.buttonwidget( parent=self._root_widget, position=(h - play_button_width * 0.5 * play_button_scale, v), @@ -361,7 +374,7 @@ class MainMenuWindow(bui.MainWindow): scale=play_button_scale, text_res_scale=2.0, label=bui.Lstr(resource='playText'), - transition_delay=self._t_delay_play, + transition_delay=thistdelay, on_activate_call=self._play_press, ) bui.containerwidget( @@ -370,7 +383,7 @@ class MainMenuWindow(bui.MainWindow): selected_child=start_button, ) - self._tdelay += self._t_delay_inc + # self._tdelay += self._t_delay_inc h = ( self._width * 0.5 @@ -379,6 +392,7 @@ class MainMenuWindow(bui.MainWindow): + side_button_width * side_button_scale * 0.5 ) v = button_y_offs + side_button_y_offs + thistdelay = self._tdelay + td4 * self._t_delay_inc self._watch_button = btn = bui.buttonwidget( parent=self._root_widget, position=(h - side_button_width * side_button_scale * 0.5, v), @@ -387,7 +401,7 @@ class MainMenuWindow(bui.MainWindow): autoselect=self._use_autoselect, button_type='square', label='', - transition_delay=self._tdelay, + transition_delay=thistdelay, on_activate_call=self._watch_press, ) bui.textwidget( @@ -395,7 +409,7 @@ class MainMenuWindow(bui.MainWindow): position=(h, v + side_button_height * side_button_scale * 0.25), size=(0, 0), scale=0.75, - transition_delay=self._tdelay, + transition_delay=thistdelay, color=(0.75, 1.0, 0.7), draw_controller=btn, maxwidth=side_button_width * side_button_scale * 0.8, @@ -408,7 +422,7 @@ class MainMenuWindow(bui.MainWindow): parent=self._root_widget, size=(icon_size, icon_size), draw_controller=btn, - transition_delay=self._tdelay, + transition_delay=thistdelay, position=( h - 0.5 * icon_size, v @@ -419,7 +433,8 @@ class MainMenuWindow(bui.MainWindow): ) # Credits button. - self._tdelay += self._t_delay_inc + # self._tdelay += self._t_delay_inc + thistdelay = self._tdelay + td5 * self._t_delay_inc h += side_button_width * side_button_scale * 0.5 + hspace2 v = button_y_offs + side_button_2_y_offs @@ -438,10 +453,10 @@ class MainMenuWindow(bui.MainWindow): scale=side_button_2_scale, autoselect=self._use_autoselect, label=bui.Lstr(resource=f'{self._r}.creditsText'), - transition_delay=self._tdelay, + transition_delay=thistdelay, on_activate_call=self._credits, ) - self._tdelay += self._t_delay_inc + # self._tdelay += self._t_delay_inc self._quit_button: bui.Widget | None if self._have_quit_button: @@ -461,13 +476,13 @@ class MainMenuWindow(bui.MainWindow): ) ), on_activate_call=self._quit, - transition_delay=self._tdelay, + transition_delay=thistdelay, ) bui.containerwidget( edit=self._root_widget, cancel_button=quit_button ) - self._tdelay += self._t_delay_inc + # self._tdelay += self._t_delay_inc else: self._quit_button = None diff --git a/src/ballistica/shared/ballistica.cc b/src/ballistica/shared/ballistica.cc index 3baecf9f..2bc62d95 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 = 22004; +const int kEngineBuildNumber = 22007; 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 5e87695e..b594da2c 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 @@ -27,8 +27,8 @@ namespace ballistica::ui_v1 { // ------------------------------ getsound ------------------------------------- -static auto PyGetSound(PyObject* self, PyObject* args, - PyObject* keywds) -> PyObject* { +static auto PyGetSound(PyObject* self, PyObject* args, PyObject* keywds) + -> PyObject* { BA_PYTHON_TRY; const char* name; static const char* kwlist[] = {"name", nullptr}; @@ -56,8 +56,8 @@ static PyMethodDef PyGetSoundDef = { // ----------------------------- gettexture ------------------------------------ -static auto PyGetTexture(PyObject* self, PyObject* args, - PyObject* keywds) -> PyObject* { +static auto PyGetTexture(PyObject* self, PyObject* args, PyObject* keywds) + -> PyObject* { BA_PYTHON_TRY; const char* name; static const char* kwlist[] = {"name", nullptr}; @@ -85,8 +85,8 @@ static PyMethodDef PyGetTextureDef = { // -------------------------- get_qrcode_texture ------------------------------- -static auto PyGetQRCodeTexture(PyObject* self, PyObject* args, - PyObject* keywds) -> PyObject* { +static auto PyGetQRCodeTexture(PyObject* self, PyObject* args, PyObject* keywds) + -> PyObject* { BA_PYTHON_TRY; const char* url; static const char* kwlist[] = {"url", nullptr}; @@ -115,8 +115,8 @@ static PyMethodDef PyGetQRCodeTextureDef = { // ------------------------------- getmesh ------------------------------------- -static auto PyGetMesh(PyObject* self, PyObject* args, - PyObject* keywds) -> PyObject* { +static auto PyGetMesh(PyObject* self, PyObject* args, PyObject* keywds) + -> PyObject* { BA_PYTHON_TRY; const char* name; static const char* kwlist[] = {"name", nullptr}; @@ -144,8 +144,8 @@ static PyMethodDef PyGetMeshDef = { // ----------------------------- buttonwidget ---------------------------------- -static auto PyButtonWidget(PyObject* self, PyObject* args, - PyObject* keywds) -> PyObject* { +static auto PyButtonWidget(PyObject* self, PyObject* args, PyObject* keywds) + -> PyObject* { BA_PYTHON_TRY; PyObject* size_obj = Py_None; PyObject* pos_obj = Py_None; @@ -506,8 +506,8 @@ static PyMethodDef PyButtonWidgetDef = { // --------------------------- checkboxwidget ---------------------------------- -static auto PyCheckBoxWidget(PyObject* self, PyObject* args, - PyObject* keywds) -> PyObject* { +static auto PyCheckBoxWidget(PyObject* self, PyObject* args, PyObject* keywds) + -> PyObject* { BA_PYTHON_TRY; PyObject* size_obj = Py_None; PyObject* pos_obj = Py_None; @@ -680,8 +680,8 @@ static PyMethodDef PyCheckBoxWidgetDef = { // ----------------------------- imagewidget ----------------------------------- -static auto PyImageWidget(PyObject* self, PyObject* args, - PyObject* keywds) -> PyObject* { +static auto PyImageWidget(PyObject* self, PyObject* args, PyObject* keywds) + -> PyObject* { BA_PYTHON_TRY; PyObject* size_obj = Py_None; PyObject* pos_obj = Py_None; @@ -885,8 +885,8 @@ static PyMethodDef PyImageWidgetDef = { // ----------------------------- columnwidget ---------------------------------- -static auto PyColumnWidget(PyObject* self, PyObject* args, - PyObject* keywds) -> PyObject* { +static auto PyColumnWidget(PyObject* self, PyObject* args, PyObject* keywds) + -> PyObject* { BA_PYTHON_TRY; PyObject* size_obj{Py_None}; @@ -1067,8 +1067,8 @@ static PyMethodDef PyColumnWidgetDef = { // ---------------------------- containerwidget -------------------------------- -static auto PyContainerWidget(PyObject* self, PyObject* args, - PyObject* keywds) -> PyObject* { +static auto PyContainerWidget(PyObject* self, PyObject* args, PyObject* keywds) + -> PyObject* { BA_PYTHON_TRY; PyObject* size_obj = Py_None; PyObject* pos_obj = Py_None; @@ -1417,8 +1417,8 @@ static PyMethodDef PyContainerWidgetDef = { // ------------------------------ rowwidget ------------------------------------ -static auto PyRowWidget(PyObject* self, PyObject* args, - PyObject* keywds) -> PyObject* { +static auto PyRowWidget(PyObject* self, PyObject* args, PyObject* keywds) + -> PyObject* { BA_PYTHON_TRY; PyObject* size_obj{Py_None}; @@ -1546,8 +1546,8 @@ static PyMethodDef PyRowWidgetDef = { // ---------------------------- scrollwidget ----------------------------------- -static auto PyScrollWidget(PyObject* self, PyObject* args, - PyObject* keywds) -> PyObject* { +static auto PyScrollWidget(PyObject* self, PyObject* args, PyObject* keywds) + -> PyObject* { BA_PYTHON_TRY; PyObject* size_obj{Py_None}; PyObject* pos_obj{Py_None}; @@ -1734,8 +1734,8 @@ static PyMethodDef PyScrollWidgetDef = { // ---------------------------- hscrollwidget ---------------------------------- -static auto PyHScrollWidget(PyObject* self, PyObject* args, - PyObject* keywds) -> PyObject* { +static auto PyHScrollWidget(PyObject* self, PyObject* args, PyObject* keywds) + -> PyObject* { BA_PYTHON_TRY; PyObject* size_obj = Py_None; @@ -1913,8 +1913,8 @@ static PyMethodDef PyHScrollWidgetDef = { // ------------------------------ textwidget ----------------------------------- -static auto PyTextWidget(PyObject* self, PyObject* args, - PyObject* keywds) -> PyObject* { +static auto PyTextWidget(PyObject* self, PyObject* args, PyObject* keywds) + -> PyObject* { BA_PYTHON_TRY; PyObject* size_obj = Py_None; PyObject* pos_obj = Py_None; @@ -2311,8 +2311,8 @@ static PyMethodDef PyTextWidgetDef = { // ------------------------------- widget -------------------------------------- -static auto PyWidgetCall(PyObject* self, PyObject* args, - PyObject* keywds) -> PyObject* { +static auto PyWidgetCall(PyObject* self, PyObject* args, PyObject* keywds) + -> PyObject* { BA_PYTHON_TRY; PyObject* edit_obj = Py_None; @@ -2516,8 +2516,8 @@ static PyMethodDef PySetPartyWindowOpenDef = { // -------------------------- get_special_widget ------------------------------- -static auto PyGetSpecialWidget(PyObject* self, PyObject* args, - PyObject* keywds) -> PyObject* { +static auto PyGetSpecialWidget(PyObject* self, PyObject* args, PyObject* keywds) + -> PyObject* { BA_PYTHON_TRY; const char* name; diff --git a/src/ballistica/ui_v1/widget/button_widget.cc b/src/ballistica/ui_v1/widget/button_widget.cc index 086b004e..2f22dbee 100644 --- a/src/ballistica/ui_v1/widget/button_widget.cc +++ b/src/ballistica/ui_v1/widget/button_widget.cc @@ -135,13 +135,8 @@ void ButtonWidget::Draw(base::RenderPass* pass, bool draw_transparent) { show_icons = true; } - bool ouya_icons = false; bool remote_icons = false; - // Phasing out ouya stuff. - if (explicit_bool(false)) { - ouya_icons = true; - } if (icon_type_ == IconType::kCancel && device != nullptr && device->IsRemoteControl()) { remote_icons = true; @@ -151,7 +146,7 @@ void ButtonWidget::Draw(base::RenderPass* pass, bool draw_transparent) { millisecs_t transition = (birth_time_millisecs_ + transition_delay_) - current_time; if (transition > 0) { - extra_offs_x -= static_cast(transition) * 4.0f; + extra_offs_x -= static_cast(transition) * 4.0f / scale(); } if (text_width_dirty_) { @@ -380,11 +375,6 @@ void ButtonWidget::Draw(base::RenderPass* pass, bool draw_transparent) { 1.0f * mult * (1.0f), 1.0f); c.SetTexture( g_base->assets->SysTexture(base::SysTextureID::kBackIcon)); - } else if (ouya_icons) { - c.SetColor(1.0f * mult * (1.0f), 1.0f * mult * (1.0f), - 1.0f * mult * (1.0f), 1.0f); - c.SetTexture( - g_base->assets->SysTexture(base::SysTextureID::kOuyaAButton)); } else { c.SetColor(1.5f * mult * (color_red_), 1.5f * mult * (color_green_), 1.5f * mult * (color_blue_), 1.0f); diff --git a/tools/batools/androidsdkutils.py b/tools/batools/androidsdkutils.py index 83ae682f..96751d33 100755 --- a/tools/batools/androidsdkutils.py +++ b/tools/batools/androidsdkutils.py @@ -155,7 +155,9 @@ def run(projroot: str, args: list[str]) -> None: ver = lines[0].strip().replace("'", '').replace('"', '').split()[-1] path = os.path.join(sdk_dir, 'ndk', ver) if not os.path.isdir(path): - raise RuntimeError(f'NDK listed in gradle not found: {path}.') + raise RuntimeError( + f'NDK path listed in gradle file not found: {path}.' + ) print(path) if command == 'get-adb-path': diff --git a/tools/efrotools/pybuild.py b/tools/efrotools/pybuild.py index e7e4de30..98afdcb8 100644 --- a/tools/efrotools/pybuild.py +++ b/tools/efrotools/pybuild.py @@ -339,13 +339,17 @@ def build_android(rootdir: str, arch: str, debug: bool = False) -> None: subprocess.run(['git', 'checkout', PY_VER_EXACT_ANDROID], check=True) # These builds require ANDROID_NDK to be set; make sure that's the case. - os.environ['ANDROID_NDK'] = ( + ndkpath = ( subprocess.check_output( [f'{rootdir}/tools/pcommand', 'android_sdk_utils', 'get-ndk-path'] ) .decode() .strip() ) + if not os.path.isdir(ndkpath): + raise RuntimeError(f'NDK path does not exist: "{ndkpath}".') + + os.environ['ANDROID_NDK'] = ndkpath # TEMP - hard coding old ndk for the moment; looks like libffi needs to # be fixed to build with it. I *think* this has already been done; we just