Got about section cleaned up for new discord button

This commit is contained in:
Eric 2023-12-14 10:22:47 -08:00
parent 32f280e81b
commit b4017bcefd
No known key found for this signature in database
GPG Key ID: 89C93F0F8D6D5A98
4 changed files with 103 additions and 59 deletions

10
.efrocachemap generated
View File

@ -421,21 +421,21 @@
"build/assets/ba_data/audio/zoeOw.ogg": "74befe45a8417e95b6a2233c51992a26", "build/assets/ba_data/audio/zoeOw.ogg": "74befe45a8417e95b6a2233c51992a26",
"build/assets/ba_data/audio/zoePickup01.ogg": "48ab8cddfcde36a750856f3f81dd20c8", "build/assets/ba_data/audio/zoePickup01.ogg": "48ab8cddfcde36a750856f3f81dd20c8",
"build/assets/ba_data/audio/zoeScream01.ogg": "2b468aedfa8741090247f04eb9e6df55", "build/assets/ba_data/audio/zoeScream01.ogg": "2b468aedfa8741090247f04eb9e6df55",
"build/assets/ba_data/data/langdata.json": "4a35cc51d1021fa7e525123bcf99043c", "build/assets/ba_data/data/langdata.json": "f200cdf431b9494d8b96cdd47e950dd1",
"build/assets/ba_data/data/languages/arabic.json": "00ba700de6c672a56658a6bd1ad27523", "build/assets/ba_data/data/languages/arabic.json": "00ba700de6c672a56658a6bd1ad27523",
"build/assets/ba_data/data/languages/belarussian.json": "7fe38341815ca6ff4d95224196e7a67e", "build/assets/ba_data/data/languages/belarussian.json": "40883823367f04c5a2403a96525bfcc3",
"build/assets/ba_data/data/languages/chinese.json": "5761468d25f2bd4e79921826cebd572b", "build/assets/ba_data/data/languages/chinese.json": "5761468d25f2bd4e79921826cebd572b",
"build/assets/ba_data/data/languages/chinesetraditional.json": "f858da49be0a5374157c627857751078", "build/assets/ba_data/data/languages/chinesetraditional.json": "f858da49be0a5374157c627857751078",
"build/assets/ba_data/data/languages/croatian.json": "766532c67af5bd0144c2d63cab0516fa", "build/assets/ba_data/data/languages/croatian.json": "766532c67af5bd0144c2d63cab0516fa",
"build/assets/ba_data/data/languages/czech.json": "cd21ad8c6b8e9ed700284cf1e1aecbf8", "build/assets/ba_data/data/languages/czech.json": "cd21ad8c6b8e9ed700284cf1e1aecbf8",
"build/assets/ba_data/data/languages/danish.json": "3fd69080783d5c9dcc0af737f02b6f1e", "build/assets/ba_data/data/languages/danish.json": "3fd69080783d5c9dcc0af737f02b6f1e",
"build/assets/ba_data/data/languages/dutch.json": "22b44a33bf81142ba2befad14eb5746e", "build/assets/ba_data/data/languages/dutch.json": "22b44a33bf81142ba2befad14eb5746e",
"build/assets/ba_data/data/languages/english.json": "bd43b77b1ccca059573acbde148b4767", "build/assets/ba_data/data/languages/english.json": "6a3fab4fb8b2879e00ed9877709bf504",
"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": "0f5ad7c06db70027b116dfd9324bdf67", "build/assets/ba_data/data/languages/filipino.json": "6f4051ce78861a4666f4978d6f9a0ed2",
"build/assets/ba_data/data/languages/french.json": "49ff6d211537b8003b8241438dca661d", "build/assets/ba_data/data/languages/french.json": "49ff6d211537b8003b8241438dca661d",
"build/assets/ba_data/data/languages/german.json": "450fa41ae264f29a5d1af22143d0d0ad", "build/assets/ba_data/data/languages/german.json": "450fa41ae264f29a5d1af22143d0d0ad",
"build/assets/ba_data/data/languages/gibberish.json": "9aae526303a22372fe9b4cf1781520ef", "build/assets/ba_data/data/languages/gibberish.json": "25fcb5130fae56985bee175aa19f86a2",
"build/assets/ba_data/data/languages/greek.json": "287c0ec437b38772284ef9d3e4fb2fc3", "build/assets/ba_data/data/languages/greek.json": "287c0ec437b38772284ef9d3e4fb2fc3",
"build/assets/ba_data/data/languages/hindi.json": "8848f6b0caec0fcf9d85bc6e683809ec", "build/assets/ba_data/data/languages/hindi.json": "8848f6b0caec0fcf9d85bc6e683809ec",
"build/assets/ba_data/data/languages/hungarian.json": "796a290a8c44a1e7635208c2ff5fdc6e", "build/assets/ba_data/data/languages/hungarian.json": "796a290a8c44a1e7635208c2ff5fdc6e",

