diff --git a/.efrocachemap b/.efrocachemap index 5f75a607..c0bdfcf3 100644 --- a/.efrocachemap +++ b/.efrocachemap @@ -4135,16 +4135,16 @@ "assets/build/windows/x64/vc_redist.x64.exe": "https://files.ballistica.net/cache/ba1/ea/19/8b8787d81abcdce158ba608cd24f", "assets/build/windows/x64/vcruntime140_1d.dll": "https://files.ballistica.net/cache/ba1/11/d8/ff6344b429b00c24d9a1930d4338", "assets/build/windows/x64/vcruntime140d.dll": "https://files.ballistica.net/cache/ba1/20/33/0825e11e6518f87ece3009309933", - "build/prefab/linux-server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/0d/10/8b0acfe18403ed5f7648cbd16304", - "build/prefab/linux-server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/60/d6/78971bf24839db03eb52df3d66fa", - "build/prefab/linux/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/6f/17/265584b464b9ed0dd32f5138513c", - "build/prefab/linux/release/ballisticacore": "https://files.ballistica.net/cache/ba1/47/42/4b10abcb0acd20c7a36d80283046", - "build/prefab/mac-server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/ec/7c/0456f8a0371de22d65dfc50389b4", - "build/prefab/mac-server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/34/c8/d7c9071a85ddc33e395960af86e0", - "build/prefab/mac/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/41/b6/aa543cfed5ef05b6b1aae26c33f0", - "build/prefab/mac/release/ballisticacore": "https://files.ballistica.net/cache/ba1/50/dd/4be23bf45b013537a3970e457976", - "build/prefab/windows-server/debug/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/32/4c/aff483fae256674f9833946cd5f2", - "build/prefab/windows-server/release/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/93/ff/d898d07ebebebfd225d6bb437488", - "build/prefab/windows/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/f1/c5/d56a83b4e32c1a2e566054cf58ad", - "build/prefab/windows/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/44/9a/5cef4f8e575e210baac8857e265b" + "build/prefab/linux-server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/87/4a/c6ce1f7c93d71cd392f32f39346f", + "build/prefab/linux-server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/68/ef/371aaa27e0f4767cec5fe2117efe", + "build/prefab/linux/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/59/5f/d25b830965dd26638c8e0cae6d8c", + "build/prefab/linux/release/ballisticacore": "https://files.ballistica.net/cache/ba1/99/f2/8a99c79e670fcdde746cfa0dd379", + "build/prefab/mac-server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/77/b3/e2af340577b93d3983550b351604", + "build/prefab/mac-server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/21/27/1633ac867e848b68324cae7c5838", + "build/prefab/mac/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/c6/37/5ad49f380196860b49b77b66bc39", + "build/prefab/mac/release/ballisticacore": "https://files.ballistica.net/cache/ba1/a5/01/73cb3ae73e00f64f2d8bde9ba3d3", + "build/prefab/windows-server/debug/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/85/8a/71b0356f1210a32e2314fdbda7f8", + "build/prefab/windows-server/release/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/48/a7/96da0cf90e70d9e7a8661c01d5b9", + "build/prefab/windows/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/9c/5c/49340950cd68dce232fefa47fbaa", + "build/prefab/windows/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/26/b6/d2dd933fc479d3c669a4be4cee77" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 7945eb13..f8a5e2e4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ -### 1.5.9 (20081) +### 1.5.9 (20082) - Reduced some hitches when clicking on certain buttons in the UI +- Fixed an issue where very early keyboard/controller connects/disconnects could get lost on android. +- ba._modutils is now ba.modutils since it is intended to be publicly accessible. +- drop-down console is now properly accessible again via android hardware keyboards (` key) +- Other minor bug fixes.. ### 1.5.8 (20079) - Fixed an issue where touch controls or sound settings values could look like 0.8999999999. Please holler if you see this anywhere else. diff --git a/assets/.asset_manifest_public.json b/assets/.asset_manifest_public.json index df9ec086..be327ba4 100644 --- a/assets/.asset_manifest_public.json +++ b/assets/.asset_manifest_public.json @@ -36,7 +36,6 @@ "ba_data/python/ba/__pycache__/_math.cpython-37.opt-1.pyc", "ba_data/python/ba/__pycache__/_messages.cpython-37.opt-1.pyc", "ba_data/python/ba/__pycache__/_meta.cpython-37.opt-1.pyc", - "ba_data/python/ba/__pycache__/_modutils.cpython-37.opt-1.pyc", "ba_data/python/ba/__pycache__/_multiteamsession.cpython-37.opt-1.pyc", "ba_data/python/ba/__pycache__/_music.cpython-37.opt-1.pyc", "ba_data/python/ba/__pycache__/_netutils.cpython-37.opt-1.pyc", @@ -57,6 +56,7 @@ "ba_data/python/ba/__pycache__/deprecated.cpython-37.opt-1.pyc", "ba_data/python/ba/__pycache__/internal.cpython-37.opt-1.pyc", "ba_data/python/ba/__pycache__/macmusicapp.cpython-37.opt-1.pyc", + "ba_data/python/ba/__pycache__/modutils.cpython-37.opt-1.pyc", "ba_data/python/ba/__pycache__/osmusic.cpython-37.opt-1.pyc", "ba_data/python/ba/_account.py", "ba_data/python/ba/_achievement.py", @@ -93,7 +93,6 @@ "ba_data/python/ba/_math.py", "ba_data/python/ba/_messages.py", "ba_data/python/ba/_meta.py", - "ba_data/python/ba/_modutils.py", "ba_data/python/ba/_multiteamsession.py", "ba_data/python/ba/_music.py", "ba_data/python/ba/_netutils.py", @@ -114,6 +113,7 @@ "ba_data/python/ba/deprecated.py", "ba_data/python/ba/internal.py", "ba_data/python/ba/macmusicapp.py", + "ba_data/python/ba/modutils.py", "ba_data/python/ba/osmusic.py", "ba_data/python/ba/ui/__init__.py", "ba_data/python/ba/ui/__pycache__/__init__.cpython-37.opt-1.pyc", diff --git a/assets/Makefile b/assets/Makefile index 083a36da..69839ee2 100644 --- a/assets/Makefile +++ b/assets/Makefile @@ -178,7 +178,6 @@ SCRIPT_TARGETS_PY_PUBLIC = \ build/ba_data/python/ba/_math.py \ build/ba_data/python/ba/_messages.py \ build/ba_data/python/ba/_meta.py \ - build/ba_data/python/ba/_modutils.py \ build/ba_data/python/ba/_multiteamsession.py \ build/ba_data/python/ba/_music.py \ build/ba_data/python/ba/_netutils.py \ @@ -199,6 +198,7 @@ SCRIPT_TARGETS_PY_PUBLIC = \ build/ba_data/python/ba/deprecated.py \ build/ba_data/python/ba/internal.py \ build/ba_data/python/ba/macmusicapp.py \ + build/ba_data/python/ba/modutils.py \ build/ba_data/python/ba/osmusic.py \ build/ba_data/python/ba/ui/__init__.py \ build/ba_data/python/bastd/__init__.py \ @@ -409,7 +409,6 @@ SCRIPT_TARGETS_PYC_PUBLIC = \ build/ba_data/python/ba/__pycache__/_math.cpython-37.opt-1.pyc \ build/ba_data/python/ba/__pycache__/_messages.cpython-37.opt-1.pyc \ build/ba_data/python/ba/__pycache__/_meta.cpython-37.opt-1.pyc \ - build/ba_data/python/ba/__pycache__/_modutils.cpython-37.opt-1.pyc \ build/ba_data/python/ba/__pycache__/_multiteamsession.cpython-37.opt-1.pyc \ build/ba_data/python/ba/__pycache__/_music.cpython-37.opt-1.pyc \ build/ba_data/python/ba/__pycache__/_netutils.cpython-37.opt-1.pyc \ @@ -430,6 +429,7 @@ SCRIPT_TARGETS_PYC_PUBLIC = \ build/ba_data/python/ba/__pycache__/deprecated.cpython-37.opt-1.pyc \ build/ba_data/python/ba/__pycache__/internal.cpython-37.opt-1.pyc \ build/ba_data/python/ba/__pycache__/macmusicapp.cpython-37.opt-1.pyc \ + build/ba_data/python/ba/__pycache__/modutils.cpython-37.opt-1.pyc \ build/ba_data/python/ba/__pycache__/osmusic.cpython-37.opt-1.pyc \ build/ba_data/python/ba/ui/__pycache__/__init__.cpython-37.opt-1.pyc \ build/ba_data/python/bastd/__pycache__/__init__.cpython-37.opt-1.pyc \ @@ -796,11 +796,6 @@ build/ba_data/python/ba/__pycache__/_meta.cpython-37.opt-1.pyc: \ @echo Compiling script: $^ @rm -rf $@ && PYTHONHASHSEED=1 $(TOOLS_DIR)/snippets compile_python_files $^ && chmod 444 $@ -build/ba_data/python/ba/__pycache__/_modutils.cpython-37.opt-1.pyc: \ - build/ba_data/python/ba/_modutils.py - @echo Compiling script: $^ - @rm -rf $@ && PYTHONHASHSEED=1 $(TOOLS_DIR)/snippets compile_python_files $^ && chmod 444 $@ - build/ba_data/python/ba/__pycache__/_multiteamsession.cpython-37.opt-1.pyc: \ build/ba_data/python/ba/_multiteamsession.py @echo Compiling script: $^ @@ -901,6 +896,11 @@ build/ba_data/python/ba/__pycache__/macmusicapp.cpython-37.opt-1.pyc: \ @echo Compiling script: $^ @rm -rf $@ && PYTHONHASHSEED=1 $(TOOLS_DIR)/snippets compile_python_files $^ && chmod 444 $@ +build/ba_data/python/ba/__pycache__/modutils.cpython-37.opt-1.pyc: \ + build/ba_data/python/ba/modutils.py + @echo Compiling script: $^ + @rm -rf $@ && PYTHONHASHSEED=1 $(TOOLS_DIR)/snippets compile_python_files $^ && chmod 444 $@ + build/ba_data/python/ba/__pycache__/osmusic.cpython-37.opt-1.pyc: \ build/ba_data/python/ba/osmusic.py @echo Compiling script: $^ diff --git a/assets/src/ba_data/python/ba/_benchmark.py b/assets/src/ba_data/python/ba/_benchmark.py index fa47cde0..2dedcdaa 100644 --- a/assets/src/ba_data/python/ba/_benchmark.py +++ b/assets/src/ba_data/python/ba/_benchmark.py @@ -73,7 +73,7 @@ def run_stress_test(playlist_type: str = 'Random', player_count: int = 8, round_duration: int = 30) -> None: """Run a stress test.""" - from ba import _modutils + from ba import modutils from ba._general import Call from ba._enums import TimeType _ba.screenmessage( @@ -90,7 +90,7 @@ def run_stress_test(playlist_type: str = 'Random', _ba.timer(7.0, Call(_ba.screenmessage, ('stats will be written to ' + - _modutils.get_human_readable_user_scripts_path() + + modutils.get_human_readable_user_scripts_path() + '/stress_test_stats.csv')), timetype=TimeType.REAL) diff --git a/assets/src/ba_data/python/ba/_input.py b/assets/src/ba_data/python/ba/_input.py index 403e0a13..c8267b6c 100644 --- a/assets/src/ba_data/python/ba/_input.py +++ b/assets/src/ba_data/python/ba/_input.py @@ -562,8 +562,11 @@ def _gen_android_input_hash() -> str: # (since it'll vary a lot across devices) if f_name == 'gpio-keys.kl': continue - with open(dirname + '/' + f_name, 'rb') as infile: - md5.update(infile.read()) + try: + with open(f'{dirname}/{f_name}', 'rb') as infile: + md5.update(infile.read()) + except PermissionError: + pass except Exception: from ba import _error _error.print_exception( diff --git a/assets/src/ba_data/python/ba/internal.py b/assets/src/ba_data/python/ba/internal.py index a33bee87..958a2580 100644 --- a/assets/src/ba_data/python/ba/internal.py +++ b/assets/src/ba_data/python/ba/internal.py @@ -51,7 +51,6 @@ from ba._benchmark import (run_gpu_benchmark, run_cpu_benchmark, from ba._campaign import getcampaign from ba._messages import PlayerProfilesChangedMessage from ba._meta import get_game_types -from ba._modutils import show_user_scripts from ba._multiteamsession import DEFAULT_TEAM_COLORS, DEFAULT_TEAM_NAMES from ba._music import do_play_music from ba._netutils import serverget, serverput, get_ip_address_type diff --git a/assets/src/ba_data/python/ba/_modutils.py b/assets/src/ba_data/python/ba/modutils.py similarity index 100% rename from assets/src/ba_data/python/ba/_modutils.py rename to assets/src/ba_data/python/ba/modutils.py diff --git a/assets/src/ba_data/python/bastd/ui/coop/browser.py b/assets/src/ba_data/python/bastd/ui/coop/browser.py index 5284abed..2cbdc6c5 100644 --- a/assets/src/ba_data/python/bastd/ui/coop/browser.py +++ b/assets/src/ba_data/python/bastd/ui/coop/browser.py @@ -53,7 +53,6 @@ class CoopBrowserWindow(ba.Window): def __init__(self, transition: Optional[str] = 'in_right', origin_widget: ba.Widget = None): - # pylint: disable=cyclic-import # pylint: disable=too-many-statements # pylint: disable=cyclic-import import threading diff --git a/assets/src/ba_data/python/bastd/ui/gather.py b/assets/src/ba_data/python/bastd/ui/gather.py index 6d2da8c3..464f27ee 100644 --- a/assets/src/ba_data/python/bastd/ui/gather.py +++ b/assets/src/ba_data/python/bastd/ui/gather.py @@ -1626,6 +1626,7 @@ class GatherWindow(ba.Window): self._call = call def run(self) -> None: + # pylint: disable=too-many-branches ba.app.ping_thread_count += 1 try: import socket @@ -1669,9 +1670,13 @@ class GatherWindow(ba.Window): # Ignore harmless errors. if exc.errno in { - errno.EHOSTUNREACH, errno.ENETUNREACH + errno.EHOSTUNREACH, + errno.ENETUNREACH, }: pass + elif exc.errno == 10022: + # Windows 'invalid argument' error. + pass elif exc.errno == 10051: # Windows 'a socket operation was attempted # to an unreachable network' error. @@ -1686,8 +1691,10 @@ class GatherWindow(ba.Window): f' for addr {self._address}' f' port {self._port}.') else: - ba.print_exception('Error on gather ping.', - once=True) + ba.print_exception( + f'Error on gather ping ' + f'(errno={exc.errno})', + once=True) except Exception: ba.print_exception('Error on gather ping', once=True) @@ -1776,10 +1783,12 @@ class GatherWindow(ba.Window): text = self._internet_host_status_text if text: if data is None: - ba.textwidget(edit=text, - text=ba.Lstr(resource=self._r + - '.partyStatusNoConnectionText'), - color=(1, 0, 0)) + ba.textwidget( + edit=text, + text=ba.Lstr(resource=self._r + + '.partyStatusNoConnectionText'), + color=(1, 0, 0), + ) else: if not data.get('accessible', False): ex_line: Union[str, ba.Lstr] @@ -1822,10 +1831,11 @@ class GatherWindow(ba.Window): ba.playsound(ba.getsound('shieldDown')) text = self._internet_host_status_text if text: - ba.textwidget(edit=text, - text=ba.Lstr(resource=self._r + - '.partyStatusNotPublicText'), - color=(0.6, 0.6, 0.6)) + ba.textwidget( + edit=text, + text=ba.Lstr(resource=self._r + '.partyStatusNotPublicText'), + color=(0.6, 0.6, 0.6), + ) ba.buttonwidget( edit=self._internet_host_toggle_button, diff --git a/assets/src/ba_data/python/bastd/ui/settings/advanced.py b/assets/src/ba_data/python/bastd/ui/settings/advanced.py index f996d38f..da5c35f3 100644 --- a/assets/src/ba_data/python/bastd/ui/settings/advanced.py +++ b/assets/src/ba_data/python/bastd/ui/settings/advanced.py @@ -179,7 +179,7 @@ class AdvancedSettingsWindow(ba.Window): # pylint: disable=too-many-branches # pylint: disable=too-many-locals from bastd.ui.config import ConfigCheckBox - from ba.internal import show_user_scripts + from ba.modutils import show_user_scripts # Don't rebuild if the menu is open or if our language and # language-list hasn't changed. diff --git a/docs/ba_module.md b/docs/ba_module.md index 7852b68e..74d484c8 100644 --- a/docs/ba_module.md +++ b/docs/ba_module.md @@ -1,5 +1,5 @@ -
This page documents the Python classes and functions in the 'ba' module, which are the ones most relevant to modding in Ballistica. If you come across something you feel should be included here or could be better explained, please let me know. Happy modding!