mirror of
https://github.com/RYDE-WORK/ballistica.git
synced 2026-01-19 13:25:31 +08:00
more translations and live updating msg claim expire time
This commit is contained in:
parent
08866586e4
commit
ab62e1994f
60
.efrocachemap
generated
60
.efrocachemap
generated
@ -432,21 +432,21 @@
|
|||||||
"build/assets/ba_data/audio/zoeOw.ogg": "b2d705c31c9dcc1efdc71394764c3beb",
|
"build/assets/ba_data/audio/zoeOw.ogg": "b2d705c31c9dcc1efdc71394764c3beb",
|
||||||
"build/assets/ba_data/audio/zoePickup01.ogg": "e9366dc2d2b8ab8b0c4e2c14c02d0789",
|
"build/assets/ba_data/audio/zoePickup01.ogg": "e9366dc2d2b8ab8b0c4e2c14c02d0789",
|
||||||
"build/assets/ba_data/audio/zoeScream01.ogg": "903e0e45ee9b3373e9d9ce20c814374e",
|
"build/assets/ba_data/audio/zoeScream01.ogg": "903e0e45ee9b3373e9d9ce20c814374e",
|
||||||
"build/assets/ba_data/data/langdata.json": "ba264ce70e370aed4815cc59692e66ef",
|
"build/assets/ba_data/data/langdata.json": "4295c4d16e5ac2853572e363ad20434c",
|
||||||
"build/assets/ba_data/data/languages/arabic.json": "32b9849fb8389b8c7798f0b744620318",
|
"build/assets/ba_data/data/languages/arabic.json": "32b9849fb8389b8c7798f0b744620318",
|
||||||
"build/assets/ba_data/data/languages/belarussian.json": "009b452aa308bf2b2f7e92d9b78ba5ff",
|
"build/assets/ba_data/data/languages/belarussian.json": "009b452aa308bf2b2f7e92d9b78ba5ff",
|
||||||
"build/assets/ba_data/data/languages/chinese.json": "5363a79f843e6be7ef47a840f47cc17d",
|
"build/assets/ba_data/data/languages/chinese.json": "5363a79f843e6be7ef47a840f47cc17d",
|
||||||
"build/assets/ba_data/data/languages/chinesetraditional.json": "32f53581b80ce723edbe8aa7956e6727",
|
"build/assets/ba_data/data/languages/chinesetraditional.json": "bea0f9c17324591b8261015cbd80a265",
|
||||||
"build/assets/ba_data/data/languages/croatian.json": "66be7ada024c5d5cf813a07b75217e48",
|
"build/assets/ba_data/data/languages/croatian.json": "66be7ada024c5d5cf813a07b75217e48",
|
||||||
"build/assets/ba_data/data/languages/czech.json": "3418bee44e69be13b7f72996abe96921",
|
"build/assets/ba_data/data/languages/czech.json": "3418bee44e69be13b7f72996abe96921",
|
||||||
"build/assets/ba_data/data/languages/danish.json": "8e57db30c5250df2abff14a822f83ea7",
|
"build/assets/ba_data/data/languages/danish.json": "8e57db30c5250df2abff14a822f83ea7",
|
||||||
"build/assets/ba_data/data/languages/dutch.json": "4ba5bbcc0fecddd0aac6ee2c165d1e40",
|
"build/assets/ba_data/data/languages/dutch.json": "4ba5bbcc0fecddd0aac6ee2c165d1e40",
|
||||||
"build/assets/ba_data/data/languages/english.json": "cde7a60508100173973a16293ff79077",
|
"build/assets/ba_data/data/languages/english.json": "8e4940f0ee5af3e32701391a9c0ba14c",
|
||||||
"build/assets/ba_data/data/languages/esperanto.json": "0e397cfa5f3fb8cef5f4a64f21cda880",
|
"build/assets/ba_data/data/languages/esperanto.json": "0e397cfa5f3fb8cef5f4a64f21cda880",
|
||||||
"build/assets/ba_data/data/languages/filipino.json": "1894fc331dcad7ce9cf4c180843f548f",
|
"build/assets/ba_data/data/languages/filipino.json": "1894fc331dcad7ce9cf4c180843f548f",
|
||||||
"build/assets/ba_data/data/languages/french.json": "6d20655730b1017ef187fd828b91d43c",
|
"build/assets/ba_data/data/languages/french.json": "6d20655730b1017ef187fd828b91d43c",
|
||||||
"build/assets/ba_data/data/languages/german.json": "bc656f1ada467161c23546f48d0dacc5",
|
"build/assets/ba_data/data/languages/german.json": "bc656f1ada467161c23546f48d0dacc5",
|
||||||
"build/assets/ba_data/data/languages/gibberish.json": "ac45c86b24a676d7936929ba8801f75f",
|
"build/assets/ba_data/data/languages/gibberish.json": "df28ac4b33ba8fee62c26cff05aa6b13",
|
||||||
"build/assets/ba_data/data/languages/greek.json": "d28d1092fbb00ed857cbd53124c0dc78",
|
"build/assets/ba_data/data/languages/greek.json": "d28d1092fbb00ed857cbd53124c0dc78",
|
||||||
"build/assets/ba_data/data/languages/hindi.json": "567e6976b3c72f891431ad7fcc62ab16",
|
"build/assets/ba_data/data/languages/hindi.json": "567e6976b3c72f891431ad7fcc62ab16",
|
||||||
"build/assets/ba_data/data/languages/hungarian.json": "af801baffb2c06460635dfb04c34bb3e",
|
"build/assets/ba_data/data/languages/hungarian.json": "af801baffb2c06460635dfb04c34bb3e",
|
||||||
@ -455,14 +455,14 @@
|
|||||||
"build/assets/ba_data/data/languages/korean.json": "360760d72832863e1a3451b0a514cb08",
|
"build/assets/ba_data/data/languages/korean.json": "360760d72832863e1a3451b0a514cb08",
|
||||||
"build/assets/ba_data/data/languages/malay.json": "0212e18e54efa202c17505376e5b82fb",
|
"build/assets/ba_data/data/languages/malay.json": "0212e18e54efa202c17505376e5b82fb",
|
||||||
"build/assets/ba_data/data/languages/persian.json": "517217e679c768fff4ffec7f8000ab77",
|
"build/assets/ba_data/data/languages/persian.json": "517217e679c768fff4ffec7f8000ab77",
|
||||||
"build/assets/ba_data/data/languages/piratespeak.json": "be23decfaf220b3aa3de3cf35e59b420",
|
"build/assets/ba_data/data/languages/piratespeak.json": "e93ca3bed6c5218e4788021514dbde76",
|
||||||
"build/assets/ba_data/data/languages/polish.json": "993b612c5854fc42a78726ed09c65251",
|
"build/assets/ba_data/data/languages/polish.json": "993b612c5854fc42a78726ed09c65251",
|
||||||
"build/assets/ba_data/data/languages/portuguese.json": "0828a749b6441121828c126ff608b0ba",
|
"build/assets/ba_data/data/languages/portuguese.json": "0828a749b6441121828c126ff608b0ba",
|
||||||
"build/assets/ba_data/data/languages/romanian.json": "b04345d8c7631d657a69c73eb7be755a",
|
"build/assets/ba_data/data/languages/romanian.json": "b04345d8c7631d657a69c73eb7be755a",
|
||||||
"build/assets/ba_data/data/languages/russian.json": "70cd57440e4cbb49f2fa0c79dedcafbe",
|
"build/assets/ba_data/data/languages/russian.json": "70cd57440e4cbb49f2fa0c79dedcafbe",
|
||||||
"build/assets/ba_data/data/languages/serbian.json": "623fa4129a1154c2f32ed7867e56ff6a",
|
"build/assets/ba_data/data/languages/serbian.json": "623fa4129a1154c2f32ed7867e56ff6a",
|
||||||
"build/assets/ba_data/data/languages/slovak.json": "c11c29708b3742cdc2a92b4fa0d6d29f",
|
"build/assets/ba_data/data/languages/slovak.json": "c11c29708b3742cdc2a92b4fa0d6d29f",
|
||||||
"build/assets/ba_data/data/languages/spanish.json": "cca1358d25e8e71ba9eec54341e8df6f",
|
"build/assets/ba_data/data/languages/spanish.json": "6bd5b7461bd9f5c3d51cbae4a7b629bc",
|
||||||
"build/assets/ba_data/data/languages/swedish.json": "3b179e7333183c70adb0811246b09959",
|
"build/assets/ba_data/data/languages/swedish.json": "3b179e7333183c70adb0811246b09959",
|
||||||
"build/assets/ba_data/data/languages/tamil.json": "ead39b864228696a9b0d19344bc4b5ec",
|
"build/assets/ba_data/data/languages/tamil.json": "ead39b864228696a9b0d19344bc4b5ec",
|
||||||
"build/assets/ba_data/data/languages/thai.json": "383540a1e9c7c131ac579f51afc87471",
|
"build/assets/ba_data/data/languages/thai.json": "383540a1e9c7c131ac579f51afc87471",
|
||||||
@ -4174,22 +4174,22 @@
|
|||||||
"build/assets/windows/Win32/ucrtbased.dll": "bfd1180c269d3950b76f35a63655e9e1",
|
"build/assets/windows/Win32/ucrtbased.dll": "bfd1180c269d3950b76f35a63655e9e1",
|
||||||
"build/assets/windows/Win32/vc_redist.x86.exe": "15a5f1f876503885adbdf5b3989b3718",
|
"build/assets/windows/Win32/vc_redist.x86.exe": "15a5f1f876503885adbdf5b3989b3718",
|
||||||
"build/assets/windows/Win32/vcruntime140d.dll": "865b2af4d1e26a1a8073c89acb06e599",
|
"build/assets/windows/Win32/vcruntime140d.dll": "865b2af4d1e26a1a8073c89acb06e599",
|
||||||
"build/prefab/full/linux_arm64_gui/debug/ballisticakit": "9fe0194ff2f6b7363a5d3a06dd06b37f",
|
"build/prefab/full/linux_arm64_gui/debug/ballisticakit": "b9e84b8bbb7b0a18e13bb77ecf2badf5",
|
||||||
"build/prefab/full/linux_arm64_gui/release/ballisticakit": "f2a795a990f0dfaea9134af9407badd1",
|
"build/prefab/full/linux_arm64_gui/release/ballisticakit": "aad705b76936e969e16ac655b39741fb",
|
||||||
"build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "c61a560de21247175261d223de16d403",
|
"build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "962bdb3f45a3ab26802ae5197f706f7a",
|
||||||
"build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "1c0274bb083949b05930b1ab4e3c1b7b",
|
"build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "76a018c645116fa7bced0f036272b4f9",
|
||||||
"build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "62e1861d5a129636d91f2e95441ecf02",
|
"build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "2e0df651d38aafbf4978cd3d3da4f3f5",
|
||||||
"build/prefab/full/linux_x86_64_gui/release/ballisticakit": "db087754b233d353187b30c4cb93806e",
|
"build/prefab/full/linux_x86_64_gui/release/ballisticakit": "eb6abd114cf782987639aca6178f19e9",
|
||||||
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "b7ffe69fefbfd2b4b30e702c4d3db1fc",
|
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "2fdc6c30924860abe46db3bc6151c9e6",
|
||||||
"build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "a01d54acf558ad4b8a68ad4bb73e2d3a",
|
"build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "2109ef88ea6b1c90fe6ed5000c245826",
|
||||||
"build/prefab/full/mac_arm64_gui/debug/ballisticakit": "9f4fb98a5cbab26e36979b3aa7f26981",
|
"build/prefab/full/mac_arm64_gui/debug/ballisticakit": "dd7a5d15cc9f22953ca28cbd747768a5",
|
||||||
"build/prefab/full/mac_arm64_gui/release/ballisticakit": "0637fd3a40a5220bf68c030c32c0c94d",
|
"build/prefab/full/mac_arm64_gui/release/ballisticakit": "5594e0bc8b12ba148ac4c0828254f6c8",
|
||||||
"build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "97df23a219f5c9ff4f1e7fea3a821a1f",
|
"build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "fce6180332211d56df0c1042f43490da",
|
||||||
"build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "40e15078db0b1c993b9d164459ffcd92",
|
"build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "da6bd64d89ee7160503ba94451f12842",
|
||||||
"build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "1798bdc143986033a723bea929afb076",
|
"build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "5b74bfad2153b5f76ee95c7817ac87a8",
|
||||||
"build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "e61a718c983d2b880d24a23633a0eafa",
|
"build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "0ba1bd838f8f078e819078f16cfaabcb",
|
||||||
"build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "a7354e98bcbe4e87f8e1729f71b6407c",
|
"build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "85b30746328af3b85f6e33658add7587",
|
||||||
"build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "1a51d072caf08d89147446841e838273",
|
"build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "0740d2c2ea2002615a75fade5c73d406",
|
||||||
"build/prefab/lib/linux_arm64_gui/debug/libballisticaplus.a": "7497894d2943b75b6ac830cdba8481af",
|
"build/prefab/lib/linux_arm64_gui/debug/libballisticaplus.a": "7497894d2943b75b6ac830cdba8481af",
|
||||||
"build/prefab/lib/linux_arm64_gui/release/libballisticaplus.a": "273a6f64cac5a233694223b85cd0f22b",
|
"build/prefab/lib/linux_arm64_gui/release/libballisticaplus.a": "273a6f64cac5a233694223b85cd0f22b",
|
||||||
"build/prefab/lib/linux_arm64_server/debug/libballisticaplus.a": "7497894d2943b75b6ac830cdba8481af",
|
"build/prefab/lib/linux_arm64_server/debug/libballisticaplus.a": "7497894d2943b75b6ac830cdba8481af",
|
||||||
@ -4202,14 +4202,14 @@
|
|||||||
"build/prefab/lib/mac_arm64_gui/release/libballisticaplus.a": "7e071962108a8d1727525fb331b70ee4",
|
"build/prefab/lib/mac_arm64_gui/release/libballisticaplus.a": "7e071962108a8d1727525fb331b70ee4",
|
||||||
"build/prefab/lib/mac_arm64_server/debug/libballisticaplus.a": "55a2b0c2d1db4d70627c901471d05fc7",
|
"build/prefab/lib/mac_arm64_server/debug/libballisticaplus.a": "55a2b0c2d1db4d70627c901471d05fc7",
|
||||||
"build/prefab/lib/mac_arm64_server/release/libballisticaplus.a": "7e071962108a8d1727525fb331b70ee4",
|
"build/prefab/lib/mac_arm64_server/release/libballisticaplus.a": "7e071962108a8d1727525fb331b70ee4",
|
||||||
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "52d5d23f1c4f1d8f3f444d84e7c6eedd",
|
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "02bc17952ad62734a95641a8f1714777",
|
||||||
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "8516053e839fac9c014669555c16552e",
|
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "aacdc0153fc5698ea20b0cc02555a002",
|
||||||
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "96ed1d3dac7a1a961c727a1697feb122",
|
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "6c36b05ef61b3508a555bb9d47ff8331",
|
||||||
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "b28963810cca19f3ec32bdf1ba39852f",
|
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "cbcad50064e76b09962f5220f1c5f4d6",
|
||||||
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "5fd9bd7df2be3347fd686df6c6017214",
|
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "4b86041719e2f263e8567f1847738964",
|
||||||
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "e2215b2837db9ee041c6fc215110f807",
|
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "d8bfaf6093aa96533f1ba13bee227b0a",
|
||||||
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "1c2319c70a9e7dee3f56dcc030f1ad84",
|
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "5c9bc97e877b7c37783bb94f293a8ac0",
|
||||||
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "51bd82b3cea8c35ba8df869f4d2ab686",
|
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "edc49d5f30f4e941e15317ed9d0c1cee",
|
||||||
"src/assets/ba_data/python/babase/_mgen/__init__.py": "f885fed7f2ed98ff2ba271f9dbe3391c",
|
"src/assets/ba_data/python/babase/_mgen/__init__.py": "f885fed7f2ed98ff2ba271f9dbe3391c",
|
||||||
"src/assets/ba_data/python/babase/_mgen/enums.py": "794d258d59fd17a61752843a9a0551ad",
|
"src/assets/ba_data/python/babase/_mgen/enums.py": "794d258d59fd17a61752843a9a0551ad",
|
||||||
"src/ballistica/base/mgen/pyembed/binding_base.inc": "06042d31df0ff9af96b99477162e2a91",
|
"src/ballistica/base/mgen/pyembed/binding_base.inc": "06042d31df0ff9af96b99477162e2a91",
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
### 1.7.37 (build 22216, api 9, 2025-01-20)
|
### 1.7.37 (build 22218, api 9, 2025-01-20)
|
||||||
- Bumping api version to 9. As you'll see below, there's some UI changes that
|
- Bumping api version to 9. As you'll see below, there's some UI changes that
|
||||||
will require a bit of work for any UI mods to adapt to. If your mods don't
|
will require a bit of work for any UI mods to adapt to. If your mods don't
|
||||||
touch UI stuff at all you can simply bump your api version and call it a day.
|
touch UI stuff at all you can simply bump your api version and call it a day.
|
||||||
|
|||||||
@ -53,7 +53,7 @@ if TYPE_CHECKING:
|
|||||||
|
|
||||||
# Build number and version of the ballistica binary we expect to be
|
# Build number and version of the ballistica binary we expect to be
|
||||||
# using.
|
# using.
|
||||||
TARGET_BALLISTICA_BUILD = 22216
|
TARGET_BALLISTICA_BUILD = 22218
|
||||||
TARGET_BALLISTICA_VERSION = '1.7.37'
|
TARGET_BALLISTICA_VERSION = '1.7.37'
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -16,6 +16,7 @@ import bacommon.bs
|
|||||||
import bauiv1 as bui
|
import bauiv1 as bui
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
|
import datetime
|
||||||
from typing import Callable
|
from typing import Callable
|
||||||
|
|
||||||
|
|
||||||
@ -36,9 +37,9 @@ class _TextSection(_Section):
|
|||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
|
*,
|
||||||
sub_width: float,
|
sub_width: float,
|
||||||
text: bui.Lstr | str,
|
text: bui.Lstr | str,
|
||||||
*,
|
|
||||||
spacing_top: float = 0.0,
|
spacing_top: float = 0.0,
|
||||||
spacing_bottom: float = 0.0,
|
spacing_bottom: float = 0.0,
|
||||||
scale: float = 0.6,
|
scale: float = 0.6,
|
||||||
@ -96,9 +97,9 @@ class _ButtonSection(_Section):
|
|||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
|
*,
|
||||||
sub_width: float,
|
sub_width: float,
|
||||||
label: bui.Lstr | str,
|
label: bui.Lstr | str,
|
||||||
*,
|
|
||||||
color: tuple[float, float, float],
|
color: tuple[float, float, float],
|
||||||
label_color: tuple[float, float, float],
|
label_color: tuple[float, float, float],
|
||||||
call: Callable[[_ButtonSection], None],
|
call: Callable[[_ButtonSection], None],
|
||||||
@ -159,10 +160,10 @@ class _DisplayItemsSection(_Section):
|
|||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
|
*,
|
||||||
sub_width: float,
|
sub_width: float,
|
||||||
items: list[bacommon.bs.DisplayItemWrapper],
|
items: list[bacommon.bs.DisplayItemWrapper],
|
||||||
width: float = 100.0,
|
width: float = 100.0,
|
||||||
*,
|
|
||||||
spacing_top: float = 0.0,
|
spacing_top: float = 0.0,
|
||||||
spacing_bottom: float = 0.0,
|
spacing_bottom: float = 0.0,
|
||||||
) -> None:
|
) -> None:
|
||||||
@ -205,6 +206,88 @@ class _DisplayItemsSection(_Section):
|
|||||||
x += xspacing
|
x += xspacing
|
||||||
|
|
||||||
|
|
||||||
|
class _ExpireTimeSection(_Section):
|
||||||
|
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
*,
|
||||||
|
sub_width: float,
|
||||||
|
time: datetime.datetime,
|
||||||
|
spacing_top: float = 0.0,
|
||||||
|
spacing_bottom: float = 0.0,
|
||||||
|
) -> None:
|
||||||
|
self.time = time
|
||||||
|
self.sub_width = sub_width
|
||||||
|
self.spacing_top = spacing_top
|
||||||
|
self.spacing_bottom = spacing_bottom
|
||||||
|
self.color = (1.0, 0.0, 1.0)
|
||||||
|
self._timer: bui.AppTimer | None = None
|
||||||
|
self._widget: bui.Widget | None = None
|
||||||
|
self.text_scale = 0.4
|
||||||
|
self.text_height = 30.0 * self.text_scale
|
||||||
|
self.full_height = self.text_height + spacing_top + spacing_bottom
|
||||||
|
|
||||||
|
@override
|
||||||
|
def get_height(self) -> float:
|
||||||
|
return self.full_height
|
||||||
|
|
||||||
|
def _update(self) -> None:
|
||||||
|
if not self._widget:
|
||||||
|
return
|
||||||
|
|
||||||
|
now = bui.utc_now_cloud()
|
||||||
|
|
||||||
|
val: bui.Lstr
|
||||||
|
if now < self.time:
|
||||||
|
color = (1.0, 1.0, 1.0, 0.3)
|
||||||
|
val = bui.Lstr(
|
||||||
|
resource='expiresInText',
|
||||||
|
subs=[
|
||||||
|
(
|
||||||
|
'${T}',
|
||||||
|
bui.timestring(
|
||||||
|
(self.time - now).total_seconds(), centi=False
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
color = (1.0, 0.3, 0.3, 0.5)
|
||||||
|
val = bui.Lstr(
|
||||||
|
resource='expiredAgoText',
|
||||||
|
subs=[
|
||||||
|
(
|
||||||
|
'${T}',
|
||||||
|
bui.timestring(
|
||||||
|
(now - self.time).total_seconds(), centi=False
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
bui.textwidget(edit=self._widget, text=val, color=color)
|
||||||
|
|
||||||
|
@override
|
||||||
|
def emit(self, subcontainer: bui.Widget, y: float) -> None:
|
||||||
|
self._widget = bui.textwidget(
|
||||||
|
parent=subcontainer,
|
||||||
|
position=(
|
||||||
|
self.sub_width * 0.5,
|
||||||
|
y - self.spacing_top - self.text_height * 0.5,
|
||||||
|
),
|
||||||
|
color=self.color,
|
||||||
|
scale=self.text_scale,
|
||||||
|
flatness=1.0,
|
||||||
|
shadow=1.0,
|
||||||
|
text='',
|
||||||
|
maxwidth=self.sub_width * 0.7,
|
||||||
|
size=(0, 0),
|
||||||
|
h_align='center',
|
||||||
|
v_align='center',
|
||||||
|
)
|
||||||
|
self._timer = bui.AppTimer(1.0, bui.WeakCall(self._update), repeat=True)
|
||||||
|
self._update()
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class _EntryDisplay:
|
class _EntryDisplay:
|
||||||
interaction_style: bacommon.bs.BasicClientUI.InteractionStyle
|
interaction_style: bacommon.bs.BasicClientUI.InteractionStyle
|
||||||
@ -822,6 +905,19 @@ class InboxWindow(bui.MainWindow):
|
|||||||
total_height += section.get_height()
|
total_height += section.get_height()
|
||||||
sections.append(section)
|
sections.append(section)
|
||||||
|
|
||||||
|
elif ctypeid is idcls.EXPIRE_TIME:
|
||||||
|
assert isinstance(
|
||||||
|
component, bacommon.bs.BasicClientUIExpireTime
|
||||||
|
)
|
||||||
|
section = _ExpireTimeSection(
|
||||||
|
sub_width=sub_width,
|
||||||
|
time=component.time,
|
||||||
|
spacing_top=component.spacing_top,
|
||||||
|
spacing_bottom=component.spacing_bottom,
|
||||||
|
)
|
||||||
|
total_height += section.get_height()
|
||||||
|
sections.append(section)
|
||||||
|
|
||||||
elif ctypeid is idcls.UNKNOWN:
|
elif ctypeid is idcls.UNKNOWN:
|
||||||
raise RuntimeError('Should not get here.')
|
raise RuntimeError('Should not get here.')
|
||||||
|
|
||||||
|
|||||||
@ -39,7 +39,7 @@ auto main(int argc, char** argv) -> int {
|
|||||||
namespace ballistica {
|
namespace ballistica {
|
||||||
|
|
||||||
// These are set automatically via script; don't modify them here.
|
// These are set automatically via script; don't modify them here.
|
||||||
const int kEngineBuildNumber = 22216;
|
const int kEngineBuildNumber = 22218;
|
||||||
const char* kEngineVersion = "1.7.37";
|
const char* kEngineVersion = "1.7.37";
|
||||||
const int kEngineApiVersion = 9;
|
const int kEngineApiVersion = 9;
|
||||||
|
|
||||||
|
|||||||
@ -461,6 +461,7 @@ class BasicClientUIComponentTypeID(Enum):
|
|||||||
LINK = 'l'
|
LINK = 'l'
|
||||||
BS_CLASSIC_TOURNEY_RESULT = 'ct'
|
BS_CLASSIC_TOURNEY_RESULT = 'ct'
|
||||||
DISPLAY_ITEMS = 'di'
|
DISPLAY_ITEMS = 'di'
|
||||||
|
EXPIRE_TIME = 'd'
|
||||||
|
|
||||||
|
|
||||||
class BasicClientUIComponent(IOMultiType[BasicClientUIComponentTypeID]):
|
class BasicClientUIComponent(IOMultiType[BasicClientUIComponentTypeID]):
|
||||||
@ -493,6 +494,8 @@ class BasicClientUIComponent(IOMultiType[BasicClientUIComponentTypeID]):
|
|||||||
return BasicClientUIBsClassicTourneyResult
|
return BasicClientUIBsClassicTourneyResult
|
||||||
if type_id is t.DISPLAY_ITEMS:
|
if type_id is t.DISPLAY_ITEMS:
|
||||||
return BasicClientUIDisplayItems
|
return BasicClientUIDisplayItems
|
||||||
|
if type_id is t.EXPIRE_TIME:
|
||||||
|
return BasicClientUIExpireTime
|
||||||
|
|
||||||
# Important to make sure we provide all types.
|
# Important to make sure we provide all types.
|
||||||
assert_never(type_id)
|
assert_never(type_id)
|
||||||
@ -596,6 +599,21 @@ class BasicClientUIDisplayItems(BasicClientUIComponent):
|
|||||||
return BasicClientUIComponentTypeID.DISPLAY_ITEMS
|
return BasicClientUIComponentTypeID.DISPLAY_ITEMS
|
||||||
|
|
||||||
|
|
||||||
|
@ioprepped
|
||||||
|
@dataclass
|
||||||
|
class BasicClientUIExpireTime(BasicClientUIComponent):
|
||||||
|
"""Show expire-time."""
|
||||||
|
|
||||||
|
time: Annotated[datetime.datetime, IOAttrs('d')]
|
||||||
|
spacing_top: Annotated[float, IOAttrs('st', store_default=False)] = 0.0
|
||||||
|
spacing_bottom: Annotated[float, IOAttrs('sb', store_default=False)] = 0.0
|
||||||
|
|
||||||
|
@override
|
||||||
|
@classmethod
|
||||||
|
def get_type_id(cls) -> BasicClientUIComponentTypeID:
|
||||||
|
return BasicClientUIComponentTypeID.EXPIRE_TIME
|
||||||
|
|
||||||
|
|
||||||
@ioprepped
|
@ioprepped
|
||||||
@dataclass
|
@dataclass
|
||||||
class BasicClientUI(ClientUI):
|
class BasicClientUI(ClientUI):
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user