From 60bba8d4d5171afa7277b301c7ea636fa8e11146 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20L=C3=BCcke?= Date: Mon, 2 Jun 2025 19:43:22 +0200 Subject: [PATCH] =?UTF-8?q?F=C3=BCge=20Arme=20und=20Beine=20hinzu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MechFabrik/__init__.py | 44 ++++++++++++++++++++++----------- MechFabrik/bauteile/__init__.py | 8 +++++- 2 files changed, 37 insertions(+), 15 deletions(-) diff --git a/MechFabrik/__init__.py b/MechFabrik/__init__.py index 81b7d03..244cab5 100755 --- a/MechFabrik/__init__.py +++ b/MechFabrik/__init__.py @@ -7,36 +7,52 @@ class MechFabrik(object): def __init__(self, name: str, tonnage: float, movement_rate: int): self.__components = ComponentReader() self.__reactor_value = int(movement_rate * tonnage) - gyroscope = Gyroskope(float(round(self.__reactor_value/100))) - inner_structure = self.__build_inner_structure(tonnage, movement_rate) - self._mech = Mech(name, tonnage, movement_rate, inner_structure) + self.__build_inner_structure(tonnage, movement_rate) + self._mech = Mech(name, tonnage, movement_rate, self._inner_structure) - def __build_inner_structure(self, tonnage: float, movement_rate: int) -> InnerStructure: + def __build_inner_structure(self, tonnage: float, movement_rate: int) -> None: reactor_value = int(movement_rate * tonnage) gyroscope = Gyroskope(float(round(reactor_value/100))) - inner_structure = InnerStructure(self.__components.inner_structure_from(tonnage), gyroscope) - inner_structure.add_area(AreaNames.HEAD, self.__build_head_area()) - self.__build_middle_torso_area(inner_structure) - return inner_structure + self._inner_structure = InnerStructure(self.__components.inner_structure_from(tonnage), gyroscope) + self.__build_head_area() + self.__build_middle_torso_area() - def __build_head_area(self) -> Area: + def __build_head_area(self) -> None: area = Area() cockpit = Cockpit() area.cockpit = cockpit - return area + self._inner_structure.add_area(AreaNames.HEAD, area) - def __build_middle_torso_area(self, inner_structure: InnerStructure) -> Area: + def __build_middle_torso_area(self) -> Area: area_middle = Area() area_left = Area() area_right = Area() + area_left.parent = area_middle + area_right.parent = area_middle reactor = Reaktor(self.__reactor_value, self.__components.reactor_tonnage_from(self.__reactor_value)) area_middle.reactor = reactor area_middle.children = [area_right, area_left] - inner_structure.add_area(AreaNames.LEFT_TORSO, area_left) - inner_structure.add_area(AreaNames.RIGHT_TORSO, area_right) - inner_structure.add_area(AreaNames.MIDDLE_TORSO, area_middle) + self.__build_arm(area_right, AreaNames.RIGHT_ARM) + self.__build_leg(area_right, AreaNames.RIGHT_LEG) + self.__build_arm(area_left, AreaNames.LEFT_ARM) + self.__build_leg(area_left, AreaNames.LEFT_LEG) + self._inner_structure.add_area(AreaNames.LEFT_TORSO, area_left) + self._inner_structure.add_area(AreaNames.RIGHT_TORSO, area_right) + self._inner_structure.add_area(AreaNames.MIDDLE_TORSO, area_middle) return area_middle + def __build_arm(self, parent: Area, index: AreaNames): + arm = Area() + arm.parent = parent + parent.children.append(arm) + self._inner_structure.add_area(index, arm) + + def __build_leg(self, parent: Area, index: AreaNames): + leg = Area() + leg.parent = parent + parent.children.append(leg) + self._inner_structure.add_area(index, leg) + def auslieferung(self) -> Mech: return self._mech diff --git a/MechFabrik/bauteile/__init__.py b/MechFabrik/bauteile/__init__.py index eb5d07f..9047b2b 100755 --- a/MechFabrik/bauteile/__init__.py +++ b/MechFabrik/bauteile/__init__.py @@ -9,6 +9,10 @@ class AreaNames(enum.Enum): MIDDLE_TORSO = 'Torso Mitte' RIGHT_TORSO = 'Rechter Torso' LEFT_TORSO = 'Linker Torso' + RIGHT_LEG = 'Rechtes Bein' + RIGHT_ARM = 'Rechter Arm' + LEFT_LEG = 'Linkes Bein' + LEFT_ARM = 'Linker Arm' @@ -37,7 +41,9 @@ class Area: _content: dict[str, Any] def __init__(self): - self.__dict__['_content'] = {} + self.__dict__['_content'] = { + 'children': [] + } def __setattr__(self, key, value): self.__dict__['_content'][key] = value