From 9410d1ae5a0d35a038708ce085213c149634eced Mon Sep 17 00:00:00 2001 From: Eric Froemling Date: Thu, 4 Nov 2021 13:44:01 -0500 Subject: [PATCH] Tamil language and tidying --- .efrocachemap | 41 ++++++++++++----------- CHANGELOG.md | 1 + assets/.asset_manifest_private.json | 1 + assets/Makefile | 1 + assets/src/ba_data/python/ba/_language.py | 5 +-- docs/ba_module.md | 2 +- src/ballistica/ballistica.cc | 2 +- tools/bacloud | 8 ++--- tools/efro/call.py | 6 ++-- tools/efro/util.py | 11 ++++++ 10 files changed, 45 insertions(+), 33 deletions(-) diff --git a/.efrocachemap b/.efrocachemap index 7ad1f4ff..9f2a9c33 100644 --- a/.efrocachemap +++ b/.efrocachemap @@ -420,7 +420,7 @@ "assets/build/ba_data/audio/zoeOw.ogg": "https://files.ballistica.net/cache/ba1/41/a0/d7edfdeada25eb8310de177ab7f5", "assets/build/ba_data/audio/zoePickup01.ogg": "https://files.ballistica.net/cache/ba1/15/ba/7db3f4534699517b8bff3ffae4b6", "assets/build/ba_data/audio/zoeScream01.ogg": "https://files.ballistica.net/cache/ba1/6d/de/d973377a4f5f975470f958119b0b", - "assets/build/ba_data/data/langdata.json": "https://files.ballistica.net/cache/ba1/13/e2/9a883b2b01f282e87f445de8bdcf", + "assets/build/ba_data/data/langdata.json": "https://files.ballistica.net/cache/ba1/bb/65/9e2bdc25504f1b79ddcb53403776", "assets/build/ba_data/data/languages/arabic.json": "https://files.ballistica.net/cache/ba1/8c/fd/162ab3530e31d8cdcbf83de0f49d", "assets/build/ba_data/data/languages/belarussian.json": "https://files.ballistica.net/cache/ba1/ab/fd/cb157afc98dbe055ba63cf4c2f6f", "assets/build/ba_data/data/languages/chinese.json": "https://files.ballistica.net/cache/ba1/28/96/397e5c164a595c2b6c2d3eb2d4f1", @@ -429,7 +429,7 @@ "assets/build/ba_data/data/languages/czech.json": "https://files.ballistica.net/cache/ba1/17/33/503a32d478e70661d09bcb7d2a82", "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/6f/82/a29452c726dc179fc33286a90922", + "assets/build/ba_data/data/languages/english.json": "https://files.ballistica.net/cache/ba1/00/a6/3563b95117cad093c9e56a27ba24", "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/7f/ac/fd0257aba3ed874f69c30fd333ff", "assets/build/ba_data/data/languages/german.json": "https://files.ballistica.net/cache/ba1/a0/65/0802d58fd002738faa5fca0ac200", @@ -449,6 +449,7 @@ "assets/build/ba_data/data/languages/slovak.json": "https://files.ballistica.net/cache/ba1/9f/a6/a2c9d7f3f90a2320aa45ccfd65cd", "assets/build/ba_data/data/languages/spanish.json": "https://files.ballistica.net/cache/ba1/bc/71/83c7c31a4f6467ed2ec8b86a4b71", "assets/build/ba_data/data/languages/swedish.json": "https://files.ballistica.net/cache/ba1/50/9f/be006ba19be6a69a57837eb6dca0", + "assets/build/ba_data/data/languages/tamil.json": "https://files.ballistica.net/cache/ba1/6c/c4/98a88b579fa68f452a19a74b5745", "assets/build/ba_data/data/languages/thai.json": "https://files.ballistica.net/cache/ba1/dd/de/c197fa9aff42e4422bc66b95ad88", "assets/build/ba_data/data/languages/turkish.json": "https://files.ballistica.net/cache/ba1/65/e4/b9308f15437972209b4d3fce7abd", "assets/build/ba_data/data/languages/ukrainian.json": "https://files.ballistica.net/cache/ba1/8f/42/56f3ebcc6005f382449c1c2422fd", @@ -3965,26 +3966,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/ae/98/90989497606e5696cb3d718d1757", + "build/prefab/full/linux_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/3b/e3/eee5a9a87cfedaef89411af028d9", "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/a1/1b/fc7fdffa31d72727dfd3878339ba", - "build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/f2/26/1924cbc1c525693f4c91c9c9469c", - "build/prefab/full/linux_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/73/4f/4939f5c0157860ed90175d8835c7", + "build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/64/f2/c9f957d8f02742aad8853531b9ee", + "build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/b9/af/266c16e253c477a175a1430fe390", + "build/prefab/full/linux_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/3f/6d/e295c91884cbc384161e0e1960ca", "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/97/69/a18ef7da51f16abd8294e5459d9f", - "build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/ac/71/038e4b749274bd84872d571e9b4c", - "build/prefab/full/mac_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/8f/85/243905ea2d15dffe573eee60b273", - "build/prefab/full/mac_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/92/b1/303b02c5e55fa56ad716a137a760", - "build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/ba/55/350c7d6018a0a772ebc579401884", - "build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/fd/56/6b4f536c454521fd4e7d6a2f028e", - "build/prefab/full/mac_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/fe/2c/c372e8a9704e9253c9ab94549003", - "build/prefab/full/mac_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/39/db/d0c9449f9ae89e58d7232446c364", - "build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/39/a2/db76cbab16a644c2b4bb26f0931c", - "build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/3a/0f/3646d6731f749254b282b81f73dd", - "build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/44/15/a7703a644ad96eed31db7052fb72", - "build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/a1/5c/f5dd2c844988f78bf370476eaa75", - "build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/f7/53/f5196f428c7ed5889f8d470f588e", - "build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/c8/2f/de5237df4e821d685bc320836a5f", + "build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/98/16/78c25fd50f66697e3fcf942735dc", + "build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/cd/72/eae87258fce3636e89d67384709e", + "build/prefab/full/mac_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/c3/0e/30d3896805357ece6d72a8e66d82", + "build/prefab/full/mac_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/5b/f7/f7d7d81eb81067bd78d75602392e", + "build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/99/34/d5b245d6e9ee312d97ea0f5bbdb2", + "build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/92/8c/5373e57227fc4435cec858b4f2a1", + "build/prefab/full/mac_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/80/fa/d0ee6bcfb829ddfc2caba7ee8f4e", + "build/prefab/full/mac_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/4a/92/ac32aebcb136d2267c7ccaa2ff7c", + "build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/72/a0/dc81b7d2fe8aa27898920c0d9eaa", + "build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/36/78/0c2520bae95b05c9e374c85c97ce", + "build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/18/fe/80dcab6a8c203ef82963c60a19c4", + "build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/7d/63/5899374034398ba81a8b02009ba3", + "build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/b3/0f/9258d0adaaa2792363a9a2989531", + "build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/b5/f1/52563ad998f3e1388043286017c1", "build/prefab/lib/linux_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/00/bc/3cbd2cc3820bb81bbd972a7ceb5a", "build/prefab/lib/linux_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/d3/5c/969e1b4c0958ae64db139742be65", "build/prefab/lib/linux_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/29/ce/80de999ebf7f31e4711c4fbcd567", diff --git a/CHANGELOG.md b/CHANGELOG.md index 0e216e22..fb232602 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ ### 1.6.6 (20394) - Beginning work on moving to new asset system. +- Added Tamil language (Thanks Ryan!) ### 1.6.5 (20394) - Added co-op support to server builds (thanks Dliwk!) diff --git a/assets/.asset_manifest_private.json b/assets/.asset_manifest_private.json index 5c0ccf46..6ce51979 100644 --- a/assets/.asset_manifest_private.json +++ b/assets/.asset_manifest_private.json @@ -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/tamil.json", "ba_data/data/languages/thai.json", "ba_data/data/languages/turkish.json", "ba_data/data/languages/ukrainian.json", diff --git a/assets/Makefile b/assets/Makefile index 8ddb1a47..74721f4f 100644 --- a/assets/Makefile +++ b/assets/Makefile @@ -4809,6 +4809,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/tamil.json \ build/ba_data/data/languages/thai.json \ build/ba_data/data/languages/turkish.json \ build/ba_data/data/languages/ukrainian.json \ diff --git a/assets/src/ba_data/python/ba/_language.py b/assets/src/ba_data/python/ba/_language.py index 61d481a5..5709b6e2 100644 --- a/assets/src/ba_data/python/ba/_language.py +++ b/assets/src/ba_data/python/ba/_language.py @@ -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', 'Thai' + 'Hindi', 'Vietnamese', 'Thai', 'Tamil' } and not _ba.can_display_full_unicode()): return False return True @@ -85,7 +85,8 @@ class LanguageSubsystem: 'uk': 'Ukrainian', 'vi': 'Vietnamese', 'vec': 'Venetian', - 'hi': 'Hindi' + 'hi': 'Hindi', + 'ta': 'Tamil', } # Special case for Chinese: map specific variations to traditional. diff --git a/docs/ba_module.md b/docs/ba_module.md index b46c07c3..47f02bcd 100644 --- a/docs/ba_module.md +++ b/docs/ba_module.md @@ -1,5 +1,5 @@ -

