added an option for changing the arrangement according to whether it's a left or right side knobs module

This commit is contained in:
2025-08-18 17:53:56 +02:00
parent 1d247fc0ed
commit 306c8755eb

View File

@ -6,7 +6,7 @@ import random
class Knobs: class Knobs:
def __init__(self, gui): def __init__(self, gui, is_left_side=True):
self.gui = gui self.gui = gui
self.knobs_surface = pygame.Surface((gui.screenW, gui.screenH), pygame.SRCALPHA) self.knobs_surface = pygame.Surface((gui.screenW, gui.screenH), pygame.SRCALPHA)
@ -16,6 +16,8 @@ class Knobs:
self.fade_in = False self.fade_in = False
self.fade_out = False self.fade_out = False
self.is_left_side = is_left_side
knob_names = [ knob_names = [
'Delay Time', 'Delay Time',
'Delay Vol', 'Delay Vol',
@ -38,7 +40,7 @@ class Knobs:
for i in range(len(knob_names)): for i in range(len(knob_names)):
self.knobs.append(Knob(self, knob_names[i], self.knobs_radius, (x, y), 0)) self.knobs.append(Knob(self, knob_names[i], self.knobs_radius, (x, y), 0))
y += self.knobs_radius + knobs_spacing y += self.knobs_radius + knobs_spacing
if i == 3 or i == 6: if i == 3 or (self.is_left_side and i == 6) or (not self.is_left_side and i == 0):
x += self.knobs_radius + knobs_spacing x += self.knobs_radius + knobs_spacing
y = knobs_y y = knobs_y
self.label_vanish_parameter = 0 self.label_vanish_parameter = 0
@ -90,24 +92,40 @@ class Knobs:
def calculate_label_path(self, knob, label_x): def calculate_label_path(self, knob, label_x):
if len(knob.label_path) == 0: if len(knob.label_path) == 0:
knob.label_path.append(knob.get_position()) knob.label_path.append(knob.get_position())
if (knob == self.knobs[0] or knob == self.knobs[1] or if self.is_left_side:
knob == self.knobs[4] or knob == self.knobs[5]): if (knob == self.knobs[0] or knob == self.knobs[1] or
x = knob.get_position()[0] + self.knobs_radius * 1.5 knob == self.knobs[4] or knob == self.knobs[5]):
y = knob.get_position()[1] + self.knobs_radius * 1.5 x = knob.get_position()[0] + self.knobs_radius * 1.5
knob.label_path.append((x, y)) y = knob.get_position()[1] + self.knobs_radius * 1.5
elif (knob == self.knobs[2] or knob == self.knobs[3] or knob == self.knobs[6]): elif (knob == self.knobs[2] or knob == self.knobs[3] or knob == self.knobs[6]):
x = knob.get_position()[0] + self.knobs_radius * 1.5 x = knob.get_position()[0] + self.knobs_radius * 1.5
y = knob.get_position()[1] - self.knobs_radius * 1.5 y = knob.get_position()[1] - self.knobs_radius * 1.5
knob.label_path.append((x, y)) else: # knob 7
elif (knob == self.knobs[7]): x = knob.get_position()[0] - self.knobs_radius * 1.5
x = knob.get_position()[0] - self.knobs_radius * 1.5 y = knob.get_position()[1] + self.knobs_radius * 1.5
y = knob.get_position()[1] + self.knobs_radius * 1.5
knob.label_path.append((x, y)) knob.label_path.append((x, y))
if (knob == self.knobs[0] or knob == self.knobs[3]): if (knob == self.knobs[0] or knob == self.knobs[3]):
knob.label_path.append((self.knobs[0].get_position()[0] + self.knobs_radius * 1.5, self.gui.screenH/2)) knob.label_path.append((knob.get_position()[0] + self.knobs_radius * 1.5, self.gui.screenH/2))
elif (knob == self.knobs[4] or knob == self.knobs[6] or knob == self.knobs[7]): elif (knob == self.knobs[4] or knob == self.knobs[7]):
knob.label_path.append((self.knobs[4].get_position()[0] + self.knobs_radius * 1.5, self.gui.screenH/2)) knob.label_path.append((self.knobs[4].get_position()[0] + self.knobs_radius * 1.5, self.gui.screenH/2))
else:
if (knob == self.knobs[1] or knob == self.knobs[2] or
knob == self.knobs[4] or knob == self.knobs[5]):
x = knob.get_position()[0] + self.knobs_radius * 1.5
y = knob.get_position()[1] + self.knobs_radius * 1.5
elif (knob == self.knobs[3] or knob == self.knobs[6] or knob == self.knobs[7]):
x = knob.get_position()[0] + self.knobs_radius * 1.5
y = knob.get_position()[1] - self.knobs_radius * 1.5
else: # knob 0
x = knob.get_position()[0] + self.knobs_radius * 1.5
y = knob.get_position()[1] + self.knobs_radius * 1.5
knob.label_path.append((x, y))
if (knob == self.knobs[0] or knob == self.knobs[1]):
knob.label_path.append((knob.get_position()[0] + self.knobs_radius * 1.5, self.gui.screenH/2))
elif (knob == self.knobs[4] or knob == self.knobs[7]):
knob.label_path.append((knob.get_position()[0] + self.knobs_radius * 1.5, self.gui.screenH/2))
knob.label_path.append((label_x - 10, self.gui.screenH/2)) knob.label_path.append((label_x - 10, self.gui.screenH/2))