Merge pull request #115 from imayushsaini/api9

Api9
This commit is contained in:
Ayush Saini 2025-04-13 12:20:14 +05:30 committed by GitHub
commit dc5a16f744
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
14 changed files with 1595 additions and 1188 deletions

44
config.json Normal file
View file

@ -0,0 +1,44 @@
{
"party_name":"BombSquad Community Server",
"party_is_public":true,
"authenticate_clients":true,
"admins":[
"pb-yOuRAccOuNtIdHErE",
"pb-aNdMayBeAnotherHeRE"
],
"enable_default_kick_voting":true,
"port":43210,
"max_party_size":6,
"session_max_players_override":8,
"session_type":"ffa",
"playlist_code":12345,
"playlist_shuffle":true,
"auto_balance_teams":true,
"enable_telnet":false,
"teams_series_length":7,
"ffa_series_length":24,
"stats_url":"https://discord.gg/ucyaesh",
"clean_exit_minutes":60,
"unclean_exit_minutes":90,
"idle_exit_minutes":20,
"show_tutorial":false,
"team_names":[
"ladoo",
"barfi"
],
"team_colors":[
[
0.8,
0.0,
0.6
],
[
0,
1,
0.8
]
],
"enable_queue":true,
"protocol_version":35,
"player_rejoin_cooldown":10.0
}

View file

@ -1,175 +0,0 @@
# To configure your server, create a config.toml file in the same directory
# as the ballisticakit_server script. The config_template.toml file can be
# copied or renamed as a convenient starting point.
# Uncomment any of these values to override defaults.
# Name of our server in the public parties list.
party_name = "BombSquad Community Server"
# If true, your party will show up in the global public party list
# Otherwise it will still be joinable via LAN or connecting by IP
# address.
#party_is_public = true
# If true, all connecting clients will be authenticated through the
# master server to screen for fake account info. Generally this
# should always be enabled unless you are hosting on a LAN with no
# internet connection.
#authenticate_clients = true
# IDs of server admins. Server admins are not kickable through the
# default kick vote system and they are able to kick players without
# a vote. To get your account id, enter 'getaccountid' in
# settings->advanced->enter-code.
#admins = ["pb-yOuRAccOuNtIdHErE", "pb-aNdMayBeAnotherHeRE"]
# Whether the default kick-voting system is enabled.
#enable_default_kick_voting = true
# To be included in the public server list, your server MUST be
# accessible via an ipv4 address. By default, the master server will
# try to use the address your server contacts it from, but this may
# be an ipv6 address these days so you may need to provide an ipv4
# address explicitly.
#public_ipv4_address = "123.123.123.123"
# You can optionally provide an ipv6 address for your server for the
# public server list. Unlike ipv4, a server is not required to have
# an ipv6 address to appear in the list, but is still good to
# provide when available since more and more devices are using ipv6
# these days. Your server's ipv6 address will be autodetected if
# your server uses ipv6 when communicating with the master server. You
# can pass an empty string here to explicitly disable the ipv6
# address.
#public_ipv6_address = "123A::A123:23A1:A312:12A3:A213:2A13"
# UDP port to host on. Change this to work around firewalls or run
# multiple servers on one machine.
#
# 43210 is the default and the only port that will show up in the
# LAN browser tab.
#port = 43210
# Max devices in the party. Note that this does *NOT* mean max
# players. Any device in the party can have more than one player on
# it if they have multiple controllers. Also, this number currently
# includes the server so generally make it 1 bigger than you need.
#max_party_size = 6
# Max players that can join a session. If present this will override
# the session's preferred max_players. if a value below 0 is given
# player limit will be removed.
#session_max_players_override = 8
# Options here are 'ffa' (free-for-all), 'teams' and 'coop'
# (cooperative) This value is ignored if you supply a playlist_code
# (see below).
#session_type = "ffa"
# Playlist-code for teams or free-for-all mode sessions. To host
# your own custom playlists, use the 'share' functionality in the
# playlist editor in the regular version of the game. This will give
# you a numeric code you can enter here to host that playlist.
#playlist_code = 12345
# Alternately, you can embed playlist data here instead of using
# codes. Make sure to set session_type to the correct type for the
# data here.
#playlist_inline = []
# Whether to shuffle the playlist or play its games in designated
# order.
#playlist_shuffle = true
# If true, keeps team sizes equal by disallowing joining the largest
# team (teams mode only).
#auto_balance_teams = true
# The campaign used when in co-op session mode. Do
# print(ba.app.campaigns) to see available campaign names.
#coop_campaign = "Easy"
# The level name within the campaign used in co-op session mode. For
# campaign name FOO, do print(ba.app.campaigns['FOO'].levels) to see
# available level names.
#coop_level = "Onslaught Training"
# Whether to enable telnet access.
#
# IMPORTANT: This option is no longer available, as it was being
# used for exploits. Live access to the running server is still
# possible through the mgr.cmd() function in the server script. Run
# your server through tools such as 'screen' or 'tmux' and you can
# reconnect to it remotely over a secure ssh connection.
#enable_telnet = false
# Series length in teams mode (7 == 'best-of-7' series; a team must
# get 4 wins)
#teams_series_length = 7
# Points to win in free-for-all mode (Points are awarded per game
# based on performance)
#ffa_series_length = 24
# If you have a custom stats webpage for your server, you can use
# this to provide a convenient in-game link to it in the
# server-browser alongside the server name.
#
# if ${ACCOUNT} is present in the string, it will be replaced by the
# currently-signed-in account's id. To fetch info about an account,
# your back-end server can use the following url:
# https://legacy.ballistica.net/accountquery?id=ACCOUNT_ID_HERE
stats_url = "https://discord.gg/ucyaesh"
# If present, the server subprocess will attempt to gracefully exit
# after this amount of time. A graceful exit can occur at the end of
# a series or other opportune time. Server-managers set to
# auto-restart (the default) will then spin up a fresh subprocess.
# This mechanism can be useful to clear out any memory leaks or
# other accumulated bad state in the server subprocess.
#clean_exit_minutes = 60
# If present, the server subprocess will shut down immediately after
# this amount of time. This can be useful as a fallback for
# clean_exit_time. The server manager will then spin up a fresh
# server subprocess if auto-restart is enabled (the default).
#unclean_exit_minutes = 90
# If present, the server subprocess will shut down immediately if
# this amount of time passes with no activity from any players. The
# server manager will then spin up a fresh server subprocess if
# auto-restart is enabled (the default).
#idle_exit_minutes = 20
# Should the tutorial be shown at the beginning of games?
#show_tutorial = false
# Team names (teams mode only).
team_names = ["ladoo", "barfi"]
# Team colors (teams mode only).
team_colors = [[0.8, 0.0, 0.6], [0, 1, 0.8]]
# Whether to enable the queue where players can line up before
# entering your server. Disabling this can be used as a workaround
# to deal with queue spamming attacks.
#enable_queue = true
# Protocol version we host with. Currently the default is 33 which
# still allows older 1.4 game clients to connect. Explicitly setting
# to 35 no longer allows those clients but adds/fixes a few things
# such as making camera shake properly work in net games.
#protocol_version = 35
# How many seconds individual players from a given account must wait
# before rejoining the game. This can help suppress exploits
# involving leaving and rejoining or switching teams rapidly.
#player_rejoin_cooldown = 10.0
# Log levels for particular loggers, overriding the engine's
# defaults. Valid values are NOTSET, DEBUG, INFO, WARNING, ERROR, or
# CRITICAL.
#[log_levels]
#"ba.lifecycle" = "INFO"
#"ba.assets" = "INFO"