View File

@ -1,6 +1,8 @@
### 1.7.31 (build 21707, api 8, 2023-12-13) ### 1.7.31 (build 21707, api 8, 2023-12-13)
- added `bascenev1.get_connection_to_host_info_2()` which is an improved - Added `bascenev1.get_connection_to_host_info_2()` which is an improved
type-safe version of `bascenev1.get_connection_to_host_info()`. type-safe version of `bascenev1.get_connection_to_host_info()`.
- There is now a link to the official Discord server in the About section
(thanks EraOSBeta!).
### 1.7.30 (build 21697, api 8, 2023-12-08) ### 1.7.30 (build 21697, api 8, 2023-12-08)
- Continued work on the big 1.7.28 update. - Continued work on the big 1.7.28 update.

View File

@ -73,6 +73,7 @@ class DiscordWindow(bui.Window):
edit=self._root_widget, cancel_button=self._back_button edit=self._root_widget, cancel_button=self._back_button
) )
# Do we need to translate 'Discord'? Or is that always the name?
self._title_text = bui.textwidget( self._title_text = bui.textwidget(
parent=self._root_widget, parent=self._root_widget,
position=(0, self._height - 52), position=(0, self._height - 52),
@ -91,6 +92,9 @@ class DiscordWindow(bui.Window):
texture=bui.gettexture('discordServer'), texture=bui.gettexture('discordServer'),
) )
# Hmm should we translate this? The discord server is mostly
# English so being able to read this might be a good screening
# process?..
bui.textwidget( bui.textwidget(
parent=self._root_widget, parent=self._root_widget,
position=(self._width / 2 - 60, self._height - 100), position=(self._width / 2 - 60, self._height - 100),
@ -110,7 +114,7 @@ class DiscordWindow(bui.Window):
position=(self._width / 2 - 30, 20), position=(self._width / 2 - 30, 20),
size=(self._width / 2 - 60, 60), size=(self._width / 2 - 60, 60),
autoselect=True, autoselect=True,
label='Join The Discord', label=bui.Lstr(resource='discordJoinText'),
text_scale=1.0, text_scale=1.0,
on_activate_call=bui.Call( on_activate_call=bui.Call(
bui.open_url, 'https://ballistica.net/discord' bui.open_url, 'https://ballistica.net/discord'

View File

@ -16,10 +16,6 @@ if TYPE_CHECKING:
class AboutGatherTab(GatherTab): class AboutGatherTab(GatherTab):
"""The about tab in the gather UI""" """The about tab in the gather UI"""
def __init__(self, window: GatherWindow) -> None:
super().__init__(window)
self._container: bui.Widget | None = None
def on_activate( def on_activate(
self, self,
parent_widget: bui.Widget, parent_widget: bui.Widget,
@ -34,6 +30,40 @@ class AboutGatherTab(GatherTab):
plus = bui.app.plus plus = bui.app.plus
assert plus is not None assert plus is not None
try_tickets = plus.get_v1_account_misc_read_val(
'friendTryTickets', None
)
show_message = True
# Squish message as needed to get things to fit nicely at
# various scales.
uiscale = bui.app.ui_v1.uiscale
message_height = (
210
if uiscale is bui.UIScale.SMALL
else 305
if uiscale is bui.UIScale.MEDIUM
else 370
)
# Let's not talk about sharing in vr-mode; its tricky to fit more
# than one head in a VR-headset.
show_message_extra = not bui.app.env.vr
message_extra_height = 60
show_invite = try_tickets is not None
invite_height = 80
show_discord = True
discord_height = 80
c_height = 0
if show_message:
c_height += message_height
if show_message_extra:
c_height += message_extra_height
if show_invite:
c_height += invite_height
if show_discord:
c_height += discord_height
party_button_label = bui.charstr(bui.SpecialChar.TOP_BUTTON) party_button_label = bui.charstr(bui.SpecialChar.TOP_BUTTON)
message = bui.Lstr( message = bui.Lstr(
resource='gatherWindow.aboutDescriptionText', resource='gatherWindow.aboutDescriptionText',
@ -43,9 +73,7 @@ class AboutGatherTab(GatherTab):
], ],
) )
# Let's not talk about sharing in vr-mode; its tricky to fit more if show_message_extra:
# than one head in a VR-headset ;-)
if not bui.app.env.vr:
message = bui.Lstr( message = bui.Lstr(
value='${A}\n\n${B}', value='${A}\n\n${B}',
subs=[ subs=[
@ -59,46 +87,52 @@ class AboutGatherTab(GatherTab):
), ),
], ],
) )
string_height = 400
include_invite = True
include_discord = False # Need to fix spacing on small first.
msc_scale = 1.1
c_height_2 = min(region_height, string_height * msc_scale + 100)
try_tickets = plus.get_v1_account_misc_read_val(
'friendTryTickets', None
)
if try_tickets is None: scroll_widget = bui.scrollwidget(
include_invite = False
self._container = bui.containerwidget(
parent=parent_widget, parent=parent_widget,
position=(region_left, region_bottom),
size=(region_width, region_height),
highlight=False,
border_opacity=0,
)
msc_scale = 1.1
container = bui.containerwidget(
parent=scroll_widget,
position=( position=(
region_left, region_left,
region_bottom + (region_height - c_height_2) * 0.5, region_bottom + (region_height - c_height) * 0.5,
), ),
size=(region_width, c_height_2), size=(region_width, c_height),
background=False, background=False,
selectable=include_invite or include_discord, selectable=show_invite or show_discord,
) )
bui.widget(edit=self._container, up_widget=tab_button) # Allows escaping if we select the container somehow (though
# shouldn't be possible when buttons are present).
bui.widget(edit=container, up_widget=tab_button)
bui.textwidget( y = c_height - 30
parent=self._container, if show_message:
position=(region_width * 0.5, c_height_2 * 0.58),
color=(0.6, 1.0, 0.6),
scale=msc_scale,
size=(0, 0),
maxwidth=region_width * 0.9,
max_height=c_height_2 * 0.7,
h_align='center',
v_align='center',
text=message,
)
if include_invite:
bui.textwidget( bui.textwidget(
parent=self._container, parent=container,
position=(region_width * 0.57, 35), position=(region_width * 0.5, y),
color=(0.6, 1.0, 0.6),
scale=msc_scale,
size=(0, 0),
maxwidth=region_width * 0.9,
max_height=message_height,
h_align='center',
v_align='top',
text=message,
)
y -= message_height
if show_message_extra:
y -= message_extra_height
if show_invite:
bui.textwidget(
parent=container,
position=(region_width * 0.57, y),
color=(0, 1, 0), color=(0, 1, 0),
scale=0.6, scale=0.6,
size=(0, 0), size=(0, 0),
@ -112,8 +146,8 @@ class AboutGatherTab(GatherTab):
), ),
) )
invite_button = bui.buttonwidget( invite_button = bui.buttonwidget(
parent=self._container, parent=container,
position=(region_width * 0.59, 10), position=(region_width * 0.59, y - 25),
size=(230, 50), size=(230, 50),
color=(0.54, 0.42, 0.56), color=(0.54, 0.42, 0.56),
textcolor=(0, 1, 0), textcolor=(0, 1, 0),
@ -125,13 +159,14 @@ class AboutGatherTab(GatherTab):
on_activate_call=bui.WeakCall(self._invite_to_try_press), on_activate_call=bui.WeakCall(self._invite_to_try_press),
up_widget=tab_button, up_widget=tab_button,
) )
y -= invite_height
else: else:
invite_button = None invite_button = None
if include_discord: if show_discord:
bui.textwidget( bui.textwidget(
parent=self._container, parent=container,
position=(region_width * 0.57, 15 if include_invite else 75), position=(region_width * 0.57, y),
color=(0.6, 0.6, 1), color=(0.6, 0.6, 1),
scale=0.6, scale=0.6,
size=(0, 0), size=(0, 0),
@ -139,26 +174,29 @@ class AboutGatherTab(GatherTab):
h_align='right', h_align='right',
v_align='center', v_align='center',
flatness=1.0, flatness=1.0,
text=( text=bui.Lstr(resource='discordFriendsText'),
'Want to look for new people to play with?\n'
'Join our Discord and find new friends!'
),
) )
bui.buttonwidget( discord_button = bui.buttonwidget(
parent=self._container, parent=container,
position=(region_width * 0.59, -10 if include_invite else 50), position=(region_width * 0.59, y - 25),
size=(230, 50), size=(230, 50),
color=(0.54, 0.42, 0.56), color=(0.54, 0.42, 0.56),
textcolor=(0.6, 0.6, 1), textcolor=(0.6, 0.6, 1),
label='Join The Discord', label=bui.Lstr(resource='discordJoinText'),
autoselect=True, autoselect=True,
on_activate_call=bui.WeakCall(self._join_the_discord_press), on_activate_call=bui.WeakCall(self._join_the_discord_press),
up_widget=( up_widget=(
invite_button if invite_button is not None else tab_button invite_button if invite_button is not None else tab_button
), ),
) )
y -= discord_height
else:
discord_button = None
return self._container if discord_button is not None:
pass
return scroll_widget
def _invite_to_try_press(self) -> None: def _invite_to_try_press(self) -> None:
from bauiv1lib.account import show_sign_in_prompt from bauiv1lib.account import show_sign_in_prompt