from MechFabrik.bauteile import Mech, InnerStructure, Gyroskope, Area, AreaNames, Cockpit, Reaktor from MechFabrik.reader import ComponentReader 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) def __build_inner_structure(self, tonnage: float, movement_rate: int) -> InnerStructure: 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 def __build_head_area(self) -> Area: area = Area() cockpit = Cockpit() area.cockpit = cockpit return area def __build_middle_torso_area(self, inner_structure: InnerStructure) -> Area: area_middle = Area() area_left = Area() area_right = Area() 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) return area_middle def auslieferung(self) -> Mech: return self._mech