last updated on 2021-11-02 for Ballistica version 1.6.6 build 20400

+

last updated on 2021-11-04 for Ballistica version 1.6.6 build 20403

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!


diff --git a/src/ballistica/ballistica.cc b/src/ballistica/ballistica.cc index 3f406208..f1525722 100644 --- a/src/ballistica/ballistica.cc +++ b/src/ballistica/ballistica.cc @@ -21,7 +21,7 @@ namespace ballistica { // These are set automatically via script; don't modify them here. -const int kAppBuildNumber = 20400; +const int kAppBuildNumber = 20403; const char* kAppVersion = "1.6.6"; // Our standalone globals. diff --git a/tools/bacloud b/tools/bacloud index 9a50cdd4..39f17c76 100755 --- a/tools/bacloud +++ b/tools/bacloud @@ -32,10 +32,8 @@ TOOL_NAME = 'bacloud' # Set BACLOUD_SERVER env var to LOCAL to talk to a locally-run master-server. # Set it to TEST to talk to the 'test' app-engine service. -MASTER_SERVER_ADDRESS = ( - 'http://localhost:23524' if os.environ.get('BACLOUD_SERVER') == 'LOCAL' - else 'https://1-dot-test-dot-bamaster.appspot.com' if os.environ.get( - 'BACLOUD_SERVER') == 'TEST' else 'https://bamaster.appspot.com') +MASTER_SERVER_URL = os.getenv('BACLOUD_SERVER_URL', + 'https://bamaster.appspot.com') @dataclass @@ -236,7 +234,7 @@ class App: """Issue a command to the server and get a response.""" response_raw_2 = requests.post( - (MASTER_SERVER_ADDRESS + '/bacloudcmd'), + (MASTER_SERVER_URL + '/bacloudcmd'), data={ 'c': cmd, 'v': VERSION, diff --git a/tools/efro/call.py b/tools/efro/call.py index 66b601c8..1ea3d98f 100644 --- a/tools/efro/call.py +++ b/tools/efro/call.py @@ -266,10 +266,8 @@ if TYPE_CHECKING: def Call(*_args: Any, **_keywds: Any) -> Any: ... + # A convenient wrapper around functools.partial which adds type-safety + # (though it does not support keyword arguments). partial = Call else: partial = functools.partial - -# A convenient wrapper around functools.partial which adds type-safety -# (though it does not support keyword arguments). -# partial = Call if TYPE_CHECKING else functools.partial diff --git a/tools/efro/util.py b/tools/efro/util.py index e4e2173f..285505f0 100644 --- a/tools/efro/util.py +++ b/tools/efro/util.py @@ -92,6 +92,17 @@ def utc_this_hour() -> datetime.datetime: tzinfo=now.tzinfo) +def utc_this_minute() -> datetime.datetime: + """Get offset-aware beginning of current minute in the utc time zone.""" + now = datetime.datetime.now(datetime.timezone.utc) + return datetime.datetime(year=now.year, + month=now.month, + day=now.day, + hour=now.hour, + minute=now.minute, + tzinfo=now.tzinfo) + + def empty_weakref(objtype: type[T]) -> weakref.ref[T]: """Return an invalidated weak-reference for the specified type.""" # At runtime, all weakrefs are the same; our type arg is just