This commit is contained in:
Eric Froemling 2021-06-11 17:03:58 -05:00
parent 0584fb7c29
commit 4c729e68be
No known key found for this signature in database
GPG Key ID: 89C93F0F8D6D5A98
13 changed files with 172 additions and 62 deletions

View File

@ -420,7 +420,7 @@
"assets/build/ba_data/audio/zoeOw.ogg": "https://files.ballistica.net/cache/ba1/14/f1/4f2995d78fc20dd79dfb39c5d554",
"assets/build/ba_data/audio/zoePickup01.ogg": "https://files.ballistica.net/cache/ba1/57/ac/6ed0caecd25dc23688debed24c45",
"assets/build/ba_data/audio/zoeScream01.ogg": "https://files.ballistica.net/cache/ba1/32/08/38dac4a79ab2acee76a75d32a310",
"assets/build/ba_data/data/langdata.json": "https://files.ballistica.net/cache/ba1/0d/86/2973ec3ddaebaff01a35f68b99aa",
"assets/build/ba_data/data/langdata.json": "https://files.ballistica.net/cache/ba1/d1/70/6fb5f586794d790395d3797a391c",
"assets/build/ba_data/data/languages/arabic.json": "https://files.ballistica.net/cache/ba1/4d/1d/113351f74102015ff852ee3e2e2b",
"assets/build/ba_data/data/languages/belarussian.json": "https://files.ballistica.net/cache/ba1/49/92/dbd8af6861dd47b8bca51aa9533c",
"assets/build/ba_data/data/languages/chinese.json": "https://files.ballistica.net/cache/ba1/b0/0c/fd37e0f8449ab00a345ecea7bd4e",
@ -429,11 +429,11 @@
"assets/build/ba_data/data/languages/czech.json": "https://files.ballistica.net/cache/ba1/f8/63/106bcd08194d23cd8baa7d8be4fc",
"assets/build/ba_data/data/languages/danish.json": "https://files.ballistica.net/cache/ba1/3f/46/e4da3c1d2b0ebf916df55c608b28",
"assets/build/ba_data/data/languages/dutch.json": "https://files.ballistica.net/cache/ba1/d1/07/37b7adc3dbec7328d26c5325f212",
"assets/build/ba_data/data/languages/english.json": "https://files.ballistica.net/cache/ba1/b6/92/f245bd6c11a4ab2eaff037b38cfe",
"assets/build/ba_data/data/languages/english.json": "https://files.ballistica.net/cache/ba1/b6/e8/5b89a8e607a1eec8e4c86374b7de",
"assets/build/ba_data/data/languages/esperanto.json": "https://files.ballistica.net/cache/ba1/6e/fd/685a4e1da031474d47a1d9eb2731",
"assets/build/ba_data/data/languages/french.json": "https://files.ballistica.net/cache/ba1/c1/e9/0d7426afb8faa8b66c3b74b35e23",
"assets/build/ba_data/data/languages/german.json": "https://files.ballistica.net/cache/ba1/9f/99/500019aa5bc3ea8dca84a06036bd",
"assets/build/ba_data/data/languages/gibberish.json": "https://files.ballistica.net/cache/ba1/17/82/e053185f86ba5c907185881273fb",
"assets/build/ba_data/data/languages/gibberish.json": "https://files.ballistica.net/cache/ba1/13/7c/90fc15be9c187e22c3bebff4bb6f",
"assets/build/ba_data/data/languages/greek.json": "https://files.ballistica.net/cache/ba1/93/36/177284765143e14ee6454a59ec0d",
"assets/build/ba_data/data/languages/hindi.json": "https://files.ballistica.net/cache/ba1/6d/38/ad3e051c2be890d5a01b6eeca52d",
"assets/build/ba_data/data/languages/hungarian.json": "https://files.ballistica.net/cache/ba1/de/1b/d9a8e089566aa2951dc34c8c7173",
@ -441,7 +441,7 @@
"assets/build/ba_data/data/languages/italian.json": "https://files.ballistica.net/cache/ba1/bf/d6/4341a67850096fae618968c327ae",
"assets/build/ba_data/data/languages/korean.json": "https://files.ballistica.net/cache/ba1/51/fc/16596c8d421e4961eab3041303d7",
"assets/build/ba_data/data/languages/persian.json": "https://files.ballistica.net/cache/ba1/e4/38/446b22f510f74f590cb990394d36",
"assets/build/ba_data/data/languages/polish.json": "https://files.ballistica.net/cache/ba1/fd/6a/16e5602362974033afba3144e2c5",
"assets/build/ba_data/data/languages/polish.json": "https://files.ballistica.net/cache/ba1/03/08/40f887bb92ddd5c565d879efa279",
"assets/build/ba_data/data/languages/portuguese.json": "https://files.ballistica.net/cache/ba1/ce/f8/087671938e6d407d11d95565e67b",
"assets/build/ba_data/data/languages/romanian.json": "https://files.ballistica.net/cache/ba1/f3/e5/c6d8fab0509451976c776265f0d0",
"assets/build/ba_data/data/languages/russian.json": "https://files.ballistica.net/cache/ba1/4e/e1/f66f6fd33be9bcc380eee870eb74",
@ -3933,26 +3933,26 @@
"assets/build/windows/Win32/vc_redist.x86.exe": "https://files.ballistica.net/cache/ba1/1c/e1/4a1a2eddda2f4aebd5f8b64ab08e",
"assets/build/windows/Win32/vcruntime140d.dll": "https://files.ballistica.net/cache/ba1/50/8d/bc2600ac9491f1b14d659709451f",
"ballisticacore-windows/Generic/BallisticaCore.ico": "https://files.ballistica.net/cache/ba1/89/c0/e32c7d2a35dc9aef57cc73b0911a",
"build/prefab/full/linux_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/7e/0c/4811e0c88609ad03a93031e04418",
"build/prefab/full/linux_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/16/1e/da5d1a1c78606accf3c4439338ad",
"build/prefab/full/linux_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/74/1d/fc9e33e565475daaac80da5252f0",
"build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/db/c2/8c9536f275e5271f1c21eeb3923b",
"build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/c7/4b/8377ba9cd31626637a6804716eda",
"build/prefab/full/linux_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/be/08/4070595cdc3acae7ae3a13cc64a5",
"build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/14/e7/3bdf7ab648128852e274b7bea0c6",
"build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/f3/a9/653c04b445c010dab03ab20cbb66",
"build/prefab/full/linux_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/d2/7b/5483d27ccb29d9e0c96652242c40",
"build/prefab/full/linux_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/9c/7b/ac1a200be0f37078af0991faca3b",
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/33/63/382b5d03b6859de55c252e1bc53f",
"build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/5a/90/b6ff7f753011448bd1ef10f98525",
"build/prefab/full/mac_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/a1/a6/59d250814162a6277d828c910fb2",
"build/prefab/full/mac_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/be/2d/6f7814c61e2cdf64196badcc66ff",
"build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/3d/7f/d4a740b66e707e7ce5777e1e6d05",
"build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/95/8c/bb66f5c95dfad4d1e065a1c6ec65",
"build/prefab/full/mac_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/92/f1/a5e76f90c630e2b0353ab17403e6",
"build/prefab/full/mac_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/ee/12/6e765384e0bdc251c83f49d8f4be",
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/ba/e0/65c4d633bcb6b2108ede1b318a10",
"build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/a1/09/37cae1308d189851acc4f4be7e1b",
"build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/6c/cb/5b24a85c69eb42f42a1855bfb45b",
"build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/46/dc/dfbc5d0bace55610f9a5bccd48bc",
"build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/ac/98/e1116b5b7adbed6309b21baf796d",
"build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/3e/21/ce34c716ff3b0c286312fb84a3eb",
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/a3/06/627d11dcc80f829ea784f20967ba",
"build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/a5/22/469309e4c387e0e03e3c22a23bca",
"build/prefab/full/mac_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/14/74/db5af0a68b77d99668dd19a0dbf0",
"build/prefab/full/mac_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/e4/1c/fbfd48da2029a8fbbf9089a7602c",
"build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/ab/68/0c3ddedc76ac4b22c5ef8a120fb9",
"build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/a9/8f/87f6795a951c3d659fbeb7e3894b",
"build/prefab/full/mac_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/1e/84/dde3f07fc30f810b304dc1326dc7",
"build/prefab/full/mac_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/89/d9/81113dc9a0989e06e7d11ee83e84",
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/ac/47/05be30983f510cdbe078b594be38",
"build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/f9/ea/8a9378ce519e466e9c478b07c116",
"build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/62/5d/2e758624968b13f53c006fcaab5a",
"build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/58/00/038c9a4d0cf2de4ee5358e0dad24",
"build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/83/52/9e8381520466236ea823faf5e1ec",
"build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/1e/48/3c42aa5f72286b00c8dc42f801a9",
"build/prefab/lib/linux_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/17/8a/3e4eec6be82a7d51ec68c2cd9134",
"build/prefab/lib/linux_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/18/27/4063e018845b61a43d3fb975dda9",
"build/prefab/lib/linux_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/94/8e/b57d1b16f9a97ae6b75f6aa64d24",
@ -3969,12 +3969,12 @@
"build/prefab/lib/mac_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/d8/2e/7c67cb2046cafe06d1446851eb18",
"build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/c1/37/421b9994eb20ec8e8f5c9d9af098",
"build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/38/fb/b4547e1d925e49887df4a8eb23f1",
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/d5/32/8ac16267f62d737032137203e4d1",
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/02/16/0ef1ac2956df722d8988cb48711f",
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/7c/36/84039cc97f3de9fcb67f88c26be6",
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/e9/e7/eeafe83124ac7993ebd103c6b344",
"build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/cc/3e/3ecd83648c37d88b2d0462188249",
"build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/66/64/51fbbd98c6ea8907247ffbb49ad1",
"build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/74/3e/bb7d09412d0860fcb6f3240e073c",
"build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/37/29/9e28c583bed35222d48cdd43f7c7"
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/3f/43/b5c398dd6f751f88139a44246bbe",
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/90/71/ccef44d4aa0ba3d2c2ca0767326c",
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/fc/78/08f92034c35cac6273d3099e9d60",
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/24/df/544aa8b950901a10173da0998c8a",
"build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/9c/97/efd19178425d7d51091e07ed638d",
"build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/5f/bf/ea0c9d71fccb470be331195924bf",
"build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/f7/01/1d3c0b2e08695c820c74398f9be0",
"build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/8a/70/35f16e0cd82a398329a232059b45"
}

