# ba_meta require api 7 from __future__ import annotations from typing import TYPE_CHECKING, cast if TYPE_CHECKING: from typing import Any, Sequence, Callable, List, Dict, Tuple, Optional, Union from os import listdir import ba import _ba #mod by ʟօʊքɢǟʀօʊ #open by going to plugin settings in settings/advance/plugins internal_dir="ba_data/textures" files=listdir(internal_dir) pink=(1,0.2,0.8) class SettingWindow(): def __init__(self): self.draw_ui() def on_click(self,file,useless): _ba.chatmessage(file) ba.screenmessage(file,color=pink,top=True) def draw_ui(self): self.size=(1800,700) self.uiscale = ba.app.ui.uiscale self.root=ba.Window(ba.containerwidget(size=self.size,transition="in_right")).get_root_widget() text_size=(130,40) ba.textwidget(parent=self.root,text="Janky texture viewer",position=((self.size[0]/2)-text_size[0],650),size=text_size,scale=2,color=pink) self.close_button = ba.buttonwidget( parent=self.root, position=(1570, 550), size=(35, 35), texture=ba.gettexture("crossOut"), label="", scale=2, color=(1, 0.2, 0.2), extra_touch_border_scale=3, on_activate_call=self.close) scroll_size=1400,600 scroller=ba.scrollwidget( parent=self.root, size=scroll_size, position=(150,50)) scroll=ba.columnwidget(parent=scroller,size=scroll_size) widgetlist=[] icon_per_row=6#change this to change textures per row for _ in range(int(len(files)/icon_per_row)+1):#instead of importing math.ceil,why not just add an extra row as precaution :D widgetlist.append(ba.rowwidget(parent=scroll,size=(1400,230))) height=900 c=0 i=0 for file in files: i+=1 file=file.split(".")[0] ba.buttonwidget( parent=widgetlist[c], size=(200,200), texture= ba.gettexture(file), color=(1,1,1), label="", on_activate_call=ba.Call(self.on_click,file,i)) ba.textwidget( parent=widgetlist[c], size=(20,1))#instead of messing with positions,we just summon a text widget.Very janky?Ikr! if i==icon_per_row: i=0 c+=1 def close(self): ba.playsound(ba.getsound('swish')) ba.containerwidget(edit=self.root, transition="out_right",) # ba_meta export plugin class Loup(ba.Plugin): def on_app_running(self): # SettingWindow() pass def has_settings_ui(self): return True def show_settings_ui(self,button): SettingWindow()