From f8a8e246d325bebdc9860583ee50db126b8945a5 Mon Sep 17 00:00:00 2001 From: Taha_Ostadsharif Date: Fri, 31 Oct 2025 04:19:57 +0330 Subject: [PATCH 1/3] Create BsRush_Star.py --- plugins/utilities/BsRush_Star.py | 165 +++++++++++++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 plugins/utilities/BsRush_Star.py diff --git a/plugins/utilities/BsRush_Star.py b/plugins/utilities/BsRush_Star.py new file mode 100644 index 00000000..c789e319 --- /dev/null +++ b/plugins/utilities/BsRush_Star.py @@ -0,0 +1,165 @@ +# ba_meta require api 9 + +# @BsRush_Mod +# کپی با ذکر منبع آزاد + +from __future__ import annotations +from typing import TYPE_CHECKING, cast + +import babase +import bascenev1 as bs +import bauiv1 as bui +import random +from bascenev1._map import Map +from bascenev1lib.mainmenu import MainMenuSession + +if TYPE_CHECKING: + from typing import Any, Sequence, Callable, List, Dict, Tuple, Optional, Union + +#==============================================================================# + +# تنظیمات متن +TEXT_CONTENT = "\ue00cBsRush Mod\ue00c" +TEXT_SIZE = 0.01 +TEXT_COLOR = (1, 1, 1) + +# ba_meta export plugin +class UwUuser(babase.Plugin): + Map._old_init = Map.__init__ + + def _new_init(self, vr_overlay_offset: Optional[Sequence[float]] = None) -> None: + self._old_init(vr_overlay_offset) + in_game = not isinstance(bs.get_foreground_host_session(), MainMenuSession) + if not in_game: + return + + def path(): + + shield1 = bs.newnode("shield", attrs={ + 'color': (1, 1, 1), + 'position': (-5.750, 4.3515026107, 2.0), + 'radius': 1.4 + }) + + + bs.animate_array(shield1, 'color', 3, { + 0: (random.choice([1, 2, 3, 4, 5, 6, 7, 8, 9]), + random.choice([1, 2, 3, 4, 5, 6, 7, 8, 9]), + random.choice([1, 2, 3, 4, 5, 6, 7, 8, 9])), + 0.2: (2, 0, 2), + 0.4: (2, 2, 0), + 0.6: (0, 2, 0), + 0.8: (0, 2, 2) + }, loop=True) + + + flash1 = bs.newnode("flash", attrs={ + 'position': (0, 0, 0), + 'size': 0.6, + 'color': (1, 1, 1) + }) + shield1.connectattr('position', flash1, 'position') + + + text_node1 = bs.newnode('text', + attrs={ + 'text': TEXT_CONTENT, + 'in_world': True, + 'shadow': 1.0, + 'flatness': 1.0, + 'color': TEXT_COLOR, + 'scale': TEXT_SIZE, + 'h_align': 'center' + } + ) + + + text_math1 = bs.newnode('math', + attrs={ + 'input1': (0, 1.2, 0), + 'operation': 'add' + } + ) + shield1.connectattr('position', text_math1, 'input2') + text_math1.connectattr('output', text_node1, 'position') + + bs.animate_array(text_node1, 'color', 3, { + 0: (1, 0, 0), # قرمز + 0.2: (1, 1, 0), # زرد + 0.4: (0, 1, 0), # سبز + 0.6: (0, 1, 1), # آبی روشن + 0.8: (1, 0, 1), # بنفش + }, loop=True) + + + bs.animate_array(shield1, 'position', 3, { + 0: (-10, 3, -5), + 5: (10, 6, -5), + 10: (-10, 3, 5), + 15: (10, 6, 5), + 20: (-10, 3, -5) + }, loop=True) + + shield2 = bs.newnode("shield", attrs={ + 'color': (1, 1, 1), + 'position': (5.750, 4.3515026107, -2.0), + 'radius': 1.4 + }) + + bs.animate_array(shield2, 'color', 3, { + 0: (random.choice([1, 2, 3, 4, 5, 6, 7, 8, 9]), + random.choice([1, 2, 3, 4, 5, 6, 7, 8, 9]), + random.choice([1, 2, 3, 4, 5, 6, 7, 8, 9])), + 0.2: (0, 2, 2), + 0.4: (2, 0, 2), + 0.6: (2, 2, 0), + 0.8: (0, 2, 0) + }, loop=True) + + flash2 = bs.newnode("flash", attrs={ + 'position': (0, 0, 0), + 'size': 0.6, + 'color': (1, 1, 1) + }) + shield2.connectattr('position', flash2, 'position') + + text_node2 = bs.newnode('text', + attrs={ + 'text': TEXT_CONTENT, + 'in_world': True, + 'shadow': 1.0, + 'flatness': 1.0, + 'color': TEXT_COLOR, + 'scale': TEXT_SIZE, + 'h_align': 'center' + } + ) + + text_math2 = bs.newnode('math', + attrs={ + 'input1': (0, 1.2, 0), + 'operation': 'add' + } + ) + shield2.connectattr('position', text_math2, 'input2') + text_math2.connectattr('output', text_node2, 'position') + + bs.animate_array(text_node2, 'color', 3, { + 0: (1, 0, 1), # بنفش + 0.2: (0, 1, 1), # آبی روشن + 0.4: (0, 1, 0), # سبز + 0.6: (1, 1, 0), # زرد + 0.8: (1, 0, 0), # قرمز + }, loop=True) + + bs.animate_array(shield2, 'position', 3, { + 0: (10, 6, 5), + 5: (-10, 3, 5), + 10: (10, 6, -5), + 15: (-10, 3, -5), + 20: (10, 6, 5) + }, loop=True) + + bs.timer(0.1, path) + + Map.__init__ = _new_init From 204a5df1f113b284a57c895016ff64a4a507a75e Mon Sep 17 00:00:00 2001 From: Taha1389652 <199228433+Taha1389652@users.noreply.github.com> Date: Fri, 31 Oct 2025 00:50:51 +0000 Subject: [PATCH 2/3] [ci] auto-format --- plugins/utilities/BsRush_Star.py | 125 +++++++++++++++---------------- 1 file changed, 61 insertions(+), 64 deletions(-) diff --git a/plugins/utilities/BsRush_Star.py b/plugins/utilities/BsRush_Star.py index c789e319..daa22b85 100644 --- a/plugins/utilities/BsRush_Star.py +++ b/plugins/utilities/BsRush_Star.py @@ -16,81 +16,78 @@ if TYPE_CHECKING: from typing import Any, Sequence, Callable, List, Dict, Tuple, Optional, Union -#==============================================================================# +# ==============================================================================# # تنظیمات متن -TEXT_CONTENT = "\ue00cBsRush Mod\ue00c" -TEXT_SIZE = 0.01 -TEXT_COLOR = (1, 1, 1) +TEXT_CONTENT = "\ue00cBsRush Mod\ue00c" +TEXT_SIZE = 0.01 +TEXT_COLOR = (1, 1, 1) # ba_meta export plugin + + class UwUuser(babase.Plugin): Map._old_init = Map.__init__ - + def _new_init(self, vr_overlay_offset: Optional[Sequence[float]] = None) -> None: - self._old_init(vr_overlay_offset) + self._old_init(vr_overlay_offset) in_game = not isinstance(bs.get_foreground_host_session(), MainMenuSession) - if not in_game: + if not in_game: return - + def path(): shield1 = bs.newnode("shield", attrs={ - 'color': (1, 1, 1), - 'position': (-5.750, 4.3515026107, 2.0), + 'color': (1, 1, 1), + 'position': (-5.750, 4.3515026107, 2.0), 'radius': 1.4 }) - bs.animate_array(shield1, 'color', 3, { - 0: (random.choice([1, 2, 3, 4, 5, 6, 7, 8, 9]), - random.choice([1, 2, 3, 4, 5, 6, 7, 8, 9]), + 0: (random.choice([1, 2, 3, 4, 5, 6, 7, 8, 9]), + random.choice([1, 2, 3, 4, 5, 6, 7, 8, 9]), random.choice([1, 2, 3, 4, 5, 6, 7, 8, 9])), - 0.2: (2, 0, 2), - 0.4: (2, 2, 0), - 0.6: (0, 2, 0), + 0.2: (2, 0, 2), + 0.4: (2, 2, 0), + 0.6: (0, 2, 0), 0.8: (0, 2, 2) }, loop=True) - flash1 = bs.newnode("flash", attrs={ - 'position': (0, 0, 0), - 'size': 0.6, + 'position': (0, 0, 0), + 'size': 0.6, 'color': (1, 1, 1) }) shield1.connectattr('position', flash1, 'position') - text_node1 = bs.newnode('text', - attrs={ - 'text': TEXT_CONTENT, - 'in_world': True, - 'shadow': 1.0, - 'flatness': 1.0, - 'color': TEXT_COLOR, - 'scale': TEXT_SIZE, - 'h_align': 'center' - } - ) - + attrs={ + 'text': TEXT_CONTENT, + 'in_world': True, + 'shadow': 1.0, + 'flatness': 1.0, + 'color': TEXT_COLOR, + 'scale': TEXT_SIZE, + 'h_align': 'center' + } + ) text_math1 = bs.newnode('math', - attrs={ - 'input1': (0, 1.2, 0), - 'operation': 'add' - } - ) + attrs={ + 'input1': (0, 1.2, 0), + 'operation': 'add' + } + ) shield1.connectattr('position', text_math1, 'input2') text_math1.connectattr('output', text_node1, 'position') bs.animate_array(text_node1, 'color', 3, { 0: (1, 0, 0), # قرمز - 0.2: (1, 1, 0), # زرد + 0.2: (1, 1, 0), # زرد 0.4: (0, 1, 0), # سبز 0.6: (0, 1, 1), # آبی روشن 0.8: (1, 0, 1), # بنفش }, loop=True) - bs.animate_array(shield1, 'position', 3, { 0: (-10, 3, -5), @@ -101,46 +98,46 @@ def path(): }, loop=True) shield2 = bs.newnode("shield", attrs={ - 'color': (1, 1, 1), - 'position': (5.750, 4.3515026107, -2.0), + 'color': (1, 1, 1), + 'position': (5.750, 4.3515026107, -2.0), 'radius': 1.4 }) bs.animate_array(shield2, 'color', 3, { - 0: (random.choice([1, 2, 3, 4, 5, 6, 7, 8, 9]), - random.choice([1, 2, 3, 4, 5, 6, 7, 8, 9]), + 0: (random.choice([1, 2, 3, 4, 5, 6, 7, 8, 9]), + random.choice([1, 2, 3, 4, 5, 6, 7, 8, 9]), random.choice([1, 2, 3, 4, 5, 6, 7, 8, 9])), - 0.2: (0, 2, 2), - 0.4: (2, 0, 2), - 0.6: (2, 2, 0), + 0.2: (0, 2, 2), + 0.4: (2, 0, 2), + 0.6: (2, 2, 0), 0.8: (0, 2, 0) }, loop=True) flash2 = bs.newnode("flash", attrs={ - 'position': (0, 0, 0), - 'size': 0.6, + 'position': (0, 0, 0), + 'size': 0.6, 'color': (1, 1, 1) }) shield2.connectattr('position', flash2, 'position') text_node2 = bs.newnode('text', - attrs={ - 'text': TEXT_CONTENT, - 'in_world': True, - 'shadow': 1.0, - 'flatness': 1.0, - 'color': TEXT_COLOR, - 'scale': TEXT_SIZE, - 'h_align': 'center' - } - ) - + attrs={ + 'text': TEXT_CONTENT, + 'in_world': True, + 'shadow': 1.0, + 'flatness': 1.0, + 'color': TEXT_COLOR, + 'scale': TEXT_SIZE, + 'h_align': 'center' + } + ) + text_math2 = bs.newnode('math', - attrs={ - 'input1': (0, 1.2, 0), - 'operation': 'add' - } - ) + attrs={ + 'input1': (0, 1.2, 0), + 'operation': 'add' + } + ) shield2.connectattr('position', text_math2, 'input2') text_math2.connectattr('output', text_node2, 'position') @@ -161,5 +158,5 @@ def path(): }, loop=True) bs.timer(0.1, path) - + Map.__init__ = _new_init From 002d657dc6fc41776a1f7aa9efde7cfad1501655 Mon Sep 17 00:00:00 2001 From: Loup-Garou911XD <90267658+Loup-Garou911XD@users.noreply.github.com> Date: Wed, 10 Dec 2025 21:04:06 +0530 Subject: [PATCH 3/3] adding metadata and renaming --- plugins/utilities/{BsRush_Star.py => floating_star.py} | 10 ++++++++++ 1 file changed, 10 insertions(+) rename plugins/utilities/{BsRush_Star.py => floating_star.py} (96%) diff --git a/plugins/utilities/BsRush_Star.py b/plugins/utilities/floating_star.py similarity index 96% rename from plugins/utilities/BsRush_Star.py rename to plugins/utilities/floating_star.py index daa22b85..304e4ceb 100644 --- a/plugins/utilities/BsRush_Star.py +++ b/plugins/utilities/floating_star.py @@ -6,6 +6,16 @@ from __future__ import annotations from typing import TYPE_CHECKING, cast +plugman = dict( + plugin_name="floating_star", + description="Get floating stars with colorful text", + external_url="", + authors=[ + {"name": "BsRush_Mod", "email": "", "discord": ""}, + ], + version="1.0.0", +) + import babase import bascenev1 as bs import bauiv1 as bui