View File

@ -724,6 +724,7 @@
<w>f'fixme</w>
<w>factoryclass</w>
<w>fakemodule</w>
<w>fakeshake</w>
<w>fallbacks</w>
<w>farthestpt</w>
<w>fback</w>
@ -1069,6 +1070,7 @@
<w>infilepath</w>
<w>infos</w>
<w>infotextcolor</w>
<w>infotxt</w>
<w>inidividual</w>
<w>initializers</w>
<w>initialplayerinfos</w>
@ -1114,6 +1116,7 @@
<w>itms</w>
<w>itmsp</w>
<w>itunes</w>
<w>itunesconnectutils</w>
<w>ival</w>
<w>jackmorgan</w>
<w>janktastic</w>
@ -1166,6 +1169,7 @@
<w>langnames</w>
<w>langs</w>
<w>langtarget</w>
<w>langutils</w>
<w>langval</w>
<w>larmbeast</w>
<w>lasthash</w>
@ -1510,6 +1514,7 @@
<w>objname</w>
<w>objs</w>
<w>objt</w>
<w>objtoyaml</w>
<w>objtype</w>
<w>obval</w>
<w>occurrances</w>
@ -1595,6 +1600,7 @@
<w>pcall</w>
<w>pchild</w>
<w>pcommand</w>
<w>pcommands</w>
<w>pcstr</w>
<w>pdataclass</w>
<w>pedit</w>
@ -1828,6 +1834,7 @@
<w>rawkey</w>
<w>rawpath</w>
<w>rawpaths</w>
<w>rcade</w>
<w>rcfile</w>
<w>rdict</w>
<w>rdir</w>
@ -2523,6 +2530,7 @@
<w>xpos</w>
<w>xres</w>
<w>xscl</w>
<w>xtweak</w>
<w>xval</w>
<w>xxdiff</w>
<w>xxhdpi</w>
@ -2536,6 +2544,7 @@
<w>ypos</w>
<w>yres</w>
<w>yscl</w>
<w>ytweak</w>
<w>yval</w>
<w>zaggy</w>
<w>zimbot</w>

