mirror of
https://github.com/RYDE-WORK/ballistica.git
synced 2026-02-06 07:23:37 +08:00
Got about section cleaned up for new discord button
This commit is contained in:
parent
32f280e81b
commit
b4017bcefd
10
.efrocachemap
generated
10
.efrocachemap
generated
@ -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",
|
||||||
|
|||||||
@ -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.
|
||||||
|
|||||||
@ -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'
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user