View file

@ -381,7 +381,19 @@ def on_player_request(func) -> bool:
Session.on_player_request = on_player_request(Session.on_player_request) Session.on_player_request = on_player_request(Session.on_player_request)
ServerController._access_check_response = servercontroller._access_check_response
def on_access_check_response(self, data):
if data is not None:
addr = data['address']
port = data['port']
if settings["ballistica_web"]["enable"]:
bs.set_public_party_stats_url(
f'https://bombsquad-community.web.app/server-manager/?host={addr}&port={port}')
servercontroller._access_check_response(self, data)
ServerController._access_check_response = on_access_check_response
def wrap_player_spaz_init(original_class): def wrap_player_spaz_init(original_class):

View file

@ -10,13 +10,13 @@ party_name = "BombSquad Community Server"
# If true, your party will show up in the global public party list # If true, your party will show up in the global public party list
# Otherwise it will still be joinable via LAN or connecting by IP # Otherwise it will still be joinable via LAN or connecting by IP
# address. # address.
#party_is_public = true party_is_public = true
# If true, all connecting clients will be authenticated through the # If true, all connecting clients will be authenticated through the
# master server to screen for fake account info. Generally this # master server to screen for fake account info. Generally this
# should always be enabled unless you are hosting on a LAN with no # should always be enabled unless you are hosting on a LAN with no
# internet connection. # internet connection.
#authenticate_clients = true authenticate_clients = true
# IDs of server admins. Server admins are not kickable through the default # IDs of server admins. Server admins are not kickable through the default
# kick vote system and they are able to kick players without a vote. To get # kick vote system and they are able to kick players without a vote. To get
@ -24,7 +24,7 @@ party_name = "BombSquad Community Server"
admins = ["pb-yOuRAccOuNtIdHErE", "pb-aNdMayBeAnotherHeRE"] admins = ["pb-yOuRAccOuNtIdHErE", "pb-aNdMayBeAnotherHeRE"]
# Whether the default kick-voting system is enabled. # Whether the default kick-voting system is enabled.
#enable_default_kick_voting = true enable_default_kick_voting = true
# To be included in the public server list, your server MUST be # To be included in the public server list, your server MUST be
# accessible via an ipv4 address. By default, the master server will # accessible via an ipv4 address. By default, the master server will
@ -48,23 +48,23 @@ admins = ["pb-yOuRAccOuNtIdHErE", "pb-aNdMayBeAnotherHeRE"]
# #
# 43210 is the default and the only port that will show up in the # 43210 is the default and the only port that will show up in the
# LAN browser tab. # LAN browser tab.
#port = 43210 port = 43210
# Max devices in the party. Note that this does *NOT* mean max # Max devices in the party. Note that this does *NOT* mean max
# players. Any device in the party can have more than one player on # players. Any device in the party can have more than one player on
# it if they have multiple controllers. Also, this number currently # it if they have multiple controllers. Also, this number currently
# includes the server so generally make it 1 bigger than you need. # includes the server so generally make it 1 bigger than you need.
#max_party_size = 6 max_party_size = 6
# Max players that can join a session. If present this will override # Max players that can join a session. If present this will override
# the session's preferred max_players. if a value below 0 is given # the session's preferred max_players. if a value below 0 is given
# player limit will be removed. # player limit will be removed.
#session_max_players_override = 8 session_max_players_override = 8
# Options here are 'ffa' (free-for-all), 'teams' and 'coop' # Options here are 'ffa' (free-for-all), 'teams' and 'coop'
# (cooperative) This value is ignored if you supply a playlist_code # (cooperative) This value is ignored if you supply a playlist_code
# (see below). # (see below).
#session_type = "ffa" session_type = "ffa"
# Playlist-code for teams or free-for-all mode sessions. # Playlist-code for teams or free-for-all mode sessions.
# To host your own custom playlists, use the 'share' functionality in the # To host your own custom playlists, use the 'share' functionality in the
@ -80,11 +80,11 @@ playlist_code = 12345
# Whether to shuffle the playlist or play its games in designated # Whether to shuffle the playlist or play its games in designated
# order. # order.
#playlist_shuffle = true playlist_shuffle = true
# If true, keeps team sizes equal by disallowing joining the largest # If true, keeps team sizes equal by disallowing joining the largest
# team (teams mode only). # team (teams mode only).
#auto_balance_teams = true auto_balance_teams = true
# The campaign used when in co-op session mode. Do # The campaign used when in co-op session mode. Do
# print(ba.app.campaigns) to see available campaign names. # print(ba.app.campaigns) to see available campaign names.
@ -102,7 +102,7 @@ playlist_code = 12345
# possible through the mgr.cmd() function in the server script. Run # possible through the mgr.cmd() function in the server script. Run
# your server through tools such as 'screen' or 'tmux' and you can # your server through tools such as 'screen' or 'tmux' and you can
# reconnect to it remotely over a secure ssh connection. # reconnect to it remotely over a secure ssh connection.
#enable_telnet = false enable_telnet = false
# Series length in teams mode (7 == 'best-of-7' series; a team must # Series length in teams mode (7 == 'best-of-7' series; a team must
# get 4 wins) # get 4 wins)
@ -128,22 +128,22 @@ stats_url = "https://discord.gg/ucyaesh"
# auto-restart (the default) will then spin up a fresh subprocess. # auto-restart (the default) will then spin up a fresh subprocess.
# This mechanism can be useful to clear out any memory leaks or # This mechanism can be useful to clear out any memory leaks or
# other accumulated bad state in the server subprocess. # other accumulated bad state in the server subprocess.
#clean_exit_minutes = 60 clean_exit_minutes = 60
# If present, the server subprocess will shut down immediately after # If present, the server subprocess will shut down immediately after
# this amount of time. This can be useful as a fallback for # this amount of time. This can be useful as a fallback for
# clean_exit_time. The server manager will then spin up a fresh # clean_exit_time. The server manager will then spin up a fresh
# server subprocess if auto-restart is enabled (the default). # server subprocess if auto-restart is enabled (the default).
#unclean_exit_minutes = 90 unclean_exit_minutes = 90
# If present, the server subprocess will shut down immediately if # If present, the server subprocess will shut down immediately if
# this amount of time passes with no activity from any players. The # this amount of time passes with no activity from any players. The
# server manager will then spin up a fresh server subprocess if # server manager will then spin up a fresh server subprocess if
# auto-restart is enabled (the default). # auto-restart is enabled (the default).
#idle_exit_minutes = 20 idle_exit_minutes = 20
# Should the tutorial be shown at the beginning of games? # Should the tutorial be shown at the beginning of games?
#show_tutorial = false show_tutorial = false
# Team names (teams mode only). # Team names (teams mode only).
team_names = ["ladoo", "barfi"] team_names = ["ladoo", "barfi"]
@ -154,15 +154,15 @@ team_colors = [[0.8, 0.0, 0.6], [0, 1, 0.8]]
# Whether to enable the queue where players can line up before # Whether to enable the queue where players can line up before
# entering your server. Disabling this can be used as a workaround # entering your server. Disabling this can be used as a workaround
# to deal with queue spamming attacks. # to deal with queue spamming attacks.
#enable_queue = true enable_queue = true
# Protocol version we host with. Currently the default is 33 which # Protocol version we host with. Currently the default is 33 which
# still allows older 1.4 game clients to connect. Explicitly setting # still allows older 1.4 game clients to connect. Explicitly setting
# to 35 no longer allows those clients but adds/fixes a few things # to 35 no longer allows those clients but adds/fixes a few things
# such as making camera shake properly work in net games. # such as making camera shake properly work in net games.
#protocol_version = 35 protocol_version = 35
# How many seconds individual players from a given account must wait # How many seconds individual players from a given account must wait
# before rejoining the game. This can help suppress exploits # before rejoining the game. This can help suppress exploits
# involving leaving and rejoining or switching teams rapidly. # involving leaving and rejoining or switching teams rapidly.
#player_rejoin_cooldown = 10.0 player_rejoin_cooldown = 10.0

