mirror of
https://github.com/RYDE-WORK/ballistica.git
synced 2026-01-26 17:03:14 +08:00
Added thai language
This commit is contained in:
parent
29dba11335
commit
ce032f2050
@ -420,7 +420,7 @@
|
||||
"assets/build/ba_data/audio/zoeOw.ogg": "https://files.ballistica.net/cache/ba1/14/f1/4f2995d78fc20dd79dfb39c5d554",
|
||||
"assets/build/ba_data/audio/zoePickup01.ogg": "https://files.ballistica.net/cache/ba1/57/ac/6ed0caecd25dc23688debed24c45",
|
||||
"assets/build/ba_data/audio/zoeScream01.ogg": "https://files.ballistica.net/cache/ba1/32/08/38dac4a79ab2acee76a75d32a310",
|
||||
"assets/build/ba_data/data/langdata.json": "https://files.ballistica.net/cache/ba1/99/a3/f019f03a07f8e2d93871447d09c2",
|
||||
"assets/build/ba_data/data/langdata.json": "https://files.ballistica.net/cache/ba1/b0/83/53fee9d568b89a46f2df33401ed6",
|
||||
"assets/build/ba_data/data/languages/arabic.json": "https://files.ballistica.net/cache/ba1/0f/0e/7184059414320d32104463e41038",
|
||||
"assets/build/ba_data/data/languages/belarussian.json": "https://files.ballistica.net/cache/ba1/e2/58/c2c5964370df118c51528dc4bfa2",
|
||||
"assets/build/ba_data/data/languages/chinese.json": "https://files.ballistica.net/cache/ba1/d8/b8/a38187a1dfba81a42ddfbf2932be",
|
||||
@ -429,11 +429,11 @@
|
||||
"assets/build/ba_data/data/languages/czech.json": "https://files.ballistica.net/cache/ba1/b6/67/633c424cc32e5c4afbd188d3a908",
|
||||
"assets/build/ba_data/data/languages/danish.json": "https://files.ballistica.net/cache/ba1/3f/46/e4da3c1d2b0ebf916df55c608b28",
|
||||
"assets/build/ba_data/data/languages/dutch.json": "https://files.ballistica.net/cache/ba1/d1/07/37b7adc3dbec7328d26c5325f212",
|
||||
"assets/build/ba_data/data/languages/english.json": "https://files.ballistica.net/cache/ba1/b6/e8/5b89a8e607a1eec8e4c86374b7de",
|
||||
"assets/build/ba_data/data/languages/english.json": "https://files.ballistica.net/cache/ba1/6f/82/a29452c726dc179fc33286a90922",
|
||||
"assets/build/ba_data/data/languages/esperanto.json": "https://files.ballistica.net/cache/ba1/6e/fd/685a4e1da031474d47a1d9eb2731",
|
||||
"assets/build/ba_data/data/languages/french.json": "https://files.ballistica.net/cache/ba1/16/53/1535cc28a789efb7372de01bd7fb",
|
||||
"assets/build/ba_data/data/languages/german.json": "https://files.ballistica.net/cache/ba1/2f/47/3f7ef1eb62055dd5e6f7b7ec648c",
|
||||
"assets/build/ba_data/data/languages/gibberish.json": "https://files.ballistica.net/cache/ba1/27/42/24f6e3191209db8422b923ceee2d",
|
||||
"assets/build/ba_data/data/languages/gibberish.json": "https://files.ballistica.net/cache/ba1/0a/ec/f6665a696238275c806e7a0b1d0d",
|
||||
"assets/build/ba_data/data/languages/greek.json": "https://files.ballistica.net/cache/ba1/ff/08/0d32d1babc60fdebd39def8b51da",
|
||||
"assets/build/ba_data/data/languages/hindi.json": "https://files.ballistica.net/cache/ba1/63/f0/cc8dd75a100f7d58000a361ca160",
|
||||
"assets/build/ba_data/data/languages/hungarian.json": "https://files.ballistica.net/cache/ba1/cf/2b/23acc62ab35c4763a9cfe23495dc",
|
||||
@ -442,13 +442,14 @@
|
||||
"assets/build/ba_data/data/languages/korean.json": "https://files.ballistica.net/cache/ba1/26/8d/bf9cc8db2cc71b69e789898e1093",
|
||||
"assets/build/ba_data/data/languages/persian.json": "https://files.ballistica.net/cache/ba1/d8/b7/9098f0cb25088d233541490e3e68",
|
||||
"assets/build/ba_data/data/languages/polish.json": "https://files.ballistica.net/cache/ba1/2e/17/fb3e7ed77fa54427b434b1791793",
|
||||
"assets/build/ba_data/data/languages/portuguese.json": "https://files.ballistica.net/cache/ba1/6c/04/a528a4df9364ad4f0261cbc83f0a",
|
||||
"assets/build/ba_data/data/languages/portuguese.json": "https://files.ballistica.net/cache/ba1/fe/6d/751277bc6b704d4f2a54cf1a9cfa",
|
||||
"assets/build/ba_data/data/languages/romanian.json": "https://files.ballistica.net/cache/ba1/82/12/57bf144e12be229a9b70da9c45cb",
|
||||
"assets/build/ba_data/data/languages/russian.json": "https://files.ballistica.net/cache/ba1/bb/67/bdf5e720897c0eb966acdbab4274",
|
||||
"assets/build/ba_data/data/languages/serbian.json": "https://files.ballistica.net/cache/ba1/0d/19/4ed63932f5476d97068171906135",
|
||||
"assets/build/ba_data/data/languages/slovak.json": "https://files.ballistica.net/cache/ba1/97/ec/384ca27db2fdc711514273726935",
|
||||
"assets/build/ba_data/data/languages/spanish.json": "https://files.ballistica.net/cache/ba1/42/8a/31ee9bf7d90ad1c7a613ab91e4f3",
|
||||
"assets/build/ba_data/data/languages/swedish.json": "https://files.ballistica.net/cache/ba1/50/9f/be006ba19be6a69a57837eb6dca0",
|
||||
"assets/build/ba_data/data/languages/thai.json": "https://files.ballistica.net/cache/ba1/7f/21/a683b2ea2a9ebc6df81b5faa586a",
|
||||
"assets/build/ba_data/data/languages/turkish.json": "https://files.ballistica.net/cache/ba1/a4/d9/93b754bae8c86791f6d8d3b600e1",
|
||||
"assets/build/ba_data/data/languages/ukrainian.json": "https://files.ballistica.net/cache/ba1/c3/61/d5bcf2bcad50104b26d22d3365a4",
|
||||
"assets/build/ba_data/data/languages/venetian.json": "https://files.ballistica.net/cache/ba1/4b/da/7e444f86c768aee70779a0f7a28f",
|
||||
@ -3936,26 +3937,26 @@
|
||||
"assets/src/ba_data/python/ba/_generated/__init__.py": "https://files.ballistica.net/cache/ba1/ee/e8/cad05aa531c7faf7ff7b96db7f6e",
|
||||
"assets/src/ba_data/python/ba/_generated/enums.py": "https://files.ballistica.net/cache/ba1/72/82/86956fae909ac2fe2a1abd84a361",
|
||||
"ballisticacore-windows/Generic/BallisticaCore.ico": "https://files.ballistica.net/cache/ba1/89/c0/e32c7d2a35dc9aef57cc73b0911a",
|
||||
"build/prefab/full/linux_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/80/2d/f3018b6ba46d9278456e5e72c6da",
|
||||
"build/prefab/full/linux_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/11/56/91edee26ca9624941cfa5b800711",
|
||||
"build/prefab/full/linux_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/74/1d/fc9e33e565475daaac80da5252f0",
|
||||
"build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/b9/f7/d37785aeaa937eb9bfa56751bbb5",
|
||||
"build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/c2/b0/20a9a462d1701f47ce6a8fc61709",
|
||||
"build/prefab/full/linux_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/c4/a0/ed587e31756c462a5fd4638c5eea",
|
||||
"build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/61/be/99fd74e9a331ce2c3ad926ad77fc",
|
||||
"build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/78/e2/bce7116eebed3691a6ff58d4bc54",
|
||||
"build/prefab/full/linux_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/04/71/9325a193cfbe7da47a7c7f94ebe1",
|
||||
"build/prefab/full/linux_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/9c/7b/ac1a200be0f37078af0991faca3b",
|
||||
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/75/a9/164b2353457af90f482d896416a6",
|
||||
"build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/56/28/39af6142476ae8038d29e4429acf",
|
||||
"build/prefab/full/mac_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/cd/bd/5e04a66185f8ff83c0497ae1a303",
|
||||
"build/prefab/full/mac_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/c3/2b/998d74da453f011b5493cbfcd8fe",
|
||||
"build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/50/51/2cce21971cbc6097e55be2c86fc6",
|
||||
"build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/a6/0a/13a6e25b8568994f762bbce3fcd0",
|
||||
"build/prefab/full/mac_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/ff/63/1617dfd7111b677405093003b155",
|
||||
"build/prefab/full/mac_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/af/dc/cd5951e9bdb49dbdbb1ef2e5ac1e",
|
||||
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/76/d2/7a0ce7df6b84cbc0cce6d2d99d82",
|
||||
"build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/34/74/8a9e2c2c66c6b59a7da226a8157d",
|
||||
"build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/41/0c/0d0e2377a6311cfea648afc32a70",
|
||||
"build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/f1/4c/2edd29fca8144dcaa6b9d91eb480",
|
||||
"build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/1c/29/6a1592c4224fc7f5287113e86a87",
|
||||
"build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/27/2b/462de7463d2a6a5cb401352c6946",
|
||||
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/3a/b9/0e46794d391cc9e9f3fac544ed49",
|
||||
"build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/6d/a2/5da76344c31c4c8e943a56f8e5f8",
|
||||
"build/prefab/full/mac_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/53/e4/d1ac8975b8e0a541128f7a6c66ae",
|
||||
"build/prefab/full/mac_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/02/e2/65829a6d47ad9bfa5d41d08e1c97",
|
||||
"build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/b2/0d/efb0ad546c078a38f8081b52e9c7",
|
||||
"build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/48/b2/f84775fd3a3062b0b57c522d8089",
|
||||
"build/prefab/full/mac_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/46/cc/0b0194a60c85d83312b5a56ec9d9",
|
||||
"build/prefab/full/mac_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/b2/8b/5cf5de24316b6f58956f722db868",
|
||||
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/10/b6/c6ee48d8f08c5ed96f9ca178379b",
|
||||
"build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/d2/e6/78abc63f12b3c39100f79633cb22",
|
||||
"build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/16/ac/87ba32912d227e31b0d8532109b2",
|
||||
"build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/56/45/c4e65995536cec438e0270b9b911",
|
||||
"build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/a7/f1/ec2b457b078b1b96dc056aae30c7",
|
||||
"build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/2a/5a/4eec69d53dfb3ef6c18c03d2f473",
|
||||
"build/prefab/lib/linux_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/0e/ec/7864925a34d1ac2424c57cd86953",
|
||||
"build/prefab/lib/linux_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/80/90/bcdcade80c14a94051b50eb4d5e0",
|
||||
"build/prefab/lib/linux_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/b0/63/c8c7122ded855fcb1bb9260eae98",
|
||||
@ -3972,14 +3973,14 @@
|
||||
"build/prefab/lib/mac_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/6f/a8/7384b203ae56c2504057748c7e86",
|
||||
"build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/11/56/f3aeecacfa0acfbbb4032f98e75c",
|
||||
"build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/7b/1a/6dc287f1258a427068467e8d5238",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/26/97/9cc82b4426e737c4508a8c774a1c",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/ee/a1/cc9608fd17dfaf1e84673c0d60e3",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/3f/68/0b3cb367952f61918b2acbb66b37",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/93/74/c2031b257f962b8e099858cb8d19",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/12/ea/895877b2335975715730f71740a2",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/70/b6/e68e4f7303af5b1c115005ffa8c1",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/cc/22/f75baf7caf4cc0ecee48e1c5e23c",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/60/6f/b3d81d9ff6c06a971958f06e081c",
|
||||
"src/ballistica/generated/python_embedded/binding.inc": "https://files.ballistica.net/cache/ba1/fc/b5/62133319c6df8567aecfd29b1204",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/07/60/5242b82fbcc8ffb69e93802b9b27",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/07/78/105d0bc438f8fb23f7cc02ba0b4c",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/c5/3f/ee71637551395c36f7d14bccb7c4",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/54/5a/ed52f47776a8be311cc532d986ea",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/90/d2/0944e4e3fe19a80fe006248ded8b",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/70/c8/a3a65b4e3027d4cd9710f9dcdd7a",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/0b/47/bfe080496d98dac040b3552edb2d",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/fe/37/c82d017d3b9442bf9148fffd0c5b",
|
||||
"src/ballistica/generated/python_embedded/binding.inc": "https://files.ballistica.net/cache/ba1/6c/63/2b8cbb65a0e1daa45d59e9f87e9a",
|
||||
"src/ballistica/generated/python_embedded/bootstrap.inc": "https://files.ballistica.net/cache/ba1/c0/2f/a8b50faad086fba4fe936e863c20"
|
||||
}
|
||||
1
.idea/dictionaries/ericf.xml
generated
1
.idea/dictionaries/ericf.xml
generated
@ -701,6 +701,7 @@
|
||||
<w>etype</w>
|
||||
<w>eval'ed</w>
|
||||
<w>evalpydata</w>
|
||||
<w>evals</w>
|
||||
<w>evel</w>
|
||||
<w>eventid</w>
|
||||
<w>ewww</w>
|
||||
|
||||
@ -449,6 +449,7 @@
|
||||
"ba_data/data/languages/slovak.json",
|
||||
"ba_data/data/languages/spanish.json",
|
||||
"ba_data/data/languages/swedish.json",
|
||||
"ba_data/data/languages/thai.json",
|
||||
"ba_data/data/languages/turkish.json",
|
||||
"ba_data/data/languages/ukrainian.json",
|
||||
"ba_data/data/languages/venetian.json",
|
||||
|
||||
@ -14,6 +14,7 @@
|
||||
"ba_data/python/ba/__pycache__/_appmode.cpython-38.opt-1.pyc",
|
||||
"ba_data/python/ba/__pycache__/_apputils.cpython-38.opt-1.pyc",
|
||||
"ba_data/python/ba/__pycache__/_assetmanager.cpython-38.opt-1.pyc",
|
||||
"ba_data/python/ba/__pycache__/_asyncio.cpython-38.opt-1.pyc",
|
||||
"ba_data/python/ba/__pycache__/_benchmark.cpython-38.opt-1.pyc",
|
||||
"ba_data/python/ba/__pycache__/_campaign.cpython-38.opt-1.pyc",
|
||||
"ba_data/python/ba/__pycache__/_collision.cpython-38.opt-1.pyc",
|
||||
@ -75,6 +76,7 @@
|
||||
"ba_data/python/ba/_appmode.py",
|
||||
"ba_data/python/ba/_apputils.py",
|
||||
"ba_data/python/ba/_assetmanager.py",
|
||||
"ba_data/python/ba/_asyncio.py",
|
||||
"ba_data/python/ba/_benchmark.py",
|
||||
"ba_data/python/ba/_campaign.py",
|
||||
"ba_data/python/ba/_collision.py",
|
||||
|
||||
@ -145,6 +145,7 @@ SCRIPT_TARGETS_PY_PUBLIC = \
|
||||
build/ba_data/python/ba/_appmode.py \
|
||||
build/ba_data/python/ba/_apputils.py \
|
||||
build/ba_data/python/ba/_assetmanager.py \
|
||||
build/ba_data/python/ba/_asyncio.py \
|
||||
build/ba_data/python/ba/_benchmark.py \
|
||||
build/ba_data/python/ba/_campaign.py \
|
||||
build/ba_data/python/ba/_collision.py \
|
||||
@ -390,6 +391,7 @@ SCRIPT_TARGETS_PYC_PUBLIC = \
|
||||
build/ba_data/python/ba/__pycache__/_appmode.cpython-38.opt-1.pyc \
|
||||
build/ba_data/python/ba/__pycache__/_apputils.cpython-38.opt-1.pyc \
|
||||
build/ba_data/python/ba/__pycache__/_assetmanager.cpython-38.opt-1.pyc \
|
||||
build/ba_data/python/ba/__pycache__/_asyncio.cpython-38.opt-1.pyc \
|
||||
build/ba_data/python/ba/__pycache__/_benchmark.cpython-38.opt-1.pyc \
|
||||
build/ba_data/python/ba/__pycache__/_campaign.cpython-38.opt-1.pyc \
|
||||
build/ba_data/python/ba/__pycache__/_collision.cpython-38.opt-1.pyc \
|
||||
@ -4757,6 +4759,7 @@ DATA_TARGETS = \
|
||||
build/ba_data/data/languages/slovak.json \
|
||||
build/ba_data/data/languages/spanish.json \
|
||||
build/ba_data/data/languages/swedish.json \
|
||||
build/ba_data/data/languages/thai.json \
|
||||
build/ba_data/data/languages/turkish.json \
|
||||
build/ba_data/data/languages/ukrainian.json \
|
||||
build/ba_data/data/languages/venetian.json \
|
||||
|
||||
@ -5,7 +5,6 @@ from __future__ import annotations
|
||||
|
||||
from enum import Enum
|
||||
import random
|
||||
import asyncio
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
import _ba
|
||||
@ -294,8 +293,6 @@ class App:
|
||||
from bastd.actor import spazappearance
|
||||
from ba._generated.enums import TimeType
|
||||
|
||||
self._setup_asyncio()
|
||||
|
||||
cfg = self.config
|
||||
|
||||
self.delegate = appdelegate.AppDelegate()
|
||||
@ -590,37 +587,3 @@ class App:
|
||||
print('HTTPS TEST SUCCESS', len(val))
|
||||
except Exception as exc:
|
||||
print('HTTPS TEST FAIL:', exc)
|
||||
|
||||
def _setup_asyncio(self) -> None:
|
||||
# from ba._generated.enums import TimeType
|
||||
|
||||
if bool(True):
|
||||
return
|
||||
|
||||
try:
|
||||
asyncio.get_running_loop()
|
||||
print('Found running asyncio loop; unexpected.')
|
||||
except RuntimeError:
|
||||
pass
|
||||
loop = asyncio.new_event_loop()
|
||||
print('MADE', loop)
|
||||
asyncio.set_event_loop(loop)
|
||||
print('NOW LOOP IS', loop)
|
||||
print('policy is', asyncio.get_event_loop_policy())
|
||||
print('RUNNING IS NOW', asyncio.get_running_loop())
|
||||
|
||||
# def run_cycle() -> None:
|
||||
# loop.call_soon(loop.stop)
|
||||
# loop.run_forever()
|
||||
|
||||
# self._asyncio_timer = _ba.Timer(1.0 / 5.0,
|
||||
# run_cycle,
|
||||
# timetype=TimeType.REAL,
|
||||
# repeat=True)
|
||||
async def _atest() -> None:
|
||||
print('TASK STARTING')
|
||||
await asyncio.sleep(2.0)
|
||||
print('TASK ENDING')
|
||||
|
||||
asyncio.run(_atest())
|
||||
#asyncio.create_task(_atest())
|
||||
|
||||
71
assets/src/ba_data/python/ba/_asyncio.py
Normal file
71
assets/src/ba_data/python/ba/_asyncio.py
Normal file
@ -0,0 +1,71 @@
|
||||
# Released under the MIT License. See LICENSE for details.
|
||||
#
|
||||
"""Asyncio related functionality.
|
||||
|
||||
Exploring the idea of allowing Python coroutines to run gracefully
|
||||
besides our internal event loop. They could prove useful for networking
|
||||
operations or possibly game logic.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
import asyncio
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from typing import Optional
|
||||
import ba
|
||||
|
||||
# Our timer and event loop for the ballistica game thread.
|
||||
_asyncio_timer: Optional[ba.Timer] = None
|
||||
_asyncio_event_loop: Optional[asyncio.AbstractEventLoop] = None
|
||||
|
||||
|
||||
def setup_asyncio() -> None:
|
||||
"""Setup asyncio functionality for our game thread."""
|
||||
# pylint: disable=global-statement
|
||||
|
||||
import _ba
|
||||
from ba._generated.enums import TimeType
|
||||
|
||||
assert _ba.in_game_thread()
|
||||
|
||||
# Create our event-loop. We don't expect there to be one
|
||||
# running on this thread before we do.
|
||||
try:
|
||||
asyncio.get_running_loop()
|
||||
print('Found running asyncio loop; unexpected.')
|
||||
except RuntimeError:
|
||||
pass
|
||||
|
||||
global _asyncio_event_loop # pylint: disable=invalid-name
|
||||
_asyncio_event_loop = asyncio.new_event_loop()
|
||||
|
||||
# Ideally we should integrate asyncio into our C++ Thread class's
|
||||
# low level event loop so that asyncio timers/sockets/etc. could
|
||||
# be true first-class citizens. For now, though, we can explicitly
|
||||
# pump an asyncio loop periodically which gets us a decent
|
||||
# approximation of that, which should be good enough for
|
||||
# all but extremely time sensitive uses.
|
||||
# See https://stackoverflow.com/questions/29782377/
|
||||
# is-it-possible-to-run-only-a-single-step-of-the-asyncio-event-loop
|
||||
def run_cycle() -> None:
|
||||
assert _asyncio_event_loop is not None
|
||||
_asyncio_event_loop.call_soon(_asyncio_event_loop.stop)
|
||||
_asyncio_event_loop.run_forever()
|
||||
|
||||
global _asyncio_timer # pylint: disable=invalid-name
|
||||
_asyncio_timer = _ba.Timer(1.0 / 30.0,
|
||||
run_cycle,
|
||||
timetype=TimeType.REAL,
|
||||
repeat=True)
|
||||
|
||||
async def aio_test() -> None:
|
||||
print('TEST AIO TASK STARTING')
|
||||
assert _asyncio_event_loop is not None
|
||||
assert asyncio.get_running_loop() is _asyncio_event_loop
|
||||
await asyncio.sleep(2.0)
|
||||
print('TEST AIO TASK ENDING')
|
||||
|
||||
if bool(False):
|
||||
_asyncio_event_loop.create_task(aio_test())
|
||||
@ -22,6 +22,19 @@ if TYPE_CHECKING:
|
||||
import ba
|
||||
|
||||
|
||||
def finish_bootstrapping() -> None:
|
||||
"""Do final bootstrapping related bits."""
|
||||
from ba._asyncio import setup_asyncio
|
||||
assert _ba.in_game_thread()
|
||||
|
||||
# Kick off our asyncio event handling, allowing us to use coroutines
|
||||
# in our game thread alongside our internal event handling.
|
||||
setup_asyncio()
|
||||
|
||||
# Ok, bootstrapping is done; time to get the show started.
|
||||
_ba.app.on_app_launch()
|
||||
|
||||
|
||||
def reset_to_main_menu() -> None:
|
||||
"""Reset the game to the main menu gracefully."""
|
||||
_ba.app.return_to_main_menu_session_gracefully()
|
||||
|
||||
@ -37,7 +37,7 @@ class LanguageSubsystem:
|
||||
# We don't yet support full unicode display on windows or linux :-(.
|
||||
if (language in {
|
||||
'Chinese', 'ChineseTraditional', 'Persian', 'Korean', 'Arabic',
|
||||
'Hindi', 'Vietnamese'
|
||||
'Hindi', 'Vietnamese', 'Thai'
|
||||
} and not _ba.can_display_full_unicode()):
|
||||
return False
|
||||
return True
|
||||
@ -79,6 +79,7 @@ class LanguageSubsystem:
|
||||
'ar': 'Arabic',
|
||||
'zh': 'Chinese',
|
||||
'tr': 'Turkish',
|
||||
'th': 'Thai',
|
||||
'id': 'Indonesian',
|
||||
'sr': 'Serbian',
|
||||
'uk': 'Ukrainian',
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
namespace ballistica {
|
||||
|
||||
// These are set automatically via script; don't modify them here.
|
||||
const int kAppBuildNumber = 20392;
|
||||
const int kAppBuildNumber = 20393;
|
||||
const char* kAppVersion = "1.6.5";
|
||||
|
||||
// Our standalone globals.
|
||||
|
||||
@ -315,7 +315,7 @@ void Game::RunAppLaunchCommands() {
|
||||
{
|
||||
// Run this in the UI context.
|
||||
ScopedSetContext cp(GetUIContext());
|
||||
g_python->obj(Python::ObjID::kOnAppLaunchCall).Call();
|
||||
g_python->obj(Python::ObjID::kFinishBootstrappingCall).Call();
|
||||
}
|
||||
ran_app_launch_commands_ = true;
|
||||
|
||||
|
||||
@ -939,12 +939,12 @@ void Python::Reset(bool do_init) {
|
||||
// Inits our _ba module and runs Py_Initialize().
|
||||
AppInternalPyInitialize(&config);
|
||||
|
||||
// Grab __main__ in case we need to use it later.
|
||||
PyObject* m;
|
||||
BA_PRECONDITION(m = PyImport_AddModule("__main__"));
|
||||
BA_PRECONDITION(main_dict_ = PyModule_GetDict(m));
|
||||
|
||||
const char* ver = Py_GetVersion();
|
||||
|
||||
if (strncmp(ver, "3.8", 3) != 0) {
|
||||
throw Exception("We require Python 3.8.x; instead found "
|
||||
+ std::string(ver));
|
||||
|
||||
@ -280,7 +280,7 @@ class Python {
|
||||
kCallClass,
|
||||
kGarbageCollectSessionEndCall,
|
||||
kConfig,
|
||||
kOnAppLaunchCall,
|
||||
kFinishBootstrappingCall,
|
||||
kClientInfoQueryResponseCall,
|
||||
kResetToMainMenuCall,
|
||||
kSetConfigFullscreenOnCall,
|
||||
|
||||
@ -97,7 +97,7 @@ def get_binding_values() -> Tuple[Any, ...]:
|
||||
ba.OutOfBoundsMessage, # kOutOfBoundsMessageClass
|
||||
ba.PickUpMessage, # kPickUpMessageClass
|
||||
ba.DropMessage, # kDropMessageClass
|
||||
ba.app.on_app_launch, # kOnAppLaunchCall
|
||||
_hooks.finish_bootstrapping, # kFinishBootstrappingCall
|
||||
_input.get_device_value, # kGetDeviceValueCall
|
||||
_input.get_last_player_name_from_input_device, # kGetLastPlayerNameFromInputDeviceCall
|
||||
copy.deepcopy, # kDeepCopyCall
|
||||
|
||||
@ -201,7 +201,9 @@ def get_master_asset_src_dir() -> None:
|
||||
|
||||
# Also compare repo name to split version of itself to
|
||||
# see if we're outside of core (filtering will cause mismatch if so).
|
||||
# pylint: disable=useless-suppression
|
||||
# pylint: disable=simplifiable-condition
|
||||
# pylint: disable=condition-evals-to-constant
|
||||
if ('origin/master' in output.splitlines()[0]
|
||||
and 'ballistica' + 'core' == 'ballisticacore'):
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user