mirror of
https://github.com/RYDE-WORK/ballistica.git
synced 2026-02-07 16:13:23 +08:00
Minor bug fixing and project cleanup
This commit is contained in:
parent
29742b69cb
commit
0db957a4c3
@ -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/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/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",
|
"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/57/f8/47526bddac42b974f4ce86d13166",
|
"build/prefab/linux-server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/7c/92/8e0cbeffff273e5aa40fa584b602",
|
||||||
"build/prefab/linux-server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/0a/a9/46cb3927b667d67d8dc936b744b6",
|
"build/prefab/linux-server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/41/4a/91a9073717d810d978101f035f75",
|
||||||
"build/prefab/linux/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/dd/f3/130eb5ddb320f11093ba92bfbe6a",
|
"build/prefab/linux/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/13/cc/732f4cbdaa5ff318c7041b3cc46e",
|
||||||
"build/prefab/linux/release/ballisticacore": "https://files.ballistica.net/cache/ba1/53/a6/56310d64b07fb7aa1481e59a4d29",
|
"build/prefab/linux/release/ballisticacore": "https://files.ballistica.net/cache/ba1/95/01/6e4e0ddd1b32d2a24267472811d9",
|
||||||
"build/prefab/mac-server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/cd/6a/1518d0ebde22f06a679edf04002a",
|
"build/prefab/mac-server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/63/ee/2230562fd122dbc68ace1959440a",
|
||||||
"build/prefab/mac-server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/72/4f/f4d081f47a48ba940603a6825c1f",
|
"build/prefab/mac-server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/18/0e/6aebdc438215b178618b209b3d38",
|
||||||
"build/prefab/mac/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/d9/1f/436439103f6ede3ec88f46b592a7",
|
"build/prefab/mac/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/a6/6e/7041677d14ff3445e678e85ed509",
|
||||||
"build/prefab/mac/release/ballisticacore": "https://files.ballistica.net/cache/ba1/97/44/68715ff4f2208719f42e174db2e5",
|
"build/prefab/mac/release/ballisticacore": "https://files.ballistica.net/cache/ba1/78/7f/27a790f133b341a47e0d286631f6",
|
||||||
"build/prefab/windows-server/debug/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/39/87/ce5cf695b6af229875b9c5ff757e",
|
"build/prefab/windows-server/debug/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/3f/7b/6548e30606ba52f274a72f123473",
|
||||||
"build/prefab/windows-server/release/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/db/f1/50f277827b1b070dd3b4c5c97553",
|
"build/prefab/windows-server/release/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/df/d8/b1bfd4a2de519276ae8b3498e64d",
|
||||||
"build/prefab/windows/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/20/f3/6fb608d305279d5d8663f6b8cee6",
|
"build/prefab/windows/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/56/77/a0fcc90f8be8ac87b677ac0c983d",
|
||||||
"build/prefab/windows/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/71/a0/00ae9e235e28b18def6847d69c75"
|
"build/prefab/windows/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/45/1e/d1a5697069c1719b962140d4815b"
|
||||||
}
|
}
|
||||||
@ -2,6 +2,7 @@
|
|||||||
- The ba.Session.teams and ba.Session.players lists are now ba.Session.sessionteams and ba.Session.sessionplayers. This is to help keep it clear that a Team/Player and a SessionTeam/SessionPlayer are different things now.
|
- The ba.Session.teams and ba.Session.players lists are now ba.Session.sessionteams and ba.Session.sessionplayers. This is to help keep it clear that a Team/Player and a SessionTeam/SessionPlayer are different things now.
|
||||||
- Disconnecting an input-device now immediately removes the player instead of doing so in the next cycle; this prevents possible issues where code would try to access player.inputdevice before the removal happens which would lead to errors.
|
- Disconnecting an input-device now immediately removes the player instead of doing so in the next cycle; this prevents possible issues where code would try to access player.inputdevice before the removal happens which would lead to errors.
|
||||||
- Updated mac prefab builds to point at homebrew's python@3.7 package now that 3.8 has been made the default.
|
- Updated mac prefab builds to point at homebrew's python@3.7 package now that 3.8 has been made the default.
|
||||||
|
- Fixed an issue where adding/deleting UI widgets within certain callbacks could cause a crash.
|
||||||
|
|
||||||
### 1.5.19 (20123)
|
### 1.5.19 (20123)
|
||||||
- Cleaned up some bomb logic to avoid weird corner-cases such as land-mine explosions behaving like punches when set off by punches or bombs potentially resulting in multiple explosions when triggered by multiple other bombs simultaneously. Holler if anything explosion-related seems off now.
|
- Cleaned up some bomb logic to avoid weird corner-cases such as land-mine explosions behaving like punches when set off by punches or bombs potentially resulting in multiple explosions when triggered by multiple other bombs simultaneously. Holler if anything explosion-related seems off now.
|
||||||
|
|||||||
2
Makefile
2
Makefile
@ -665,7 +665,7 @@ VERSION = $(shell tools/version_utils version)
|
|||||||
BUILD_NUMBER = $(shell tools/version_utils build)
|
BUILD_NUMBER = $(shell tools/version_utils build)
|
||||||
BUILD_DIR = ${PROJ_DIR}/build
|
BUILD_DIR = ${PROJ_DIR}/build
|
||||||
LAZYBUILDDIR = .cache/lazybuild
|
LAZYBUILDDIR = .cache/lazybuild
|
||||||
STAGE_ASSETS = ${PROJ_DIR}/tools/stage_assets
|
STAGE_ASSETS = ${PROJ_DIR}/tools/pcommand stage_assets
|
||||||
|
|
||||||
# Things to ignore when doing root level cleans.
|
# Things to ignore when doing root level cleans.
|
||||||
ROOT_CLEAN_IGNORES = --exclude=assets/src_master \
|
ROOT_CLEAN_IGNORES = --exclude=assets/src_master \
|
||||||
|
|||||||
@ -592,7 +592,9 @@ class Session:
|
|||||||
lobby = chooser.lobby
|
lobby = chooser.lobby
|
||||||
activity = self._activity_weak()
|
activity = self._activity_weak()
|
||||||
|
|
||||||
# It seems this can happen..
|
# This happens sometimes. That seems like it shouldn't be happening;
|
||||||
|
# when would we have a session and a chooser with players but no
|
||||||
|
# active activity?
|
||||||
if activity is None:
|
if activity is None:
|
||||||
print('_on_player_ready called with no activity.')
|
print('_on_player_ready called with no activity.')
|
||||||
return
|
return
|
||||||
|
|||||||
@ -374,8 +374,15 @@ class PartyQueueWindow(ba.Window):
|
|||||||
|
|
||||||
def on_update_response(self, response: Optional[Dict[str, Any]]) -> None:
|
def on_update_response(self, response: Optional[Dict[str, Any]]) -> None:
|
||||||
"""We've received a response from an update to the server."""
|
"""We've received a response from an update to the server."""
|
||||||
|
# pylint: disable=too-many-branches
|
||||||
if not self._root_widget:
|
if not self._root_widget:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
# Seeing this in logs; debugging...
|
||||||
|
if not self._title_text:
|
||||||
|
print('PartyQueueWindows update: Have root but no title_text.')
|
||||||
|
return
|
||||||
|
|
||||||
if response is not None:
|
if response is not None:
|
||||||
should_show_field = (response.get('d') is not None)
|
should_show_field = (response.get('d') is not None)
|
||||||
self._smoothing = response['s']
|
self._smoothing = response['s']
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
<!-- THIS FILE IS AUTO GENERATED; DO NOT EDIT BY HAND -->
|
<!-- THIS FILE IS AUTO GENERATED; DO NOT EDIT BY HAND -->
|
||||||
<h4><em>last updated on 2020-07-09 for Ballistica version 1.5.20 build 20128</em></h4>
|
<h4><em>last updated on 2020-07-11 for Ballistica version 1.5.20 build 20132</em></h4>
|
||||||
<p>This page documents the Python classes and functions in the 'ba' module,
|
<p>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 <a href="mailto:support@froemling.net">let me know</a>. Happy modding!</p>
|
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 <a href="mailto:support@froemling.net">let me know</a>. Happy modding!</p>
|
||||||
<hr>
|
<hr>
|
||||||
@ -2219,7 +2219,7 @@ its time with lingering corpses, sound effects, etc.</p>
|
|||||||
<p><all methods inherited from <a href="#class_ba_Team">ba.Team</a>></p>
|
<p><all methods inherited from <a href="#class_ba_Team">ba.Team</a>></p>
|
||||||
<hr>
|
<hr>
|
||||||
<h2><strong><a name="class_ba_Existable">ba.Existable</a></strong></h3>
|
<h2><strong><a name="class_ba_Existable">ba.Existable</a></strong></h3>
|
||||||
<p>Inherits from: <a href="#class_typing_Protocol">typing.Protocol</a>, <a href="#class_typing_Generic">typing.Generic</a></p>
|
<p>Inherits from: <a href="#class_typing_extensions_Protocol">typing_extensions.Protocol</a></p>
|
||||||
<p>A Protocol for objects supporting an exists() method.</p>
|
<p>A Protocol for objects supporting an exists() method.</p>
|
||||||
|
|
||||||
<p>Category: <a href="#class_category_Protocols">Protocols</a>
|
<p>Category: <a href="#class_category_Protocols">Protocols</a>
|
||||||
|
|||||||
@ -30,7 +30,6 @@ import subprocess
|
|||||||
from functools import partial
|
from functools import partial
|
||||||
from typing import TYPE_CHECKING
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
from efro.error import CleanError
|
|
||||||
from efrotools.pybuild import PYTHON_VERSION_MAJOR
|
from efrotools.pybuild import PYTHON_VERSION_MAJOR
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
@ -48,10 +47,10 @@ OPT_PYC_SUFFIX = ('cpython-' + PYTHON_VERSION_MAJOR.replace('.', '') +
|
|||||||
class Config:
|
class Config:
|
||||||
"""Encapsulates command options."""
|
"""Encapsulates command options."""
|
||||||
|
|
||||||
def __init__(self) -> None:
|
def __init__(self, projroot: str) -> None:
|
||||||
|
self.projroot = projroot
|
||||||
# We always calc src relative to this script.
|
# We always calc src relative to this script.
|
||||||
self.src = os.path.abspath(
|
self.src = self.projroot + '/assets/build'
|
||||||
os.path.dirname(sys.argv[0]) + '/../assets/build')
|
|
||||||
self.dst: Optional[str] = None
|
self.dst: Optional[str] = None
|
||||||
self.win_extras_src: Optional[str] = None
|
self.win_extras_src: Optional[str] = None
|
||||||
self.win_platform: Optional[str] = None
|
self.win_platform: Optional[str] = None
|
||||||
@ -71,7 +70,7 @@ class Config:
|
|||||||
self.is_payload_full = False
|
self.is_payload_full = False
|
||||||
self.debug = False
|
self.debug = False
|
||||||
|
|
||||||
def _parse_android_args(self) -> None:
|
def _parse_android_args(self, args: List[str]) -> None:
|
||||||
# On Android we get nitpicky with what
|
# On Android we get nitpicky with what
|
||||||
# we want to copy in since we can speed up
|
# we want to copy in since we can speed up
|
||||||
# iterations by installing stripped down
|
# iterations by installing stripped down
|
||||||
@ -89,7 +88,7 @@ class Config:
|
|||||||
self.include_fonts = False
|
self.include_fonts = False
|
||||||
self.include_json = False
|
self.include_json = False
|
||||||
self.include_pylib = False
|
self.include_pylib = False
|
||||||
for arg in sys.argv[1:]:
|
for arg in args:
|
||||||
if arg == '-full':
|
if arg == '-full':
|
||||||
self.include_audio = True
|
self.include_audio = True
|
||||||
self.include_models = True
|
self.include_models = True
|
||||||
@ -118,13 +117,13 @@ class Config:
|
|||||||
elif arg == '-audio':
|
elif arg == '-audio':
|
||||||
self.include_audio = True
|
self.include_audio = True
|
||||||
|
|
||||||
def _parse_win_platform(self, platform: str) -> None:
|
def _parse_win_platform(self, platform: str, args: List[str]) -> None:
|
||||||
"""Parse sub-args in the windows platform string."""
|
"""Parse sub-args in the windows platform string."""
|
||||||
winempty, wintype, winplt, wincfg = platform.split('-')
|
winempty, wintype, winplt, wincfg = platform.split('-')
|
||||||
self.win_platform = winplt
|
self.win_platform = winplt
|
||||||
self.win_type = wintype
|
self.win_type = wintype
|
||||||
assert winempty == ''
|
assert winempty == ''
|
||||||
self.dst = sys.argv[2]
|
self.dst = args[1]
|
||||||
self.tex_suffix = '.dds'
|
self.tex_suffix = '.dds'
|
||||||
|
|
||||||
if wintype == 'win':
|
if wintype == 'win':
|
||||||
@ -137,12 +136,9 @@ class Config:
|
|||||||
raise RuntimeError(f'Invalid wintype: "{wintype}"')
|
raise RuntimeError(f'Invalid wintype: "{wintype}"')
|
||||||
|
|
||||||
if winplt == 'Win32':
|
if winplt == 'Win32':
|
||||||
self.win_extras_src = os.path.abspath(
|
self.win_extras_src = self.projroot + '/assets/build/windows/Win32'
|
||||||
os.path.dirname(sys.argv[0]) +
|
|
||||||
'/../assets/build/windows/Win32')
|
|
||||||
elif winplt == 'x64':
|
elif winplt == 'x64':
|
||||||
self.win_extras_src = os.path.abspath(
|
self.win_extras_src = self.projroot + '/assets/build/windows/x64'
|
||||||
os.path.dirname(sys.argv[0]) + '/../assets/build/windows/x64')
|
|
||||||
else:
|
else:
|
||||||
raise RuntimeError(f'Invalid winplt: "{winplt}"')
|
raise RuntimeError(f'Invalid winplt: "{winplt}"')
|
||||||
|
|
||||||
@ -153,31 +149,31 @@ class Config:
|
|||||||
else:
|
else:
|
||||||
raise RuntimeError(f'Invalid wincfg: "{wincfg}"')
|
raise RuntimeError(f'Invalid wincfg: "{wincfg}"')
|
||||||
|
|
||||||
def parse_args(self) -> None:
|
def parse_args(self, args: List[str]) -> None:
|
||||||
"""Parse args and apply to the cfg."""
|
"""Parse args and apply to the cfg."""
|
||||||
if len(sys.argv) < 2:
|
if len(args) < 1:
|
||||||
raise RuntimeError('Expected a platform argument.')
|
raise RuntimeError('Expected a platform argument.')
|
||||||
platform = sys.argv[1]
|
platform = args[0]
|
||||||
if platform == '-android':
|
if platform == '-android':
|
||||||
self._parse_android_args()
|
self._parse_android_args(args)
|
||||||
elif platform.startswith('-win'):
|
elif platform.startswith('-win'):
|
||||||
self._parse_win_platform(platform)
|
self._parse_win_platform(platform, args)
|
||||||
elif platform == '-cmake':
|
elif platform == '-cmake':
|
||||||
self.dst = sys.argv[2]
|
self.dst = args[1]
|
||||||
self.tex_suffix = '.dds'
|
self.tex_suffix = '.dds'
|
||||||
elif '-cmakeserver' in sys.argv:
|
elif '-cmakeserver' in args:
|
||||||
self.dst = sys.argv[2]
|
self.dst = args[1]
|
||||||
self.include_textures = False
|
self.include_textures = False
|
||||||
self.include_audio = False
|
self.include_audio = False
|
||||||
self.include_models = False
|
self.include_models = False
|
||||||
elif '-xcode-mac' in sys.argv:
|
elif '-xcode-mac' in args:
|
||||||
self.src = os.environ['SOURCE_ROOT'] + '/assets/build'
|
self.src = os.environ['SOURCE_ROOT'] + '/assets/build'
|
||||||
self.dst = (os.environ['TARGET_BUILD_DIR'] + '/' +
|
self.dst = (os.environ['TARGET_BUILD_DIR'] + '/' +
|
||||||
os.environ['UNLOCALIZED_RESOURCES_FOLDER_PATH'])
|
os.environ['UNLOCALIZED_RESOURCES_FOLDER_PATH'])
|
||||||
self.include_pylib = True
|
self.include_pylib = True
|
||||||
self.pylib_src_name = 'pylib-apple'
|
self.pylib_src_name = 'pylib-apple'
|
||||||
self.tex_suffix = '.dds'
|
self.tex_suffix = '.dds'
|
||||||
elif '-xcode-ios' in sys.argv:
|
elif '-xcode-ios' in args:
|
||||||
self.src = os.environ['SOURCE_ROOT'] + '/assets/build'
|
self.src = os.environ['SOURCE_ROOT'] + '/assets/build'
|
||||||
self.dst = (os.environ['TARGET_BUILD_DIR'] + '/' +
|
self.dst = (os.environ['TARGET_BUILD_DIR'] + '/' +
|
||||||
os.environ['UNLOCALIZED_RESOURCES_FOLDER_PATH'])
|
os.environ['UNLOCALIZED_RESOURCES_FOLDER_PATH'])
|
||||||
@ -323,11 +319,14 @@ def _sync_pylib(cfg: Config) -> None:
|
|||||||
_run(cmd)
|
_run(cmd)
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
def main(projroot: str, args: Optional[List[str]] = None) -> None:
|
||||||
"""Stage assets for a build."""
|
"""Stage assets for a build."""
|
||||||
|
|
||||||
cfg = Config()
|
if args is None:
|
||||||
cfg.parse_args()
|
args = sys.argv
|
||||||
|
|
||||||
|
cfg = Config(projroot)
|
||||||
|
cfg.parse_args(args)
|
||||||
|
|
||||||
# Ok, now for every top level dir in src, come up with a nice single
|
# Ok, now for every top level dir in src, come up with a nice single
|
||||||
# command to sync the needed subset of it to dst.
|
# command to sync the needed subset of it to dst.
|
||||||
@ -386,9 +385,9 @@ def main() -> None:
|
|||||||
_write_payload_file(cfg.dst, cfg.is_payload_full)
|
_write_payload_file(cfg.dst, cfg.is_payload_full)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
# if __name__ == '__main__':
|
||||||
try:
|
# try:
|
||||||
main()
|
# main()
|
||||||
except CleanError as exc:
|
# except CleanError as exc:
|
||||||
exc.pretty_print()
|
# exc.pretty_print()
|
||||||
sys.exit(1)
|
# sys.exit(1)
|
||||||
@ -692,3 +692,14 @@ def efro_gradle() -> None:
|
|||||||
|
|
||||||
if errored:
|
if errored:
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
|
||||||
|
def stage_assets() -> None:
|
||||||
|
"""Stage assets for a build."""
|
||||||
|
from batools.assetstaging import main
|
||||||
|
from efro.error import CleanError
|
||||||
|
try:
|
||||||
|
main(projroot=str(PROJROOT), args=sys.argv[2:])
|
||||||
|
except CleanError as exc:
|
||||||
|
exc.pretty_print()
|
||||||
|
sys.exit(1)
|
||||||
|
|||||||
@ -55,7 +55,7 @@ from batools.pcommand import (
|
|||||||
get_modern_make, warm_start_asset_build, update_docs_md, list_pip_reqs,
|
get_modern_make, warm_start_asset_build, update_docs_md, list_pip_reqs,
|
||||||
install_pip_reqs, checkenv, ensure_prefab_platform, prefab_run_var,
|
install_pip_reqs, checkenv, ensure_prefab_platform, prefab_run_var,
|
||||||
make_prefab, update_makebob, lazybuild, android_archive_unstripped_libs,
|
make_prefab, update_makebob, lazybuild, android_archive_unstripped_libs,
|
||||||
efro_gradle)
|
efro_gradle, stage_assets)
|
||||||
# pylint: enable=unused-import
|
# pylint: enable=unused-import
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user