mirror of
https://github.com/RYDE-WORK/ballistica.git
synced 2026-01-19 13:25:31 +08:00
lang updates and 1.7 internal prep work
This commit is contained in:
parent
d16b569052
commit
6d81843277
106
.efrocachemap
106
.efrocachemap
@ -420,8 +420,8 @@
|
||||
"assets/build/ba_data/audio/zoeOw.ogg": "https://files.ballistica.net/cache/ba1/51/eb/0a567253cc08c94c5d315a64d9af",
|
||||
"assets/build/ba_data/audio/zoePickup01.ogg": "https://files.ballistica.net/cache/ba1/bc/8f/a9c51a09c418136e386b7fdf21c7",
|
||||
"assets/build/ba_data/audio/zoeScream01.ogg": "https://files.ballistica.net/cache/ba1/02/e5/84916e123f47ccf11ddda380d699",
|
||||
"assets/build/ba_data/data/langdata.json": "https://files.ballistica.net/cache/ba1/d6/7e/598e11bd8dfc90de5edb9151cfc8",
|
||||
"assets/build/ba_data/data/languages/arabic.json": "https://files.ballistica.net/cache/ba1/68/6d/7a251c216dda7550ca871871e2d1",
|
||||
"assets/build/ba_data/data/langdata.json": "https://files.ballistica.net/cache/ba1/a0/0c/c47cefa0c9b1517d94e5a140fdaf",
|
||||
"assets/build/ba_data/data/languages/arabic.json": "https://files.ballistica.net/cache/ba1/0f/e1/94378b32c786d5365a7810a15d73",
|
||||
"assets/build/ba_data/data/languages/belarussian.json": "https://files.ballistica.net/cache/ba1/55/8c/8d0a0585e434b94865ae4befc090",
|
||||
"assets/build/ba_data/data/languages/chinese.json": "https://files.ballistica.net/cache/ba1/fc/a4/813e4ef8c4204d8616aa68a80891",
|
||||
"assets/build/ba_data/data/languages/chinesetraditional.json": "https://files.ballistica.net/cache/ba1/ff/7c/3bcab4ae1f39977434acb0d6f795",
|
||||
@ -431,29 +431,29 @@
|
||||
"assets/build/ba_data/data/languages/dutch.json": "https://files.ballistica.net/cache/ba1/97/90/39ba65c2ad714429aec82ea1ae3e",
|
||||
"assets/build/ba_data/data/languages/english.json": "https://files.ballistica.net/cache/ba1/d6/9d/4c4f878cc2ea5a6ecfca48a6ea02",
|
||||
"assets/build/ba_data/data/languages/esperanto.json": "https://files.ballistica.net/cache/ba1/4c/c7/0184b8178869d1a3827a1bfcd5bb",
|
||||
"assets/build/ba_data/data/languages/french.json": "https://files.ballistica.net/cache/ba1/94/66/31892eb13c227d10562b1af3e0ac",
|
||||
"assets/build/ba_data/data/languages/german.json": "https://files.ballistica.net/cache/ba1/f2/5a/c68991b1c36c9341bc2dac73269d",
|
||||
"assets/build/ba_data/data/languages/french.json": "https://files.ballistica.net/cache/ba1/f7/15/08a411143de698f715c69551cea3",
|
||||
"assets/build/ba_data/data/languages/german.json": "https://files.ballistica.net/cache/ba1/83/a3/01a5ba0d128630afd31ecb518f82",
|
||||
"assets/build/ba_data/data/languages/gibberish.json": "https://files.ballistica.net/cache/ba1/de/57/e732c7bb0b70fe90bcb8529f6f0b",
|
||||
"assets/build/ba_data/data/languages/greek.json": "https://files.ballistica.net/cache/ba1/01/ea/cd9dac4a24a5c92495c37cd98371",
|
||||
"assets/build/ba_data/data/languages/hindi.json": "https://files.ballistica.net/cache/ba1/40/d7/84b6bc5eaef05145af3bef5e5e1c",
|
||||
"assets/build/ba_data/data/languages/hindi.json": "https://files.ballistica.net/cache/ba1/c2/f5/e7549f5179c22c6da97fafffc058",
|
||||
"assets/build/ba_data/data/languages/hungarian.json": "https://files.ballistica.net/cache/ba1/2d/e5/3737c6c3979cf381321c5472bea5",
|
||||
"assets/build/ba_data/data/languages/indonesian.json": "https://files.ballistica.net/cache/ba1/b1/81/d99fb5b8c368430944b357aa15fe",
|
||||
"assets/build/ba_data/data/languages/italian.json": "https://files.ballistica.net/cache/ba1/cc/5d/94c4004b798e74922830280bc8bc",
|
||||
"assets/build/ba_data/data/languages/korean.json": "https://files.ballistica.net/cache/ba1/7f/57/fd4b9a63be0207ba2ad49e19253c",
|
||||
"assets/build/ba_data/data/languages/italian.json": "https://files.ballistica.net/cache/ba1/d7/f0/436072225f713259eaa5fa39ba5d",
|
||||
"assets/build/ba_data/data/languages/korean.json": "https://files.ballistica.net/cache/ba1/d7/8b/acdfb39196be7856f8bad77eb6a0",
|
||||
"assets/build/ba_data/data/languages/persian.json": "https://files.ballistica.net/cache/ba1/f1/49/a7a94c6a662f65de4d8e9d5303f4",
|
||||
"assets/build/ba_data/data/languages/polish.json": "https://files.ballistica.net/cache/ba1/04/fa/b24dd48bfbf3c2d67ee5ad1269c3",
|
||||
"assets/build/ba_data/data/languages/portuguese.json": "https://files.ballistica.net/cache/ba1/d5/f0/b5015710dfdc0e48f3e0a9d75332",
|
||||
"assets/build/ba_data/data/languages/portuguese.json": "https://files.ballistica.net/cache/ba1/83/e8/26ccc434b55b79a343cfe8cfaa7d",
|
||||
"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/97/38/c8ae1079059dd6b6579c89802ed8",
|
||||
"assets/build/ba_data/data/languages/serbian.json": "https://files.ballistica.net/cache/ba1/38/d6/376433fa66f1798c64035efc1371",
|
||||
"assets/build/ba_data/data/languages/serbian.json": "https://files.ballistica.net/cache/ba1/e6/59/af13a5d296da5935699bec902ed7",
|
||||
"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/6d/25/745fec991d43eadfbde149d897bf",
|
||||
"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/6a/ab/e5321ab73beb56d58948bbee6f0d",
|
||||
"assets/build/ba_data/data/languages/tamil.json": "https://files.ballistica.net/cache/ba1/3c/cf/89114640ffa253721583c0d2699b",
|
||||
"assets/build/ba_data/data/languages/thai.json": "https://files.ballistica.net/cache/ba1/74/3d/c3d40a1e5ee1edf82555da05eda9",
|
||||
"assets/build/ba_data/data/languages/turkish.json": "https://files.ballistica.net/cache/ba1/e8/0b/6825043ce101a831732eb9c97e4f",
|
||||
"assets/build/ba_data/data/languages/ukrainian.json": "https://files.ballistica.net/cache/ba1/87/20/259904441097b886b841d7c4d09a",
|
||||
"assets/build/ba_data/data/languages/venetian.json": "https://files.ballistica.net/cache/ba1/ff/a7/d74151ee6fa1d228cafb52e52f04",
|
||||
"assets/build/ba_data/data/languages/venetian.json": "https://files.ballistica.net/cache/ba1/35/31/47dbbc1e3a581565681d4a0c0361",
|
||||
"assets/build/ba_data/data/languages/vietnamese.json": "https://files.ballistica.net/cache/ba1/0b/24/3cc2b5a6ebe4bca1e01b40f8ed09",
|
||||
"assets/build/ba_data/data/maps/big_g.json": "https://files.ballistica.net/cache/ba1/47/0a/a617cc85d927b576c4e6fc1091ed",
|
||||
"assets/build/ba_data/data/maps/bridgit.json": "https://files.ballistica.net/cache/ba1/03/4b/57ee9b42854b26f23f81bd8c58ef",
|
||||
@ -3966,50 +3966,50 @@
|
||||
"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/b2/e5/0ee0561e16257a32830645239f34",
|
||||
"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/79/7f/b35e110c2414ed3e9c2a63a5edb8",
|
||||
"build/prefab/full/linux_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/c6/0c/60fd9cfbf56550398b2a0282f8be",
|
||||
"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/c9/9d/8cf082284a49571f791b90d9106b",
|
||||
"build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/2a/7d/e5fc72327db6442b8eff92084a86",
|
||||
"build/prefab/full/linux_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/9d/d0/27123ab8460edbe2b81e2fbe26f4",
|
||||
"build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/67/55/ae89335593326cfb95d1d8e80e04",
|
||||
"build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/66/d0/d4616d86a9dfbf7721c42d4b82c5",
|
||||
"build/prefab/full/linux_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/aa/32/568658639fa4f5c834d51a7b51fd",
|
||||
"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/f6/f3/097b3f57775872ce2cb1a5056a1f",
|
||||
"build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/b0/8d/3950a671608e034d98873d296d79",
|
||||
"build/prefab/full/mac_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/3e/d7/98b17fd0a2c9fbe165e3305545c8",
|
||||
"build/prefab/full/mac_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/e8/14/16e4569e8ba8d81add5185d093d5",
|
||||
"build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/03/11/be7f105d7fa6481ee733fa27e395",
|
||||
"build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/4e/ca/37f1978ef5964519797bc7c86c85",
|
||||
"build/prefab/full/mac_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/ae/27/2159c832c5cfbb0bd6377d53c51a",
|
||||
"build/prefab/full/mac_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/68/ca/02d14e37337c724d9e81c2c07042",
|
||||
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/13/ea/5dbca074d091cb18ba66d69396f5",
|
||||
"build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/4a/2d/3eb7994b464507b25d402c911981",
|
||||
"build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/d3/63/cfc5b59bcca871bc90cbca08d135",
|
||||
"build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/7c/6f/1d4b4b019d85acc2bbe22ac61f66",
|
||||
"build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/57/7e/bbc31eed5601c189ea3b45c5aa30",
|
||||
"build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/85/02/03b08c4bd892da2f364e747cbc7d",
|
||||
"build/prefab/lib/linux_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/d5/9e/9ba956c3fab76d0d078abfa1da58",
|
||||
"build/prefab/lib/linux_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/94/5c/d2328912be397d0c47c94de88600",
|
||||
"build/prefab/lib/linux_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/c6/b4/d2bcc9d5e3ed7c6e0ebf952c7e8c",
|
||||
"build/prefab/lib/linux_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/0d/fb/4e30bf2f94a1d7952033c95751dc",
|
||||
"build/prefab/lib/linux_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/52/24/1317c155820a39aa1f8e6355f30a",
|
||||
"build/prefab/lib/linux_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/59/e0/d31d41a094422aa0e76aa0720016",
|
||||
"build/prefab/lib/linux_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/5d/e5/9c6d67f911ee6bbf83e6be8471f9",
|
||||
"build/prefab/lib/linux_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/94/bb/8e22dfe10d8caf5c69705bdeee5c",
|
||||
"build/prefab/lib/mac_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/1d/a1/1eae4803fdc5817b339639484050",
|
||||
"build/prefab/lib/mac_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/7c/6b/51ccdd8d9b1543a4ecbec5d86283",
|
||||
"build/prefab/lib/mac_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/bb/78/8b75f03d6dbc1f8a52b6f474d805",
|
||||
"build/prefab/lib/mac_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/37/51/31e9201bcdc1c7ee64629b03651f",
|
||||
"build/prefab/lib/mac_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/db/7a/2e01ec9f3b9bb73344664ee77531",
|
||||
"build/prefab/lib/mac_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/60/10/6076b395d00cba9af31a23f23088",
|
||||
"build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/62/db/263a5fd8732b884cefb225eb0152",
|
||||
"build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/3f/69/4a6b0e32ccad4a175c3ce81965d6",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/8a/ad/a1d95af5a8a0fc7432b7d18424ce",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/64/0f/417d7d670cb537a2c33c34413ab0",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/8f/7f/2a543aedbeda4415c7d6a133446c",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/2c/29/9881e42f274b27a2267e0fcbf2c4",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/a9/14/628cfc0a73eb6bd115c12b910e16",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/9f/d5/a133e0b5f1b7ee494b6e848164fe",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/8a/85/a3b4ca183c808225b08562e2ad32",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/01/28/06fe724ed0a007ddc4806e4cfee2",
|
||||
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/27/39/610bace6a9e717c86a4c8124f091",
|
||||
"build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/1a/ae/54d51f5a611e5fa1e989269c7d55",
|
||||
"build/prefab/full/mac_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/9e/c3/193ecdba05af7292a240cdd79824",
|
||||
"build/prefab/full/mac_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/9e/16/90d9eb2e2f36618e8853048eaec2",
|
||||
"build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/3e/89/49f2aeedd613398e8e2e4b5557fd",
|
||||
"build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/1f/41/e4ee217ff4c2ee1ee98cf15a654f",
|
||||
"build/prefab/full/mac_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/07/6d/d6b0c3ea508ebe1b52062d19c39f",
|
||||
"build/prefab/full/mac_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/57/97/a1a20a427ed7d2c48bdbe5f8535b",
|
||||
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/63/79/e1770a8f8944784592abfca1c5eb",
|
||||
"build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/5b/04/b8619ef6a5a07634bcd354c89756",
|
||||
"build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/8c/95/136ecf8978e84f4e03be27fb230a",
|
||||
"build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/5f/48/09c429320932c64dd899dc0e169b",
|
||||
"build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/0f/9d/45f4a5aef6449e53b47ff95df852",
|
||||
"build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/48/de/844f2a989cfbbf8bb883b68e31e1",
|
||||
"build/prefab/lib/linux_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/d7/9c/d585f497c36b22f6872b4d8b0d14",
|
||||
"build/prefab/lib/linux_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/53/cd/7bcdeb377a33413266fcbc066b13",
|
||||
"build/prefab/lib/linux_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/5c/5b/15c498b609f447f346cd2f004915",
|
||||
"build/prefab/lib/linux_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/62/d4/e6bbb3e7730c9f5a4519c3a94f06",
|
||||
"build/prefab/lib/linux_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/ae/2d/6e509a3a27127d365dc9af83ab2b",
|
||||
"build/prefab/lib/linux_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/36/18/b81804ac8d0384fc72f0367371a1",
|
||||
"build/prefab/lib/linux_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/e1/64/fcd5e883cd2c979be76e9e9f7987",
|
||||
"build/prefab/lib/linux_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/c7/6b/8326914b322f281c5ab03c6ced51",
|
||||
"build/prefab/lib/mac_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/0e/07/ae4fffc008f05352690c16ea144f",
|
||||
"build/prefab/lib/mac_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/66/f3/6268d6d28f9412ea65f5fa134749",
|
||||
"build/prefab/lib/mac_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/59/a3/37af52a4d954b5e13bd690ccbf8c",
|
||||
"build/prefab/lib/mac_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/88/1e/24ca02cbce792d64c008affbb8b2",
|
||||
"build/prefab/lib/mac_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/ba/a8/a8c6e992194a6d8f012ed89b80eb",
|
||||
"build/prefab/lib/mac_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/c4/0c/8469d0febecd1ef898627fb088c7",
|
||||
"build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/1f/b5/540e02a79ac1bae8b4ff74ae73e4",
|
||||
"build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/a7/91/f4bc68c09b30b207bf66e62da00a",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/d1/c3/ffd69def77c4564ccb86025bc77b",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/7e/4b/eed633dcb3da435ee44fc917f3bf",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/30/1d/4cd247b5626fccbf9cb4cca8c6f3",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/26/1c/07cd64a03263f572dfdd25438b00",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/20/bf/182851b81a0a14d49cec25d7ed6d",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/fe/ff/703deeb403ee68a4414f60e97309",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/10/b3/19c3d5559ba7e9e877c2f2a51334",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/de/d5/851bca0dd2b7b608eb477075d3d0",
|
||||
"src/ballistica/generated/python_embedded/binding.inc": "https://files.ballistica.net/cache/ba1/c5/18/29d9fe8e483ce222d3263336f7e6",
|
||||
"src/ballistica/generated/python_embedded/bootstrap.inc": "https://files.ballistica.net/cache/ba1/65/ac/d5c4162a71028c1bfa73ebc1f881"
|
||||
}
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@ -122,6 +122,7 @@ xcuserdata/
|
||||
# Generated sources
|
||||
/src/ballistica/generated
|
||||
/assets/src/ba_data/python/ba/_generated
|
||||
/src/meta/bametainternal/generated
|
||||
|
||||
# Dynamically generated resource files
|
||||
/ballisticacore-android/BallisticaCore/src/cardboard/res/drawable-*/vr_icon.png
|
||||
|
||||
11
.idea/dictionaries/ericf.xml
generated
11
.idea/dictionaries/ericf.xml
generated
@ -129,6 +129,7 @@
|
||||
<w>assetpackputmanifest</w>
|
||||
<w>assetpackputupload</w>
|
||||
<w>assetpath</w>
|
||||
<w>assetsmakefile</w>
|
||||
<w>assettype</w>
|
||||
<w>assettypestr</w>
|
||||
<w>assigninput</w>
|
||||
@ -192,6 +193,9 @@
|
||||
<w>baseval</w>
|
||||
<w>basew</w>
|
||||
<w>basn</w>
|
||||
<w>basnmessagereceiver</w>
|
||||
<w>basnmessagesender</w>
|
||||
<w>basntoclient</w>
|
||||
<w>bastd</w>
|
||||
<w>batools</w>
|
||||
<w>batoolsinternal</w>
|
||||
@ -381,6 +385,7 @@
|
||||
<w>cleanupchecks</w>
|
||||
<w>clientid</w>
|
||||
<w>clientlist</w>
|
||||
<w>clienttobasn</w>
|
||||
<w>clionbin</w>
|
||||
<w>clioncode</w>
|
||||
<w>clionroot</w>
|
||||
@ -472,6 +477,7 @@
|
||||
<w>cpus</w>
|
||||
<w>cpython</w>
|
||||
<w>crashlytics</w>
|
||||
<w>createtime</w>
|
||||
<w>creationflags</w>
|
||||
<w>creditslist</w>
|
||||
<w>cresult</w>
|
||||
@ -723,6 +729,7 @@
|
||||
<w>excludepowerups</w>
|
||||
<w>excludetypes</w>
|
||||
<w>excstr</w>
|
||||
<w>exec'ed</w>
|
||||
<w>execcode</w>
|
||||
<w>execing</w>
|
||||
<w>execlocals</w>
|
||||
@ -917,6 +924,7 @@
|
||||
<w>gbytecount</w>
|
||||
<w>gearvr</w>
|
||||
<w>genchangelog</w>
|
||||
<w>gencmd</w>
|
||||
<w>gendocs</w>
|
||||
<w>gendummymodule</w>
|
||||
<w>genericpath</w>
|
||||
@ -1103,6 +1111,7 @@
|
||||
<w>infilename</w>
|
||||
<w>infilepath</w>
|
||||
<w>infos</w>
|
||||
<w>infoset</w>
|
||||
<w>infotextcolor</w>
|
||||
<w>infotxt</w>
|
||||
<w>inidividual</w>
|
||||
@ -1928,6 +1937,7 @@
|
||||
<w>redist</w>
|
||||
<w>redistributables</w>
|
||||
<w>regtp</w>
|
||||
<w>reimported</w>
|
||||
<w>relpath</w>
|
||||
<w>remainingchecks</w>
|
||||
<w>remoteapp</w>
|
||||
@ -2174,6 +2184,7 @@
|
||||
<w>srcdir</w>
|
||||
<w>srcfolder</w>
|
||||
<w>srcjson</w>
|
||||
<w>srcname</w>
|
||||
<w>srcnode</w>
|
||||
<w>srcpath</w>
|
||||
<w>srcpathfull</w>
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
### 1.6.7 (20435)
|
||||
### 1.6.7 (20436)
|
||||
- Fixed a vulnerability which could expose device-account uuids.
|
||||
- Now generating Linux Arm64 server and test builds (currently built against Ubuntu 20).
|
||||
- Mac test builds are now Universal binaries (Arm64 & x86-64 versions bundled together).
|
||||
|
||||
2
Makefile
2
Makefile
@ -40,7 +40,7 @@ help:
|
||||
|
||||
PREREQS = .cache/checkenv $(PREREQ_IRONY) .dir-locals.el \
|
||||
.mypy.ini .pycheckers .pylintrc .style.yapf .clang-format \
|
||||
ballisticacore-cmake/.clang-format .projectile .editorconfig
|
||||
ballisticacore-cmake/.clang-format .editorconfig
|
||||
|
||||
# Target that should be built before running most any other build.
|
||||
# This installs tool config files, runs environment checks, etc.
|
||||
|
||||
@ -134,9 +134,11 @@
|
||||
"ba_data/python/bacommon/__init__.py",
|
||||
"ba_data/python/bacommon/__pycache__/__init__.cpython-39.opt-1.pyc",
|
||||
"ba_data/python/bacommon/__pycache__/assets.cpython-39.opt-1.pyc",
|
||||
"ba_data/python/bacommon/__pycache__/build.cpython-39.opt-1.pyc",
|
||||
"ba_data/python/bacommon/__pycache__/net.cpython-39.opt-1.pyc",
|
||||
"ba_data/python/bacommon/__pycache__/servermanager.cpython-39.opt-1.pyc",
|
||||
"ba_data/python/bacommon/assets.py",
|
||||
"ba_data/python/bacommon/build.py",
|
||||
"ba_data/python/bacommon/net.py",
|
||||
"ba_data/python/bacommon/servermanager.py",
|
||||
"ba_data/python/bastd/__init__.py",
|
||||
|
||||
@ -128,6 +128,7 @@ $1: $$(subst /__pycache__,,$$(subst .cpython-39.opt-1.pyc,.py,$1))
|
||||
$$(TOOLS_DIR)/pcommand compile_python_files $$^ && chmod 444 $$@
|
||||
endef
|
||||
|
||||
# This section is generated by batools.assetsmakefile; do not edit by hand.
|
||||
# __AUTOGENERATED_PUBLIC_BEGIN__
|
||||
|
||||
SCRIPT_TARGETS_PY_PUBLIC = \
|
||||
@ -641,6 +642,7 @@ $(eval $(call make-opt-pyc-target,$(element))))
|
||||
SCRIPT_TARGETS_PY_PUBLIC_TOOLS = \
|
||||
build/ba_data/python/bacommon/__init__.py \
|
||||
build/ba_data/python/bacommon/assets.py \
|
||||
build/ba_data/python/bacommon/build.py \
|
||||
build/ba_data/python/bacommon/net.py \
|
||||
build/ba_data/python/bacommon/servermanager.py \
|
||||
build/ba_data/python/efro/__init__.py \
|
||||
@ -660,6 +662,7 @@ SCRIPT_TARGETS_PY_PUBLIC_TOOLS = \
|
||||
SCRIPT_TARGETS_PYC_PUBLIC_TOOLS = \
|
||||
build/ba_data/python/bacommon/__pycache__/__init__.cpython-39.opt-1.pyc \
|
||||
build/ba_data/python/bacommon/__pycache__/assets.cpython-39.opt-1.pyc \
|
||||
build/ba_data/python/bacommon/__pycache__/build.cpython-39.opt-1.pyc \
|
||||
build/ba_data/python/bacommon/__pycache__/net.cpython-39.opt-1.pyc \
|
||||
build/ba_data/python/bacommon/__pycache__/servermanager.cpython-39.opt-1.pyc \
|
||||
build/ba_data/python/efro/__pycache__/__init__.cpython-39.opt-1.pyc \
|
||||
@ -691,6 +694,7 @@ $(foreach element,$(SCRIPT_TARGETS_PYC_PUBLIC_TOOLS),\
|
||||
$(eval $(call make-opt-pyc-target,$(element))))
|
||||
# __AUTOGENERATED_PUBLIC_END__
|
||||
|
||||
# This section is generated by batools.assetsmakefile; do not edit by hand.
|
||||
# __AUTOGENERATED_PRIVATE_BEGIN__
|
||||
|
||||
SCRIPT_TARGETS_PY_PRIVATE_APPLE = \
|
||||
|
||||
@ -346,27 +346,6 @@ class App:
|
||||
for key in ('lc14173', 'lc14292'):
|
||||
cfg.setdefault(key, launch_count)
|
||||
|
||||
# Debugging - make note if we're using the local test server so we
|
||||
# don't accidentally leave it on in a release.
|
||||
# FIXME - should move these sort of warnings to the C++ layer.
|
||||
server_addr = _ba.get_master_server_address()
|
||||
if 'localhost' in server_addr:
|
||||
_ba.timer(2.0,
|
||||
lambda: _ba.screenmessage(
|
||||
'Note: using local server',
|
||||
(1, 1, 0),
|
||||
log=True,
|
||||
),
|
||||
timetype=TimeType.REAL)
|
||||
elif 'test' in server_addr:
|
||||
_ba.timer(2.0,
|
||||
lambda: _ba.screenmessage(
|
||||
'Note: using test server-module',
|
||||
(1, 1, 0),
|
||||
log=True,
|
||||
),
|
||||
timetype=TimeType.REAL)
|
||||
|
||||
cfg['launchCount'] = launch_count
|
||||
cfg.commit()
|
||||
|
||||
|
||||
@ -60,7 +60,7 @@ class MainMenuActivity(ba.Activity[ba.Player, ba.Team]):
|
||||
'scale': scale,
|
||||
'position': (0, 10),
|
||||
'vr_depth': -10,
|
||||
'text': '\xa9 2011-2021 Eric Froemling'
|
||||
'text': '\xa9 2011-2022 Eric Froemling'
|
||||
}))
|
||||
|
||||
# Throw up some text that only clients can see so they know that the
|
||||
|
||||
11
ballisticacore-cmake/.idea/dictionaries/ericf.xml
generated
11
ballisticacore-cmake/.idea/dictionaries/ericf.xml
generated
@ -60,6 +60,7 @@
|
||||
<w>appstate</w>
|
||||
<w>argsjoined</w>
|
||||
<w>asci</w>
|
||||
<w>assetsmakefile</w>
|
||||
<w>assigninput</w>
|
||||
<w>atest</w>
|
||||
<w>athome</w>
|
||||
@ -86,6 +87,9 @@
|
||||
<w>basetype</w>
|
||||
<w>basicsize</w>
|
||||
<w>basn</w>
|
||||
<w>basnmessagereceiver</w>
|
||||
<w>basnmessagesender</w>
|
||||
<w>basntoclient</w>
|
||||
<w>bastd</w>
|
||||
<w>batoolsinternal</w>
|
||||
<w>bbbb</w>
|
||||
@ -192,6 +196,7 @@
|
||||
<w>cleanupcheck</w>
|
||||
<w>clientid</w>
|
||||
<w>clientinfo</w>
|
||||
<w>clienttobasn</w>
|
||||
<w>clipcount</w>
|
||||
<w>cmath</w>
|
||||
<w>cmds</w>
|
||||
@ -219,6 +224,7 @@
|
||||
<w>cpuid</w>
|
||||
<w>crashenv</w>
|
||||
<w>crashlytics</w>
|
||||
<w>createtime</w>
|
||||
<w>cresult</w>
|
||||
<w>crom</w>
|
||||
<w>crosswire</w>
|
||||
@ -342,6 +348,7 @@
|
||||
<w>ewwwww</w>
|
||||
<w>exargs</w>
|
||||
<w>exctype</w>
|
||||
<w>exec'ed</w>
|
||||
<w>execinfo</w>
|
||||
<w>execing</w>
|
||||
<w>exhash</w>
|
||||
@ -428,6 +435,7 @@
|
||||
<w>gcc's</w>
|
||||
<w>gearvr</w>
|
||||
<w>genchangelog</w>
|
||||
<w>gencmd</w>
|
||||
<w>getactivity</w>
|
||||
<w>getattro</w>
|
||||
<w>getattrofunc</w>
|
||||
@ -519,6 +527,7 @@
|
||||
<w>incentivized</w>
|
||||
<w>indata</w>
|
||||
<w>inet</w>
|
||||
<w>infoset</w>
|
||||
<w>infotxt</w>
|
||||
<w>inides</w>
|
||||
<w>initguid</w>
|
||||
@ -921,6 +930,7 @@
|
||||
<w>refl</w>
|
||||
<w>regtp</w>
|
||||
<w>rehel</w>
|
||||
<w>reimported</w>
|
||||
<w>reloadmedia</w>
|
||||
<w>rendererdata</w>
|
||||
<w>renormalize</w>
|
||||
@ -1030,6 +1040,7 @@
|
||||
<w>spivak</w>
|
||||
<w>srcattr</w>
|
||||
<w>srcfolder</w>
|
||||
<w>srcname</w>
|
||||
<w>srcpath</w>
|
||||
<w>srcsz</w>
|
||||
<w>sresult</w>
|
||||
|
||||
@ -7,4 +7,10 @@
|
||||
"--sys-path" "__EFRO_PROJECT_ROOT__/assets/src/ba_data/python")))
|
||||
;; Shorter name in projectile status bar to save valuable space.
|
||||
(nil . ((projectile-project-name . "__EFRO_PROJECT_SHORTNAME__")))
|
||||
|
||||
;; Projectile indexing and search will ignore the following
|
||||
;; (in addition to git-ignored stuff which it ignores by default)
|
||||
(nil . ((projectile-globally-ignored-directories . ("docs"
|
||||
"src/external"))))
|
||||
|
||||
)
|
||||
|
||||
@ -1,2 +0,0 @@
|
||||
+/tools
|
||||
+/assets/src/ba_data/python
|
||||
@ -1,5 +1,5 @@
|
||||
<!-- THIS FILE IS AUTO GENERATED; DO NOT EDIT BY HAND -->
|
||||
<h4><em>last updated on 2022-02-01 for Ballistica version 1.6.7 build 20436</em></h4>
|
||||
<h4><em>last updated for Ballistica version 1.6.7 build 20444</em></h4>
|
||||
<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>
|
||||
<hr>
|
||||
|
||||
@ -2,12 +2,12 @@
|
||||
|
||||
all: resources
|
||||
|
||||
# This section is autogenerated; do not edit by hand.
|
||||
# This section is generated by batools.resourcesmakefile; do not edit by hand.
|
||||
# __AUTOGENERATED_PUBLIC_BEGIN__
|
||||
# __AUTOGENERATED_PUBLIC_END__
|
||||
|
||||
|
||||
# This section is autogenerated; do not edit by hand.
|
||||
# This section is generated by batools.resourcesmakefile; do not edit by hand.
|
||||
# __AUTOGENERATED_PRIVATE_BEGIN__
|
||||
|
||||
resources: \
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
namespace ballistica {
|
||||
|
||||
// These are set automatically via script; don't modify them here.
|
||||
const int kAppBuildNumber = 20436;
|
||||
const int kAppBuildNumber = 20444;
|
||||
const char* kAppVersion = "1.6.7";
|
||||
|
||||
// Our standalone globals.
|
||||
|
||||
@ -8,7 +8,7 @@ clean:
|
||||
rm -rf ../ballistica/generated ../../assets/src/ba_data/python/ba/_generated
|
||||
|
||||
|
||||
# This section is autogenerated; do not edit by hand.
|
||||
# This section is generated by batools.metamakefile; do not edit by hand.
|
||||
# __AUTOGENERATED_PUBLIC_BEGIN__
|
||||
|
||||
sources: \
|
||||
@ -31,13 +31,13 @@ sources: \
|
||||
|
||||
# __AUTOGENERATED_PUBLIC_END__
|
||||
|
||||
# This section is autogenerated; do not edit by hand.
|
||||
# This section is generated by batools.metamakefile; do not edit by hand.
|
||||
# __AUTOGENERATED_PRIVATE_BEGIN__
|
||||
|
||||
# Note: we include our public targets in efrocache even
|
||||
# though they are buildable in public. This allows us to
|
||||
# fetch them on Windows to bootstrap binary CI builds in
|
||||
# cases where we can't use our full Makefiles.
|
||||
# fetch them to bootstrap binary builds in cases where
|
||||
# we can't use our full Makefiles (like Windows CI).
|
||||
|
||||
efrocache-list:
|
||||
@echo "../../assets/src/ba_data/python/ba/_generated/__init__.py" \
|
||||
|
||||
@ -1,7 +1,3 @@
|
||||
# Released under the MIT License. See LICENSE for details.
|
||||
#
|
||||
"""Build/tool functionality specific to the Ballistica project.
|
||||
|
||||
This stuff can be a bit more sloppy/loosey-goosey since it is not used by the
|
||||
game itself.
|
||||
"""
|
||||
"""Meta source files."""
|
||||
|
||||
3
src/meta/bameta/python_embedded/__init__.py
Normal file
3
src/meta/bameta/python_embedded/__init__.py
Normal file
@ -0,0 +1,3 @@
|
||||
# Released under the MIT License. See LICENSE for details.
|
||||
#
|
||||
"""Sources used to embed code in the c++ layer."""
|
||||
33
tools/bacommon/build.py
Normal file
33
tools/bacommon/build.py
Normal file
@ -0,0 +1,33 @@
|
||||
# Released under the MIT License. See LICENSE for details.
|
||||
#
|
||||
"""Functionality related to game builds."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import datetime
|
||||
from dataclasses import dataclass, field
|
||||
from typing import TYPE_CHECKING, Annotated
|
||||
|
||||
from efro.dataclassio import ioprepped, IOAttrs
|
||||
|
||||
if TYPE_CHECKING:
|
||||
pass
|
||||
|
||||
|
||||
@ioprepped
|
||||
@dataclass
|
||||
class BuildInfoSet:
|
||||
"""Set of build infos."""
|
||||
|
||||
@dataclass
|
||||
class Entry:
|
||||
"""Info about a particular build."""
|
||||
filename: Annotated[str, IOAttrs('fname')]
|
||||
size: Annotated[int, IOAttrs('size')]
|
||||
version: Annotated[str, IOAttrs('version')]
|
||||
build_number: Annotated[int, IOAttrs('build')]
|
||||
checksum: Annotated[str, IOAttrs('checksum')]
|
||||
createtime: Annotated[datetime.datetime, IOAttrs('createtime')]
|
||||
|
||||
builds: Annotated[list[Entry],
|
||||
IOAttrs('builds')] = field(default_factory=list)
|
||||
@ -137,6 +137,7 @@ def _lazybuild_check_paths(inpaths: list[str], category: SourceCategory,
|
||||
# Ignore python cache files.
|
||||
if '__pycache__' in root:
|
||||
continue
|
||||
|
||||
for fname in fnames:
|
||||
# Ignore dot files
|
||||
if fname.startswith('.'):
|
||||
@ -441,7 +442,10 @@ def gen_fulltest_buildfile_apple() -> None:
|
||||
extras = [e for e in extras if e.startswith('mac.')]
|
||||
for extra in extras:
|
||||
if extra == 'mac.package':
|
||||
lines.append('make mac-package')
|
||||
# FIXME; Currently skipping notarization because it requires us
|
||||
# to be logged in via the gui to succeed.
|
||||
lines.append('BA_MAC_DISK_IMAGE_SKIP_NOTARIZATION=1'
|
||||
' make mac-package')
|
||||
elif extra == 'mac.package.server.x86_64':
|
||||
lines.append('make mac-server-package-x86-64')
|
||||
elif extra == 'mac.package.server.arm64':
|
||||
|
||||
@ -7,7 +7,6 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
import datetime
|
||||
import inspect
|
||||
import subprocess
|
||||
from dataclasses import dataclass
|
||||
@ -1170,9 +1169,8 @@ class Generator:
|
||||
|
||||
# Start with our list of classes and functions.
|
||||
app = ba.app
|
||||
self._out += ('<h4><em>last updated on ' + str(datetime.date.today()) +
|
||||
' for Ballistica version ' + app.version + ' build ' +
|
||||
str(app.build_number) + '</em></h4>\n')
|
||||
self._out += (f'<h4><em>last updated for Ballistica version '
|
||||
f'{app.version} build {app.build_number}</em></h4>\n')
|
||||
self._out += (
|
||||
'<p>This page documents the Python classes'
|
||||
' and functions in the \'ba\' module,\n'
|
||||
|
||||
@ -45,9 +45,8 @@ class Target:
|
||||
return out
|
||||
|
||||
|
||||
def _emit_group_build_lines(targets: list[Target], basename: str) -> list[str]:
|
||||
"""Gen a group build target."""
|
||||
del basename # Unused.
|
||||
def _emit_sources_lines(targets: list[Target]) -> list[str]:
|
||||
"""Gen lines to build provided targets."""
|
||||
out: list[str] = []
|
||||
if not targets:
|
||||
return out
|
||||
@ -59,8 +58,8 @@ def _emit_group_build_lines(targets: list[Target], basename: str) -> list[str]:
|
||||
return out
|
||||
|
||||
|
||||
def _emit_group_efrocache_lines(targets: list[Target]) -> list[str]:
|
||||
"""Gen a group clean target."""
|
||||
def _emit_efrocache_lines(targets: list[Target]) -> list[str]:
|
||||
"""Gen lines to cache provided targets."""
|
||||
out: list[str] = []
|
||||
if not targets:
|
||||
return out
|
||||
@ -93,11 +92,11 @@ def _add_enums_module_target(targets: list[Target]) -> None:
|
||||
))
|
||||
|
||||
|
||||
def _add_init_module_target(targets: list[Target]) -> None:
|
||||
def _add_init_module_target(targets: list[Target], moduledir: str) -> None:
|
||||
targets.append(
|
||||
Target(
|
||||
src=[os.path.join(TOOLS_DIR, 'batools', 'pcommand.py')],
|
||||
dst=os.path.join(OUT_DIR_PYTHON, '__init__.py'),
|
||||
dst=os.path.join(moduledir, '__init__.py'),
|
||||
cmd='$(PCOMMAND) gen_python_init_module $@',
|
||||
))
|
||||
|
||||
@ -136,15 +135,52 @@ def _add_python_embedded_targets_internal(targets: list[Target]) -> None:
|
||||
or 'flycheck' in fname):
|
||||
continue
|
||||
name = os.path.splitext(fname)[0]
|
||||
src = [
|
||||
f'{pkg}/python_embedded/{name}.py',
|
||||
os.path.join(TOOLS_DIR, 'batoolsinternal', 'meta.py')
|
||||
]
|
||||
dst = os.path.join(OUT_DIR_CPP, 'python_embedded', f'{name}.inc')
|
||||
targets.append(
|
||||
Target(src=src,
|
||||
dst=dst,
|
||||
cmd='$(PCOMMAND) gen_encrypted_python_code $< $@'))
|
||||
Target(
|
||||
src=[
|
||||
f'{pkg}/python_embedded/{name}.py',
|
||||
os.path.join(TOOLS_DIR, 'batoolsinternal', 'meta.py')
|
||||
],
|
||||
dst=os.path.join(OUT_DIR_CPP, 'python_embedded',
|
||||
f'{name}.inc'),
|
||||
cmd='$(PCOMMAND) gen_encrypted_python_code $< $@',
|
||||
))
|
||||
|
||||
|
||||
def _add_extra_targets_internal(targets: list[Target]) -> None:
|
||||
|
||||
# Add targets to generate message sender/receiver classes for
|
||||
# our basn/client protocols. Their outputs go to 'generated' so they
|
||||
# don't get added to git.
|
||||
_add_init_module_target(targets, moduledir='bametainternal/generated')
|
||||
for srcname, dstname, gencmd in [
|
||||
('clienttobasn', 'basnmessagesender', 'gen_basn_msg_sender'),
|
||||
('basntoclient', 'basnmessagereceiver', 'gen_basn_msg_receiver'),
|
||||
]:
|
||||
targets.append(
|
||||
Target(
|
||||
src=[
|
||||
f'bametainternal/python_embedded/{srcname}.py',
|
||||
os.path.join(TOOLS_DIR, 'batoolsinternal', 'meta.py')
|
||||
],
|
||||
dst=f'bametainternal/generated/{dstname}.py',
|
||||
cmd=f'$(PCOMMAND) {gencmd} $@',
|
||||
))
|
||||
|
||||
# Now add explicit targets to generate embedded code for the resulting
|
||||
# classes. We can't simply place them in a scanned dir like
|
||||
# python_embedded because they might not exist yet at update time.
|
||||
for name in ['basnmessagesender', 'basnmessagereceiver']:
|
||||
targets.append(
|
||||
Target(
|
||||
src=[
|
||||
f'bametainternal/generated/{name}.py',
|
||||
os.path.join(TOOLS_DIR, 'batoolsinternal', 'meta.py')
|
||||
],
|
||||
dst=os.path.join(OUT_DIR_CPP, 'python_embedded',
|
||||
f'{name}.inc'),
|
||||
cmd='$(PCOMMAND) gen_encrypted_python_code $< $@',
|
||||
))
|
||||
|
||||
|
||||
def _empty_line_if(condition: bool) -> list[str]:
|
||||
@ -199,12 +235,11 @@ def update(projroot: str, check: bool) -> None:
|
||||
# Public targets (full sources available in public)
|
||||
targets: list[Target] = []
|
||||
pubtargets = targets
|
||||
basename = 'public'
|
||||
_add_python_embedded_targets(targets)
|
||||
_add_init_module_target(targets)
|
||||
_add_init_module_target(targets, moduledir=OUT_DIR_PYTHON)
|
||||
_add_enums_module_target(targets)
|
||||
our_lines_public = (_empty_line_if(bool(targets)) +
|
||||
_emit_group_build_lines(targets, basename) +
|
||||
_emit_sources_lines(targets) +
|
||||
[t.emit() for t in targets])
|
||||
all_dsts_public.update(t.dst for t in targets)
|
||||
|
||||
@ -215,25 +250,23 @@ def update(projroot: str, check: bool) -> None:
|
||||
else:
|
||||
# Private targets (available in public through efrocache)
|
||||
targets = []
|
||||
basename = 'private'
|
||||
our_lines_private_1 = (
|
||||
_empty_line_if(bool(targets)) +
|
||||
_emit_group_build_lines(targets, basename) +
|
||||
_empty_line_if(bool(targets)) + _emit_sources_lines(targets) +
|
||||
['# __EFROCACHE_TARGET__\n' + t.emit() for t in targets] + [
|
||||
'\n# Note: we include our public targets in efrocache even\n'
|
||||
'# though they are buildable in public. This allows us to\n'
|
||||
'# fetch them on Windows to bootstrap binary CI builds in\n'
|
||||
'# cases where we can\'t use our full Makefiles.\n'
|
||||
] + _emit_group_efrocache_lines(pubtargets + targets))
|
||||
'# fetch them to bootstrap binary builds in cases where\n'
|
||||
'# we can\'t use our full Makefiles (like Windows CI).\n'
|
||||
] + _emit_efrocache_lines(pubtargets + targets))
|
||||
all_dsts_private.update(t.dst for t in targets)
|
||||
|
||||
# Private-internal targets (not available at all in public)
|
||||
targets = []
|
||||
basename = 'private-internal'
|
||||
_add_python_embedded_targets_internal(targets)
|
||||
_add_extra_targets_internal(targets)
|
||||
our_lines_private_2 = (['# __PUBSYNC_STRIP_BEGIN__'] +
|
||||
_empty_line_if(bool(targets)) +
|
||||
_emit_group_build_lines(targets, basename) +
|
||||
_emit_sources_lines(targets) +
|
||||
[t.emit() for t in targets] +
|
||||
['# __PUBSYNC_STRIP_END__'])
|
||||
our_lines_private = our_lines_private_1 + our_lines_private_2
|
||||
|
||||
@ -982,3 +982,9 @@ def update_dummy_module() -> None:
|
||||
update(projroot=str(PROJROOT),
|
||||
check='--check' in sys.argv,
|
||||
force='--force' in sys.argv)
|
||||
|
||||
|
||||
def version() -> None:
|
||||
"""Check app versions."""
|
||||
from batools.version import run
|
||||
run(projroot=str(PROJROOT), args=sys.argv[2:])
|
||||
|
||||
@ -32,7 +32,7 @@ def project_centric_path(projroot: str, path: str) -> str:
|
||||
|
||||
def get_legal_notice_private() -> str:
|
||||
"""Return the one line legal notice we expect private files to have."""
|
||||
return 'Copyright (c) 2011-2021 Eric Froemling'
|
||||
return 'Copyright (c) 2011-2022 Eric Froemling'
|
||||
|
||||
|
||||
@dataclass
|
||||
@ -376,6 +376,9 @@ class Updater:
|
||||
and 'THIS FILE IS AUTOGENERATED' in lines[copyrightline + 1]):
|
||||
copyrightline += 2
|
||||
|
||||
if lines[copyrightline].startswith('# Synced from '):
|
||||
copyrightline += 3
|
||||
|
||||
# In all cases, look for our one-line legal notice.
|
||||
# In the public case, look for the rest of our public license too.
|
||||
if self._license_line_checks:
|
||||
|
||||
73
tools/batools/version.py
Executable file
73
tools/batools/version.py
Executable file
@ -0,0 +1,73 @@
|
||||
# Released under the MIT License. See LICENSE for details.
|
||||
#
|
||||
"""Util to get ballisticacore versions."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
import sys
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from typing import Sequence
|
||||
|
||||
|
||||
def _handle_args(args: list[str]) -> str:
|
||||
"""parse os args and return a mode"""
|
||||
mode = None
|
||||
if len(args) == 0:
|
||||
print('OPTIONS: info, build, version')
|
||||
sys.exit(0)
|
||||
elif len(args) == 1:
|
||||
if args[0] == 'info':
|
||||
mode = 'info'
|
||||
if args[0] == 'build':
|
||||
mode = 'build'
|
||||
if args[0] == 'version':
|
||||
mode = 'version'
|
||||
if mode is None:
|
||||
raise Exception('invalid args')
|
||||
return mode
|
||||
|
||||
|
||||
def get_current_version() -> tuple[str, int]:
|
||||
"""Pull current version and build_number from the project."""
|
||||
version = None
|
||||
build_number = None
|
||||
with open('src/ballistica/ballistica.cc', encoding='utf-8') as infile:
|
||||
lines = infile.readlines()
|
||||
for line in lines:
|
||||
if line.startswith('const char* kAppVersion = "'):
|
||||
if version is not None:
|
||||
raise Exception('found multiple version lines')
|
||||
version = line[27:-3]
|
||||
if line.startswith('const int kAppBuildNumber = '):
|
||||
if build_number is not None:
|
||||
raise Exception('found multiple build number lines')
|
||||
build_number = int(line[28:-2])
|
||||
if version is None:
|
||||
raise Exception('version not found')
|
||||
if build_number is None:
|
||||
raise Exception('build number not found')
|
||||
return version, build_number
|
||||
|
||||
|
||||
def run(projroot: str, args: list[str]) -> None:
|
||||
"""Main entry point for this script."""
|
||||
|
||||
mode = _handle_args(args)
|
||||
|
||||
# We want to run from the root dir.
|
||||
os.chdir(projroot)
|
||||
|
||||
version, build_number = get_current_version()
|
||||
|
||||
if mode == 'info':
|
||||
print('version = ' + version)
|
||||
print('build = ' + str(build_number))
|
||||
elif mode == 'version':
|
||||
print(version)
|
||||
elif mode == 'build':
|
||||
print(build_number)
|
||||
else:
|
||||
raise Exception('invalid mode: ' + str(mode))
|
||||
@ -35,7 +35,7 @@ PREP_ATTR = '_DCIOPREP'
|
||||
PREP_SESSION_ATTR = '_DCIOPREPSESSION'
|
||||
|
||||
|
||||
def ioprep(cls: type) -> None:
|
||||
def ioprep(cls: type, globalns: dict = None) -> None:
|
||||
"""Prep a dataclass type for use with this module's functionality.
|
||||
|
||||
Prepping ensures that all types contained in a data class as well as
|
||||
@ -49,10 +49,14 @@ def ioprep(cls: type) -> None:
|
||||
|
||||
Prepping a dataclass involves evaluating its type annotations, which,
|
||||
as of PEP 563, are stored simply as strings. This evaluation is done
|
||||
in the module namespace containing the class, so all referenced types
|
||||
must be defined at that level.
|
||||
with localns set to the class dict (so that types defined in the class
|
||||
can be used) and globalns set to the containing module's class.
|
||||
It is possible to override globalns for special cases such as when
|
||||
prepping happens as part of an exec'ed string instead of within a
|
||||
module.
|
||||
"""
|
||||
PrepSession(explicit=True).prep_dataclass(cls, recursion_level=0)
|
||||
PrepSession(explicit=True,
|
||||
globalns=globalns).prep_dataclass(cls, recursion_level=0)
|
||||
|
||||
|
||||
def ioprepped(cls: type[T]) -> type[T]:
|
||||
@ -108,8 +112,9 @@ class PrepData:
|
||||
class PrepSession:
|
||||
"""Context for a prep."""
|
||||
|
||||
def __init__(self, explicit: bool):
|
||||
def __init__(self, explicit: bool, globalns: Optional[dict] = None):
|
||||
self.explicit = explicit
|
||||
self.globalns = globalns
|
||||
|
||||
def prep_dataclass(self, cls: type,
|
||||
recursion_level: int) -> Optional[PrepData]:
|
||||
@ -164,6 +169,7 @@ class PrepSession:
|
||||
# which allows us to pick up nested classes, etc.
|
||||
resolved_annotations = get_type_hints(cls,
|
||||
localns=vars(cls),
|
||||
globalns=self.globalns,
|
||||
include_extras=True)
|
||||
# pylint: enable=unexpected-keyword-arg
|
||||
except Exception as exc:
|
||||
|
||||
@ -15,12 +15,12 @@ if TYPE_CHECKING:
|
||||
|
||||
|
||||
def standard_message_sender_gen_pcommand(
|
||||
projroot: Path,
|
||||
basename: str,
|
||||
source_module: str,
|
||||
enable_sync_sends: bool,
|
||||
enable_async_sends: bool,
|
||||
) -> None:
|
||||
projroot: Path,
|
||||
basename: str,
|
||||
source_module: str,
|
||||
enable_sync_sends: bool,
|
||||
enable_async_sends: bool,
|
||||
get_protocol_call: str = 'get_protocol') -> None:
|
||||
"""Used by pcommands taking a single filename argument."""
|
||||
|
||||
import efro.message
|
||||
@ -29,17 +29,23 @@ def standard_message_sender_gen_pcommand(
|
||||
|
||||
if len(sys.argv) != 3:
|
||||
raise CleanError('Expected 1 arg: out-path.')
|
||||
|
||||
dst = sys.argv[2]
|
||||
out = format_yapf_str(
|
||||
projroot,
|
||||
efro.message.create_sender_module(
|
||||
basename,
|
||||
protocol_create_code=(f'from {source_module} import get_protocol\n'
|
||||
f'protocol = get_protocol()'),
|
||||
enable_sync_sends=enable_sync_sends,
|
||||
enable_async_sends=enable_async_sends,
|
||||
))
|
||||
|
||||
# Use wrapping-friendly form for long call names.
|
||||
get_protocol_import = (f'({get_protocol_call})' if
|
||||
len(get_protocol_call) >= 14 else get_protocol_call)
|
||||
|
||||
protocol_create_code = (
|
||||
f'from {source_module} import {get_protocol_import}\n'
|
||||
f'protocol = {get_protocol_call}()')
|
||||
|
||||
module_code = efro.message.create_sender_module(
|
||||
basename,
|
||||
protocol_create_code=protocol_create_code,
|
||||
enable_sync_sends=enable_sync_sends,
|
||||
enable_async_sends=enable_async_sends,
|
||||
)
|
||||
out = format_yapf_str(projroot, module_code)
|
||||
|
||||
print(f'Meta-building {Clr.BLD}{dst}{Clr.RST}')
|
||||
Path(dst).parent.mkdir(parents=True, exist_ok=True)
|
||||
@ -48,11 +54,11 @@ def standard_message_sender_gen_pcommand(
|
||||
|
||||
|
||||
def standard_message_receiver_gen_pcommand(
|
||||
projroot: Path,
|
||||
basename: str,
|
||||
source_module: str,
|
||||
is_async: bool,
|
||||
) -> None:
|
||||
projroot: Path,
|
||||
basename: str,
|
||||
source_module: str,
|
||||
is_async: bool,
|
||||
get_protocol_call: str = 'get_protocol') -> None:
|
||||
"""Used by pcommands generating efro.message receiver modules."""
|
||||
|
||||
import efro.message
|
||||
@ -63,14 +69,22 @@ def standard_message_receiver_gen_pcommand(
|
||||
raise CleanError('Expected 1 arg: out-path.')
|
||||
|
||||
dst = sys.argv[2]
|
||||
out = format_yapf_str(
|
||||
projroot,
|
||||
efro.message.create_receiver_module(
|
||||
basename,
|
||||
protocol_create_code=(f'from {source_module} import get_protocol\n'
|
||||
f'protocol = get_protocol()'),
|
||||
is_async=is_async,
|
||||
))
|
||||
|
||||
# Use wrapping-friendly form for long call names.
|
||||
get_protocol_import = (f'({get_protocol_call})' if
|
||||
len(get_protocol_call) >= 14 else get_protocol_call)
|
||||
|
||||
protocol_create_code = (
|
||||
f'from {source_module} import {get_protocol_import}\n'
|
||||
f'protocol = {get_protocol_call}()')
|
||||
|
||||
module_code = efro.message.create_receiver_module(
|
||||
basename,
|
||||
protocol_create_code=protocol_create_code,
|
||||
is_async=is_async,
|
||||
)
|
||||
|
||||
out = format_yapf_str(projroot, module_code)
|
||||
|
||||
print(f'Meta-building {Clr.BLD}{dst}{Clr.RST}')
|
||||
Path(dst).parent.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user