Added water splash simulator, made settings saving work for all simulators, moved all the simulators into their respective directories, improved the README, fixed too much logging

This commit is contained in:
csd4ni3l
2025-09-14 22:27:54 +02:00
parent 9c632d1bec
commit c010c41ccd
12 changed files with 395 additions and 54 deletions

View File

@@ -0,0 +1,33 @@
import arcade, arcade.gui, math
class BodyInventory(arcade.gui.UIGridLayout):
def __init__(self, window_width, window_height, selected, items):
super().__init__(column_count=2, row_count=math.ceil(len(items) / 2), size_hint=(0.2, 0.1))
self.items = items
self.selected_item = selected
self.buttons = {}
self.window_width, self.window_height = window_width, window_height
n = 0
for name, image in items.items():
self.buttons[name] = self.add(arcade.gui.UITextureButton(width=(window_width * 0.2) / 4, height=(window_width * 0.2) / 4).with_background(texture=arcade.load_texture(image), color=arcade.color.WHITE if name == self.selected_item else arcade.color.TRANSPARENT_BLACK).with_border(color=arcade.color.WHITE), column=n % 2, row=n // 2)
self.buttons[name].on_click = lambda event, name=name: self.change_to(name)
n += 1
def add_item(self, name, image):
if not (len(self.items) + 1 <= (self.column_count * self.row_count)):
self.row_count += 1
self._update_size_hints()
self.buttons[name] = self.add(arcade.gui.UITextureButton(width=(self.window_width * 0.2) / 4, height=(self.window_width * 0.2) / 4, color=arcade.color.TRANSPARENT_BLACK).with_background(texture=image).with_border(color=arcade.color.WHITE), column=len(self.items) % 2, row=len(self.items) // 2)
self.buttons[name].on_click = lambda event, name=name: self.change_to(name)
self.items[name] = image
def change_to(self, name):
self.buttons[self.selected_item] = self.buttons[self.selected_item].with_background(color=arcade.color.TRANSPARENT_BLACK)
self.selected_item = name
self.buttons[self.selected_item] = self.buttons[self.selected_item].with_background(color=arcade.color.WHITE)