from MechFabrik.bauteile import Activator, Joint, Mech, InnerStructure, Gyroskope, Area, AreaNames, Cockpit, Reaktor, \ Sensors, \ Sustainment 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) 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) -> None: reactor_value = int(movement_rate * tonnage) gyroscope = Gyroskope(float(round(reactor_value / 100))) self._inner_structure = InnerStructure(self.__components.inner_structure_from(tonnage), gyroscope) self.__build_head_area() self.__build_middle_torso_area(gyroscope) def __build_head_area(self) -> None: area = Area() cockpit = Cockpit() area.cockpit = cockpit area.items = { (1, 1): Sustainment(), (1, 2): Sensors(), (1, 3): area.cockpit, (1, 4): None, (1, 5): Sensors(), (1, 6): Sustainment(), } self._inner_structure.add_area(AreaNames.HEAD, area) def __build_middle_torso_area(self, gyroscope: Gyroskope) -> 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] area_middle.items = { (1, 1): reactor, (1, 2): reactor, (1, 3): reactor, (1, 4): gyroscope, (1, 5): gyroscope, (1, 6): gyroscope, (2, 1): gyroscope, (2, 2): reactor, (2, 3): reactor, (2, 4): reactor, (2, 5): None, (2, 6): None, } 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 arm.items = { (1, 1): Joint(), (1, 2): Activator(), (1, 3): Activator(), (1, 4): Activator(), (1, 5): None, (1, 6): None, (2, 1): None, (2, 2): None, (2, 3): None, (2, 4): None, (2, 5): None, (2, 6): None, } parent.children.append(arm) self._inner_structure.add_area(index, arm) def __build_leg(self, parent: Area, index: AreaNames): leg = Area() leg.parent = parent leg.items = { (1, 1): Joint(), (1, 2): Activator(), (1, 3): Activator(), (1, 4): Activator(), (1, 5): None, (1, 6): None, } parent.children.append(leg) self._inner_structure.add_area(index, leg) def auslieferung(self) -> Mech: return self._mech def setHeadAmore(self, param): pass def setMidleTorsoAmore(self, param): pass def setSideTorsoAmore(self, param): pass def setArmAmore(self, param): pass def setLegAmore(self, param): pass