View File

@ -29,6 +29,27 @@ def get_device_value(device: ba.InputDevice, name: str) -> Any:
subplatform = app.subplatform
appconfig = _ba.app.config
# iiRcade: hard-code for a/b/c/x for now...
if _ba.app.iircade_mode:
return {
'triggerRun2': 19,
'unassignedButtonsRun': False,
'buttonPickUp': 100,
'buttonBomb': 98,
'buttonJump': 97,
'buttonStart': 83,
'buttonStart2': 109,
'buttonPunch': 99,
'buttonRun2': 102,
'buttonRun1': 101,
'triggerRun1': 18,
'buttonLeft': 22,
'buttonRight': 23,
'buttonUp': 20,
'buttonDown': 21,
'buttonVRReorient': 110
}.get(name, -1)
# If there's an entry in our config for this controller, use it.
if 'Controllers' in appconfig:
ccfgs = appconfig['Controllers']

View File

@ -71,18 +71,20 @@ def get_all_tips() -> List[str]:
('You can judge when a bomb is going to explode based on the\n'
'color of sparks from its fuse: yellow..orange..red..BOOM.'),
]
tips += [
'If your framerate is choppy, try turning down resolution\nor '
'visuals in the game\'s graphics settings.'
]
app = _ba.app
if app.platform in ('android', 'ios') and not app.on_tv:
if not app.iircade_mode:
tips += [
'If your framerate is choppy, try turning down resolution\nor '
'visuals in the game\'s graphics settings.'
]
if (app.platform in ('android', 'ios') and not app.on_tv
and not app.iircade_mode):
tips += [
('If your device gets too warm or you\'d like to conserve '
'battery power,\nturn down "Visuals" or "Resolution" '
'in Settings->Graphics'),
]
if app.platform in ['mac', 'android']:
if app.platform in ['mac', 'android'] and not app.iircade_mode:
tips += [
'Tired of the soundtrack? Replace it with your own!'
'\nSee Settings->Audio->Soundtrack'
@ -90,7 +92,7 @@ def get_all_tips() -> List[str]:
# Hot-plugging is currently only on some platforms.
# FIXME: Should add a platform entry for this so don't forget to update it.
if app.platform in ['mac', 'android', 'windows']:
if app.platform in ['mac', 'android', 'windows'] and not app.iircade_mode:
tips += [
'Players can join and leave in the middle of most games,\n'
'and you can also plug and unplug controllers on the fly.',

View File

@ -57,6 +57,34 @@ class ControlsGuide(ba.Actor):
self._update_timer: Optional[ba.Timer] = None
self._title_text: Optional[ba.Node]
clr: Sequence[float]
extra_pos_1: Optional[Tuple[float, float]]
extra_pos_2: Optional[Tuple[float, float]]
if ba.app.iircade_mode:
xtweak = 0.2
ytweak = 0.2
jump_pos = (position[0] + offs * (-1.2 + xtweak),
position[1] + offs * (0.1 + ytweak))
bomb_pos = (position[0] + offs * (0.0 + xtweak),
position[1] + offs * (0.5 + ytweak))
punch_pos = (position[0] + offs * (1.2 + xtweak),
position[1] + offs * (0.5 + ytweak))
pickup_pos = (position[0] + offs * (-1.4 + xtweak),
position[1] + offs * (-1.2 + ytweak))
extra_pos_1 = (position[0] + offs * (-0.2 + xtweak),
position[1] + offs * (-0.8 + ytweak))
extra_pos_2 = (position[0] + offs * (1.0 + xtweak),
position[1] + offs * (-0.8 + ytweak))
self._force_hide_button_names = True
else:
punch_pos = (position[0] - offs * 1.1, position[1])
jump_pos = (position[0], position[1] - offs)
bomb_pos = (position[0] + offs * 1.1, position[1])
pickup_pos = (position[0], position[1] + offs)
extra_pos_1 = None
extra_pos_2 = None
self._force_hide_button_names = False
if show_title:
self._title_text_pos_top = (position[0],
position[1] + 139.0 * scale)
@ -79,7 +107,7 @@ class ControlsGuide(ba.Actor):
})
else:
self._title_text = None
pos = (position[0], position[1] - offs)
pos = jump_pos
clr = (0.4, 1, 0.4)
self._jump_image = ba.newnode(
'image',
@ -104,8 +132,8 @@ class ControlsGuide(ba.Actor):
'position': (pos[0], pos[1] - offs5),
'color': clr
})
pos = (position[0] - offs * 1.1, position[1])
clr = (0.2, 0.6, 1) if ouya else (1, 0.7, 0.3)
pos = punch_pos
self._punch_image = ba.newnode(
'image',
attrs={
@ -129,7 +157,7 @@ class ControlsGuide(ba.Actor):
'position': (pos[0], pos[1] - offs5),
'color': clr
})
pos = (position[0] + offs * 1.1, position[1])
pos = bomb_pos
clr = (1, 0.3, 0.3)
self._bomb_image = ba.newnode(
'image',
@ -154,7 +182,7 @@ class ControlsGuide(ba.Actor):
'position': (pos[0], pos[1] - offs5),
'color': clr
})
pos = (position[0], position[1] + offs)
pos = pickup_pos
clr = (1, 0.8, 0.3) if ouya else (0.8, 0.5, 1)
self._pickup_image = ba.newnode(
'image',
@ -208,6 +236,36 @@ class ControlsGuide(ba.Actor):
'h_align': 'center',
'color': clr
})
if extra_pos_1 is not None:
self._extra_image_1: Optional[ba.Node] = ba.newnode(
'image',
attrs={
'texture': ba.gettexture('nub'),
'absolute_scale': True,
'host_only': True,
'vr_depth': 10,
'position': extra_pos_1,
'scale': (image_size, image_size),
'color': (0.5, 0.5, 0.5)
})
else:
self._extra_image_1 = None
if extra_pos_2 is not None:
self._extra_image_2: Optional[ba.Node] = ba.newnode(
'image',
attrs={
'texture': ba.gettexture('nub'),
'absolute_scale': True,
'host_only': True,
'vr_depth': 10,
'position': extra_pos_2,
'scale': (image_size, image_size),
'color': (0.5, 0.5, 0.5)
})
else:
self._extra_image_2 = None
self._nodes = [
self._bomb_image, self._bomb_text, self._punch_image,
self._punch_text, self._jump_image, self._jump_text,
@ -217,6 +275,10 @@ class ControlsGuide(ba.Actor):
if show_title:
assert self._title_text
self._nodes.append(self._title_text)
if self._extra_image_1 is not None:
self._nodes.append(self._extra_image_1)
if self._extra_image_2 is not None:
self._nodes.append(self._extra_image_2)
# Start everything invisible.
for node in self._nodes:
@ -408,6 +470,12 @@ class ControlsGuide(ba.Actor):
('${D}', down_text), ('${R}', right_text),
('${RUN}', run_text)])
if self._force_hide_button_names:
jump_button_names.clear()
punch_button_names.clear()
bomb_button_names.clear()
pickup_button_names.clear()
self._run_text.text = run_text
w_text: Union[ba.Lstr, str]
if only_remote and self._lifespan is None:

View File

@ -301,17 +301,20 @@ class HelpWindow(ba.Window):
maxwidth=100,
text=txt,
h_align='right',
color=header,
v_align='center',
color=header,
flatness=1.0)
txt_scale = 0.7
if not app.vr_mode:
txt = ba.Lstr(resource=self._r + '.controllersInfoText',
subs=[('${APP_NAME}',
ba.Lstr(resource='titleText')),
('${REMOTE_APP_NAME}',
get_remote_app_name())]).evaluate()
infotxt = ('.controllersInfoTextRemoteOnly'
if app.iircade_mode else '.controllersInfoText')
txt = ba.Lstr(
resource=self._r + infotxt,
fallback_resource=self._r + '.controllersInfoText',
subs=[('${APP_NAME}', ba.Lstr(resource='titleText')),
('${REMOTE_APP_NAME}', get_remote_app_name())
]).evaluate()
else:
txt = ba.Lstr(resource=self._r + '.devicesInfoText',
subs=[('${APP_NAME}',

View File

@ -331,6 +331,7 @@
<w>extrascale</w>
<w>exts</w>
<w>facepts</w>
<w>fakeshake</w>
<w>farval</w>
<w>fastdot</w>
<w>fastldlt</w>
@ -485,6 +486,7 @@
<w>imagewidget</w>
<w>incentivized</w>
<w>inet</w>
<w>infotxt</w>
<w>inides</w>
<w>initguid</w>
<w>inittab</w>
@ -511,6 +513,7 @@
<w>itri</w>
<w>itsclass</w>
<w>itunes</w>
<w>itunesconnectutils</w>
<w>ival</w>
<w>ivals</w>
<w>ized</w>
@ -537,6 +540,7 @@
<w>kronk</w>
<w>kwds</w>
<w>kxyz</w>
<w>langutils</w>
<w>lantinga</w>
<w>largeish</w>
<w>larmbeast</w>
@ -688,6 +692,7 @@
<w>nyffenegger</w>
<w>objexists</w>
<w>objid</w>
<w>objtoyaml</w>
<w>obstack</w>
<w>obvs</w>
<w>oculus</w>
@ -733,6 +738,7 @@
<w>parameteriv</w>
<w>passcode</w>
<w>pausable</w>
<w>pcommands</w>
<w>pdataclass</w>
<w>pdst</w>
<w>persp</w>
@ -819,6 +825,7 @@
<w>raspbian</w>
<w>rasterizer</w>
<w>rawkey</w>
<w>rcade</w>
<w>reaaaly</w>
<w>readset</w>
<w>realloc</w>
@ -1127,6 +1134,7 @@
<w>xmin</w>
<w>xmmintrin</w>
<w>xoffset</w>
<w>xtweak</w>
<w>yclamped</w>
<w>ydiff</w>
<w>ydist</w>
@ -1134,6 +1142,7 @@
<w>ymin</w>
<w>yoffs</w>
<w>yooooooo</w>
<w>ytweak</w>
<w>zmax</w>
<w>zmin</w>
<w>zoffset</w>

View File

@ -1,5 +1,5 @@
<!-- THIS FILE IS AUTO GENERATED; DO NOT EDIT BY HAND -->
<h4><em>last updated on 2021-06-10 for Ballistica version 1.6.4 build 20377</em></h4>
<h4><em>last updated on 2021-06-11 for Ballistica version 1.6.4 build 20378</em></h4>
<p>This page documents the Python classes and functions in the 'ba' module,
which are the ones most relevant to modding in Ballistica. If you come across something you feel should be included here or could be better explained, please <a href="mailto:support@froemling.net">let me know</a>. Happy modding!</p>
<hr>

View File

@ -21,7 +21,7 @@
namespace ballistica {
// These are set automatically via script; don't modify them here.
const int kAppBuildNumber = 20377;
const int kAppBuildNumber = 20378;
const char* kAppVersion = "1.6.4";
// Our standalone globals.

View File

@ -205,10 +205,14 @@ auto Joystick::GetButtonName(int index) -> std::string {
return "Dpad Right";
case 21:
return "Dpad Down";
case 102:
return "Z";
case 101:
return "Y";
case 100:
return "X";
case 99:
return "C";
case 98:
return "B";
case 97:

View File

@ -5,11 +5,11 @@ from __future__ import annotations
import os
import sys
from enum import Enum
import datetime
from dataclasses import dataclass
import subprocess
from enum import Enum
from pathlib import Path
from dataclasses import dataclass
from typing import TYPE_CHECKING
from efro.error import CleanError
@ -32,7 +32,7 @@ class PipRequirement:
# entries; this accounts for manual installations or other nonstandard setups.
PIP_REQUIREMENTS = [
PipRequirement(modulename='pylint', minversion=[2, 8, 2]),
PipRequirement(modulename='mypy', minversion=[0, 901]),
PipRequirement(modulename='mypy', minversion=[0, 902]),
PipRequirement(modulename='yapf', minversion=[0, 31, 0]),
PipRequirement(modulename='cpplint', minversion=[1, 5, 5]),
PipRequirement(modulename='pytest', minversion=[6, 2, 4]),

View File

@ -1,10 +1,6 @@
# Released under the MIT License. See LICENSE for details.
#
"""Standard snippets that can be pulled into project pcommand scripts.
A snippet is a mini-program that directly takes input from stdin and does
some focused task. This module consists of ballistica-specific ones.
"""
"""A nice collection of ready-to-use pcommands for this package."""
from __future__ import annotations
# Note: import as little as possible here at the module level to
@ -792,7 +788,7 @@ def update_cmake_prefab_lib() -> None:
def cmake_prep_dir() -> None:
"""Create a dir, recreating it when cmake/python/etc. version changes.
"""Create dir & recreate when cmake/python/etc. version changes.
Useful to prevent builds from breaking when cmake or other components
are updated.

View File

@ -407,10 +407,8 @@ class Updater:
'tools/devtool', 'tools/version_utils', 'tools/vmshell'
]:
if not contents.startswith(f'#!/usr/bin/env python{PYVER}'):
# TEMP: allow this until ballistica.net is updated
if fname != 'tools/staging_server_upkeep':
raise CleanError(f'Incorrect shebang (first line) for '
f'{fname}.')
raise CleanError(f'Incorrect shebang (first line) for '
f'{fname}.')
else:
copyrightline = 0