mirror of
https://github.com/RYDE-WORK/ballistica.git
synced 2026-01-19 13:25:31 +08:00
Merge branch 'efroemling:main' into main
This commit is contained in:
commit
32b5fe0f3f
72
.efrocachemap
generated
72
.efrocachemap
generated
@ -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",
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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'
|
||||
|
||||
@ -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'
|
||||
|
||||
|
||||
|
||||
@ -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})
|
||||
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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<float>(transition) * 4.0f;
|
||||
extra_offs_x -= static_cast<float>(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);
|
||||
|
||||
@ -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':
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user