View file

@ -15,7 +15,7 @@ cLastIdle = 0
class checkIdle(object): class checkIdle(object):
def start(self): def start(self):
self.t1 = bs.timer(2, babase.Call(self.check), repeat=True) self.t1 = bs.AppTimer(2, babase.Call(self.check), repeat=True)
self.lobbies = {} self.lobbies = {}
def check(self): def check(self):

View file

@ -3,6 +3,7 @@
import time import time
import _babase import _babase
import _bascenev1
import bascenev1 as bs import bascenev1 as bs
@ -81,11 +82,11 @@ def vote(pb_id, client_id, vote_type):
except: except:
pass pass
elif vote_type == "nv": elif vote_type == "nv":
_babase.chatmessage("/nv") _bascenev1.chatmessage("/nv")
elif vote_type == "dv": elif vote_type == "dv":
_babase.chatmessage("/dv") _bascenev1.chatmessage("/dv")
elif vote_type == "sm": elif vote_type == "sm":
_babase.chatmessage("/sm") _bascenev1.chatmessage("/sm")
def reset_votes(): def reset_votes():

View file

@ -16,6 +16,7 @@ from typing import Type
import babase import babase
import bascenev1 as bs import bascenev1 as bs
from tools import servercheck, logger, notification_manager from tools import servercheck, logger, notification_manager
from tools.file_handle import OpenJson
stats = {} stats = {}
leaderboard = {} leaderboard = {}
@ -29,7 +30,7 @@ class BsDataThread(object):
global stats global stats
stats["name"] = _babase.app.classic.server._config.party_name stats["name"] = _babase.app.classic.server._config.party_name
stats["discord"] = get_server_settings( stats["discord"] = get_server_settings(
)["ballistica_web"]["server_password"] )["ballistica_web"]["discord_link"]
stats["vapidKey"] = notification_manager.get_vapid_keys()["public_key"] stats["vapidKey"] = notification_manager.get_vapid_keys()["public_key"]
self.refresh_stats_cache_timer = bs.AppTimer(8, babase.Call( self.refresh_stats_cache_timer = bs.AppTimer(8, babase.Call(
@ -117,7 +118,7 @@ class BsDataThread(object):
return data return data
v = bs.AppTimer(5, babase.Call( v = bs.AppTimer(8, babase.Call(
BsDataThread)) BsDataThread))
@ -273,10 +274,10 @@ def get_server_config():
def update_server_config(config): def update_server_config(config):
current_dir = os.getcwd() current_dir = os.getcwd()
file_path = os.path.join(current_dir, '..', 'config.yaml') file_path = os.path.join(current_dir, '..', 'config.json')
with open(file_path, "w") as f: with OpenJson(file_path) as f:
f.write(yaml.dump(config)) f.dump(config, indent=4)
def do_action(action, value): def do_action(action, value):

View file

@ -1,4 +1,4 @@
# ba_meta require api 8 # ba_meta require api 9
''' '''
Character Chooser by Mr.Smoothy Character Chooser by Mr.Smoothy
@ -36,7 +36,6 @@ from typing import TYPE_CHECKING
import babase import babase
import bauiv1 as bui import bauiv1 as bui
from babase._error import print_error
from babase._language import Lstr from babase._language import Lstr
if TYPE_CHECKING: if TYPE_CHECKING:
@ -248,11 +247,11 @@ def handlemessage(self, msg: Any) -> Any:
# If we've been removed from the lobby, ignore this stuff. # If we've been removed from the lobby, ignore this stuff.
if self._dead: if self._dead:
print_error('chooser got ChangeMessage after dying') print('chooser got ChangeMessage after dying')
return return
if not self._text_node: if not self._text_node:
print_error('got ChangeMessage after nodes died') print('got ChangeMessage after nodes died')
return return
if msg.what == 'characterchooser': if msg.what == 'characterchooser':
self._click_sound.play() self._click_sound.play()

File diff suppressed because it is too large Load diff

View file

@ -27,6 +27,8 @@ NOTE: This file was autogenerated by batools.dummymodule; do not edit by hand.
# pylint: disable=redefined-outer-name # pylint: disable=redefined-outer-name
# pylint: disable=invalid-name # pylint: disable=invalid-name
# pylint: disable=no-value-for-parameter # pylint: disable=no-value-for-parameter
# pylint: disable=unused-import
# pylint: disable=too-many-positional-arguments
from __future__ import annotations from __future__ import annotations
@ -45,10 +47,129 @@ def _uninferrable() -> Any:
return _not_a_real_variable # type: ignore return _not_a_real_variable # type: ignore
def animate_root_ui_chest_unlock_time(
*,
chestid: str,
duration: float,
startvalue: float,
endvalue: float,
) -> None:
"""Animate the unlock time on a chest."""
# This is a dummy stub; the actual implementation is native code.
return None
def animate_root_ui_tickets(
*,
duration: float,
startvalue: int,
endvalue: int,
) -> None:
"""Animate the displayed tickets value."""
# This is a dummy stub; the actual implementation is native code.
return None
def animate_root_ui_tokens(
*,
duration: float,
startvalue: int,
endvalue: int,
) -> None:
"""Animate the displayed tokens value."""
# This is a dummy stub; the actual implementation is native code.
return None
def classic_app_mode_activate() -> None:
"""(internal)"""
# This is a dummy stub; the actual implementation is native code.
return None
def classic_app_mode_deactivate() -> None:
"""(internal)"""
# This is a dummy stub; the actual implementation is native code.
return None
def classic_app_mode_handle_app_intent_default() -> None:
"""(internal)"""
# This is a dummy stub; the actual implementation is native code.
return None
def classic_app_mode_handle_app_intent_exec(command: str) -> None:
"""(internal)"""
# This is a dummy stub; the actual implementation is native code.
return None
def get_account_display_state() -> Any:
"""(internal)"""
# This is a dummy stub; the actual implementation is native code.
return _uninferrable()
def set_account_display_state(vals: dict) -> None:
"""(internal)"""
# This is a dummy stub; the actual implementation is native code.
return None
def set_have_live_account_values(have: bool) -> None:
"""Inform the native layer whether we are being fed with live account
values from the server.
"""
# This is a dummy stub; the actual implementation is native code.
return None
def set_root_ui_account_values(
*,
tickets: int,
tokens: int,
league_type: str,
league_number: int,
league_rank: int,
achievements_percent_text: str,
level_text: str,
xp_text: str,
inbox_count: int,
inbox_count_is_max: bool,
inbox_announce_text: str,
gold_pass: bool,
chest_0_appearance: str,
chest_1_appearance: str,
chest_2_appearance: str,
chest_3_appearance: str,
chest_0_create_time: float,
chest_1_create_time: float,
chest_2_create_time: float,
chest_3_create_time: float,
chest_0_unlock_time: float,
chest_1_unlock_time: float,
chest_2_unlock_time: float,
chest_3_unlock_time: float,
chest_0_unlock_tokens: int,
chest_1_unlock_tokens: int,
chest_2_unlock_tokens: int,
chest_3_unlock_tokens: int,
chest_0_ad_allow_time: float,
chest_1_ad_allow_time: float,
chest_2_ad_allow_time: float,
chest_3_ad_allow_time: float,
) -> None:
"""Pass values to the native layer for use in the root UI or elsewhere."""
# This is a dummy stub; the actual implementation is native code.
return None
def set_stress_testing( def set_stress_testing(
testing: bool, player_count: int, attract_mode: bool testing: bool, player_count: int, attract_mode: bool
) -> None: ) -> None:
"""(internal)""" """(internal)"""
# This is a dummy stub; the actual implementation is native code.
return None return None
@ -56,4 +177,5 @@ def value_test(
arg: str, change: float | None = None, absolute: float | None = None arg: str, change: float | None = None, absolute: float | None = None
) -> float: ) -> float:
"""(internal)""" """(internal)"""
# This is a dummy stub; the actual implementation is native code.
return float() return float()

View file

@ -27,6 +27,8 @@ NOTE: This file was autogenerated by batools.dummymodule; do not edit by hand.
# pylint: disable=redefined-outer-name # pylint: disable=redefined-outer-name
# pylint: disable=invalid-name # pylint: disable=invalid-name
# pylint: disable=no-value-for-parameter # pylint: disable=no-value-for-parameter
# pylint: disable=unused-import
# pylint: disable=too-many-positional-arguments
from __future__ import annotations from __future__ import annotations
@ -49,11 +51,13 @@ def add_v1_account_transaction(
transaction: dict, callback: Callable | None = None transaction: dict, callback: Callable | None = None
) -> None: ) -> None:
"""(internal)""" """(internal)"""
# This is a dummy stub; the actual implementation is native code.
return None return None
def can_show_ad() -> bool: def can_show_ad() -> bool:
"""(internal)""" """(internal)"""
# This is a dummy stub; the actual implementation is native code.
return bool() return bool()
@ -63,74 +67,88 @@ def game_service_has_leaderboard(game: str, config: str) -> bool:
Given a game and config string, returns whether there is a leaderboard Given a game and config string, returns whether there is a leaderboard
for it on the game service. for it on the game service.
""" """
# This is a dummy stub; the actual implementation is native code.
return bool() return bool()
def get_classic_news_show() -> str:
"""(internal)"""
# This is a dummy stub; the actual implementation is native code.
return str()
def get_master_server_address(source: int = -1, version: int = 1) -> str: def get_master_server_address(source: int = -1, version: int = 1) -> str:
"""(internal) """(internal)
Return the address of the master server. Return the address of the master server.
""" """
return str() # This is a dummy stub; the actual implementation is native code.
def get_news_show() -> str:
"""(internal)"""
return str() return str()
def get_price(item: str) -> str | None: def get_price(item: str) -> str | None:
"""(internal)""" """(internal)"""
# This is a dummy stub; the actual implementation is native code.
return '' return ''
def get_purchased(item: str) -> bool:
"""(internal)"""
return bool()
def get_purchases_state() -> int:
"""(internal)"""
return int()
def get_v1_account_display_string(full: bool = True) -> str: def get_v1_account_display_string(full: bool = True) -> str:
"""(internal)""" """(internal)"""
# This is a dummy stub; the actual implementation is native code.
return str() return str()
def get_v1_account_misc_read_val(name: str, default_value: Any) -> Any: def get_v1_account_misc_read_val(name: str, default_value: Any) -> Any:
"""(internal)""" """(internal)"""
# This is a dummy stub; the actual implementation is native code.
return _uninferrable() return _uninferrable()
def get_v1_account_misc_read_val_2(name: str, default_value: Any) -> Any: def get_v1_account_misc_read_val_2(name: str, default_value: Any) -> Any:
"""(internal)""" """(internal)"""
# This is a dummy stub; the actual implementation is native code.
return _uninferrable() return _uninferrable()
def get_v1_account_misc_val(name: str, default_value: Any) -> Any: def get_v1_account_misc_val(name: str, default_value: Any) -> Any:
"""(internal)""" """(internal)"""
# This is a dummy stub; the actual implementation is native code.
return _uninferrable() return _uninferrable()
def get_v1_account_name() -> str: def get_v1_account_name() -> str:
"""(internal)""" """(internal)"""
# This is a dummy stub; the actual implementation is native code.
return str() return str()
def get_v1_account_product_purchased(item: str) -> bool:
"""(internal)"""
# This is a dummy stub; the actual implementation is native code.
return bool()
def get_v1_account_product_purchases_state() -> int:
"""(internal)"""
# This is a dummy stub; the actual implementation is native code.
return int()
def get_v1_account_public_login_id() -> str | None: def get_v1_account_public_login_id() -> str | None:
"""(internal)""" """(internal)"""
# This is a dummy stub; the actual implementation is native code.
return '' return ''
def get_v1_account_state() -> str: def get_v1_account_state() -> str:
"""(internal)""" """(internal)"""
# This is a dummy stub; the actual implementation is native code.
return str() return str()
def get_v1_account_state_num() -> int: def get_v1_account_state_num() -> int:
"""(internal)""" """(internal)"""
# This is a dummy stub; the actual implementation is native code.
return int() return int()
@ -139,84 +157,97 @@ def get_v1_account_ticket_count() -> int:
Returns the number of tickets for the current account. Returns the number of tickets for the current account.
""" """
# This is a dummy stub; the actual implementation is native code.
return int() return int()
def get_v1_account_type() -> str: def get_v1_account_type() -> str:
"""(internal)""" """(internal)"""
# This is a dummy stub; the actual implementation is native code.
return str() return str()
def get_v2_fleet() -> str: def get_v2_fleet() -> str:
"""(internal)""" """(internal)"""
# This is a dummy stub; the actual implementation is native code.
return str() return str()
def has_video_ads() -> bool: def has_video_ads() -> bool:
"""(internal)""" """(internal)"""
# This is a dummy stub; the actual implementation is native code.
return bool() return bool()
def have_incentivized_ad() -> bool: def have_incentivized_ad() -> bool:
"""(internal)""" """(internal)"""
# This is a dummy stub; the actual implementation is native code.
return bool() return bool()
def have_outstanding_v1_account_transactions() -> bool: def have_outstanding_v1_account_transactions() -> bool:
"""(internal)""" """(internal)"""
# This is a dummy stub; the actual implementation is native code.
return bool() return bool()
def in_game_purchase(item: str, price: int) -> None: def in_game_purchase(item: str, price: int) -> None:
"""(internal)""" """(internal)"""
# This is a dummy stub; the actual implementation is native code.
return None return None
def is_blessed() -> bool: def is_blessed() -> bool:
"""(internal)""" """(internal)"""
# This is a dummy stub; the actual implementation is native code.
return bool() return bool()
def mark_config_dirty() -> None: def mark_config_dirty() -> None:
"""(internal) """(internal)"""
# This is a dummy stub; the actual implementation is native code.
Category: General Utility Functions
"""
return None return None
def on_app_loading() -> None: def on_app_loading() -> None:
"""(internal)""" """(internal)"""
# This is a dummy stub; the actual implementation is native code.
return None return None
def power_ranking_query(callback: Callable, season: Any = None) -> None: def power_ranking_query(callback: Callable, season: Any = None) -> None:
"""(internal)""" """(internal)"""
# This is a dummy stub; the actual implementation is native code.
return None return None
def purchase(item: str) -> None: def purchase(item: str) -> None:
"""(internal)""" """(internal)"""
# This is a dummy stub; the actual implementation is native code.
return None return None
def report_achievement(achievement: str, pass_to_account: bool = True) -> None: def report_achievement(achievement: str, pass_to_account: bool = True) -> None:
"""(internal)""" """(internal)"""
# This is a dummy stub; the actual implementation is native code.
return None return None
def reset_achievements() -> None: def reset_achievements() -> None:
"""(internal)""" """(internal)"""
# This is a dummy stub; the actual implementation is native code.
return None return None
def restore_purchases() -> None: def restore_purchases() -> None:
"""(internal)""" """(internal)"""
# This is a dummy stub; the actual implementation is native code.
return None return None
def run_v1_account_transactions() -> None: def run_v1_account_transactions() -> None:
"""(internal)""" """(internal)"""
# This is a dummy stub; the actual implementation is native code.
return None return None
@ -224,6 +255,7 @@ def show_ad(
purpose: str, on_completion_call: Callable[[], None] | None = None purpose: str, on_completion_call: Callable[[], None] | None = None
) -> None: ) -> None:
"""(internal)""" """(internal)"""
# This is a dummy stub; the actual implementation is native code.
return None return None
@ -231,6 +263,7 @@ def show_ad_2(
purpose: str, on_completion_call: Callable[[bool], None] | None = None purpose: str, on_completion_call: Callable[[bool], None] | None = None
) -> None: ) -> None:
"""(internal)""" """(internal)"""
# This is a dummy stub; the actual implementation is native code.
return None return None
@ -240,22 +273,19 @@ def show_game_service_ui(
game_version: str | None = None, game_version: str | None = None,
) -> None: ) -> None:
"""(internal)""" """(internal)"""
# This is a dummy stub; the actual implementation is native code.
return None return None
def sign_in_v1(account_type: str) -> None: def sign_in_v1(account_type: str) -> None:
"""(internal) """(internal)"""
# This is a dummy stub; the actual implementation is native code.
Category: General Utility Functions
"""
return None return None
def sign_out_v1(v2_embedded: bool = False) -> None: def sign_out_v1(v2_embedded: bool = False) -> None:
"""(internal) """(internal)"""
# This is a dummy stub; the actual implementation is native code.
Category: General Utility Functions
"""
return None return None
@ -278,11 +308,19 @@ def submit_score(
to devote my time to improving the game instead of trying to make the to devote my time to improving the game instead of trying to make the
score server more mischief-proof. score server more mischief-proof.
""" """
# This is a dummy stub; the actual implementation is native code.
return None return None
def supports_purchases() -> bool:
"""(internal)"""
# This is a dummy stub; the actual implementation is native code.
return bool()
def tournament_query( def tournament_query(
callback: Callable[[dict | None], None], args: dict callback: Callable[[dict | None], None], args: dict
) -> None: ) -> None:
"""(internal)""" """(internal)"""
# This is a dummy stub; the actual implementation is native code.
return None return None

File diff suppressed because it is too large Load diff

View file

@ -27,6 +27,8 @@ NOTE: This file was autogenerated by batools.dummymodule; do not edit by hand.
# pylint: disable=redefined-outer-name # pylint: disable=redefined-outer-name
# pylint: disable=invalid-name # pylint: disable=invalid-name
# pylint: disable=no-value-for-parameter # pylint: disable=no-value-for-parameter
# pylint: disable=unused-import
# pylint: disable=too-many-positional-arguments
from __future__ import annotations from __future__ import annotations
@ -50,9 +52,11 @@ class Hello:
def testmethod(self, val: int = 0) -> None: def testmethod(self, val: int = 0) -> None:
"""Just testing.""" """Just testing."""
# This is a dummy stub; the actual implementation is native code.
return None return None
def hello_again_world() -> None: def hello_again_world() -> None:
"""Another hello world print.""" """Another hello world print."""
# This is a dummy stub; the actual implementation is native code.
return None return None

View file

@ -27,6 +27,8 @@ NOTE: This file was autogenerated by batools.dummymodule; do not edit by hand.
# pylint: disable=redefined-outer-name # pylint: disable=redefined-outer-name
# pylint: disable=invalid-name # pylint: disable=invalid-name
# pylint: disable=no-value-for-parameter # pylint: disable=no-value-for-parameter
# pylint: disable=unused-import
# pylint: disable=too-many-positional-arguments
from __future__ import annotations from __future__ import annotations
@ -48,25 +50,27 @@ def _uninferrable() -> Any:
class Mesh: class Mesh:
"""Category: **User Interface Classes**""" """Mesh asset for local user interface purposes."""
pass pass
class Sound: class Sound:
"""Category: **User Interface Classes**""" """Sound asset for local user interface purposes."""
def play(self) -> None: def play(self, volume: float = 1.0) -> None:
"""Play the sound locally.""" """Play the sound locally."""
# This is a dummy stub; the actual implementation is native code.
return None return None
def stop(self) -> None: def stop(self) -> None:
"""Stop the sound if it is playing.""" """Stop the sound if it is playing."""
# This is a dummy stub; the actual implementation is native code.
return None return None
class Texture: class Texture:
"""Category: **User Interface Classes**""" """Texture asset for local user interface purposes."""
pass pass
@ -74,8 +78,6 @@ class Texture:
class Widget: class Widget:
"""Internal type for low level UI elements; buttons, windows, etc. """Internal type for low level UI elements; buttons, windows, etc.
Category: **User Interface Classes**
This class represents a weak reference to a widget object This class represents a weak reference to a widget object
in the internal C++ layer. Currently, functions such as in the internal C++ layer. Currently, functions such as
bauiv1.buttonwidget() must be used to instantiate or edit these. bauiv1.buttonwidget() must be used to instantiate or edit these.
@ -94,16 +96,19 @@ class Widget:
def activate(self) -> None: def activate(self) -> None:
"""Activates a widget; the same as if it had been clicked.""" """Activates a widget; the same as if it had been clicked."""
# This is a dummy stub; the actual implementation is native code.
return None return None
def add_delete_callback(self, call: Callable) -> None: def add_delete_callback(self, call: Callable) -> None:
"""Add a call to be run immediately after this widget is destroyed.""" """Add a call to be run immediately after this widget is destroyed."""
# This is a dummy stub; the actual implementation is native code.
return None return None
def delete(self, ignore_missing: bool = True) -> None: def delete(self, ignore_missing: bool = True) -> None:
"""Delete the Widget. Ignores already-deleted Widgets if ignore_missing """Delete the Widget. Ignores already-deleted Widgets if ignore_missing
is True; otherwise an Exception is thrown. is True; otherwise an Exception is thrown.
""" """
# This is a dummy stub; the actual implementation is native code.
return None return None
def exists(self) -> bool: def exists(self) -> bool:
@ -114,10 +119,12 @@ class Widget:
functionality, so a statement such as "if mywidget" will do functionality, so a statement such as "if mywidget" will do
the right thing both for Widget objects and values of None. the right thing both for Widget objects and values of None.
""" """
# This is a dummy stub; the actual implementation is native code.
return bool() return bool()
def get_children(self) -> list[bauiv1.Widget]: def get_children(self) -> list[bauiv1.Widget]:
"""Returns any child Widgets of this Widget.""" """Returns any child Widgets of this Widget."""
# This is a dummy stub; the actual implementation is native code.
import bauiv1 import bauiv1
return [bauiv1.Widget()] return [bauiv1.Widget()]
@ -127,10 +134,12 @@ class Widget:
of the screen. This can be useful for placing pop-up windows and other of the screen. This can be useful for placing pop-up windows and other
special cases. special cases.
""" """
# This is a dummy stub; the actual implementation is native code.
return (0.0, 0.0) return (0.0, 0.0)
def get_selected_child(self) -> bauiv1.Widget | None: def get_selected_child(self) -> bauiv1.Widget | None:
"""Returns the selected child Widget or None if nothing is selected.""" """Returns the selected child Widget or None if nothing is selected."""
# This is a dummy stub; the actual implementation is native code.
import bauiv1 import bauiv1
return bauiv1.Widget() return bauiv1.Widget()
@ -140,17 +149,15 @@ class Widget:
is different from the Python bauiv1.Widget type, which is the same for is different from the Python bauiv1.Widget type, which is the same for
all widgets. all widgets.
""" """
# This is a dummy stub; the actual implementation is native code.
return str() return str()
def back_press() -> None:
"""(internal)"""
return None
def buttonwidget( def buttonwidget(
*,
edit: bauiv1.Widget | None = None, edit: bauiv1.Widget | None = None,
parent: bauiv1.Widget | None = None, parent: bauiv1.Widget | None = None,
id: str | None = None,
size: Sequence[float] | None = None, size: Sequence[float] | None = None,
position: Sequence[float] | None = None, position: Sequence[float] | None = None,
on_activate_call: Callable | None = None, on_activate_call: Callable | None = None,
@ -189,18 +196,18 @@ def buttonwidget(
) -> bauiv1.Widget: ) -> bauiv1.Widget:
"""Create or edit a button widget. """Create or edit a button widget.
Category: **User Interface Functions**
Pass a valid existing bauiv1.Widget as 'edit' to modify it; otherwise Pass a valid existing bauiv1.Widget as 'edit' to modify it; otherwise
a new one is created and returned. Arguments that are not set to None a new one is created and returned. Arguments that are not set to None
are applied to the Widget. are applied to the Widget.
""" """
# This is a dummy stub; the actual implementation is native code.
import bauiv1 # pylint: disable=cyclic-import import bauiv1 # pylint: disable=cyclic-import
return bauiv1.Widget() return bauiv1.Widget()
def checkboxwidget( def checkboxwidget(
*,
edit: bauiv1.Widget | None = None, edit: bauiv1.Widget | None = None,
parent: bauiv1.Widget | None = None, parent: bauiv1.Widget | None = None,
size: Sequence[float] | None = None, size: Sequence[float] | None = None,
@ -219,18 +226,18 @@ def checkboxwidget(
) -> bauiv1.Widget: ) -> bauiv1.Widget:
"""Create or edit a check-box widget. """Create or edit a check-box widget.
Category: **User Interface Functions**
Pass a valid existing bauiv1.Widget as 'edit' to modify it; otherwise Pass a valid existing bauiv1.Widget as 'edit' to modify it; otherwise
a new one is created and returned. Arguments that are not set to None a new one is created and returned. Arguments that are not set to None
are applied to the Widget. are applied to the Widget.
""" """
# This is a dummy stub; the actual implementation is native code.
import bauiv1 # pylint: disable=cyclic-import import bauiv1 # pylint: disable=cyclic-import
return bauiv1.Widget() return bauiv1.Widget()
def columnwidget( def columnwidget(
*,
edit: bauiv1.Widget | None = None, edit: bauiv1.Widget | None = None,
parent: bauiv1.Widget | None = None, parent: bauiv1.Widget | None = None,
size: Sequence[float] | None = None, size: Sequence[float] | None = None,
@ -247,24 +254,24 @@ def columnwidget(
border: float | None = None, border: float | None = None,
margin: float | None = None, margin: float | None = None,
claims_left_right: bool | None = None, claims_left_right: bool | None = None,
claims_tab: bool | None = None,
) -> bauiv1.Widget: ) -> bauiv1.Widget:
"""Create or edit a column widget. """Create or edit a column widget.
Category: **User Interface Functions**
Pass a valid existing bauiv1.Widget as 'edit' to modify it; otherwise Pass a valid existing bauiv1.Widget as 'edit' to modify it; otherwise
a new one is created and returned. Arguments that are not set to None a new one is created and returned. Arguments that are not set to None
are applied to the Widget. are applied to the Widget.
""" """
# This is a dummy stub; the actual implementation is native code.
import bauiv1 # pylint: disable=cyclic-import import bauiv1 # pylint: disable=cyclic-import
return bauiv1.Widget() return bauiv1.Widget()
def containerwidget( def containerwidget(
*,
edit: bauiv1.Widget | None = None, edit: bauiv1.Widget | None = None,
parent: bauiv1.Widget | None = None, parent: bauiv1.Widget | None = None,
id: str | None = None,
size: Sequence[float] | None = None, size: Sequence[float] | None = None,
position: Sequence[float] | None = None, position: Sequence[float] | None = None,
background: bool | None = None, background: bool | None = None,
@ -275,7 +282,6 @@ def containerwidget(
root_selectable: bool | None = None, root_selectable: bool | None = None,
on_activate_call: Callable[[], None] | None = None, on_activate_call: Callable[[], None] | None = None,
claims_left_right: bool | None = None, claims_left_right: bool | None = None,
claims_tab: bool | None = None,
selection_loops: bool | None = None, selection_loops: bool | None = None,
selection_loops_to_parent: bool | None = None, selection_loops_to_parent: bool | None = None,
scale: float | None = None, scale: float | None = None,
@ -290,19 +296,33 @@ def containerwidget(
always_highlight: bool | None = None, always_highlight: bool | None = None,
selectable: bool | None = None, selectable: bool | None = None,
scale_origin_stack_offset: Sequence[float] | None = None, scale_origin_stack_offset: Sequence[float] | None = None,
toolbar_visibility: str | None = None, toolbar_visibility: (
Literal[
'menu_minimal',
'menu_minimal_no_back',
'menu_full',
'menu_full_no_back',
'menu_store',
'menu_store_no_back',
'menu_in_game',
'menu_tokens',
'get_tokens',
'no_menu_minimal',
'inherit',
]
| None
) = None,
on_select_call: Callable[[], None] | None = None, on_select_call: Callable[[], None] | None = None,
claim_outside_clicks: bool | None = None, claim_outside_clicks: bool | None = None,
claims_up_down: bool | None = None, claims_up_down: bool | None = None,
) -> bauiv1.Widget: ) -> bauiv1.Widget:
"""Create or edit a container widget. """Create or edit a container widget.
Category: **User Interface Functions**
Pass a valid existing bauiv1.Widget as 'edit' to modify it; otherwise Pass a valid existing bauiv1.Widget as 'edit' to modify it; otherwise
a new one is created and returned. Arguments that are not set to None a new one is created and returned. Arguments that are not set to None
are applied to the Widget. are applied to the Widget.
""" """
# This is a dummy stub; the actual implementation is native code.
import bauiv1 # pylint: disable=cyclic-import import bauiv1 # pylint: disable=cyclic-import
return bauiv1.Widget() return bauiv1.Widget()
@ -313,13 +333,36 @@ def get_qrcode_texture(url: str) -> bauiv1.Texture:
The provided url must be 64 bytes or less. The provided url must be 64 bytes or less.
""" """
# This is a dummy stub; the actual implementation is native code.
import bauiv1 # pylint: disable=cyclic-import import bauiv1 # pylint: disable=cyclic-import
return bauiv1.Texture() return bauiv1.Texture()
def get_special_widget(name: str) -> bauiv1.Widget: def get_special_widget(
name: Literal[
'squad_button',
'back_button',
'account_button',
'achievements_button',
'settings_button',
'inbox_button',
'store_button',
'get_tokens_button',
'inventory_button',
'tickets_meter',
'tokens_meter',
'trophy_meter',
'level_meter',
'overlay_stack',
'chest_0_button',
'chest_1_button',
'chest_2_button',
'chest_3_button',
],
) -> bauiv1.Widget:
"""(internal)""" """(internal)"""
# This is a dummy stub; the actual implementation is native code.
import bauiv1 # pylint: disable=cyclic-import import bauiv1 # pylint: disable=cyclic-import
return bauiv1.Widget() return bauiv1.Widget()
@ -327,6 +370,7 @@ def get_special_widget(name: str) -> bauiv1.Widget:
def getmesh(name: str) -> bauiv1.Mesh: def getmesh(name: str) -> bauiv1.Mesh:
"""Load a mesh for use solely in the local user interface.""" """Load a mesh for use solely in the local user interface."""
# This is a dummy stub; the actual implementation is native code.
import bauiv1 # pylint: disable=cyclic-import import bauiv1 # pylint: disable=cyclic-import
return bauiv1.Mesh() return bauiv1.Mesh()
@ -334,6 +378,7 @@ def getmesh(name: str) -> bauiv1.Mesh:
def getsound(name: str) -> bauiv1.Sound: def getsound(name: str) -> bauiv1.Sound:
"""Load a sound for use in the ui.""" """Load a sound for use in the ui."""
# This is a dummy stub; the actual implementation is native code.
import bauiv1 # pylint: disable=cyclic-import import bauiv1 # pylint: disable=cyclic-import
return bauiv1.Sound() return bauiv1.Sound()
@ -341,12 +386,14 @@ def getsound(name: str) -> bauiv1.Sound:
def gettexture(name: str) -> bauiv1.Texture: def gettexture(name: str) -> bauiv1.Texture:
"""Load a texture for use in the ui.""" """Load a texture for use in the ui."""
# This is a dummy stub; the actual implementation is native code.
import bauiv1 # pylint: disable=cyclic-import import bauiv1 # pylint: disable=cyclic-import
return bauiv1.Texture() return bauiv1.Texture()
def hscrollwidget( def hscrollwidget(
*,
edit: bauiv1.Widget | None = None, edit: bauiv1.Widget | None = None,
parent: bauiv1.Widget | None = None, parent: bauiv1.Widget | None = None,
size: Sequence[float] | None = None, size: Sequence[float] | None = None,
@ -362,22 +409,21 @@ def hscrollwidget(
simple_culling_h: float | None = None, simple_culling_h: float | None = None,
claims_left_right: bool | None = None, claims_left_right: bool | None = None,
claims_up_down: bool | None = None, claims_up_down: bool | None = None,
claims_tab: bool | None = None,
) -> bauiv1.Widget: ) -> bauiv1.Widget:
"""Create or edit a horizontal scroll widget. """Create or edit a horizontal scroll widget.
Category: **User Interface Functions**
Pass a valid existing bauiv1.Widget as 'edit' to modify it; otherwise Pass a valid existing bauiv1.Widget as 'edit' to modify it; otherwise
a new one is created and returned. Arguments that are not set to None a new one is created and returned. Arguments that are not set to None
are applied to the Widget. are applied to the Widget.
""" """
# This is a dummy stub; the actual implementation is native code.
import bauiv1 # pylint: disable=cyclic-import import bauiv1 # pylint: disable=cyclic-import
return bauiv1.Widget() return bauiv1.Widget()
def imagewidget( def imagewidget(
*,
edit: bauiv1.Widget | None = None, edit: bauiv1.Widget | None = None,
parent: bauiv1.Widget | None = None, parent: bauiv1.Widget | None = None,
size: Sequence[float] | None = None, size: Sequence[float] | None = None,
@ -396,15 +442,15 @@ def imagewidget(
tilt_scale: float | None = None, tilt_scale: float | None = None,
mask_texture: bauiv1.Texture | None = None, mask_texture: bauiv1.Texture | None = None,
radial_amount: float | None = None, radial_amount: float | None = None,
draw_controller_mult: float | None = None,
) -> bauiv1.Widget: ) -> bauiv1.Widget:
"""Create or edit an image widget. """Create or edit an image widget.
Category: **User Interface Functions**
Pass a valid existing bauiv1.Widget as 'edit' to modify it; otherwise Pass a valid existing bauiv1.Widget as 'edit' to modify it; otherwise
a new one is created and returned. Arguments that are not set to None a new one is created and returned. Arguments that are not set to None
are applied to the Widget. are applied to the Widget.
""" """
# This is a dummy stub; the actual implementation is native code.
import bauiv1 # pylint: disable=cyclic-import import bauiv1 # pylint: disable=cyclic-import
return bauiv1.Widget() return bauiv1.Widget()
@ -412,12 +458,35 @@ def imagewidget(
def is_available() -> bool: def is_available() -> bool:
"""(internal)""" """(internal)"""
# This is a dummy stub; the actual implementation is native code.
return bool() return bool()
def is_party_icon_visible() -> bool: def on_ui_scale_change() -> None:
"""(internal)""" """(internal)"""
return bool() # This is a dummy stub; the actual implementation is native code.
return None
def root_ui_back_press() -> None:
"""(internal)"""
# This is a dummy stub; the actual implementation is native code.
return None
def root_ui_pause_updates() -> None:
"""Temporarily pause updates to the root ui for animation purposes.
Make sure that each call to this is matched by a call to
root_ui_resume_updates().
"""
# This is a dummy stub; the actual implementation is native code.
return None
def root_ui_resume_updates() -> None:
"""Resume paused updates to the root ui for animation purposes."""
# This is a dummy stub; the actual implementation is native code.
return None
def rowwidget( def rowwidget(
@ -429,23 +498,22 @@ def rowwidget(
selected_child: bauiv1.Widget | None = None, selected_child: bauiv1.Widget | None = None,
visible_child: bauiv1.Widget | None = None, visible_child: bauiv1.Widget | None = None,
claims_left_right: bool | None = None, claims_left_right: bool | None = None,
claims_tab: bool | None = None,
selection_loops_to_parent: bool | None = None, selection_loops_to_parent: bool | None = None,
) -> bauiv1.Widget: ) -> bauiv1.Widget:
"""Create or edit a row widget. """Create or edit a row widget.
Category: **User Interface Functions**
Pass a valid existing bauiv1.Widget as 'edit' to modify it; otherwise Pass a valid existing bauiv1.Widget as 'edit' to modify it; otherwise
a new one is created and returned. Arguments that are not set to None a new one is created and returned. Arguments that are not set to None
are applied to the Widget. are applied to the Widget.
""" """
# This is a dummy stub; the actual implementation is native code.
import bauiv1 # pylint: disable=cyclic-import import bauiv1 # pylint: disable=cyclic-import
return bauiv1.Widget() return bauiv1.Widget()
def scrollwidget( def scrollwidget(
*,
edit: bauiv1.Widget | None = None, edit: bauiv1.Widget | None = None,
parent: bauiv1.Widget | None = None, parent: bauiv1.Widget | None = None,
size: Sequence[float] | None = None, size: Sequence[float] | None = None,
@ -455,6 +523,7 @@ def scrollwidget(
capture_arrows: bool = False, capture_arrows: bool = False,
on_select_call: Callable | None = None, on_select_call: Callable | None = None,
center_small_content: bool | None = None, center_small_content: bool | None = None,
center_small_content_horizontally: bool | None = None,
color: Sequence[float] | None = None, color: Sequence[float] | None = None,
highlight: bool | None = None, highlight: bool | None = None,
border_opacity: float | None = None, border_opacity: float | None = None,
@ -462,33 +531,49 @@ def scrollwidget(
selection_loops_to_parent: bool | None = None, selection_loops_to_parent: bool | None = None,
claims_left_right: bool | None = None, claims_left_right: bool | None = None,
claims_up_down: bool | None = None, claims_up_down: bool | None = None,
claims_tab: bool | None = None,
autoselect: bool | None = None, autoselect: bool | None = None,
) -> bauiv1.Widget: ) -> bauiv1.Widget:
"""Create or edit a scroll widget. """Create or edit a scroll widget.
Category: **User Interface Functions**
Pass a valid existing bauiv1.Widget as 'edit' to modify it; otherwise Pass a valid existing bauiv1.Widget as 'edit' to modify it; otherwise
a new one is created and returned. Arguments that are not set to None a new one is created and returned. Arguments that are not set to None
are applied to the Widget. are applied to the Widget.
""" """
# This is a dummy stub; the actual implementation is native code.
import bauiv1 # pylint: disable=cyclic-import import bauiv1 # pylint: disable=cyclic-import
return bauiv1.Widget() return bauiv1.Widget()
def set_party_icon_always_visible(value: bool) -> None:
"""(internal)"""
return None
def set_party_window_open(value: bool) -> None: def set_party_window_open(value: bool) -> None:
"""(internal)""" """(internal)"""
# This is a dummy stub; the actual implementation is native code.
return None return None
def spinnerwidget(
*,
edit: bauiv1.Widget | None = None,
parent: bauiv1.Widget | None = None,
size: float | None = None,
position: Sequence[float] | None = None,
style: Literal['bomb', 'simple'] | None = None,
visible: bool | None = None,
) -> bauiv1.Widget:
"""Create or edit a spinner widget.
Pass a valid existing bauiv1.Widget as 'edit' to modify it; otherwise
a new one is created and returned. Arguments that are not set to None
are applied to the Widget.
"""
# This is a dummy stub; the actual implementation is native code.
import bauiv1 # pylint: disable=cyclic-import
return bauiv1.Widget()
def textwidget( def textwidget(
*,
edit: bauiv1.Widget | None = None, edit: bauiv1.Widget | None = None,
parent: bauiv1.Widget | None = None, parent: bauiv1.Widget | None = None,
size: Sequence[float] | None = None, size: Sequence[float] | None = None,
@ -532,22 +617,16 @@ def textwidget(
) -> bauiv1.Widget: ) -> bauiv1.Widget:
"""Create or edit a text widget. """Create or edit a text widget.
Category: **User Interface Functions**
Pass a valid existing bauiv1.Widget as 'edit' to modify it; otherwise Pass a valid existing bauiv1.Widget as 'edit' to modify it; otherwise
a new one is created and returned. Arguments that are not set to None a new one is created and returned. Arguments that are not set to None
are applied to the Widget. are applied to the Widget.
""" """
# This is a dummy stub; the actual implementation is native code.
import bauiv1 # pylint: disable=cyclic-import import bauiv1 # pylint: disable=cyclic-import
return bauiv1.Widget() return bauiv1.Widget()
def toolbar_test() -> bool:
"""(internal)"""
return bool()
def uibounds() -> tuple[float, float, float, float]: def uibounds() -> tuple[float, float, float, float]:
"""(internal) """(internal)
@ -556,11 +635,13 @@ def uibounds() -> tuple[float, float, float, float]:
bauiv1.ContainerWidget's stack_offset value while guaranteeing that its bauiv1.ContainerWidget's stack_offset value while guaranteeing that its
center remains onscreen. center remains onscreen.
""" """
# This is a dummy stub; the actual implementation is native code.
return (0.0, 0.0, 0.0, 0.0) return (0.0, 0.0, 0.0, 0.0)
def widget( def widget(
edit: bauiv1.Widget | None = None, *,
edit: bauiv1.Widget,
up_widget: bauiv1.Widget | None = None, up_widget: bauiv1.Widget | None = None,
down_widget: bauiv1.Widget | None = None, down_widget: bauiv1.Widget | None = None,
left_widget: bauiv1.Widget | None = None, left_widget: bauiv1.Widget | None = None,
@ -569,12 +650,12 @@ def widget(
show_buffer_bottom: float | None = None, show_buffer_bottom: float | None = None,
show_buffer_left: float | None = None, show_buffer_left: float | None = None,
show_buffer_right: float | None = None, show_buffer_right: float | None = None,
depth_range: tuple[float, float] | None = None,
autoselect: bool | None = None, autoselect: bool | None = None,
) -> None: ) -> None:
"""Edit common attributes of any widget. """Edit common attributes of any widget.
Category: **User Interface Functions**
Unlike other UI calls, this can only be used to edit, not to create. Unlike other UI calls, this can only be used to edit, not to create.
""" """
# This is a dummy stub; the actual implementation is native code.
return None return None